Esistono in linea generale tre tipi di attacco per craccare una password: il dictionary attack, il password profiling e il brute force attack. Il dictionary attack si basa sul confronto della password da craccare con una lista di parole comuni, ovvero un dizionario. Più il file delle parole comuni è di grosse dimensioni, più aumenta la possibilità di trovare la password giusta. Naturalmente questo tipo di attacco non sempre funziona: i dizionari possono essere troppo generici, oppure la password potrebbe essere composita e originale. Il password profiling cerca di risolvere questo problema. Possiamo considerare il password profiling come una versione più efficace del password guessing. Quest’ultimo attacco si basa su un lista di parole scelte in base alle informazioni note del soggetto da attaccare. Se di un utente si conosco data di nascita, numero telefonico, nome del cane, squadra del cuore, interessi, si potrebbe tentare di utilizzare password correlate a questi dati. Il password profiling ha un approccio più sistematico: setaccia una serie di file (documenti, mp3, power point, html…) raccogliendo il numero maggiore di informazioni possibile.
Lo scopo di questa tecnica è quello di trovare una password o un codice, anche complesso che l’obiettivo ha lasciato inavvertitamente o inconsciamente da qualche parte. Questa tecnica può essere utile in ambito di computer forensics, dove l’investigatore ha accesso all’immagine dell’hard-disk da setacciare per recuperare la password di un qualche file cifrato. Può anche essere utilizzato in un penetration test, per analizzare le pagine web pubbliche di un’azienda. Naturalmente, una volta creata la lista di parole si torna al dictionary attack. Questi attacchi possono essere relativamente veloci: tutto dipende dalle dimensioni del dizionario utilizzato.
Esistono poi casi particolari dove le password possono essere trovate in modo relativamente facile a causa dell’intrinseca debolezza degli algoritmi utilizzati, come nel caso del WEP cracking, attaccabile con il FMS Attack; in alcuni casi i dati possono essere decifrati senza l’ausilio di nessuna password, come nel KoreK chopchop Attack, che è in grado di decifrare i pacchetti codificati sempre con il famigerato WEP.
Ma se il dictionary attack e se il profiling non funzionano non rimane che una via: il brute force attack. E qui ci scontra con la dura realtà: una password ben progettata sarà inattaccabile. Per ben progettata si intende composta da numeri, lettere e caratteri speciali, maiuscole e minuscole, dimensioni appropriate (dagli 8 caratteri in su).
Quando valutiamo il tempo necessario per craccare una password con un brute force attack,
dobbiamo considerare i seguenti fattori:
• La lunghezza della password
• Il set di caratteri usato
• Il numero di test al secondo
• Il numero di computer coinvolti nel cracking.
Esiste un utile calcolatore online che consente di valutare il tempo necessario per craccare una password. Una volta inseriti il i dati di cui sopra, verrà mostrato il tempo necessario per craccare la password. Una password di 5 caratteri alfabetici minuscoli, su di un computer in grado di effettuare 500000 tentativi al secondo sarà craccata in un minuto.
Se invece la password sarà lunga 9 caratteri, con la stessa potenza di calcolo saranno necessari 5 mesi per ottenere la soluzione. Aggiungendo i numeri al set di caratteri i tempi iniziano a misurarsi in anni. E così via.
Arrivederci al prossimo articolo
Michele Balzano