2009-10-10 8 views
5

Quando diciamo attacco al dizionario, non intendiamo veramente un vero dizionario, vero? La mia ipotesi è che intendiamo il dizionario di un hacker, ad esempio rainbow tables, giusto?Che cos'è un attacco di dizionario?

Il mio punto è che non stiamo parlando di qualcuno che inserisce password diverse nella casella di accesso, stiamo parlando di qualcuno che ha accesso completo al database (che ha hash password, non password semplici) e questa persona sta invertendo gli hash, giusto?

+9

se vedi qualcuno correre verso di te brandire una grande copia del dizionario inglese di Oxford ... –

+1

+1 per l'umorismo, e per indirettamente rispondere alla mia domanda;) – Chris

+1

Mitch: Mi hai fatto la mattinata. Grazie. Ora ho il tè sulla mia tastiera. – Joey

risposta

9

Poiché le password sono spesso la parte più facile da attaccare della crittografia, in realtà è una sorta di dizionario reale. L'assunto è che le persone sono pigre e scelgono parole appropriate come password o costruiscono passphrase fuori da esse. Il dizionario può includere anche altre cose, come la combinazione di parole o lettere/numeri comunemente usati. Essenzialmente, tutto ciò che è è probabilmente la una password scelta male.

Ci sono programmi là fuori che occuperanno un intero disco rigido e costruiranno un dizionario da ogni stringa tipabile su di esso supponendo che la password dell'utente sia stata a un certo punto nel tempo messa in testo in chiaro (e quindi nel file di paging) o che semplicemente esiste nel corpus se il testo memorizzato sull'unità :

Anche così, niente di tutto questo potrebbe realmente importa. AccessData vende un altro programma, Forensic Toolkit, che, tra le altre cose, esegue la scansione di un disco rigido per ogni stringa di caratteri stampabili. Sembra nei documenti, nel Registro di sistema, nella posta elettronica, nei file di scambio, nello spazio cancellato sul disco rigido ... ovunque. E crea un dizionario da questo, e lo alimenta in PRTK.

E PRTK rompe oltre il 50 percento delle password da questo dizionario.

In realtà, è possibile rendere i dizionari più efficaci anche se si include la conoscenza di come le persone di solito creano le password. Schneier parla di questo lungamente :

  • dizionario parola comune: 5.000 voci
  • Nomi dizionario: 10.000 voci
  • dizionario completo: 100.000 voci
  • dizionario di pattern fonetici: 1/10.000 ricerca esauriente dei caratteri

Il dizionario del modello fonetico è interessante. Non è davvero un dizionario; è una routine di catena Markov che genera stringhe pronunciate in inglese di una determinata lunghezza. Ad esempio, PRTK può generare e testare un dizionario di stringhe di sei caratteri molto pronunciabili o stringhe di sette caratteri appena pronunciabili. Stanno lavorando su routine di generazione per altre lingue.

PRTK esegue anche una ricerca esaustiva di quattro caratteri. Esegue i dizionari con lettere minuscole (la più comune), maiuscole iniziali (la seconda più comune), tutte maiuscole e lettere maiuscole finali. Esegue i dizionari con sostituzioni comuni: "$" per "s", "@" per "a", "1" per "l" e così via. Tutto ciò che è "leet speak" è incluso qui, come "3" per "e."

I dizionari di appendice includono cose come:

  • Tutte le combinazioni a due cifre
  • tutte le date dal 1900 al 2006
  • Tutte le combinazioni a tre cifre
  • tutti i simboli singoli
  • Tutti singola cifra, più simbolo singolo
  • Tutte le combinazioni di due simboli

Bruce Schneier: Scegliere password sicure. In: Schneier on Security. (URL)

2

Gli attacchi di dizionario sono attacchi in cui gli utenti tentano le parole da un dizionario piuttosto normale, perché molte persone useranno password semplici che possono essere trovate in un dizionario.

Wikipedia: Dictionary attack.

3

Un "attacco dizionario" di solito si riferisce a un tentativo di indovinare una password utilizzando un "dizionario"; ovvero, una lunga lista di password comunemente usate, che di solito corrispondono a parole o combinazioni di parole che le persone possono impostare pigramente come password. Verrebbero usate le tabelle Rainbow se, invece di provare a indovinare la password specificando la password in chiaro in chiaro, avevi un hash della password e volevi indovinare la password. Dovresti specificare gli hash delle password più comuni e cercare di abbinarli all'hash della password che hai avuto, per provare a ottenere una corrispondenza per determinare quale sia la password.

3

Beh, se ti ho buttato un dizionario, ti farebbe male?

E sì, uno dictionary attack utilizza un elenco di parole. Potrebbero essere derivati ​​da un dizionario o elenchi di frasi o password comuni ('123456' ad esempio).

A rainbow table è diverso da un dizionario, è una ricerca inversa per una determinata funzione di hash, in modo che se si conosce un hash, è possibile identificare una stringa che genererebbe tale hash. Ad esempio, se sapessi che la tua password ha un hash MD5 non salato di e10adc3949ba59abbe56e057f20f883e, potrei usare uno rainbow table per determinare che 123456 hash su quel valore.