Ogni servizio che utilizziamo in Rete, dall’account di posta elettronica al servizio di online banking, richiede l’uso di una password che, associata al nome utente scelto (username) permette di proteggere le proprie informazioni dagli accessi non autorizzati. Con l’avvento del Web 2.0 sono poi divenute tantissime le password da ricordare. Molti programmi offrono poi la possibilità di proteggere con una password personale i documenti od i file da essi prodotti. E’ il caso, ad esempio, dei software contenuti nel pacchetto Microsoft Office, oppure di utilità per la creazione di archivi compressi come WinZip o WinRAR.
Le password più facili da violare sono ovviamente quelle basate su semplici parole: se una o più password, da voi utilizzate per l’accesso ai vari servizi online, sono la vostra data di nascita, il nome del cane, di un figlio oppure la città od il luogo di vacanza preferiti, è bene variarle immediatamente. A tali informazioni è infatti molto semplice risalire, al giorno d’oggi, consultando – ad esempio – il profilo di un utente su Facebook o su MySpace. Senza volerlo, quindi, l’utente più sprovveduto, diffondendo pubblicamente delle informazioni sulla sua vita privata o sui suoi interessi, può inconsapevolmente facilitare attacchi da parte di aggressori interessati ad accedere ai servizi online ai quali la medesima persona si è registrata.
Nello specchietto sotto riportato sono indicate le tempistiche che sono tipicamente necessarie per violare password di differenti tipologie e lunghezze.
Lunghezza password | numeri | maiuscole o minuscole | mix di maiuscole e miuscole | numeri, lettere maiuscole e minuscole | numeri, maiuscole, minuscole e caratteri speciali |
3 | istantaneo | istantaneo | istantaneo | istantaneo | istantaneo |
4 | istantaneo | istantaneo | istantaneo | istantaneo | istantaneo |
5 | istantaneo | istantaneo | 4 sec | 9 sec | 1′ 15 |
6 | istantaneo | 3 sec | 3′ 15 | 9′ 30 | 2 ore |
7 | istantaneo | 1′ 15 | 3 ore | 10 ore | 8,5 giorni |
8 | 10 sec | 35′ | 6 giorni | 25+ giorni | 2 anni e 3 mesi |
Qual è la migliore strategia per generare una password “praticamente inespugnabile”? Come spesso abbiamo ripetuto, l’approccio migliore consiste nel produrre una password contenenti una miscela di caratteri alfanumerici (lettere maiuscole, minuscoli e numeri) e possibilmente anche simboli o caratteri speciali (ad esempio “#”, “%” oppure “!”). Ogni password, inoltre, una volta seguita l’indicazione di approntare una sequenza complessa di lettere e numeri, dovrebbe essere lunga almeno otto caratteri. In parole povere, comunque, una password diviene tanto più sicuro quanto è maggiore il numero di caratteri che essa contiene e quanto più diversa è la loro tipologia.
Sul web sono disponibili alcuni strumenti che forniscono all’utente un’idea generale circa la complessità e quindi l’adeguatezza di una password.
Il servizio Microsoft Online Safety, ora non più disponibile, consentiva di valutare le diverse tipologie di password introdotte dall’utente. La valutazione offerta dalla pagina web di Microsoft spazia da “debole” (weak) ad “ottima” (best). Si provi, ad esempio, a digitare le seguenti password nell’apposito campo:
password 1: password
password 2: wrE7p4gA
password 3: kEbr5!A753?sW+
password 4: tHap9eHEp*WRe2PEcr=f
password 5: quC=e7ebeprUp2aWuG9s8ecHecaZ
Un altro servizio utile è How Secure Is My Password. In questo caso non viene mostrato alcun giudizio: attraverso un apposito algoritmo, invece, il servizio prova a stabilire il tempo necessario per risalire alla password indicata ponendo in essere un attacco di tipo “brute force“.
Il brute force, come suggerisce il nome stesso, è un attacco che si basa su tentativi successivi: questo tipo di aggressione, tesa a recuperare una password, avviene quindi per iterazioni successive utilizzando tutte le combinazioni possibili, fino a trovare la parola chiave corretta.
Il dictionary attack è invece un attacco basato sull’impiego di termini di uso comune: questo tipo di aggressione si basa sul fatto che molti utenti utilizzano, per proteggere i propri dati, parole che fanno parte del linguaggio, nomi propri od altri termini comuni. Le applicazioni utilizzate per sferrare questo tipo di attacchi attingono a dei veri e propri “dizionari” contenenti spesso decine di migliaia di parole italiane e straniere.
Un servizio come How Secure Is My Password si limita ad eseguire un calcolo basato su un ipotetico attacco “brute force“. Come spiega l’autore del servizio, infatti, il meccanismo per la valutazione delle tempistiche necessarie per un’aggressione del genere si basa interamente sull’uso di codice JavaScript che, come noto, viene interamente eseguito lato client, da parte del browser web. Effettuare anche una verifica con un “dictionary attack” significherebbe far viaggiare in Rete la password indicata dall’utente (il dizionario dovrebbe risiedere lato server). L’autore di How Secure Is My Password ha quindi preferito limitarsi, ovviamente, ad un controllo “brute force“.
Per la cronaca, la prima password di esempio che abbiamo indicato richiederebbe circa 252 giorni per essere recuperata con un attacco di tipo brute force. Ovviamente, essendo la parola password
un termine di uso comune, un dictionary attack, eseguito preventivamente, avrebbe avuto immediatamente successo, senza alcuna attesa.
Eccellente il servizio The Password Meter che, per ciascuna password specificata, effettua un’analisi alla ricerca del numero di caratteri utilizzati e delle diverse tipologie degli stessi: vengono quindi forniti consigli pratici per migliorare la “sicurezza” della password scelta. La piccola icona di colore blu evidenzia che, per la corrispondente caratteristica, la password indicata supera i requisiti minimi di sicurezza. L’icona verde, invece, sta a significare che si sono rispettati gli standard minimali mentre le altre due – gialla e rossa – evidenziano che la parola chiave introdotta potrebbe essere recuperata a causa di alcune sue “debolezze”.
I tre strumenti possono offrire valutazioni leggermente differenti per le varie password inserite. Come regola generale, quando si sceglie una password, è sempre bene introdurre un numero di caratteri che si avvicina al numero massimo consentito e comunque non usare mai password più corte – ove possibile – di 16 caratteri, utilizzare sempre maiuscole e minuscole, introdurre almeno un carattere numerico ed un simbolo ed infine non usare mai termini che possono essere presenti in un qualunque dizionario.
Per la generazione di una password complessa, si può ricorrere al programma “stand alone” Last Pass. Completamente gratuito, Last Pass può creare una password basandosi sulle indicazioni dell’utente (si possono indicare le caratteristiche che la password deve avere). La parola chiave così prodotto può essere quindi copiata ed incollata, ad esempio, in un form sul web per l’attivazione di un nuovo account.
Con la commercializzazione di computer dotati di schede grafiche sempre più performanti, inoltre, molti aggressori stanno iniziando a far leva sulla potenza di calcolo offerta dalle GPU (Graphics Processing Unit, il microprocessore montato su una scheda video per computer o console). Gli esperti concordano sul fatto che una password di sette caratteri è ormai da considerarsi inadeguata dal momento che le GPU più potenti facilitano drasticamente gli attacchi di tipo “brute force“. Le GPU di alto profilo possono elaborare informazioni al ritmo di due teraflops (con il termine “teraflops” si indicano mille miliardi di operazioni in virgola mobile al secondo); un valore che pareva fantascienza appena dieci anni fa.
Quando Nvidia ha rilasciato un pacchetto di sviluppo per le sue schede video, l’azienda ha fornito ai programmatori gli strumenti per interfacciare le loro applicazioni con la GPU utilizzando il linguaggio C. Da qui all’ideazione di utilità in grado di effettuare il “brute forcing” delle password, il passo è stato breve.
L’imperativo è quindi: “password più forti, più complesse“, nell’attesa che si diffondano metodologie di autenticazione hardware.
Altre informazioni sugli attacchi “brute force” effettuati, questa volta, in modalità “cloud“, sono disponibili in questo articolo ed in questa notizia.
Memorizzare password complesse
Password complesse sono estremamente difficili da tenere a mente. Per memorizzarle in modo sicuro sul disco fisso, evitando che possano essere individuate da parte di terzi, l’approccio migliore è orientarsi su software quali KeePass (ved. questi articoli) e TrueCrypt (è possibile fare riferimento a questo materiale).
Il primo si propone come un vero e proprio “password manager”: si tratta di un programma capace di conservare lunghe liste di password in un archivio unico che viene memorizzato sotto forma di file crittografato. TrueCrypt, invece, può essere impiegato per creare, sul sistema, un’unità virtuale all’interno della quale sarà possibile conservare i propri dati personali, password comprese. Le unità virtuali di TrueCrypt possono essere “montate” al bisogno (e quindi rese visibili al sistema operativo, a tutte le applicazioni ed agli utenti solo quando ve ne sia l’effettiva necessità) e sono protette mediante più algoritmi crittografici.
Sia nel caso di TrueCrypt che di KeePass (torneremo più avanti sull’argomento), l’utente deve solo tenere a mente una “master password” che verrà utilizzata ogniqualvolta si desideri accedere al contenuto protetto. Come misura difensiva accessoria, in entrambi i casi, si può anche richiedere l’utilizzo di un “file-chiave”: solo inserendo il supporto che lo contiene (ad esempio, un’unità rimovibile) si potrà accedere alle informazioni cifrate.
Le domande “di sicurezza”
Quando si registrano nuovi account sui vari servizi online, non va sottovalutata nemmeno la cosiddetta “domanda segreta” che molti siti web richiedono di impostare in aggiunta alla password. Rispondendo correttamente alla “domanda segreta”, qualunque utente può richiedere l'”azzeramento” e la conseguente reimpostazione della sua password.
Le domande del tipo “qual è il nome di tua madre?, dove sei nato?, la scuola che hai frequentato?” dovrebbero essere sempre evitate dal momento che eventuali aggressori possono oggi riuscire (soprattutto se si è assidui frequentatori di social network) a rispondere in modo corretto.