Passwords, passwords, passwords

Ai tempi dell’università quasi tutti gli studenti avevano un account con un’ora di navigazione web al giorno (o forse era a settimana), una quota su disco di miseri 7Mb, sì megabyte e la disponibilità di poche cose, gcc, f77, matlab, netscape navigator e un programma di mail che non ricordo, tanto non funzionava per via del proxy. Doveva bastare per tutto, ovviamente a me non bastava, specie l’ora di navigazione e i 7mb. Complice un compagno di studi più smaliziato di me capì che le password su nexus (una macchina HP/UX) non erano in shadow. Copiai /etc/passwd su floppy, scaricai John The Ripper [Wikipedia], un semplice dizionario italiano in ASCII (se non sbaglio usai proprio il dizionario di aspell [Wikipedia]) e lasciai tutta la notte il programma a girare sul mio venerabile Acer Travelmate 513TE, fedele compagno di studi per tanti anni.

Il giorno dopo andai a controllare i risultati. Su un migliaio di account il buon John ne aveva craccate oltre un centinaio. Tante “password”, “inter”, “juve”, altre utenze con password identica all’account, molte date di nascita e via dicendo. Inutile dire che presi alcune di quelle utenze, specie quelle che sapevo frequentare poco o nulla l’Aula di Grafica Avanzata (avanzata nel senso che i sistemi erano assemblati con pezzi avanzati in discarica) e da quel giorno finirono i miei problemi di spazio e tempo per la fruizione del web. E’ stato il mio battesimo per diventare un mediocre lamer, almeno escludendo il boom del Back Orifice [Wikipedia].

Il funzionamento di questi programmi è molto semplice. Si tratta di prendere tutte le parole del dizionario, crittarle con lo stesso algoritmo presente nel file delle password rubate e confrontare le stringhe. Se le stringhe crittate combaciano allora la password è indovinata. Non è un lavoro computazionalmente intenso proprio perché gli algoritmi di crittazione sono fatti in modo che il costo computazionale della crittazione sia molto basso, mentre il reciproco ovviamente no. Oggi ovviamente si sono aggiunti altri trucchi e tecniche ma il principio di base è questo.

Ai nostri giorni capita di leggere che un qualche sito subisce un password leak, ad esempio è capitato a LinkedIn, Sony Playstation Network, Steam, di solito leggiamo la notizia, qualcuno cambia la password oppure ci forzano a farlo ma non ci si fa tanto caso e comunque si finisce per reimpostare quella che c’era prima del cambio forzato, che poi è la stessa di Facebook, GMail e magari qualche altro servizio.

Forse è ora di cambiare abitudini. Dopo aver letto questo articolo [Ars Technica] è chiaro che mai come oggi siamo esposti ad attacchi, un esempio lampante è il caso di Mat Honan [Wired] che ha visto perdere quasi due anni di foto, email, contatti e dati vari, interamente zappati dai propri device, persino dal mac a casa. Certo avrebbe dovuto avere un backup sicuro (backup or fuck up!) ma non è il punto qui.

In estremo riassunto, dopo aver hackerato alcuni siti il mondo del password cracking è cambiato dal giorno alla notte. Con in mano dei dati veri, presi dal mondo reale, i cracker hanno avuto la possibilità di crearsi dei pattern molto più precisi per individuare le password, si è capito che gli utenti usano le maiuscole all’inizio, quasi mai in mezzo alla password, l’abitudine ad usare NomeAnno, oppure passworddorwssap, ovvero password e reciproco, sembra sicura ma non lo è più. Se a questo aggiungiamo i progressi in tema di hardware (ma chi l’avrebbe mai detto che la GPU di una Radeon HD7970 può forzare 8 miliardi di password/sec?) c’è poco da sentirsi al riparo.

Il problema principale, secondo questo studio Microsoft, è che in media siamo iscritti a 25 siti (la ricerca è del 2007, oggi saranno anche di più), ma in media usiamo 6 password a rotazione tra vari siti. A questa brutta abitudine degli utenti si aggiunge il problema che non sappiamo quale criterio di crittazione sia usato da questi servizi, LinkedIn ad esempio usava SHA1, ai cracker basta quindi bucare uno di questi siti proco protetti per poter facilmente arrivare ad altri account, visto che tendiamo a riciclare le password.

Iniziate a sentirvi poco sicuri? No?

Prendiamo il caso di LinkedIn, con le password in SHA1, come riportato da Ars Technica, è bastato un PC con quattro ATI Radeon, un dizionario da 500mln di righe (un bel dizionario direi) e 5 giorni di calcolo per bucare il 90% delle password. Novanta per cento. Con un pc. A casa, mica in un centro di calcolo.

Come difendersi quindi? Protetti al 100% non lo sarete mai, ma alcuni accorgimenti valdi sono:

  • mai riciclare le password, per ogni sito al quale siete iscritti si usa una password differente
  • mai termini propri, nomi, date
  • affidarsi ad un password generator e usare password lunghe (almeno 10 caratteri), usare caratteri come _, #, % e via dicendo
  • non usare @ per rimpazzare “a”, non usare “3” per rimpiazzare “E” o “e”, “4” per “A”, questi giochi ormai li conoscono anche i ragazzini.
  • usare un password manager [Wikipedia]

If you think every single website you have an account on is secure and has never been hacked, you’re a much more optimistic person than I am. [Matt Weir]

Leave a Reply

Your email address will not be published. Required fields are marked *