martedì 23 dicembre 2014

Sicurezza delle password

Per eseguire l'accesso controllato, dal login al computer (o al modem/router) a qualsiasi servizio di rete, occorre inserire una combinazione di nome utente e password (parola d'ordine). Con l'aumentare del numero e della tipologia di servizi on-line, le password da usare diventate molte e ciò può indurre gli utenti a comportamenti imprudenti nella gestione delle credenziali di accesso: per esempio, si usano password troppo facili da indovinare, oppure troppo corte, oppure la stessa password per accedere a più servizi.

La potenza di calcolo dei computer cresce costantemente, tanto che anche il singolo malintenzionato dispone di risorse sufficienti per tentare di violare un password che non rispetti gli standard minimi di sicurezza. Il pericolo maggiore è costituito dalle organizzazioni criminali, che dispongono di reti composte da decine o centinaia di computer, che tentano simultaneamente diverse strategie di attacco.

Tipi comuni di attacco

Per violare una password bisogna indovinarla. Se chi vuole attaccarvi non ha modo di rubare le vostre password, può tentare essenzialmente due tipi di attacchi:
  • brute force attack, attacco a forza bruta;
  • dictonary attack, attacco basato su dizionario.

ATTACCO A FORZA BRUTA
L'attacco a forza bruta cerca di indovinare una password provando tutte le possibili combinazioni di caratteri da cui essa è composta quindi, in teoria è in grado di scoprire qualunque password (in pratica le cose stanno diversamente).

Supponiamo che una password sia composta dalle 26 lettere minuscole (a, b, c, …, z) dell'alfabeto, quante sono le combinazioni possibili? Per password composte da:
  • un solo carattere: le combinazioni sono 26. Se usassimo anche le lettere maiuscole (A, B, C, …, Z), le combinazioni sarebbero 52;
  • 2 caratteri: le combinazioni sono 26x26 = 262 = 676 (usando anche le maiuscole, le combinazioni sarebbero 52x52 = 522 = 2704);
  • 3 caratteri: le combinazioni sono 26x26x26 = 263 = 17576 (usando anche le maiuscole, le combinazioni sarebbero 52x52x52 = 523 = 140608);
