Il 13 dicembre 2011 21:03, Luca B. [email protected] ha scritto:
sul RailsCast di Davide:
#250 Authentication from Scratch - RailsCasts
cosa si intende per “password_salt”?
Ciao,
i dettagli puoi vederli qua:
http://it.wikipedia.org/wiki/Sale_(crittografia)
In breve: normalmente, le password non vengono conservate in chiaro
(non nei sistemi seri), per ovvi motivi di sicurezza; si conserva,
invece, una loro trasformazione tramite una funzione di hash.
Queste funzioni hanno una propriet: facile passare dalla password
al suo hash, e invece difficilissimo risalire dall’hash alla
password.
Quindi, quando digiti la password, viene applicata la funzione di hash
e il risultato viene confrontato con l’hash conservato.
Questo meccanismo, teoricamente sicuro, per suscettibile di un
certo tipo di attacco: se, infatti, il malintenzionato ottenesse
l’accesso in lettura al db degli hash delle password, potrebbe tentare
un attacco di forza bruta, calcolando l’hash (il cui algoritmo in
genere pubblico) di tutte le parole di un dizionario e/o le password
pi comunemente usate (tipo “qwertyuiop”, “password”, “12345”…) e
confrontarle con il db degli hash, con altissime probabilit di
trovare numerose corrispondenze.
La soluzione aggiungere un po’ di sale, ovvero: si sceglie una
stringa casuale segreta e la si aggiunge alla password prima di
applicare la funzione di hash. Se, ad esempio, la mia password
“pippobaudo” (cit.), e il sale “23r09n2”, la funzione di hash si
applica a “pippobaudo23r09n2” e viene conservato il risultato,
rendendo cos vano l’attacco di forza bruta.
Ovviamente, perch questo funzioni, il sale dev’essere conservato in
un luogo separato rispetto all’hash delle password, altrimenti tutto
inutile.
pietro