In questo articolo approfondisco come il roaming avviene in diversi scenari :
– Roaming Lento
– PMK Caching
– Pre-Authentication
– Opportunistic key caching (OKC)
– Fast Roaming (802.11r)
Un prerequisito prima di continuare, è la macchina a stati del wifi ; un client wifi si può trovare in uno di questi quattro stati :
Ciò che mi preme sottolineare e che ci può essere utile per capire meglio i vari tipi di roaming è:
– Dallo stato 3 , se non c’è autenticazione , il client può trasmette.
– Tra lo stato 3 e lo stato 4 sia per autenticazione WPA Personale (PSK) o WPA Enterprise (802.1x) si creano le chiavi di criptazione temporanee PTK tra client e AP. Nota bene quindi ogni volta che si fa roaming bisogna ricreare queste chiavi . La differenza tra PSK e 802.1x è come viene creata la PMK che uno dei componenti per creare le PTK con i vari AP, di seguito la formula :
PTK=PRF(PMK+ANonce+SNonce+AA+SPA)
che però non analizzo in questo articolo.
– Se l’autenticazione è 802.1x ,nello stato 3, è coinvolto un componente esterno chiamato Radius , è il responsabile di verificare le credenziali inviate dal cliente che possono essere login/password o un certificato. Essendo un componente esterno questa fase può essere molto lenta.
Dopo questi prerequisiti, che debbono essere ben chiari, ci possiamo addentrare nelle avari tipologie di roaming.
Roaming Lento
Intendo per roaming lento il roaming in cui la rete wireless ha autenticazione 802.1x e non c’è nessun tipo di meccanismo che possa velocizzare il roaming . In questo caso ogni volta che si fa roaming con un nuovo AP è come una nuova connessione alla rete wireless e quindi si passa da tutte le fasi , compresa quella con il radius che è la più lenta (anche più di 200ms).
L’unica differenza fra la prima connessione alla rete wifi e i successivi roaming è il pacchetto di associazione che cambia in re-associazione , in questo pacchetto il client segnala il mac address dell’ AP a cui è connesso cosi che quest’ultimo possa recuperare eventuali dati nel buffer. Nella figura successiva una spiegazione del meccanismo di reassociazione:
PMK Caching
Con il pmk caching c’è una prima ottimizzazione del roaming , infatti quando si fa roaming su un AP su cui si è già precedentemente fatto roaming il client invia nella reassociation request anche nuovo parametro che è il PMKID che può essere utilizzato per non eseguire la lenta autenticazione verso il radius. Nella figura sottostante un esempio di pmk caching dove il client non fa l’autenticazione 802.1x nella terza fase perché nella prima fase ha già fatto “caching” di una pmk valida per quel AP.
Pre-Authentication
Con la pre-authenticazione prima del roaming , si chiude la fase 802.1X authentication con l’AP a cui ci si vuole connettere quando si è ancora connessi all’AP precedente, questo scambio di pacchetti avviene lato wired. Come si vede in figura sottostante , il client che è ancora connesso con il primo AP inizia una comunicazione 802.1x con l’AP su cui vuole fare roaming. Al termine della fase 2 in figura, sia il client che AP candidato del roaming, hanno una PMK valida quindi nella successiva fase 3 si può saltare 802.1x authentication.
Opportunistic key caching (OKC)
Con l’opportunistic key caching diventa fondamentale la presenza di un wireless controller perché l’associazione avviene con il controller e non con l’AP. Questo meccanismo permette di distribuire a tutti gli AP la PMK ,che serve come input al meccanismo di 4-way handshake che bisogna fare ad ogni roaming ,per creare le chiavi di criptazione temporanea PTK. Come si vede in figura si è aggiunto , rispetto agli altri meccanismi esaminati il controller, responsabile della distribuzione delle chiavi . Nella fase tre viene saltata l’autenticazione 802.1x perché sia il client che l’AP hanno una PMK valida inoltre va sottolineato che la fase 3 è del tutto simile ha un normale roaming con la PSK in termini di pacchetti scambiati. Quindi quando si usa OKC ,a parte la prima connessione alla rete, i successivi roaming hanno tempistiche uguali a quelli fatti con una semplice PSK.
Fast Roaming Over-the-air (802.11r )
Siamo giunti al fast roaming che è lo standard per il roaming veloce. E molto simile a OKC a parte due aspetti , il primo è che esiste un architettura delle chiavi dove il controller detiene la PMK-R0 e gli AP le PMK-R1 ma la differenza maggiore è la fase 3 , come si vede in figura non c’è più il 4-way handashake .
Ma come è possibile visto che il 4-way handshake bisogna farlo con tutti gli AP a cui ci si connette ?
Nella fase 3 sparisce perchè viene inglobato nel 802.11 FT authentication e 802.11 Reassociation.
Vediamo meglio questo aspetto da un immagine presa dal corso CWSP official study guide a pagina 270:
Come si vede nel titolo del paragrafo ho descritto il 802.11r over-the-air esiste anche una versione over-the-ds ovvero una parte dell’autenticazione viene fatta con il ap a cui si è connessi in modo simile alla pre-authentication , ma non entro nello specifico di questo tipologia di roaming.
Da notare è che 802.11r funziona anche quando non c’è 802.11x ma la PMK è derivata da una password come nel WPA2 Personal (PSK) anche in questo caso si salta la fase 4-way handshake e il roaming è più veloce.
Nel prossimo articolo descriverò la configurazione del fast roaming sul controller Extreme Campus Controller (XCC)
Prima di lasciarci un breve recap dei punti fondamentali descritti in questo articolo :
– Ogni volta che si fa roaming bisogna rinegoziare le chiavi di criptazione PTK se l’autenticazione è 802.1x questo processo può essere molto lungo.
– Esistono molti meccanismi per “saltare” la fase di 802.1x quello standard è 802.11r fast roaming :che tramite un archittettura di chiavi,la presenza del controller che distribuisce queste chiavi e un meccanismo che incorpora il 4-way handshake nei pacchetti di autenticazione e reassociazione è il meccanismo più veloce per fare roaming .
Riferimenti
· CWNA : Certified Wireless Network Administrator Study Guide Sybex
· Divergent Dynamics Course : CWNA by devin akin
· Peter MacKenzie | Analysing Roaming Protocols
· https://mrncciew.com/ blog
· CWSP Official Study Guide
2 Comments
Paolo Platania
Bello l’articolo, molto chiaro e utile, raccoglie informazioni difficili da trovare
Jacopo Saladini
Grazie Paolo