Attacco Dizionario e Forza Bruta
Questi due attacchi sono spesso fra le primissime scelte quando si parla di Password Cracking! Vediamo assieme definizione e differenze di entrambi gli attacchi.
Attacco Dizionario (Dictionary Attack)
Questo tipo di attacco è forse quello più usato nell’ambito del Password Cracking. Perchè permette di ottenere buoni risultati se il dizionario usato è completo e se le regole (rules) sono efficaci.
Il funzionamento è semplice, l’algoritmo segue questi step:
– Step 1:
Si prende la password in chiaro dal Dizionario e si genera l’hash (encrypt).
– Step 2:
Si compara l’hash generato con l’hash della password da craccare.
– Step 3:
Nel caso in cui l’hash non corrisponda, ritorna allo Step 1.
Nel caso in cui l’hash corrisponda, la password è stata trovata.
Proteggersi da quest’attacco è semplice. Basta scegliere delle password non troppo convenzionali e banali.
Il successo di un attacco dipende largamente dal dizionario utilizzato, ma anche dal tipo di rules che applichiamo ad ogni voce del dizionario. Le “regole“, in generale, permettono di generare più varianti di una singola voce nel dizionario. Ad esempio, una possibile regola potrebbe essere denotata con -pl ad indicare al nostro software di cracking di effettuare e testare anche il plurale di ogni voce nel dizionario. Oppure $[0-9] ad indicare di testare per ogni voce nel dizionario anche la variante che prevede un numero da 0 a 9 posto alla fine della stringa. I software di password cracking che permettono attacchi dizionario quasi sempre prevedono la possibilità di applicare regole. E’ anche importante saper configurare il nostro software per sfruttare le caratteristiche comuni e statisticamente più usate nella scelta di una password.
Attacco Forza Bruta (Brute Force)
Nell’attacco Brute Force non si “decripta” la password. Piuttosto invece si cracca la password confrontando l’hash con quelli generati usando una combinazione di caratteri.
Assumiamo di avere una password di lunghezza 3. Abbiamo un set di caratteri di questo tipo: abcdefghijklmnopqrstuvwxyz0123456789 (escludendo i caratteri speciali).
Il numero di permutazioni che si possono generare sarà:
62 * 62 * 62 = 238328.
Ovvero sapendo che abbiamo 26 (lettere maiuscole), 26 (lettere minuscole) e 10 (numeri), sommando otteniamo 62.
Se includiamo i caratteri speciali allora il numero di permutazioni cresce.
Il problema principale nel Brute Force: Se la password è corta, allora sarà trovata in un breve lasso di tempo. Se la password è lunga, allora questo metodo impiegherà da qualche ora a svariate settimane, se non anni, per poter generare tutte le possibili combinazioni fino ad arrivare alla lunghezza desiderata. L’hacker sicuramente lo terrà a mente prima di intraprendere un attacco di questo tipo. Mentre agli utenti, il consiglio è quello di usare password più lunghe e complesse per scongiurare attacchi di questo tipo.
Le differenze
Dictionary Attack | Brute Force |
Usa una lista di password conosciute | Usa diverse combinazioni di caratteri |
Si limita ad alcune parole chiave | Le combinazioni possibili possono essere infinite |
Il tempo dell’attacco dipende dalla lunghezza del dizionario e dalle regole che si applicano | Il tempo impiegato dipende dalla lunghezza e dalla robustezza della password |
Esempi di alcune password: 123456, iloveyou, ciao123 | Esempio di alcune chiavi possono essere: ciao, Ciao, CIAO, cIAO,… |
Il cracking è veloce se la password scelta è debole | Facile da craccare quando la password scelta è corta |
Nella pratica si preferisce l’uso di attacchi dizionario, applicando alle voci del dizionario delle regole (rules), per restare in linea ai pattern più comuni nella scelta delle password da parte degli utenti sul web.
I software più utilizzati
– John the Ripper.
– Hashcat.
Commenti