Attacco a dizionario

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Nella crittanalisi e nella sicurezza informatica, un attacco a dizionario è una tecnica per "rompere" un codice cifrato o un meccanismo di autenticazione provando a decifrare il codice o a determinare la passphrase cercando tra un gran numero di possibilità. In pratica si tenta di accedere a dati protetti da password (sia remoti, come ad esempio accounts su siti web o server di posta; sia locali, come documenti o archivi protetti da password) tramite una serie continuativa e sistematica di tentativi di inserimento della password, solitamente effettuati in modo automatizzato, basandosi su uno o più dizionari. In contrasto con un metodo forza bruta (o attacco brute force), dove tutte le possibili password sono ricercate in maniera esaustiva, un attacco a dizionario prova solamente le possibili password più probabili. Si può usare una lista di parole probabili (detta dizionario). Generalmente, questi attacchi, detti per questo "a dizionario", hanno successo perché la maggior parte delle persone ha la tendenza a scegliere password semplici da ricordare (e quindi semplici da scoprire, ad esempio il proprio nome, quello dei propri figli, date di nascita) e tipicamente sceglie parole prese dalla propria lingua nativa.

I dizionari, che sono normalmente semplici file composti da sequenze di parole divise da caratteri separatori, possono riferirsi a contenuti standard (dizionario Inglese, Italiano, dizionario dei Nomi, ecc...) oppure essere creati appositamente a seconda del contesto di utilizzo.

Gli attacchi a dizionario possono essere applicati in due situazioni principali:

  • nella crittanalisi
  • nella sicurezza informatica

Utilizzo in crittanalisi

Si può sferrare un attacco a dizionario per cercare di determinare la chiave di decriptazione per un dato brano di testo cifrato.

Nella sicurezza informatica, può essere sferrato un attacco a dizionario per cercare di aggirare un meccanismo di autenticazione per l'accesso ad un sistema informatico, che richiede una password. L'efficacia di un attacco a dizionario può essere notevolmente ridotta limitando il numero di tentativi di autenticazione che possono essere effettuati ogni minuto, e bloccando anche i tentativi che superano una certa soglia di esiti negativi. Generalmente, 3 tentativi sono considerati sufficienti per permettere ad un utente legittimo di correggere i propri errori di battitura e accedere correttamente al sistema. Superata questa soglia, per sicurezza è meglio assumere che l'utente sia malintenzionato.

C'è qualche somiglianza tra queste situazioni. Per esempio, un ascoltatore malevolo può registrare uno scambio di informazioni tra due parti e usare un attacco di dizionario per provare a determinare qual era la password. Oppure, un attaccante può essere in grado di ottenere una lista delle password criptate da un sistema remoto.

Efficacia ed efficienza degli attacchi a dizionario

Poiché di solito gli utenti scelgono password facilmente indovinabili, questo attacco ha successo in media 4 volte su 10 quando si utilizza una lista di parole ragionevolmente grande. I dizionari per la maggior parte delle lingue sono facilmente accessibili su Internet, quindi l'uso di parole straniere è praticamente inutile per contrastare attacchi di dizionario.

È possibile raggiungere un compromesso spazio-tempo con la precomputazione e la memorizzazione di un elenco di parole di dizionario criptate, ordinate in base al 'valore' criptato. Questo richiede disponibilità elevata di risorse per memorizzare questi elenchi e di tempo per preparare gli elenchi, ma rende gli attacchi quasi istantanei e si rivela una strategia particolarmente efficace quando devono essere craccate un gran numero di password tutte in una volta. Il Salting è una tecnica che forza il dizionario criptato a essere ricalcolato per ogni password desiderata, rendendo potenzialmente la precomputazione impossibile se si utilizza un salt grande sufficientemente.

Confronto con il metodo forza bruta

Il metodo di attacco basato su dizionario viene utilizzato spesso nei tentativi di cracking delle password in quanto gli utenti, soprattutto se poco esperti di informatica, tendono a prediligere parole chiave semplici da ricordare a mente, e quindi appartenenti al linguaggio comune, piuttosto che sequenze alfanumeriche casuali. Il vantaggio di usare un dizionario rispetto a un normale attacco col metodo a forza bruta (tentativo di scoprire una password testando tutte le combinazioni alfanumeriche possibili) è dato dal fatto che il test delle password, anche se eseguito in modo automatizzato (tramite software appositi) e da calcolatori molto potenti, è comunque un processo che richiede una enorme quantità di tempo, che aumenta in maniera esponenziale all'aumentare della lunghezza della password stessa.

Esempi di utilizzo degli attacchi a dizionario

Un esempio di attacco a dizionario si ritrova nella Seconda Guerra Mondiale, quando dei codebreaker inglesi che lavoravano su messaggi tedeschi cifrati con la macchina Enigma utilizzarono la parola tedesca eins come parte dell'attacco; eins, ovvero in numero uno in tedesco, apparve nel 90% di tutti i testi cifrati, poiché la tastiera di Enigma non aveva numeri.

Oggi gli spammer spesso usano una forma di attacco a dizionario, a volte conosciuto come Directory Harvest Attack, per fare harvesting dell'indirizzo e-mail. Per esempio, uno spam potrebbe provare a mandare messaggi a adam@example.com, barbara@example.com, carl@example.com, etc. Gli indirizzi autentici, ai quali i messaggi saranno consegnati invece di essere rispediti indietro al mittente con errore (errore di Message Delivery Notification) possono essere aggiunti alla lista dello spammer come indirizzo valido.

Il libro scritto da Clifford Stoll, The Cuckoo's Egg, contiene un caso di attacco a dizionario contro le password criptate contenute nel file passwd nei sistemi Unix, e della reazione all'attacco avvenuto con successo ad opera di (Robert Morris) che inventò il sistema di criptazione one-way usato per le login con password.

Esempi

Qui di seguito vengono riportati alcuni esempi conosciuti di tool software per attacchi a dizionario.

  • John the Ripper: prodotto dalla OpenWall, è molto utilizzato per testare la sicurezza delle password in ambiente Windows, è molto versatile e potente.
  • Crack: è stato creato da Alec D. E. Muffett ed analizza il software per il password cracking.
  • Hack++: viene utilizzato soprattutto per crackare le password delle email.
  • Elzapop: come sopra.
  • Cain and Abel: è un programma multi uso per vari tipi di attacchi remoti. Comprende molti plug-in tra i quali è possibile trovare un BruteForcer configurabile per utilizzare i dizionari.

Voci correlate

Collegamenti esterni