Password

Nei giorni scorsi è stato pubblicato uno studio, basato su dati reali, che conferma tutte le nostre più pessimistiche previsioni in fatto di password e dell’uso (irresponsabile) che ne fanno gli utenti:

“Pubblicato uno studio statunitense che ha preso l’iniziativa dopo l’attacco di un cracker al sito Rockyou. Su 32 milioni di parole chiave svelate, i primi tre posti sono occupati da semplici cifre in sequenza”

“… proprio per non ritrovarsi smemorati davanti ad un login, gli utenti della Rete sembrano preferire password elementari, di facile recupero mentale. Come la serie di cifre 123456. Sarebbe questa, infatti, la regina delle password, almeno stando a svariati milioni di utenti statunitensi. Una top 3 da primi passi con la matematica: la seconda più utilizzata sarebbe 12345 e la terza – solo per i più arguti del calcolo progressivo – 123456789.”

[Da: “Uno, due, tre, password”, di Mauro Vecchio su Punto Informatico del 23 Gennaio 2009]

Per capire appieno la gravità della situazione bisogna pensare che quando un utente rende disponibile agli hacker un servizio in questo modo, grazie ad una password troppo debole, in pratica fornisce loro uno strumento con cui potranno poi attaccare altri utenti (cioè noi) ed altri sistemi (magari il server web della nostra banca che permette di accedere al nostro conto corrente).

Ma come si possono gestire 30 o 40 password diverse senza impazzire?

Quali alternative esistono all’uso delle password?

Vediamo…

Password buone e cattive

Prima di procedere ricordiamo ancora una volta i criteri che bisogna rispettare per ottenere delle buone password:

  1. Le password devono essere le più lunghe possibili. Di solito questo significa almeno otto (8) caratteri, per una password che deve essere ricordata a memoria.
  2. Le password dovrebbero contenere sia numeri che lettere. Meglio ancora se contengono anche altri caratteri, come @,#.^,[,],$ e via dicendo. Purtroppo, non tutti i sistemi accettano questi caratteri di interpunzione.
  3. Non si dovrebbero mai usare le stesse password per accedere a servizi e sistemi diversi tra loro. Questo per evitare che il gestore di un servizio usi le nostre password per accedere agli altri servizi di cui facciamo uso.
  4. Nell’uso “privato”, le password andrebbero cambiate almeno ogni tre o quattro mesi.
  5. Ovviamente, le password non vanno mai rivelate a nessuno, non vanno mai condivise con nessuno e non vanno mai scritte su un pezzo di carta. Condividere le password è come condividere le chiavi di casa.

Comunque, ribadiremo questi concetti anche nel seguito.

Come vengono scoperte le password

Vale la pena chiarire anche un altro punto: contrariamente a quello che molti credono, gli hacker non tentano affatto di indovinare le password digitandole manualmente al terminale. Di solito, procedono in questo modo:

  1. Prima di iniziare, si procurano un buon numero di dizionari di termini in varie lingue e cifrano tutti questi termini con gli stessi algoritmi (“hash”) usato da molti sistemi per cifrare le password (MD5, CRC32, SHA-1, etc.). In questo modo creano un database di possibili password già cifrate in vari modi e pronte all’uso. Per la cronaca: un sito di hacker vende un database di questo tipo, contenente oltre un milione di termini, per 20US$.
  2. Si procurano la versione crittografata della password (che è quella che viene trasmessa dal browser al server, per esempio).
  3. Confrontano questa password con quelle contenute nel database, al ritmo di qualche migliaio di password al secondo. Per inciso, con meno di 10.000 US$ è possibile costruire un supercomputer casalingo, usando delle PlayStation 3 collegate in rete tra loro, e portare le nostre capacità di analisi ben oltre le 100.000 password/secondo.
  4. Quando trovano quella corrispondente (dopo 10 – 30 secondi, di solito), accedono al sistema.
  5. Nel caso che la password non venga trovata in questo modo, si passa ad un secondo database che contiene tutte le combinazioni di caratteri di una certa lunghezza (ad esempio “q2w3e4r4”) e via di seguito.

