# IEEE 802.11i

IEEE 802.11i (conosciuto anche come WPA2 - Wi-Fi Protected Access 2) è uno standard sviluppato dalla IEEE specificamente per fornire uno strato di sicurezza alle comunicazioni basate sullo standard IEEE 802.11.

## Caratteristiche

Il documento è stato ratificato il 24 giugno 2004 e rappresenta un superset (estensione) del precedente standard Wired Equivalent Privacy (WEP) che aveva dimostrato di essere soggetto a errori concettuali di progetto. Prima dello standard 802.11i la Wi-Fi Alliance aveva introdotto il Wi-Fi Protected Access (WPA), che è anch'esso un sottoinsieme delle specifiche 802.11i.
Il WPA era stato introdotto per tamponare l'emergenza sicurezza dovuta al WEP e rappresenta solamente uno standard transitorio, mentre l'802.11i veniva terminato e perfezionato. La Wi-Fi Alliance ha deciso di chiamare le specifiche 802.11i con il nome di WPA2, per rendere semplice all'utente comune l'individuazione delle schede basate sul nuovo standard. L'802.11i utilizza come algoritmo crittografico l'Advanced Encryption Standard (AES) a differenza del WEP e del WPA che utilizzano l'RC4.
L'architettura dell'802.11i utilizza i seguenti componenti: IEEE 802.1x per autenticare (può essere utilizzato il protocollo EAP o un server di autenticazione) il protocollo RSN per tenere traccia delle associazioni e il CCMP per garantire la confidenzialità, l'integrità dei dati e la certezza del mittente. Il processo di autenticazione avviene mediante un four-way handshake.

## Il four way handshake

Il processo four way handshake (che può essere tradotto con stretta di mano a quattro vie) parte da due considerazioni. AP (Access Point, cioè il client) deve autenticarsi e la chiave di sessione utilizzata per cifrare i messaggi deve ancora essere calcolata. Per primo EAP dovrebbe scambiare la sua chiave privata (PMK, Pairwise Master Key) con AP. Ma questa chiave va rivelata il meno possibile e solo su un canale sicuro dato che è la parola chiave che protegge tutte le comunicazioni e quindi entra in funzione il four way handshake. Per prima cosa EAP trasmette ad AP una chiave temporanea PTK . La PTK è generata concatenando PMK, AP nonce (ANonce), STA nonce (Snonce) AP MAC address e STA MAC address. Il prodotto viene inviato a una funzione crittografica di hash.
Il protocollo utilizza la chiave temporanea GTK per decrittare il traffico multicast.

### Evoluzione temporale del Four way handshake

* Nonce: Numero pseudo casuale
* AP: Access Point
* STA : Station Client
* AP invia il valore nonce a STA (ANonce). Ora il client ha tutti i dati per generare la PTK. (Prima mano)
* STA invia il valore nonce (SNonce) ad AP con in più il MIC. (Seconda mano)
* AP invia GTK e un numero sequenziale insieme a un altro MIC. Il numero sequenziale viene utilizzato per indicare il primo pacchetto cifrato da allora. (Terza mano)
* STA invia la conferma ad AP. (Quarta mano)
Una volta che la PTK viene recuperata viene subito divisa nelle cinque chiavi:
* EAPOL-Key Encryption Key (KEK) - La chiave utilizzata per fornire confidenzialità per alcune informazioni addizionali spedite al client (come la GTK)
* EAPOL-Key Confirmation Key (KCK) - La chiave utilizzata per calcolare il MIC sull'EAPOL Key message
* Temporal Key (TK) - La chiave utilizzata per cifrare e decifrare l'attuale traffico wireless unicast.
* MIC Tx Key - La chiave utilizzata per calcolare il MIC sul traffico unicast trasmesso dall'AP
* MIC Rx Key - La chiave utilizzata per calcolare il MIC sul traffico unicast trasmesso dall'STA
Le ultime due chiavi (MIC Rx/Tx) vengono usate solo se la rete sta usando TKIP per crittografare i dati.