C'è qualche vantaggio di bcrypt su più iterazioni di SHA-x / MD5?

13

So che un buon algoritmo di hashing della password dovrebbe essere lento. MD5, SHA256, ecc. Sono veloci. Quindi ho aggiunto più iterazioni di hashing SHA-256 alle mie app Web (circa 50000). Ottenere l'hash di una password richiede circa 150ms sulla mia macchina.

C'è qualche vantaggio di bcrypt su questo approccio?

Nota: conosco i sali e il pepe. Facciamo non parlare di questo qui.

    
posta Philippe Gerber 11.07.2011 - 11:50
fonte

2 risposte

14

Inserire il sale (sì, deve essere discusso), e iterare la funzione allo stesso tempo, è un po 'più complicato di quello che appare di solito. In particolare, una funzione di hash come SHA-256 non è esattamente una funzione "random-oracle-like"; mostra una struttura interna. Qualsiasi costrutto fatto in casa potrebbe colpire uno di quei piccoli dettagli dai quali potrebbero emergere debolezze fatali.

Assicurarsi di averlo fatto bene è difficile, proprio come costruire un algoritmo crittografico. È in questo che bcrypt è migliore di qualsiasi altro costrutto fatto in casa: bcrypt è stato pubblicato e in uso e presumibilmente ispezionato da molte persone per un certo periodo di tempo. Questa è fondamentalmente l'unica misura di sicurezza che è possibile ottenere in crittografia. Anche qui il consiglio generico di "non definire i propri algoritmi".

    
risposta data 11.07.2011 - 14:19
fonte
7

Il problema che stai affrontando è già stato risolto, e sì, stai andando nella giusta direzione: link

    
risposta data 12.07.2011 - 00:57
fonte

Leggi altre domande sui tag