Instructeur: De eerste
encryptie die we zullen leren breken heet WEP, oftewel Wired
Equivalent Privacy.
Dit is een oude encryptie, die gemakkelijk kan worden gebroken.
De reden waarom ik het in deze cursus nog steeds behandel,
is ten eerste omdat het, zoals ik al zei, heel eenvoudig
is, dus het is een goed uitgangspunt.
Ook wordt het soms nog gebruikt in sommige netwerken.
Daarom kun je jezelf niet echt een hacker noemen,
en als je dan een netwerk ziet dat WEP gebruikt,
loop je vast, en
kun je niet eens inbreken.
Dus in deze lezing ga ik uitleggen hoe WEP werkt, en wat de zwakke
punten zijn die we kunnen gebruiken om het te breken.
En in de volgende lezing
zul je zien hoe we deze zwakte kunnen
gebruiken om WEP te breken en de sleutel te krijgen voor
elk netwerk dat WEP gebruikt.
WEP gebruikt dus eigenlijk een algoritme genaamd RC4 om de
gegevens te versleutelen.
Dus de manier waarop dit werkt is in principe,
als een client iets naar de router wil sturen, en laten
we zeggen dat hij deze tekst, gegevens naar
de router wil sturen, zal hij dit eerst
versleutelen met behulp van een sleutel.
Daarom wordt deze normale tekst omgezet in wartaal, zoals
je hier ziet.
Dit versleutelde pakket wordt de lucht in gestuurd, dus als
een hacker dit pakket opvangt, zoals we eerder zagen, zullen we,
als we dit pakket openen, zien
dat het vol staat met wartaal.
Ook al bevat het nuttige informatie, we kunnen
het niet lezen omdat het gecodeerd is.
Het toegangspunt ontvangt dit versleutelde
pakket, en kan het terugzetten in zijn oorspronkelijke
vorm omdat het de sleutel heeft.
Daarom zal het in staat zijn de inhoud te lezen, namelijk de gegevens
die naar de router moeten worden gestuurd.
Hetzelfde gebeurt als de router iets
terug wil sturen naar de client, hij zal het
eerst versleutelen met een sleutel, het naar
de client sturen, de client
zal het kunnen ontsleutelen omdat hij
de sleutel heeft.
Het concept is dus altijd hetzelfde:
de zender versleutelt de gegevens met een sleutel,
stuurt ze naar de ontvanger,
de ontvanger kan ze ontsleutelen omdat
hij ook de sleutel heeft, dus iedereen die
het pakket in het midden opvangt, krijgt het pakket, maar
kan de inhoud niet zien omdat hij de sleutel
niet heeft.
Dus het algoritme en de manier waarop RC4 werkt is eigenlijk
prima, het probleem is de
manier waarop WEP dit algoritme implementeert.
En om het te begrijpen,
laten we wat meer inzoomen op elke stap.
Dus terug naar de eerste
stap, we hebben de client die gegevens
naar de router probeert
te sturen.
Dus om dit te versleutelen probeert
WEP voor elk pakket een unieke sleutel te genereren.
Dus letterlijk elk pakket dat de lucht in wordt
gestuurd, probeert een nieuwe unieke sleutel aan te maken, daarvoor
genereert het een willekeurige 24 bit initialisatievector.
De initialisatievector wordt dan toegevoegd aan het wachtwoord van het netwerk
tot de eigenlijke sleutel die mensen gebruiken
om verbinding te maken met het netwerk.
Dit genereert een sleutelstroom,
en vervolgens wordt deze sleutelstroom gebruikt om dit pakket
te versleutelen en om te zetten in wartaal.
Dus eigenlijk hebben we de sleutelstroom
plus de gegevens die we moeten versleutelen,
geeft ons de wartaal, en
dan wordt de wartaal de lucht in gestuurd.
Maar alvorens dit de lucht in te sturen,
zal WEP ook de initialisatievector toevoegen.
Dit is het 24 bits willekeurige getal dat ik zei dat het maakt
om ervoor te zorgen dat elk pakket een unieke sleutel heeft.
De reden waarom het de initialisatievector
aan het pakket toevoegt, is dat zodra
de router dit pakket ontvangt, hij
het moet kunnen decoderen, en om het te decoderen
heeft hij de sleutel en de IV nodig.
Maar de router heeft de sleutel al,
dus die hoef je niet te versturen.
Daarom hoeven we hem alleen de IV te sturen.
Dus wanneer de router het pakket ontvangt, heeft hij de IV, het wachtwoord
of de sleutel, dus kan hij een sleutelstroom
genereren en vervolgens die sleutelstroom
gebruiken om dit gebrabbel om te zetten in zijn oorspronkelijke vorm
en het pakket te lezen.
Dus als je nadenkt over wat ik zei, kun
je waarschijnlijk wel raden wat de zwakte is.
In principe wordt de IV in platte tekst verzonden, dus
als je hiernaar kijkt,
zie je dat de inhoud van het pakket versleuteld
is, dus als iemand dit pakket onderschept,
kan hij dit niet lezen, maar wel de
IV in platte tekst.
Ook is de grootte van de IV slechts 24 bits.
Gezien de enorme hoeveelheid verkeer
die op een Wi-Fi-netwerk kan worden gegenereerd,
is dit aantal niet groot genoeg,
en zullen de IV's in een druk netwerk worden herhaald.
Dit maakt WEP kwetsbaar voor statistische aanvallen, dus we kunnen een
programma genaamd Aircrack-ng gebruiken om de sleutelstroom
te bepalen, zodra we genoeg
herhaalde IV's hebben.
En van daaruit zal het ook WEP kunnen kraken, en ons de sleutel
tot het netwerk geven.