Autenticazione RADIUS su reti wireless con 802.1x, WPA e WPA2

Le reti WiFi soffrono del problema dell’accesso non autorizzato molto più delle reti cablate. Ciò è ovvio se si tiene conto che se nelle ultime per potervi accedere è necessario un punto di accesso fisico (il socket RJ45), in quelle wireless basta trovarsi nel raggio di copertura per potersi associare. Una prima soluzione al problema è stato il WEP (Wired Equivalent Privacy). Tuttavia, questo metodo, legato alla presenza di chiavi di crittografia simmetrica tanto sugli Access Point quanto su tutti i client autorizzati all’accesso, scaricava sugli amministratori di rete l’incombenza di cambiare periodicamente tali chiavi e di comunicare il cambiamento a tutti gli utenti. Il risultato di ciò era che le chiavi WEP rimanevano invariate per lunghi periodi rendendo insicura la rete.

Con il protocollo 802.1x si è introdotta l’autenticazione e il supporto alla gestione dinamica della chiavi WEP. In questo modo, una volta che il client si è autenticato le chiavi con cui criptare il traffico wireless gli verranno fornite automaticamente e cambiate anche più volte durante la sessione di lavoro. Il periodo di validità delle chiavi è abbastanza breve tanto da renderle difficilmente determinabili da parte di un intruso che tenti un attacco.

Dal punto di vista pratico, il protocollo 802.1x non è altro che il frame di autenticazione EAP (Extensible Authentication Protocol) che si utilizza per l’autenticazione dei collegamenti point to point adattato per viaggiare in trame Ethernet invece che nei pacchetti PPP. In virtù di ciò il protocollo 802.1x è anche noto come EAPoL (EAP over LAN).

Nella terminologia EAP le entità che entrano in gioco durante il processo di autenticazione sono: il supplicant, cioè il client che chiede di potersi associare alla rete; l’authenticator che nel caso delle reti wireless coincide con l’Access Point; l’authentication server che controlla se l’utente è veramente chi dice di essere. L’authentication server coincide spesso con un server RADIUS, mentre l’authenticator è quello che nel protocollo RADIUS viene definito NAS (Network Access Server).

Come detto in precedenza EAP è solo un frame di autenticazione che lascia al supplicant e all’authentication server il compito di concordare il metodo di autenticazione da utilizzare effettivamente. Si noti che l’Access Point è trasparente da questo punto di vista, poiché il suo unico compito è di forwardare i pacchetti provenienti dal supplicant mediante EAPoL al server RADIUS incapsulandoli in IP (il server RADIUS è raggiungibile dalla parte wired dell’AP) e viceversa.

Il server RADIUS di Zeroshell supporta i metodi di autenticazione descritti di seguito perché sono tra quelli che danno maggiore garanzia di sicurezza e sono supportati da buona parte dei supplicant:

  • EAP-TLS che usa TLS per la mutua autenticazione tra supplicant e Access Point. Sia il server RADIUS che il supplicant devono disporre di una chiave privata e del relativo certificato X.509. A parte l’incombenza di dover dotare ogni utente del suo certificato, questo è sicuramente il metodo di autenticazione più sicuro e comodo poiché non è richiesto l’inserimento di una password da parte dell’utente;
  • PEAP (Protected EAP) che invece usa TLS per autenticare l’Access Point e stabilire un tunnel crittografato in cui utilizzare MS-CHAPv2 per autenticare il supplicant con username e password. Il vantaggio di questo metodo è che solo il server RADIUS deve disporre di un certificato server e della chiave privata mentre l’utente usa la stessa password utilizzata per autenticarsi con Kerberos 5 sugli altri servizi di rete.

Apparentemente, tanto con EAP-TLS quanto con PEAP gli Access Point non dimostrano la loro identità nei confronti dei supplicant poiché non sono dotati di un certificato e di una chiave privata. In realtà non è così poiché gli Access Point condividono con RADIUS un segreto che li rende fidati nei confronti di quest’ultimo. Tale fiducia permette a un supplicant che si fida di RADIUS (grazie al TLS) di fidarsi anche degli Access Point.

Zeroshell in aggiunta al protocollo 802.1x supporta, negli Access Point che gestiscono il multi SSID mappato su tagged VLAN 802.1Q, l’associazione su di una particolare VLAN basandosi sullo username fornito nel CN del certificato se l’autenticazione è EAP-TLS, sullo username fornito dal supplicant nel caso di PEAP, sull’appartenenza di un utente ad un gruppo per il quale sia definita una VLAN e sul MAC Address del client nel caso i precedenti metodi non determinino una VLAN.