Se oltre a maiuscole e minuscole usiamo anche le cifre (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) ed i 32 simboli di punteggiatura e speciali (~ ! @ # $ € % ^ & * ( ) _ - + = { } [ ] \ | : ; " ' < > , . ? /), le combinazioni possibili da 1, 2 e 3 caratteri sono rispettivamente 68, 682 = 4624, 683 = 314432.

Quindi l'attacco brute force si neutralizza usando password lunghe composte da combinazioni di lettere, cifre e simboli: più la password è lunga e complicata più è resistente, poiché le combinazioni sono così tante che i tempi di calcolo per provarle sarebbero immensi anche per i più potenti supercomputer.

ATTACCO BASATO SU DIZIONARIO
L'attacco basato su dizionario cerca di indovinare una password provando le combinazioni di parole poiché gli esseri umani le ricordano facilmente rispetto alle sequenze casuali di caratteri. Per esempio la password mammababbononnazio è formata da 18 caratteri, ma per un attacco di questo tipo sono solo 4 parole (mamma, babbo, nonna, zio); è come se la password fosse formata solo da 4 caratteri, le combinazioni casuali di parole sono relativamente poche.
A seconda di quanto è sofisticata la tecnica di attacco, per renderla più efficace si adottatano particolari strategie, poiché i dizionari spesso prevedono:
  • l'inversione tra maiuscole e minuscole. Ad esempio, proverà non solo la parola "mamma", ma anche "Mamma", "MAMMA" e "mAMMA" (nel caso qualcuno pensasse di invertire le regole di grammatica per aggirarlo), e magari ogni possibile combinazione di maiuscole e minuscole;
  • frasi famose (esempio: nelmezzodelcammindinostravita), titoli di libri o di film oppure di poesie, detti, proverbi, aforismi, modi di dire, canzoni e ritornelli;
  • personaggi e luoghi famosi, sia reali che di fantasia;
  • abbreviazioni, per esempio "ke" (che), "xke" (peché);
  • sostituzioni ovvie di numeri con lettere/simboli, per esempio "0" (ossia lo 0 al posto della O maiuscola o minuscola), "4" (A), "3" (E), "1" (I), "5" (S), "&" (e), "x" (per);
  • parole scritte al contrario (esempio: "ottag" invece di "gatto");
  • parole tronche (esempio: "cammin" invece di "cammino")
  • parole contenenti errori di ortografia comuni (più o meno intenzionali);
  • sigle e acronimi, che siano note (come "ONU"), gergali (esempio: "IMHO"=secondo la mia opinione) o di uso comune in certi ambiti (esempio "ASAP"="as soon as possible", ossia "il più velocemente possibile", usato spesso sul luogo di lavoro);
  • sequenze di caratteri ovvie. Esempi di pessime password sono: 11111111, 12345678, 24681012 o 135791113 (sequenza dei numeri pari/dispari),  qwertyui o zxcvbnm (sequenze di caratteri sulla tastiera italiana), abcdefghijk.
I dizionari sono estesi abbastanza da includere parole straniere (l'Inglese in genere è sempre incluso); le strategie precedentemente elencate, dipendono dalla lingua specifica (per esempio per l'Inglese il dizionario prevederà "4U" in luogo di "for you"). I dizionari non contengono tutte le parole di una lingua ma "solo" alcune migliaia, quelle più usate comunemente.

Per difendersi dagli attacchi a dizionario bisogna evitare di usare parole di senso compiuto, cercando di camuffarle, allungarle e trasformarle in modo noto solo a voi. Per esempio, invece di usare "mamma" è meglio "mA4a2Ma". Questa pseudocifratura serve a complicare la password ed aumentarne il grado di "confusione" (in termini tecnici si dice che aumenta l'entropia della password, ossia la casualità della sequenza di caratteri), in modo che sia più difficile da indovinare.

Attacchi basati su tecniche di ingegneria sociale

L'ingegneria sociale (social engineering) applicata all'Informatica è un misto di tecniche di psicologia e di hacking che hanno lo scopo di acquisire informazioni riservate. Nel caso delle password questo attacco è molto pericoloso poiché è mirato: chi vuole attaccarvi studia il vostro comportamento e cerca con ogni mezzo di sapere quanto più possibile su di voi. Vengono passati al setaccio i social-network (Facebook, Google+, Twitter, Linkedin ecc.) alla ricerca di qualsiasi informazione abbiate pubblicato. Per difendersi occorre evitare password basate su:
  • dati personali o sensibili (nome, cognome, indirizzo, telefono/cellulare, e-mail o parte di essa, numero di carta di identità o del passaporto, codice fiscale, targa dell'automobile o altre informazioni analoghe);
  • dati ed informazioni sulla vostra vita privata che ritenete innocui e che avete pubblicato su un social network o su un forum (il soprannome, una passione, un hobby, un passatempo, nomi o soprannomi di amici, familiari, fidanzata/fidanzato, colleghi di lavoro, animali domestici, film/libri/cantanti/attori preferiti).
Una password basata su uno di questi dati può essere indovinata sia da chi vi conosce che da un malintenzionato che vi ha preso di mira. Altre tecniche di ingegneria sociale includono:
  • il phishing, ossia il tentativo di carpire le credenziali di accesso mediante l'invio di e-mail che invita ad inserire il nome utente e la password. Non rispondere a queste e-mail né seguire i link in esse contenute;
  • uso di spyware (programmi che rubano i dati registrati su computer e li trasmettono via Internet) e di keylogger (programmi che rubano la password intercettando le sequenze di caratteri che si digitano sulla tastiera). Da questi malware (programmi malevoli) ci si protegge installando (e mantenendo aggiornati) un firewall software ed un antivirus che protegga anche dai keylogger;
  • ascolto di conversazioni: non rivelare mai la password al telefono (i cracker si fingono spesso addetti a servizi tecnici o agenti di pubblica sicurezza), né parlarne in pubblico o al cellulare (neanche con gli amici);
  • scoperta della password perché scritta in chiaro da qualche parte, per esempio su un foglietto di carta lasciato vicino al computer (come un post-it ai lati dello schermo), oppure su un documento di testo in chiaro scritto al computer e memorizzato su un file.
L'unico modo di difendersi dagli attacchi di ingegneria sociale è la segretezza: non rivelare mai a nessuno dettagli sulla password, non pubblicare informazioni che riguardano la vostra vita privata.

POST-IT E FOGLIETTI DI CARTA
Un numero incredibile di frodi informatiche è causato dalla scoperta di password scritte su un foglio di carta o su un post-it. Annotare la password su un foglio carta non è una cattiva idea, ma:
  • esso non deve essere lasciato in bella vista nei pressi del computer, poiché chiunque passi nelle vicinanze può scoprire la password;
  • non è necessario specificare sul foglio che quanto c'è scritto è una password e né a quale servizio sia associata;
  • non buttare nella spazzatura foglietti/post-it con una password scritta sopra, bisogna prima distruggerli (bruciarli o polverizzarli riducendoli a pezzettini piccolissimi).
Anche se la password è vecchia e non più utilizzata, la sua scoperta può rivelare informazioni sul vostro modo di ragionare: per esempio chi vuole attaccarvi potrebbe capire che "mA4a2Ma" è la vostro personale pseudocifratura per "mamma", rivelandogli parte del metodo che usate per camuffare le password.

FILE SU COMPUTER
Quando le password da ricordare diventano molte, in genere le conserviamo in una lista accanto all'indicazione del servizio a cui si riferiscono. Se la lista è su foglio di carta, esso deve essere riposto in un luogo sicuro. Se si vuole conservare la lista su un file memorizzato al computer, esso non deve essere in chiaro ma cifrato con un metodo di crittografia forte (per esempio con algoritmo AES, Advanced Encryption Standard), perché un file di testo in chiaro (come un documento Word o Openoffice/Libreoffice) può essere aperto o copiato da chiunque abbia accesso allo stesso computer, oppure può essere trasmesso via Internet da uno spyware. Quando si ha necessità di conservare in modo elettronico una lista di password, bisogna ricorrere ad un password manager: si tratta di software progettati appositamente che creano un database cifrato protetto da una master-password (password principale), che sarà l'unica da dover ricordare a memoria (o da annotare su un foglio da mettere in un luogo sicuro: se viene smarrita si perde l'accesso al database e quindi tutte le altre password!); anche se il file del database venisse copiato, non sarà possibile per l'attaccante decifrarlo se non conosce la master-password.

Regole per creare una password sicura

Riassumendo, ecco le regole da tenere a mente per creare password sicure:
  1. Usare una combinazione di lettere maiuscole, minuscole, cifre e simboli di punteggiatura e/o speciali.
  2. La password deve essere lunga. Sebbene spesso si consigli una lunghezza minima di 8 caratteri, è molto meglio usarne almeno 12.
  3. La password deve essere composta da sequenze casuali di caratteri. Evitare parole di senso compiuto ed abbreviazioni.
  4. Non usare come password titoli di film/poesie/filastrocche/canzoni/libri, non usare frasi famose estratte da essi.
  5. Non usare proverbi, aforismi, modi di dire, sigle e acronimi.
  6. Non usare nomi di personaggi o luoghi famosi, sia reali che di fantasia.
  7. Non usare parole in altre lingue, parole tronche o scritte al contrario oppure con errori di ortografia comuni.
  8. Non usare sequenze numeriche o di caratteri che siano ovvie.
  9. Se volete usare come password una o più parole, trasformatele in modo noto solo a voi.
  10. Evitare password basate su dati personali di qualsiasi tipo o basate su informazioni della vostra vita privata pubblicate su un social-network.
  11. Non usare la stessa password per scopi diversi: un cracker potrebbe trafugare la password da un sito web a bassa sicurezza (per esempio la password di accesso ad un forum on-line) ed usarla per accedere a servizi di importanza critica, come l'e-mail personale oppure a servizi di home-banking (servizi bancari on-line).
  12. Cambiare la password regolarmente (idealmente ogni 60 giorni)
  13. Non usare mai una password già usata in predecenza.

Password facili da ricordare

Una buona password in realtà dovrebbe anche essere facile da ricordare, il che contrasta con le regole per creare una password sicura. Tuttavia si può partire con una frase (o una sequenza di parole) nota solo a voi e facile da ricordare, da trasformare secondo una logica nota solo a voi:
  • partire con una sequenza di parole facile da ricordare (per voi)
    Esempio: rosso verde giallo (16 caratteri, spazi esclusi)
  • separate le parole con una sequenza di simboli facile da ricordare (per voi).
    Esempio: rosso$verdegiallo (18 caratteri)
  • scrivere una lettera di ciascuna parola in maiuscolo (decidete voi quale lettera: la prima, l'ultima, la prima vocale, la prima consonante, la prima e l'ultima lettera, l'essenziale è che sia facile da ricordare per voi).
    Esempio: rOsso$vErde€gIallo (18 caratteri)
  • scrivere una cifra o una sequenza di cifre facile da ricordare (per voi) a metà (circa) di ciascuna parola. Nell'esempio inseriamo le cifre 2, 4, 6
    Esempio: rO2sso$vE4rde€gIa6llo (21 caratteri)
Il metodo di trasformazione (pseudocodifica) deve essere facile da ricordare e mantenuto segreto: in questo modo si rende la sequenza di partenza non attaccabile da un dizionario e si aumenta l'entropia (cioè la casualità) della password, inserendovi simboli e cifre. Più che di casualità si tratta di pseudocasualità, poiché c'è una logica con cui è stata fatta la codifica. Ciò che conta è che tale logica deve essere nota solo a voi (ovviamente anche la sequenza di parole di partenza deve essere mantenuta segreta). Abbiamo trasformato una password molto debole in una molto forte, con un metodo semplice da ricordare (per voi) ma praticamente impossibile da indovinare.

Testare la sicurezza di una password

Un modo semplice per testare la sicurezza di una password è usare strumenti on-line come:
  • The Password Meter: valuta la sicurezza di una password in termini percentuali.
  • How Secure Is My Password?: esegue una stima del tempo di calcolo necessario ad un singolo computer per indovinare la password che avete inserito.
ATTENZIONE
Questi servizi valutano la resistenza delle password contro attacchi a forza bruta, non contro attacchi basati su dizionari o tecniche di ingegneria sociale. Questo significa che non garantiscono che la password inserita sia sicura, in quanto la sua forza dipende non solo dalla lunghezza e dalla varietà di caratteri usati, ma anche dal fatto che non deve essere presente in un dizionario e non deve essere deducibile attraverso i metodi dell'ingegneria sociale.
Inoltre riflettete sui numeri: se viene stimato che una password può essere violata in 100 anni con un attacco a forza bruta (condotto da un singolo computer), allora una rete di 100 computer impiega un anno, un singolo supercomputer potrebbe impiegare un mese, una rete di supercomputer solo qualche giorno: se siete sotto il tiro di un'organizzazione con notevoli risorse a disposizione, usate password la cui resistenza ad attacchi a forza bruta sia stimata in milioni o miliardi di anni.
In ogni caso, quando usate questo tipo di servizi non testate le vere password che usate ma inseritene di strutturalmente simili: in fondo voi non sapete chi c'è all'altro capo del servizio di controllo!

Conservare la password al sicuro

La raccomandazione più ovvia è quella di mantenere la password segreta…
incredibile ma vero: è una regola facile da infrangere! Non rivelarla a nessuno non è sufficiente, occorre anche:
  • non permettere ai siti web di ricordare informazioni sul nostro profilo/account;
  • non permettere al browser di memorizzare le password;
  • non scrivere le password in documento di testo in chiaro;
  • non digitare le password su un computer che non sia il nostro;
  • non digitare le password se si è connessi a reti WiFi pubbliche;
  • non digitare le password su pagine Web raggiungibili da link inseriti in e-mail;
  • non scrivere la password su foglietti o post-it lasciandoli vicino al computer da cui ci si collega (se scrivete la password su carta, riponete il foglio in un posto sicuro);
  • non gettare nella spazzatura post-it o fogli di carta con password scritte sopra (anche se sono vecchie): prima distruggeteli;
  • usare un password-manager nel caso sia necessario memorizzare in formato elettronico molte password;
  • installare sempre un firewall software ed un antivirus con protezione dai keylogger.

Uno sguardo al futuro

Arriverà il giorno in cui le password come le conosciamo non saranno più sicure e non potranno essere utilizzate (non da sole almeno) per accedere ai servizi. La potenza di calcolo dei computer cresce costantemente ma, quando i computer quantistici saranno una realtà, le prestazioni aumenteranno di miliardi di volte in un sol colpo, rendendo possibili in tempi ragionevoli persino attacchi a forza bruta contro password lunghe. Tecniche differenti di autenticazione basate su dati biometrici sono già da tempo disponibili (impronte digitali, scansioni della retina); con l'aumento esponenziale della potenza computazionale, il prossimo passo sarà l'autenticazione basata sull'analisi del DNA.

Se hai trovato utile l'articolo considera la possibilità di offrire un modesto contributo. Grazie di cuore per il tuo sostegno.
Donazione

Torna alla TECH-ZONE