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);
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.
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).
- 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.
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).
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:- Usare una combinazione di lettere maiuscole, minuscole, cifre e simboli di punteggiatura e/o speciali.
- La password deve essere lunga. Sebbene spesso si consigli una lunghezza minima di 8 caratteri, è molto meglio usarne almeno 12.
- La password deve essere composta da sequenze casuali di caratteri. Evitare parole di senso compiuto ed abbreviazioni.
- Non usare come password titoli di film/poesie/filastrocche/canzoni/libri, non usare frasi famose estratte da essi.
- Non usare proverbi, aforismi, modi di dire, sigle e acronimi.
- Non usare nomi di personaggi o luoghi famosi, sia reali che di fantasia.
- Non usare parole in altre lingue, parole tronche o scritte al contrario oppure con errori di ortografia comuni.
- Non usare sequenze numeriche o di caratteri che siano ovvie.
- Se volete usare come password una o più parole, trasformatele in modo noto solo a voi.
- Evitare password basate su dati personali di qualsiasi tipo o basate su informazioni della vostra vita privata pubblicate su un social-network.
- 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).
- Cambiare la password regolarmente (idealmente ogni 60 giorni)
- 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$verde€giallo (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)
Testare la sicurezza di una password
Un modo semplice per testare la sicurezza di una password è usare strumenti on-line come How Secure Is My Password?, cheesegue una stima del tempo di calcolo necessario ad un singolo computer per indovinare la password che avete inserito.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.