Pieter Edelman
17 October 2017

KU Leuven-promovendus Mathy Vanhoef heeft een ernstig beveiligingsprobleem gevonden in de wifi-standaard. Het draadloze verkeer tussen twee apparaten wordt vandaag de dag beveiligd met het WPA2-protocol (Wifi Protected Acces 2) om te voorkomen dat anderen de inhoud ervan kunnen lezen of manipuleren. Door de aanmeldprocedure te manipuleren, blijkt dat toch mogelijk. Omdat de fout in het protocol zelf zit en niet in een specifieke implementatie, zijn nagenoeg alle wifi-apparaten kwetsbaar.

Vanhoef presenteert de details rond zijn ‘Krackattack’ (Key Reinstallation Attack) de komende maanden op de Computer and Communications Security- en Black Hat Europe-conferenties. Hij heeft de details over de aanval echter al naar buiten gebracht, nadat hij leveranciers enkele maanden de tijd had gegeven om het probleem aan te apkken.

Het goede nieuws is wel dat de problemen softwarematig te verhelpen zijn in besturingssystemen. Veel leveranciers hebben dan ook al een update beschikbaar of komen daar binnenkort mee. Het slechte nieuws is echter dat er enorme aantallen devices zijn die nooit een update ontvangen. Denk aan de vele budget-iot-apparaten, maar ook veel makers van Android-telefoons laten het na om de beveiligingsupdates in Android uit te rollen naar de toestellen.

Misbruik van aanmeldprocedure

Elke keer dat een apparaat zich aanmeldt op een wifi-netwerk, spreekt het een unieke sessiesleutel af met het accesspoint (ap), gebaseerd op onder meer het wachtwoord en de mac-adressen van zender en ontvanger. Die sleutel wordt vervolgens gebruikt voor het encrypten van het verkeer, samen met een nonce, een willekeurig getal dat uniek is per pakket.

Vanhoef vond echter een manier om de nonce elke keer te resetten naar dezelfde waarde. Dat haalt de hele werking van het versleutelingsprotocol onderuit. Daarvoor misbruikt hij de handshake, de initiële aanmeldprocedure waarmee clients en ap’s hun sleutel afspreken. Omdat pakketten soms verloren kunnen gaan bij draadloze netwerken, staat het protocol toe om ze opnieuw te verzenden. Dat geldt ook voor een bericht in de handshake-procedure om de sleutel te installeren en de nonce te resetten, wat de client braaf opvolgt.

Om de aanval uit te voeren, moet de aanvaller een eigen accesspoint opzetten dat het origineel nabootst. Daardoor is het verkeer vanaf de client te onderscheppen. Wanneer dat op de juiste manier gedaan wordt, kan dat het echte ap ertoe aanzetten het bewuste pakket opnieuw te versturen.

Door dit steeds opnieuw te doen, gebruikt de client zo telkens dezelfde gegevens om zijn pakketten te versleutelen. Zodoende kan het beveiligde verkeer afgeluisterd en bij sommige protocolsmaken zelfs gemanipuleerd worden.