Se ho un database in cui memorizzo le informazioni sensibili degli utenti e criptato tali informazioni, devo fare qualcosa come PBKDF2 (password, salt, 10 ^ 5) per la chiave di crittografia e anche l'hash?
Se ho un database in cui memorizzo le informazioni sensibili degli utenti e criptato tali informazioni, devo fare qualcosa come PBKDF2 (password, salt, 10 ^ 5) per la chiave di crittografia e anche l'hash?
Ogni volta che si dispone di una password umana e si desidera elaborarla in un formato che "lascia tracce", allora è necessario farlo con una funzione che resiliente alla forza bruta (ad esempio PBKDF2). È quindi necessario farlo quando si hash la password per ottenere un token di verifica della password che si memorizza; devi anche farlo quando stai trasformando la password in una chiave per la crittografia simmetrica.
Per rendere le cose più chiare: se giri la password P nella chiave K e poi usi K per crittografare alcuni dati D e memorizza il risultato crittografato E , quindi un utente malintenzionato, osservando E , potrebbe "provare le password" girando una potenziale password P ' nella chiave K ' e poi prova a decodificare E con K' e vedere se produce dati sensibili D . Questa è la situazione attacco offline , molto simile a hashing della password .
In senso stretto, trasformare alcuni dati in una chiave si chiama Derivazione chiave e "PBKDF" significa in realtà "Funzione di derivazione chiave basata su password".
Leggi altre domande sui tag encryption salt databases