WPA e WPA2 da vicino: hash, salting e trasformazioni, continua

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, continua

PBKDF2 porta le cose un passo oltre usando una key derivation function (KDF, funzione di derivazione della chiave). L'idea di per se è piuttosto semplice, ma richiede un po' di matematica. Ci sono due passi:

  • Generare i due dati (data1 e data2) da password e salt.
  • Calcolare la chiave usando trasformazioni attraverso un loop che appare così:

...

Fondamentalmente s'inseriscono la password e il salt (i bit casuali) in modo da generare il primo parametro dati, che rappresenta la chiave in una forma non definitiva. A questa si assegna continuamente un hash in cicli, nei quali ogni calcolo conta sul risultato di quelli precedenti. Per ogni intervallo il valore della chiave cambia. Ripetendo il ciclo un paio di migliaia di volte si arriva alla chiave di decodifica finale. E poiché non si può tornare indietro, il cracking a forza bruta richiede che si "ricrei" la chiave ad ogni tentativo, allungando i tempi virtualmente all'infinito. Almeno in teoria.

Questo processo rappresenta il 99% dell'overhead richiesto nel cracking a forza bruta, che quindi richiede molta potenza di calcolo per avere successo senza aspettare tempi biblici. Il cracking hash permette di provare più password alla volta perché il processo non usa la funzione di derivazione della chiave (key derivation function) o un salt, e quindi è molto più veloce.

Il cracking hash quindi è incredibilmente veloce, ma non dovreste preoccuparvene. Perché il suo raggio è limitato, visto che tutte le funzioni di sicurezza affidabili in realtà usano sia salting sia key derivation function.

Per darvi un senso della scala, WinZip usa trasformazioni 2002 SHA-1 per generare una chiave. Questo valore è costante per ogni lunghezza di password, fino a 64 caratteri, quindi una password a 10 caratteri è altrettanto facile da scovare con AES-256 e AES-128.

WPA, d'altra parte, usa 16.388 trasformazioni per convertire una master key (MK) in ciò che è chiamato Pairwise Master Key (PMK). Questo rende l'attacco a forza bruta in WPA otto volte più lento rispetto a WinZip/AES.

WPA si affida a uno schema Pre-Shared Key (PSK), che usa una chiave segreta condivisa, scambiata in precedenza tra due utenti usando un canale sicuro. Questa è la password che inseriamo nel router. Con un'eventuale operazione di sniffing della rete Wi-Fi sarà possibile recuperare solo la Pairwise Transient Key (PTK) durante l'autenticazione.

L'autenticazione si affida alla derivazione del PTK da una Pairwise Master Key, che a sua volta è estrapolato da una master key. Servono cinque o sei trasformazioni in più per passare da PMK a PTK, ma le velocità del cracking di WPA sono spesso presentate in unità PMK, la parte di calcolo più pesante di un attacco a forza bruta.

Non vogliamo scendere in ulteriori dettagli, perché ormai dovrebbe essere chiaro che c'è una grande complessità nelle password delle reti Wi-Fi. I concetti minimi dovrebbero bastare a capire le pagine seguenti.