Attacchi di dizionario

Lo scopo di un attacco di dizionario è quello di scoprire password segrete; di solito le password sono conservate in forma cifrata e non è possibile risalire al testo in chiaro poichè la funzione di cifratura è one-way, ovvero non invertibile.
Si può usare una lista di parole probabili (detta dizionario), applicare la funzione di cifratura ad ognuna e confrontare il risultato con i cifrati contenuti nel file delle password. Se coincidono é stata individuata una password. Questo è teoricamente possibile siccome sia il mapping one-way che il testo cifrato sono noti.
Questo tipo di attacco, chiamato appunto attacco di dizionario, può essere reso più difficile ampliando lo spazio in cui le password vengono scelte o anche limitando il numero di tentativi non validi consentiti in determinati periodi di tempo (nel caso di accessi on-line).
La flessibilità dell'attacco dipende dal numero di password che devono essere controllate prima di trovare quella giusta e dal tempo richiesto per testarne una. Infine influisce l'algoritmo di cifratura delle password usato, la sua implementazione, il tempo di esecuzione dell'istruzione e il numero di processori disponibili. Per un file delle password con 2000 utenti e un vocabolario di 500 Kbyte, il tempo impiegato si aggira intorno alle tre ore, tempo che comunque è molto variabile anche a seconda della potenza dell' hardware utilizzato.
Studi effettuati in passato indicano che un gran numero di password selezionate dagli utenti sono trovate in tipici dizionari di soli 150000 parole. Nel 1979, Morris e Thompson esaminarono un campione di 3289 password e ne trovarono 2831 (86%) vulnerabili, tra cui:

Ovviamente, la difficoltà nel creare programmi che effettuino attacchi di dizionario, è relativa alla creazione di un buon vocabolario. Per riuscire ad ottenerne uno valido, bisogna creare un file con molte parole del linguaggio corrente, che contenga anche termini tecnici che riguardano il computer e la rete oppure eventi culturali di massa tipo telefilm e cose simili. Se si ha a disposizione molto tempo, si possono aggiungere caratteri speciali alla fine e magari anche all'inizio di tutte le parole, ma ciò incrementa notevolmente il tempo di calcolo. Un buon compromesso è aggiungere caratteri solo alla fine, limitarsi ai soli numeri e lasciar perdere i separatori.

Tra i cracker che operano in questo modo menzioniamo John The Ripper e trattiamo in maniera più approfondita Crack.

Un altro tipo di attacco di dizionario tenta l'accesso ad una risorsa fornendo come password una parola contenuta in un dizionario, senza applicarvi alcuna funzione di cifratura.
Questa tecnica è utilizzabile solo se sono consentiti ripetuti tentativi d'accesso.

In questo modo operano Webcracker e i cracker di ZIP.