BCrypt è abbastanza quando si salva una password in un database?

6

Per consentire agli utenti di connettersi al mio sito Web, crittografo la loro password usando BCrypt poiché è uno degli algoritmi più lenti da decrittografare (rendendo più decrittografato un database compromesso).

Ma mi stavo chiedendo se fosse abbastanza - o se la combinazione con un algoritmo di hashing come sha256 / 512 fosse migliore?

In realtà, ciò significherebbe:

clear password -> sha256 -> bcrypt -> stored in database.

L'aggiunta di sha256 aumenta davvero la difficoltà a decrittografarli, o la lentezza di BCrypt è sufficiente?

    
posta Cyril N. 08.05.2012 - 20:30
fonte

1 risposta

4

La risposta breve è, usa bcrypt, non SHA256. Bcrypt hash già la password, quindi se stai usando bcrypt, non ha senso usare sia bcrypt + SHA256; non sarà più strong Bcrypt da solo è sufficiente.

Ci sono molti consigli su questo sito proprio su questo argomento. Cerca "hashing password" e lo troverai.

Vedi, ad esempio, Come fare in modo sicuro le password di hash? , Quale metodo di hashing della password dovrei usare? , Algoritmo di hash della password più sicuro? , Gli esperti di sicurezza consigliano bcrypt per l'archiviazione della password? .

Si desidera utilizzare un algoritmo di hashing della password che sia il più lento possibile, per impedire attacchi di dizionario offline sulle password delle persone se il database è compromesso.

Certo, non è abbastanza. Ci sono una serie di passi da fare per utilizzare le password nel modo più sicuro possibile. Eccone alcuni:

  • Utilizza SSL / TLS a livello di sito. Qualsiasi tentativo di visitare il tuo sito tramite HTTP deve immediatamente reindirizzare a HTTPS.

  • Abilita HSTS sul tuo sito. Questo indica ai browser di connettersi solo a te tramite HTTPS. Paypal lo usa. È supportato nelle versioni recenti di Firefox e Chrome.

Cerca nel sito e troverai molto altro.

    
risposta data 08.05.2012 - 20:43
fonte

Leggi altre domande sui tag