WPA1

WPA1 (de tussentijdse oplossing) werd ontwikkeld waarbij rekening werd gehouden met volgende beperkingen:

WPA1 is daarom vooral interessant als les in wat er gebeurt wanneer je beveiliging moet bouwen rond bestaande hardware in plaats van ze van nul te ontwerpen. Die les komt verderop in de cursus nog terug bij IoT, waar miljoenen toestellen nooit meer een update krijgen.

Opmerking

Voor het sleutelbeheer en de authenticatie in enterprise mode gebruikt WPA1 (net als WPA2 en WPA3) de 802.1X standaard. Die bespreken we apart in het laatste subhoofdstuk van dit hoofdstuk, samen met eduroam.

TKIP

Wanneer de nodige sleutels zijn uitgewisseld (hoe dat gebeurt, de zogenaamde 4-way handshake, bekijken we bij WPA2), is het tijd om data te encrypteren. Dit gebeurt bij WPA1 door middel van het Temporal Key Integrity Protocol (TKIP). TKIP is geen nieuw cipher, maar een suite van algoritmes die als een wrapper rond WEP wordt gelegd. RC4 blijft dus het hart, maar TKIP dijkt de grootste fouten van WEP één voor één in:

  • Michael vervangt CRC-32 als integriteitscheck. Michael berekent een message integrity code (MIC) waarin een geheime sleutel én het adres van verzender en ontvanger zitten. Anders dan een CRC kan een aanvaller zonder die sleutel geen geldige MIC maken: gedaan met de bitflip-aanval.
  • De IV wordt vervangen door een 48-bit teller, de TKIP Sequence Counter (TSC). Een pakket wordt enkel nog aanvaard als de teller hoger is dan die van het vorige pakket. Dat is de replay protection die WEP miste, en met 48 bit raken de waarden niet meer op.
  • Een key mixing functie maakt voor ieder pakket een aparte RC4-sleutel op basis van de sessiesleutel, het MAC-adres van de verzender en de teller. De IV wordt dus niet meer simpelweg voor de sleutel geplakt, waardoor de weak keys van de FMS-aanval verdwijnen. Dat mixen gebeurt in twee fases: eerst combineert TKIP de sessiesleutel met het MAC-adres van de verzender (en een deel van de teller) tot een tussensleutel die uniek is per client, daarna mengt het die tussensleutel met de rest van de teller tot de RC4-sleutel voor dat ene pakket.
  • Iedere client krijgt z’n eigen sessiesleutel die geregeld ververst wordt, in plaats van één WEP-sleutel voor iedereen die jaren meegaat.

Key mixing in twee fases: fase 1 geeft elke client een eigen tussensleutel, fase 2 maakt daaruit een sleutel per pakket.

Key mixing in twee fases: fase 1 geeft elke client een eigen tussensleutel, fase 2 maakt daaruit een sleutel per pakket.

WPA1 in volle glorie: een wrapper rond WEP, maar met WEP nog altijd als hart.

WPA1 in volle glorie: een wrapper rond WEP, maar met WEP nog altijd als hart.
Opmerking

In de literatuur wordt meestal gesproken over “Message authentication codes” of MAC’s. In de IEEE 802 standaarden wordt MAC echter al gebruikt voor media access control, en daarom koos men voor de term MIC.

Michael berekent een MIC van 8 bytes over de payload, de adressen en de prioriteit, met een geheime Michael-sleutel.

Michael berekent een MIC van 8 bytes over de payload, de adressen en de prioriteit, met een geheime Michael-sleutel.

De prijs van oude hardware

Het mooiste voorbeeld van “vastzitten aan bestaande hardware” is Michael zelf. Het algoritme moest licht genoeg zijn om te draaien op de zwakke processoren van oude access points, en dat betekende dat het cryptografisch gewoon zwak is. De ontwerpers wisten dat. Daarom bouwden ze een noodrem in: detecteert een toestel binnen de minuut twee foute MIC’s, dan gaat het ervan uit dat er een aanval bezig is. Alle sleutels worden weggegooid, de verbinding wordt verbroken en pas na een minuut mag er opnieuw verbonden worden.

Die noodrem houdt een aanvaller die MIC’s probeert te gokken inderdaad tegen. Maar ze maakt het ook eenvoudig om een netwerk plat te leggen: stuur af en toe twee foute pakketjes en niemand geraakt nog verbonden. En in 2008 toonden Martin Beck en Erik Tews dat een aanvaller zelfs met die noodrem korte pakketjes (zoals ARP-berichten) kon decrypteren en er vervolgens eigen pakketjes kon injecteren.

TKIP werd daarom al in 2012 officieel afgevoerd (deprecated) in de 802.11-standaard. Moderne toestellen weigeren het of tonen minstens een waarschuwing, en wie vandaag nog een netwerk heeft dat enkel TKIP aanbiedt, heeft sowieso een toestel dat al jaren geen updates meer krijgt.

Tip

En wat met het wachtwoord zelf? WPA1-Personal (en WPA2-Personal) kan je van bij het begin kraken door de handshake aan de start van een verbinding te capteren en daarna offline wachtwoorden te testen met tools als coWPAtty of aircrack-ng. Hoe dat precies werkt, zien we bij WPA2: de handshake is voor beide dezelfde.