802.1X en eduroam
Tot hiertoe ging het vooral over de encryptie: WEP, TKIP, CCMP. Maar er is nog een tweede vraag die elk netwerk moet beantwoorden: wie mag er eigenlijk binnen, en welke sleutels krijgt die persoon? Bij personal mode is het antwoord simpel: iedereen deelt één wachtwoord. Voor een bedrijf of een school is dat onwerkbaar. Je wil niet dat een ontslagen werknemer nog binnen kan, en je wil zeker niet dat iedereen elkaars trafiek kan meelezen omdat iedereen dezelfde sleutel heeft.
Daarvoor bestaat enterprise mode, en die steunt op de IEEE 802.1X standaard. Je gebruikt hem waarschijnlijk elke dag zonder het te beseffen: eduroam, het wifi-netwerk op je hogeschool of universiteit, draait erop. We nemen eduroam daarom als rode draad door dit subhoofdstuk.
Wat doet 802.1X?
De IEEE 802.1X standaard is ondertussen een veelgebruikte standaard in veel draadloze én bedrade netwerken. Voor WPA1-, WPA2- en WPA3-netwerken in Enterprise-mode voorziet ze:
- (Mutual) authentication.
- Een centraal user management systeem.
- Een veilige manier om geheime sleutels uit te wisselen.
De kerngedachte: het access point moet niet meer zelf de authenticatie doen. Het gebruikt daarvoor de bestaande authenticatie-infrastructuur van de organisatie. Het AP treedt aan de start enkel op als doorgeefluik tussen de gebruiker en de authenticatie-server (meestal een RADIUS-server, Remote Authentication Dial-In User Service). Enkel wanneer die server groen licht geeft, verleent het AP toegang tot het netwerk.
802.1X beschrijft zelf niet hóe de authenticatie moet gebeuren: het is geen algoritme maar een framework waarin andere protocollen ingeplugd kunnen worden, op maat van de organisatie. Het zorgt voor de vertaling van de authenticatie-boodschappen tussen enerzijds het netwerkprotocol (wifi, Ethernet, …) en anderzijds de methode-laag. Die methode-laag bevat het eigenlijke authenticatie-protocol en moet EAP-compatibel zijn.
EAP oftewel Extensible Authentication Protocol is, zoals de naam doet vermoeden, een uitbreidbaar protocol van authenticatie-methoden. Afhankelijk van de keuze van de organisatie kies je een bepaalde EAP-methode; de ene is gebruiksvriendelijker of veiliger dan de andere. Zowel de client als de authenticatie-server moeten met de gekozen methode overweg kunnen. Het AP zelf hoeft de EAP-methode niet te begrijpen: het geeft de EAP-berichten gewoon door.
De meest gebruikte EAP-methoden:
- EAP-TLS: gebruikt een TLS-handshake (we zagen TLS aan het einde van het crypto-hoofdstuk, waar het HTTPS beveiligt) waarbij zowel de server als de client zich met een certificaat authenticeren. Het veiligst, maar het vraagt dat iedere gebruiker een eigen certificaat heeft, wat beheerslast met zich meebrengt.
- EAP-TTLS (Tunneled TLS) en PEAP (Protected EAP): omdat niet elke gebruiker een certificaat heeft, zetten deze methoden eerst een TLS-tunnel op met enkel een servercertificaat, en logt de gebruiker daarbinnen in met gebruikersnaam en wachtwoord. Dit is wat eduroam op de meeste instellingen gebruikt: jij tikt je studentennummer en wachtwoord in, en die reizen beschermd door de tunnel naar de RADIUS-server van je eigen instelling.
De voorgaande figuur toont de typische uitwisseling wanneer een client voor het eerst wil verbinden op een Enterprise-netwerk:
- De client meldt zich aan bij het AP, dat de poort voorlopig dicht houdt.
- Het AP doet vanaf nu enkel dienst als doorgeefluik: client en authenticatie-server spreken een EAP-methode af die zij beiden ondersteunen en voeren de authenticatie uit.
- Heeft de server genoeg bewijs om de client te authenticeren, dan genereert de server de nodige sleutels en geeft die aan het AP.
- Het AP staat vanaf nu in voor het verdere sleutelbeheer en ververst de sleutels wanneer nodig.
- Zijn de sleutels tussen client en AP verwerkt (via dezelfde 4-way handshake die we bij WPA2 zagen, maar nu met een PMK die uit de 802.1X-authenticatie komt in plaats van uit een wachtwoord), dan krijgt de client toegang tot het netwerk.
In wifi-netwerken met 802.1X worden twee sets sleutels aangemaakt:
- Sessiesleutels (pairwise keys): uniek per client, enkel gekend door die client en het AP, en enkel geldig tijdens de sessie. Die zijn er ook in personal mode, maar het grote verschil zit een niveau hoger: in enterprise mode heeft iedere gebruiker z’n eigen PMK (uit de 802.1X-authenticatie), terwijl in personal mode iedereen dezelfde PMK uit het gedeelde wachtwoord afleidt. Daardoor kan in enterprise mode geen enkele gebruiker de trafiek van een andere meelezen.
- Groepssleutels (group keys): gedeeld door alle clients van hetzelfde AP en gebruikt voor multicast- en broadcasttrafiek.
eduroam: hoe zit dat in elkaar?
Wat eduroam bijzonder maakt, is dat je met de login van je eigen instelling kan verbinden op elke deelnemende campus ter wereld. Verbind je in Barcelona met eduroam, dan geeft het lokale AP jouw inloggegevens niet zelf toe of af. Het stuurt ze door via een keten van RADIUS-servers, helemaal terug naar de RADIUS-server van je thuisinstelling in België. Enkel díe server kent jouw wachtwoord en beslist of je binnen mag. De TLS-tunnel van EAP-TTLS/PEAP zorgt ondertussen dat je wachtwoord onderweg voor niemand leesbaar is, ook niet voor de gastinstelling.
Zolang die tunnel opgezet wordt met het juiste servercertificaat, is dit een mooi en veilig systeem. En daar zit precies het addertje.
De klassieke fout: het servercertificaat niet valideren
Herinner je uit het crypto-hoofdstuk hoe een TLS-verbinding werkt: de client krijgt een certificaat van de server en moet dat valideren voordat hij er gevoelige data door stuurt. Doet hij dat niet, dan kan een man-in-the-middle zich voordoen als de server (denk aan wat mitmproxy deed met HTTPS).
Bij eduroam gebeurt die validatie tussen jouw toestel en de RADIUS-server. Het toestel hoort te controleren:
- Is het servercertificaat ondertekend door de verwachte CA?
- Staat op het certificaat de verwachte servernaam (bv.
radius.kuleuven.be)?
Wordt dat niet correct ingesteld, dan ontstaat een gevaarlijke situatie. Een stroper zet met een Wifi Pineapple (of gewoon een laptop) een evil twin op: een fake access point met exact dezelfde naam, “eduroam”. Je toestel, dat eduroam als gekend netwerk heeft, verbindt automatisch. De fake RADIUS-server van de stroper presenteert een willekeurig certificaat. Valideert je toestel dat niet, dan zet het gewoon de TLS-tunnel op met de stroper en stuurt het braaf je gebruikersnaam en wachtwoord mee. De stroper oogst zo de credentials van iedereen die langskomt, en met die credentials kan hij op alle diensten van je instelling.
Dit is dezelfde man-in-the-middle-aanval als het fake-hotspot-scenario uit het eerste subhoofdstuk (het oude Telenet Wi-Free-trucje), maar nu tegen een netwerk dat eigenlijk goed beveiligd is. De oorzaak ligt niet bij het protocol maar bij een verkeerd geconfigureerde client.
Precies daarom vragen instellingen je om eduroam niet manueel in te stellen met “verbinden” en je wachtwoord intikken, maar via een kant-en-klaar profiel: de eduroam CAT-tool (op de laptop) of de geteduroam-app (op smartphone). Dat profiel zet meteen de juiste CA en de juiste servernaam vast, zodat je toestel een evil twin herkent en weigert. Op recente Android-versies (vanaf Android 11) is de optie “certificaat niet valideren” trouwens helemaal verdwenen, net omdat die zoveel wachtwoorden lekte.
En herinner je de SSID Confusion-aanval uit het vorige subhoofdstuk? Die maakte net gebruik van het feit dat veel gebruikers dezelfde eduroam-credentials op meerdere netwerken gebruiken. Ook daar is de onderliggende zorg dezelfde: je toestel neemt beslissingen op basis van een netwerknaam die niet altijd hard te verifiëren valt.
Samenvatting
- Personal mode deelt één wachtwoord met iedereen; enterprise mode geeft iedere gebruiker een eigen account en eigen sleutels, en steunt op 802.1X.
- 802.1X is een framework, geen algoritme: het AP is enkel een doorgeefluik naar een centrale RADIUS-server, en je plugt er een EAP-methode in (EAP-TLS met certificaten, of EAP-TTLS/PEAP met een servercertificaat plus gebruikersnaam/wachtwoord).
- Er ontstaan pairwise keys (uniek per gebruiker) en group keys (voor multicast). Doordat iedere gebruiker eigen sleutels heeft, kan niemand de trafiek van een ander meelezen, in tegenstelling tot personal mode.
- eduroam is het schoolvoorbeeld: je logt overal ter wereld in met de credentials van je eigen instelling, die via RADIUS-servers naar huis worden doorgestuurd.
- De grootste praktische fout is een client die het servercertificaat niet valideert. Dan kan een evil twin de credentials oogsten. Gebruik daarom altijd het officiële profiel (eduroam CAT of geteduroam).



