So che md5 è considerato non sicuro, ma cosa succede se qualcuno usa md5 (md5 (password) .salt) invece? Non è tecnicamente migliore / più sicuro?
L'hash% dimd5(md5(password).salt)
è sicuro quanto md5(password.salt)
.
Tutta la differenza che posso vedere è il calcolo MD5 aggiuntivo md5(password)
che aumenta il tempo di elaborazione che l'hacker deve trascorrere di poco e potrebbe non fare una grande differenza.
Diciamo che l'attaccante prende le 100 password più usate come welcome,monkey
con valori md5
40be4e59b9a2a2b5dffb918c0e86b3d7,d0763edaa9d9bd2a9516280e9044d885
rispettivamente.
Ha bisogno di usare password forza bruta e sale in md5(md5(password).salt)
usando la lista welcome,monkey
.
Esempio: md5(md5("welcome").salt)
Può semplicemente eliminare quel calcolo MD5 aggiuntivo utilizzando l'elenco di valori md5 calcolati una volta.
Esempio: md5("40be4e59b9a2a2b5dffb918c0e86b3d7".salt)
Tali combinazioni sono spesso supportate immediatamente dagli strumenti di password cracker. Dai un'occhiata agli algoritmi di hashcat vedrai molte combinazioni simili. MD5 non è appropriato alle password hash a causa della sua velocità, la forzatura bruta è troppo semplice (circa 100 Giga MD5 al secondo), quindi non è sicuro.
No
Quando si utilizza il metodo md5 (md5 (password) .salt) è strong come md5 (password.salt). Sembra che abbia bisogno di più tempo per trovare una collisione quando si utilizza il metodo md5 (md5 (password) .salt). In tal caso, è possibile utilizzare bcrypt per rallentare manualmente l'operazione di attacco di collisione. E usando il vecchio md5 - cattiva idea.