Sicurezza nelle password: un approccio diverso

Scritto il 26 Giugno 2007
Nella categoria Programmazione, Riflessioni personali
Tag: , , ,

 

Sappiamo ormai tutti le regole fondamentali per avere una buona password: lunga, con maiuscole, numeri, caratteri strani, che non abbia significato (in italiano) eccetera eccetera.

Vorrei invece proporre un approccio diverso per controllare la robustezza della nostra password: la verifica di una decodifica già pronta. Le nostre password infatti spesso non girano "lisce", cioè non vengono memorizzate né trasferite come testo liscio, ma si usa una funzione, detta md5, che genera un codice di lunghezza fissa. Ad esempio timendum diventa 816a75a82586fbfdd3435e85b6fb84cb.

Orbene, quando voi mettete la vostra password in giro, da questa viene calcolato il codice md5, e confrontato con quello in memoria, se è uguale, avete molto probabilmente, digitato la password giusta. In questo modo è teoricamente impossibile, anche per l’amministratore del sito, trovare la vostra password, perché non la hanno! Risulta inoltre anche comodo ad punto di vista gestionale, perché tutte le password occupano sempre lo stesso spazio in caratteri (e quindi il database ha una colonna determinata).

Risalire dal codice (816a75a82586fbfdd3435e85b6fb84cb) alla parola originale (timendum) è teoricamente molto difficile, diciamoci pure attualmente infattibile, esiste però un approccio diverso, cioè memorizzare tutti gli abbinamenti più comuni cosicché, se leggo 0c88028bf3aa6a6a143ed846f2be1ea4 so che si riferisce a "pippo". Esistono quindi database di collegamento tra gli hash (cioè i codici generati tramite md5) e la parola/parole originali. Uno dei più famosi e forniti è md5();.

Diventa quindi interessante, quando cerchiamo una password sicura, verificare se il suo hash sia contenuto in un database simile, perché per quanto complicata l’abbiamo scelta, sarà possibile trovarla in un attimo. Per scoprirlo, calcoliamo l’hash della parola, c’è un comodo sito B-Con che digitando la parola di fornisce l’hash. Quindi andiamo su md5(); e lo si inserisce nell’apposito campo, premendo invio (o il pulsante), se è presente sul database ci verrà fornita la parola originale, in questo caso la password può essere considerata non sicura.

Piccola nota finale: il database di md5(); consiste in tutte le parole di cui viene calcolato l’hash, cioè se lo cerchi lì, viene aggiunto; questo è il motivo per cui non lo si può utilizzare per il primo passaggio, perché lo aggiunge e quindi lo troverebbe sicuramente!

Ti potrebbe interessare...

Commenti

Scrivi un commento

Se vuoi.

Nome (obbligatorio)

E-mail (obbligatorio)

Sito web

Commenti