Il caso del leak delle password di Linkedin ci ricorda che siamo, costantemente, sotto potenziali attacchi di sicurezza.
Per farla breve, parte del database di Linkedin è stato esposto e con esso le password. Ovviamente, Linkedin ha applicato un meccanismo di hashing delle password, ma ha usato SHA1, il cui algoritmo è abbastanza debole. Grazie alle rainbow table il risultato è che le password fatte di frasi "comuni" (password, Jake13, 12345) sono facilmente recuperabili.
Detto questo, c'è un sistema abbastanza semplice per evitare questi problemi, anche se il vostro database viene esposto? Sì, basta usare un SALT, che è un insieme di bit random, univoci per ogni password, che potete salvare nel vostro database e che serve per combinare la password in formato hash, così che non si possa risalire alla stessa dalle rainbow table (o meccanismi analoghi).
Applicare un SALT è facilissimo (è quello che fa il provider built-in di Membership API di ASP.NET) e richiede solo un passaggio in più, all'atto del login. In pratica, dovete salvare il SALT all'atto dell'iscrizione o del cambio password, per poi usarlo in fase di login.
Trovate maggiori informazioni, che spiegano un po' più nel dettaglio tecnicamente il problema e le soluzioni, su questo post.
In fondo trovate anche l'implementazione di una funzione che vi calcola SALT e fa l'hash in C#.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Perché é importante insegnare ai bambini la programmazione: cosa possiamo fare noi?, l'11 dicembre 2013 alle 16:03
- modern.IE: sfatiamo qualche mito su IE10, il 3 maggio 2013 alle 17:46
- Installare gli emulatori per iPhone e iPad in Visual Studio 2012, il 12 ottobre 2012 alle 15:26
- Silverlight non morirà presto, il 3 novembre 2010 alle 19:38
- Il ruolo di Silverlight con HTML 5, il 2 settembre 2010 alle 09:17