Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
9 commenti
Limiti e rimedi
All’inizio di questo articolo dicevamo che MD5 è considerato superato. Vi sono due principali motivi
alla base di questa affermazione:
Password deboli
Sappiamo che gli utenti utilizzano spesso delle password inadeguate, troppo comuni e banali. E
sappiamo anche che è facile trovare nel web dei grandissimi database contenenti le associazioni tra
stringa ed hash MD5.
Dunque se la mia password è “pippo”, il suo hash sarà:
0c88028bf3aa6a6a143ed846f2be1ea4
Ora prova ad inserire questo hash in uno dei tanti database, ad esempio questo.
Visto? Troppo facile!
Un possibile rimedio a questa debolezza è rendere la password dell’utente molto più complessa, e non è
necessario che lui lo sappia. Come?
Definiamo due costanti nel nostro file di configurazione:
define(“PRE_PASSWORD”, “#$[[a56?][*{00l45%!@wrv7”);
define(“POST_PASSWORD”, “Nel mezzo del cammin di nostra vita mi ritrovai in una
selva oscura, che la diritta via era smarrita. Ahi quanto a dir qual era è cosa
dura”);
Ora, quando salveremo la password, non ci limiteremo a passarla per MD5, ma anche a modificarla.
Dunque non utilizzeremo questa procedura:
$PasswordDaSalvare = md5($password);
Ma:
$PasswordDaSalvare = md5(PRE_PASSWORD . $password . POST_PASSWORD);
In questo modo la stringa “pippo” diventerà:
#$[[a56?][*{00l45%!@wrv7pippoNel mezzo del cammin di nostra vita mi ritrovai in una selva oscura,
che la diritta via era smarrita. Ahi quanto a dir qual era è cosa dura.
Che passata per MD5 darà questo hash:
8b1cc7082c7706a4929c8fc26e92a09e
Voglio vedere se la si trova in qualche database…
Naturalmente anche al login, quando l’utente inserirà “pippo”, prima di confrontarla con la stringa
salvata nel database, dovremo aggiungere PRE_PASSWORD e POST_PASSWORD e passare per
MD5.
Conclusione
In questo articolo abbiamo iniziato a calarci nell’affascinante mondo della crittografia. Spero di avere
trattato l’argomento in modo sufficientemente semplice visto che il tema è parecchio ostico. Nel
prossimo articolo vedremo i principi della crittografia simmetrica ovvero, per farla breve, come
scambiarsi messaggi segreti.
E tu, utilizzi gli algoritmi di hashing per conservare le password? Che algoritmo ritieni più sicuro?
Abitualmente verifichi l’hash dei file che scarichi (quando è disponibile)?