WPA2 utilizza PBKDF2 per l'hashing della password; è configurato con iterazioni HMAC / SHA-1 e 4096. Il risultato è una stringa a 256 bit. Poiché SHA-1 offre solo un'uscita a 160 bit, PBKDF2 deve applicare l'HMAC / SHA-1 iterato due volte, per ottenere tutti i 256 bit di output, quindi questo significa 8192 invocazioni di HMAC / SHA-1. Ogni invocazione implica due chiamate elementari a SHA-1 ("chiamata elementare" significa "elaborazione di un blocco a 512 bit con la funzione di compressione SHA-1"), quindi si tratta di invocazioni di funzioni hash 16384. Una volta ottenuta la chiave dipendente da password a 256 bit, sono ancora necessari alcuni calcoli aggiuntivi per controllare quella chiave rispetto a quanto osservato, ma questo è leggero quindi ignoriamo questo costo qui (costa circa un paio di invocazioni di SHA-1 in più ). L'intera chiave a 256-bit deve essere disponibile per quel controllo, quindi nessuna scorciatoia qui: un attaccante che esegue un attacco dizionario deve pagare il costo del calcolo di 16384 istanze SHA-1 (più un codice aggiuntivo) per password.
Un utente malintenzionato con una buona GPU può sperare in un miliardo di istanze SHA-1 al secondo, in modo che possa "provare" 60 migliaia di password al secondo - ma supponiamo che abbia un buon , GPU programmabile, e che il software che usa è all'altezza. Il software di cracking comune come Aircrack-ng di solito è solo CPU, offrendo il tipo di prestazioni che si osservano (1500 password al secondo ).
Supponendo che si possa trovare un dizionario appropriato (che può essere difficile, come si nota, quando il target utilizza parole bulgare), e conoscere il metodo di costruzione (come si spiega: due parole, con maiuscole), quindi è possibile calcolare il numero di possibili password (con un dizionario di parole N , cioè N 2 possibili password) e una semplice divisione ti darà il tempo necessario per "provare tutti loro ".
Senza ulteriori informazioni sulle distribuzioni di probabilità dei componenti delle password, c'è ancora poco che puoi fare. Questo dimostra anche che le 4096 iterazioni di PBKDF2 sono efficaci nel rendere la vita difficile agli attaccanti.
Ora, ci sono possibili scorciatoie? C'è una scorciatoia potenziale , che è quella che PBKDF2 usa un salt ; è come se non ci fosse la funzione one PBKDF2, ma miliardi di miliardi di funzioni distinte, una per valore di sale. SE molti punti di accesso utilizzano la stessa quantità di sale, gli hacker che tentano di violare uno di questi punti di accesso potrebbero colludere e condividere lo sforzo, poiché "le password provate" per un punto di accesso si applicheranno (in qualche modo) anche ad altri punti di accesso. In WPA2, il sale per PBKDF2 è il SSID di rete. Pertanto, se diversi punti di accesso utilizzano lo stesso SSID, trasformano la stessa password nella stessa chiave.
Tuttavia, i messaggi effettivi e la chiave di crittografia effettiva verranno derivati non solo dalla password con hash, ma anche dai valori nonce che i punti di accesso e il client di collegamento inviano come parte dei passaggi iniziali dell'handshake (vedere questa risposta per i puntatori). Ciò impedisce effettivamente che le precomputazioni siano efficaci. Esiste un consiglio generico sul non utilizzo di un "SSID comune" ma, nel caso di WPA2, l'uso dello stesso SSID di molti altri punti di accesso non sembra indurre alcun ulteriore punto debole.
Tutto quanto sopra riguarda il tentativo di trovare la password del punto di accesso, al fine di decodificare il traffico, o connettersi al punto di accesso e beneficiare dei suoi servizi (in particolare, l'accesso a Internet "gratuito"). Nessun punto debole in WPA2 è attualmente noto, rendendo la password indovinare l'unico percorso pratico di rodaggio.
Tuttavia, se il vero target non è il punto di accesso ma un'altra macchina che si connette a quel punto di accesso, allora potrebbero essere applicabili altri metodi. Ad esempio, l'attaccante può configurare un falso punto di accesso, pubblicizzando lo stesso SSID, ma senza richiedere alcuna autenticazione; è possibile (a seconda del sistema operativo e della configurazione della vittima e della capacità dell'utente umano di "fare clic sui popup di avviso") che il computer di destinazione si connetterà al punto di accesso falso. A quel punto, l'attaccante deve fornire il servizio di "accesso a Internet", ma ha anche un accesso diretto alla macchina della vittima, permettendogli di provare qualsiasi exploit remoto relativo a quella macchina. Inoltre, questo pone l'attaccante nel luogo ideale per provare gli attacchi Man-in-the-Middle .