Scrivo questo post dopo aver assistito alle presentazioni del DEFCON!

Il DEFCON è una delle conferenze di hacking più importanti del mondo, dove hacker che provengono da ogni parte del globo condividono idee, ascoltano esperti di sicurezza, si sfidano in gare senza esclusione di colpi.

Sulla scia del DEFCON e della mia settimana di hacking, intendo rispondere a una domanda che da sempre mi viene fatta: come la craccare una password?

E per darvi una risposta, vi condurrò attraverso i passi che compie un hacker quando decide di craccare la vostra password, in modo tale che potete evitare alcuni errori semplici che farebbero di voi un bersaglio facile per qualsiasi password-cracker fuori di qui.

Cos’è un Hash?

 

Prima di tutto, spieghiamo come le password vengono salvate.

Se un sito o un programma archivia la vostra password, come Google o Facebook o qualsiasi altra cosa dove hai un account online, la password generalmente viene archiviata sotto forma di un Hash. Un Hash è sostanzialmente un modo sicuro di archiviare password su basi matematiche.

 

Un Hash è anche un modo di criptare una password, quindi se conosci il trucco, puoi facilmente decriptarla. Sarebbe come nascondere le chiavi di casa nel vostro cortile – se voi sapeste dove si trovano le chiavi, vi servirebbero giusto pochi secondi per trovarle.

Al contrario, se non sapeste dove le chiavi si trovano, probabilmente servirebbe un tempo molto lungo per trovarle.

 

I due tipi di attacchi HACKER

 

Suddividiamo gli attacchi alle password in due tipi: online e offline.

 

  1. Un attacco offline prevede che l’hacker prenda l’hash della password, lo copi, lo porti a casa con se per lavorarci su.
  2. Un attacco online prevede che l’hacker effettui il login al tuo account online.

 

Gli attacchi online a un sito sicuro sono materia molto difficile per un hacker, perché questo tipo di siti limitano il numero di tentativi che un hacker può effettuare.

Ve ne sarete sicuramente accorti quando avete dimenticato la vostra stessa password e siete rimasti fuori dal vostro account.

Questo sistema è stato effettivamente creato per proteggere gli utenti dagli hacker che provano milioni di volte a scoprire una password.

 

Un attacco online sarebbe come se voi provaste a cercare la chiave di qualcuno, nascosta nel suo giardino, quando questo qualcuno si trova in casa.

Se la vostra ricerca durasse poco, probabilmente non avreste problemi, ma se voi spendeste tutto il giorno di fronte a casa loro sicuramente verreste notati e invitati ad allontanarvi.

Per effettuare un attacco online, l’hacker molto probabilmente sarà costretto ad effettuare una consistente ricerca di informazioni sul suo specifico target per riuscire a scoprire ad esempio i nomi dei figli, le date di compleanno, gli indirizzi passati, gli amici importanti.

Da lì, un attacker può provare una serie di specifiche password che hanno una probabilità di successo molto più alta rispetto ai tentativi casuali.

 

Gli attacchi offline sono molto più minacciosi e prendono luogo quando un file criptato, come un pdf o un documento, è intercettato o quando un hashed key viene trasferita (come nel caso del Wi-Fi). Se copiate un file criptato o un hashed password, un attaccante può portare a casa la chiave e crackarla quando vuole.

 

Nonostante questo possa sembrare orribile, non è poi così male come sembra.

I password hashes sono quasi sempre “one-way-functions”. Questo significa che puoi creare una serie di codifiche per la tua password che sono quasi impossibili da scoprire.

 

Sostanzialmente, un hacker deve avere la pazienza di provare migliaia, milioni, miliardi di password prima di trovare quella giusta.

Esistono delle vie che un hacker può percorrere per incrementare la probabilità di scoprire la vostra password, tra le quali:

 

Attacco dizionario

I “Dictionary attack” sono proprio quello che sembrano: si usa il dizionario per trovare una password. Gli hackers hanno file testuali enormi che includono milioni di generiche password, come ILoveyou, 12345, admin o 123456789 (se ho detto la tua password, cambiala subito!!).

E gli hacker proveranno ognuna di queste password, che sembra un lavoro enorme ma in realtà non lo è. Gli hacker usano computer estremamente veloci (e qualche volta anche schede grafiche per video game) nell’intento di provare trilioni di password.

Per esempio, durante la competizione al DEFCON la scorsa settimana, ho usato la mia scheda grafica per intercettare una password offline, a una velocità di 500.000 password al secondo.

 

Maschera/caratteristica di un attacco

Se un hacker non riesce a indovinare la vostra password con un dizionario di password predefinite, la sua alternativa sarà usare qualche regola generale per provare una serie di combinazioni dalle caratteristiche specifiche.

Questo significa che invece di provare una lista di password, un hacker specificherà una lista di caratteristiche da provare.

Per esempio, se io sapessi che la vostra password è costituita esclusivamente da numeri, direi al programma di provare password di soli numeri.

Da qui, il programma proverebbe ogni combinazione di numeri fino a trovare quella giusta.

Un hacker può specificare una serie di ulteriori impostazioni, come la lunghezza minima e quella massima etc. Tutto ciò snellisce significativamente la mole di lavoro che il programma deve compiere.

 

Quindi, diciamo che ho una password di 8 caratteri composta esclusivamente da numeri.

La mia scheda grafica avrebbe bisogno di circa 200 secondi per crackare questa password.

E in ogni caso, se la password includesse lettere e numeri, la stessa password richiederebbe due giorni di lavoro per la decodifica.

 

Forza Bruta

Se un attacker non avesse avuto successo con questi due metodi, può sempre ricorrere alla forza bruta per ottenere ciò che vuole, cioè tentare ogni possibile combinazione di caratteri per arrivare alla password.

Generalmente questo tipo di attacco è poco pratico perché ogni combinazione con un numero di caratteri superiore a dieci richiederebbe anni per essere scoperta!

 

Come si può vedere, crackare una password non è così difficile come si può pensare, in teoria si provano semplicemente milioni di password prima di arrivare a quella esatta.

Comunque, è importante ricordare che trovare questo ago nel pagliaio è qualche volta davvero impossibile.

La vostra miglior salvezza sarà avere una password lunga e possibilmente unica, non riutilizzata su altri servizi.

Per maggiori info vi raccomando fortemente di dare un’occhiata all’articolo su come salvare in modo sicuro una password come creare una password forte.