WPA e WPA2 da vicino: hash, salting e trasformazioni

Mettiamo alla prova gli attuali standard di sicurezza Wi-Fi con diversi metodi.

Avatar di Tom's Hardware

a cura di Tom's Hardware

WPA e WPA2 da vicino: hash, salting e trasformazioni

WPA/WPA2, WinZip, WinRAR, la codificata dati nativa di Microsoft, FileVault di Apple, TruCrypt e OpenOffice usano tutti PBKDF2 (Password-Based Key Derivation Function 2.0). L'elemento critico è che la password non garantisce direttamente l'accesso all'elemento protetto. Dovete generare una chiave (un codice di decodifica) dalla password stessa. Abbiamo quindi una sovrapposizione di elementi (una password e una chiave per ottenerla) che ricorda l'esempio delle banche fatto nella prima pagina.

È questo elemento che differenzia maggiormente WEP e WPA, perché il metodo più vecchio non oscura adeguatamente la password, che quindi si può estrarre direttamente dai pacchetti inviati durante l'autenticazione. Questo permette ai malintenzionati di sedersi in un parcheggio o in uno spazio di un centro commerciale e intrufolarsi nelle reti. Una volta acquisiti pacchetti a sufficienza, estrarre la parola segreta e connettersi alla rete è facile. WPA è differente perché la password è nascosta nel codice, quindi un'eventuale intrusione richiede metodi diversi, vale a dire quelli noti come brute force, letteralmente forza bruta.

In passato abbiamo notato in alcuni commenti un po' di confusione sul tema della sicurezza, riguardo a concetti come tabelle arcobaleno (rainbow table), hash, "salting" (bit casuali che creano uno degli input in una funzione one-way) e trasformazioni, e crediamo quindi che qualche chiarimento sarà utile a molti.

Convertire una password in una chiave di decodifica richiede due passaggi principali. Il primo è detto salting, un termine che forse avete già sentito; è un metodo che impedisce a due sistemi di usare la stessa chiave, anche se potrebbero condividere la stessa password. Senza il salting due computer che usano la stessa password potrebbero finire per avere la stessa chiave di decodifica, anche per pura coincidenza. Sarebbe quindi più facile trovare la chiave, e una volta ottenuta quella risalire alla password.

Questa debolezza è dovuta alle tabelle arcobaleno, enormi fogli che contengono la password originale – rintracciabile se si ha la chiave. Il salting annulla in gran parte l'uso delle tabelle arcobaleno, perché ogni password usa un valore casuale per generare una chiave differente per ogni dispositivo. Il salting inoltre è anche un modo efficace di rendere la creazione di una chiave un processo "a senso unico", perché non è possibile generare la password corretta anche se si è ottenuta la chiave corrispondente: per esempio si usa il SSID (il nome della rete wireless) si usa per fare il "salt" delle password WPA; così anche se il vostro vicino usa la stessa password (meno improbabile di quanto si potrebbe pensare), avrà una chiave differente se il suo router ha un nome differente.