Quindi, se pensate che il nome del vostro cane, ripetuto due volte (“fuffifuffi”), sia una buona password, sappiate che non lo è. Una password completamente casuale di soli 6 caratteri può resistere da pochi minuti a poche ore nelle mani di un hacker (a seconda dell’equipaggiamento utilizzato per la decrittazione).

Per fortuna, il tempo richiesto cresce in modo iperbolico all’aumentare della lunghezza della password. Già per decifrare una password di otto caratteri ci vogliono settimane o persino mesi. Per decifrarne una di dieci caratteri ci possono volere dei secoli.

Non illudetevi nemmeno che sia difficile entrare in possesso della versione cifrata delle vostre password: vengono inviate dal browser al server ogni volta che fate il login e possono essere intercettate in molti modi (usando un server “pirata”, installando un worm sul vostro PC, etc.). La crittografia del canale (cioè il protocollo SSL3.0, visibile come prefisso “https://” nella riga dell’indirizzo) vi può difendere da molti tipi di attacchi ma non certo da tutti.

Frasi come password

E veniamo finalmente alle tecniche utili per creare password robuste e facili da ricordare. Il modo più semplice di creare una password robusta (od almeno il “seme” immutabile di una password robusta) consiste nel prendere solo la prima lettera di una frase a noi ben nota e facile da memorizzare. Per esempio, osservate questa frase:

“It is dangerous to be right when most people are wrong.”

La seguente sequenza di caratteri è stata ottenuta concatenando le prime lettere della frase che avete appena letto.

IIDTBRWMPAW

Questa password, di ben 11 caratteri, è completamente casuale e può essere scoperta solo con una ricerca esaustiva, cioè provando una dopo l’altra tutte le password di 11 caratteri esistenti. Per la cronaca, il numero di password diverse che si possono creare con i 24 caratteri alfabetici occidentali è 11^24 (undici alla ventiquattresima). Anche esaminando un migliaio di password al secondo ci vorrebbero secoli per esaminarle tutte (e probabilmente decenni prima di centrare la password giusta per puro caso).

Una variante (meno sicura) consiste nell’usare solo le consonanti di una parola conosciuta. Ad esempio, la password “knwldg” è stata ottenuta eliminando le vocali dalla parola inglese “knowledge”.

Algoritmi mentali

In generale, tuttavia, non si usano password statiche ed immutabili come quella che avete appena visto. Per ragioni di sicurezza, le password si cambiano con una certa frequenza, proprio per impedire che gli hacker abbiano il tempo di scoprirle con un attacco a ricerca esaustiva come quello che ho descritto poco fa. In certe applicazioni militari (come i sistemi che controllano il funzionamento di armi pesanti) le password si cambiano tutti i giorni (o persino ogni ora). Nelle banche ed in molte applicazioni civili si cambiano ogni settimana, ogni mese od ogni stagione. Per un utente privato sarebbe comunque una buona idea cambiarle almeno una volta l’anno.

Inoltre, è assolutamente necessario usare una password diversa per ogni servizio di una certa importanza a cui si ha accesso, a partire dalla posta elettronica ed a finire con il sistema di home banking. Questo per evitare che il gestore di un servizio (per esempio la posta elettronica o la rete aziendale) possa usare la nostra password per accedere agli altri servizi di cui facciamo uso (per esempio l’home banking).

Di conseguenza, molto spesso si assemblano delle password a partire da uno o più elementi. Ad esempio, osservate la password seguente.

MSIDTBRW10

Questa password è stata costruita in questo modo:

  • MS significa “Mail System”, cioè “Sistema di posta” ed identifica il servizio.
  • IDTBRW è la parte centrale della password che avevamo creato poco fa partendo da una frase (vedi sopra), tolta la seconda I iniziale e tenuti solo i primi sei caratteri.
  • 10 significa 2010, cioè l’anno di validità della password.

Usando un semplice algoritmo mentale come quello che avete appena visto, è possibile ottenere password diverse per ognuno dei nostri servizi e diverse per ogni periodo di validità, senza per questo dover memorizzare 30 o 40 password casuali diverse una dall’altra.

Portachiavi software

Ovviamente, esiste pur sempre il rischio che qualcuno riesca ad indovinare il nostro algoritmo o riesca ad entrarne in possesso in qualche modo. In questi casi, allora, si può preferire un’altra soluzione. Ad esempio, si possono avere 30 o 40 password diverse avendo l’accortezza di memorizzarle in un apposito “portachiavi” (“keyring” in inglese). Nel nostro caso, ovviamente, si tratterà di un portachiavi software, cioè di un apposito programma in grado di conservare un database di password e di proteggerlo per via crittografica.

Su Internet sono reperibili molti portachiavi software in grado di memorizzare migliaia di password e di proteggerle tutte quante con una sola password “master”. Li potete trovare cercando termini come “keyring”, “wallet” o “password database”.

In realtà, spesso non è necessario installare un programma di questo tipo. I principali browser web, come Firefox, Explorer ed Opera, infatti, dispongono di un loro keyring interno (spesso chiamato “wallet”), protetto da un’apposita password. Lo stesso vale per Mozilla Thunderbird ed altri programmi per la gestione della posta.

Il cellulare come portachiavi

Un modo semplice ed efficace di conservare le password in uso consiste nel memorizzarle nel cellulare. Molti cellulari moderni dispongono di una rubrica adatta allo scopo e sugli SmartPhone è possibile installare gli stessi “keyring” che si usano sui PC. Di fatto, questa è la tecnica usata da moltissimi operatori professionali per le chiavi di uso più comune.

Ovviamente, in questo caso è buona cosa proteggere il telefono con l’apposito PIN e/o con altri sistemi.

Il cellulare some chiave

In realtà, il telefono cellulare stesso può essere usato come chiave di accesso al PC. Questo risultato può essere ottenuto in almeno due modi diversi.

Il primo modo consiste nell’usare un telefono dotato di interfaccia Bluetooth ed un programma come BlueProximity (per Linux). Questo programma permette di usare un qualunque dispositivo Bluetooth come chiave per bloccare e sbloccare l’accesso alla sessione. In pratica, il PC “sente” la presenza del telefono cellulare Bluetooth grazie alla sua emissione radio, misura questa emissione e da questa misurazione ne deduce la distanza. Se il telefono Bluetooth (che solitamente si trova nella tasca del proprietario) risulta essere ad una distanza inferiore ad un certo limite, l’accesso al PC viene autorizzato, diversamente viene bloccato (e viene avviato il salvaschermo).

I sistemi come BlueProximity, tuttavia, sono facilissimi da “bucare” usando uno dei vari programmi di penetrazione reperibili sul mercato. Di conseguenza, sistemi di questo tipo non possono essere usati come sistemi di sicurezza.

Il secondo modo in cui il telefono cellulare può essere usato come chiave non richiede l’uso del Bluetooth ed anzi non richiede nemmeno che il computer si trovi vicino al telefono. Oltretutto, questo secondo sistema è quasi completamente impenetrabile. Proprio per queste ragioni, viene già utilizzato per proteggere i sistemi di home banking ed altre applicazioni Internet particolarmente sensibili.

Il meccanismo su cui si basa è quasi banale: quando l’utente richiede l’accesso ad un sistema, sia esso locale (PC desktop o laptop) o remoto (server bancario, accessibile da Internet), il sistema gli invia una password di controllo via SMS. L’utente legge l’SMS sul suo cellulare e digita la password al terminale per ottenere l’accesso. Un sistema molto semplice ed elegante, quindi. Ovviamente, il sistema deve essere dotato di un modem GSM/UMTS, o deve essere collegato via internet ad un gateway SMS, per poter scambiare informazioni con l’utente in questo modo.

La caratteristica più interessante di questo sistema è che il telefono ricevente è già protetto, di default, dal robusto sistema crittografico della SIM e l’identità dell’utente è già certificata dal gestore. Di conseguenza, è quasi impossibile violare la sicurezza di un sistema del genere (a meno che non siano stati commessi dei grossolani erroi nell’implementazione). Purtroppo, però, sistemi di questo tipo sono disponibili solo per i server e, a meno di non sapersi destreggiare con il sistema di autenticazione del PC (per esempio PAM su Linux) e con i modem GSM, non è possibile utilizzarli sui normali PC.

I token

Sul mercato esistono diversi sistemi che fanno uso di Smart Card e di Token per certificare l’identità degli utenti, come l’eToken di Aladdin (utilizzabile anche su Linux e MacOS) e gli analoghi prodotti di Verisign ed RSA.

In tutti i casi, si tratta di picoli gadget che vanno collegati al PC per accedere ad esso. In pratica, funzionano proprio come una chiave fisica e delle chiavi fisiche condividono vantaggi e svantaggi. Da un lato, c’è la comodità di sapere che se la chiave è ancora nel nostro portachiavi (fisico) nessuno può aver avuto accesso ai nostri dati ed ai nostri servizi. Dall’altro, c’è il fatto che se la chiave viene persa, non è più possibile accedere al servizio che essa proteggeva.

Uno dei motivi per cui questi oggetti sono poco diffusi è il loro costo. Si parte da circa 30 euro per i più semplici e si può arrivare ad oltre 150 euro per i modelli più sofisticati.

I generatori OTP

I generatori OTP (“One-Time Pad” o “One-Time Password”) sono quei piccoli gadget che generano una nuova password ogni 30 – 180 secondi. In pratica, sono delle memoriette che contengono qualche Mb di chiavi del tutto casuali. Un database di chiavi identico si trova sul server (o sul PC) ed un apposito programma confronta la chiave digitata dall’utente con quella corrispondente (per quell’intervallo di tempo) sul server.

Sistemi di questo genere sono sostanzialmente inviolabili, a meno che il gestore non consegni per errore lo stesso database di chiavi a più utenti. Per questa ragione sono molto utilizzati per proteggere l’accesso ai sistemi di home banking. Tuttavia, sono in via di sostituzione con sistemi basati su SMS e telefoni cellulari. La ragione è ovvia: tutti hanno un cellulare capace di scambiare messaggi SMS mentre il generatore OTP deve essere fornito dalla banca.

I cellulari come generatori OTP

In realtà, anche i moderni telefoni cellulari possono essere usati come generatori OTP, grazie all’installazione di un apposito programma. Tuttavia, questa soluzione non viene quasi mai utilizzata perchè sarebbe facilissimo copiare su un altro telefono il database delle chiavi. Per vedere realmente in uso questa soluzione sarà necessario aspettare che qualcuno inizia ad utilizzare le soluzioni di sicurezza hardware che sono già presenti da tempo in molti tipi di CPU usate dai telefoni cellualri, come i processori ARM (che dispongono al loro interno di una tecnologia simile al Trusted Computing).

La biometria

Sono disponibili sul mercato vari tipi di sistemi biometrici, sia integrati nel PC che aggiunti ad esso come periferiche esterne. Si va dal riconoscimento delle impronte digitali fino al riconoscimento dei volti (usando la webcam in dotazione).

In questo momento, tuttavia, quasi tutti questi sistemi sono di funzionamento piuttosto precario (è facile che “vi lascino fuori” dal sistema) e sono piuttosto facili da buggerare. Ad esempio, è stato dimostrato in più occasioni, da ricercatori del settore, che è possibile ingannare un sistema di riconoscimento del volto (di buon livello) usando una semplice fotografia (vedi questa ricerca di Google su “Hacking face recognition”). Su internet sono disponibili varie guide che spiegano come sia relativamente facile creare delle impronte digitali false ed ingannare sistemi di questo tipo (vedi “make fake fingerprint”).

Il mio personalissimo consiglio è di evitare l’uso di sistemi biometrici per le applicazioni tipiche della vita privata ed affidarsi ad altri sistemi.

Conclusioni

Usare le password giuste e nel modo giusto non è difficile. Basta riflettere su quello che si sta facendo e, se necessario, informarsi sugli strumenti e le tecniche più adatte. Per una prima ricerca, potete partire da Wikipedia e da Google. Digitate “password” e navigate tra i risultati.

Comments
4 Responses to “Password”
  1. Luca Sartoni ha detto:

    Clipperz.com è la soluzione. Io lo uso da due anni e non potrei mai vivere senza. Decine di password random da 22 caratteri gestite in totale sicurezza e facilità.

  2. gerns ha detto:

    Ottima guida ! Io uso la stessa password in rete ! Ovviamente non quella di posta elettronica , però dovrò un pó modificarle !

Trackbacks
Check out what others are saying...
  1. […] a comment » Pochi giorni fa, grazie ad una risposta apparsa sul blog di Alessandro Bottoni, si e’ venuti a conoscienza del il sito […]



Lascia un commento