# Wired Equivalent Privacy

Wired Equivalent Privacy (WEP, engl. „Verdrahteten (Systemen) entsprechende Privatsphäre“) ist das ehemalige Standard-Verschlüsselungsprotokoll für WLAN. Es sollte sowohl den Zugang zum Netz regeln als auch die Vertraulichkeit und Integrität der Daten sicherstellen. Aufgrund verschiedener Schwachstellen gilt das Verfahren grundlegend als unsicher. Die Berechnung des Schlüssels aus einigen Minuten an aufgezeichneten Daten dauert normalerweise nur wenige Sekunden. Daher bieten moderne Geräte WEP gar nicht mehr als Verschlüsselungsoption an und es sollte auch in keinem Fall mehr verwendet werden.
Aufgrund der akuten Sicherheitslücken wurde als Übergangslösung der Nachfolger WPA im Jahr 2003 veröffentlicht. Dieser basierte jedoch auf noch alten Sicherheitstechnologien, sodass erst das im Jahr 2004 veröffentlichte WPA2 ein vollwertiger Nachfolger für WEP ist. All diese Standards werden von der Wi-Fi Alliance mittlerweile als veraltet bezeichnet, da WPA3 das aktuellste (Stand: 2022) Verschlüsselungsprotokoll ist.

## Funktionsweise

Generell handelt es sich um eine einfache XOR-Verknüpfung des Bitstroms der Nutzdaten mit einem aus dem RC4-Algorithmus generierten, pseudozufälligen Bitstrom.
Das WEP-Protokoll verwendet den RC4-Algorithmus als Pseudozufallszahlengenerator (PRNG) bei der Erzeugung eines Keystreams, der einen Schlüssel und einen Initialisierungsvektor als Eingabe erhält. Für jede zu schützende Nachricht M wird ein neuer 24 Bit langer Initialisierungsvektor IV gebildet und mit einem Schlüssel K verknüpft, der allen Stationen im Basic Service Set bekannt ist. Das Ergebnis dient als Eingabe für den RC4-Algorithmus, welcher daraus einen Keystream erzeugt. Zusätzlich wird mittels Zyklischer Redundanzprüfung (ZRP, engl. CRC) ein vermeintlich sicherer „Integritätsprüfwert“ (Integrity Check Value – ICV) berechnet und an die Nachricht M angehängt (||). Die resultierende Nachricht (M||ICV) wird mit dem Keystream (RC4(IV||K)) des RC4-Algorithmus XOR-verknüpft und der Initialisierungsvektor IV wird dem resultierenden Ciphertext vorangestellt. Die unteren Abbildungen verdeutlichen Verschlüsselung und Entschlüsselung.
Bei der Authentifizierung unterscheidet man zwei Verfahren:

### Open System Authentication

Die Open System Authentication ist die Standard-Authentifizierung.
* Ist der Accesspoint für keine Verschlüsselung konfiguriert, findet praktisch keine Authentifizierung statt und jeder Client kann sich mit dem WLAN verbinden.
* Ist der Accesspoint für Verschlüsselung konfiguriert (in diesem Fall WEP):
** logisch: Der WEP-Schlüssel dient gleichzeitig zur Authentifizierung: Jeder Client mit korrektem WEP-Schlüssel bekommt Zugang zum Netz.
** technisch: Es findet ein Austausch von Authentifizierungsnachrichten statt und der Client wird authentifiziert. Stimmen WEP-Key auf Accesspoint und Client überein, ist Kommunikation möglich. Stimmen diese nicht überein, ist der Client zwar authentifiziert, kann jedoch keine Daten mit dem Netz austauschen.
Die Implementation der Authentifizierung mittels Schlüssel ist ein Herstellerfeature und ist nicht im Standard beschrieben.

### Shared Key Authentication

Die Shared Key Authentication ist die vermeintlich sichere Variante. Die Authentifizierung erfolgt dabei über die Challenge-Response-Authentifizierung mit einem geheimen Schlüssel.
Allerdings basiert das Challenge-Response-Verfahren auch auf WEP und weist dieselbe Schwäche auf. Durch den Einsatz von Shared-Key Authentication wird der geheime Schlüssel entblößt, wie im nächsten Abschnitt gezeigt wird. Höchst ratsam ist es daher, auf die Shared-Key-Authentication zu verzichten und die Open Authentication einzusetzen. Auf Verschlüsselung sollte dennoch nie verzichtet werden. Auch mit Open Authentication kann ein verbundener Netzwerkteilnehmer nur mit Kenntnis des WEP-Schlüssels eine Kommunikation mit dem Access Point aufbauen.
Die vier Nachrichten der WEP-Authentifizierung stellen die Zugriffsberechtigung des Client sicher.

### Angriff auf die Authentifikation

Wie schon erwähnt, trägt die Shared-Key-Authentifikation nicht zum Schutz bei, sondern gibt im Gegenteil ungewollt Informationen preis. Da wir es hier mit einer Challenge-Response-Authentifizierung zu tun haben, spielt sich das ganze folgendermaßen ab:
* Der Server schickt dem Client die Challenge1, bspw. eine Zufallszahl.
* Der Client verschlüsselt diese Zahl wie oben angegeben und schickt das WEP-Paket (IV1 + Ciphertext1) zurück an den Server
* Trudy, die Angreiferin (von engl. intruder), kann also die drei Informationen (Challenge1, IV1 und Ciphertext1) erlauschen. Sie errechnet nun mittels XOR Challenge1 $\oplus$ Ciphertext1 = Challenge1 $\oplus$ (Challenge1 $\oplus$ Keystream1) = Keystream1
Trudy hat nun Keystream1 und IV1, was sich als gültige Kombination erweist. Sie kann nun selbst versuchen, sich authentifizieren zu lassen. Eine Challenge2 vom Server beantwortet sie nun einfach mit dem WEP-Paket, bestehend aus IV1 + Ciphertext2, wobei sich Letzterer ergibt aus Challenge2 $\oplus$ Keystream1. Dies schickt sie an den Server und wird erfolgreich authentifiziert.

## Das WEP-Datenpaket

Ein WEP-Datenpaket besteht aus:
* einem unverschlüsselten 24-Bit-Initialisierungsvektor (IV), der den WEP-Schlüssel zum Gesamtschlüssel mit 64 Bit, 128 Bit oder 256 Bit macht
* den eigentlichen Nutzdaten
* einer 32-Bit-Prüfsumme dieser Nutzdaten (Integrity Check Value, ICV, mittels Zyklischer Redundanzprüfung).
Das eigentliche WEP-Datenpaket besteht aus den Daten und der 32 Bit langen Prüfbitfolge. Dieses wird mit der IV-WEP-Schlüsselkombination verschlüsselt, und dem Ganzen wird der Initialisierungsvektor vorangestellt.
Aus dem IV kann der Empfänger schließlich zusammen mit dem RC4-Schlüssel wieder den Klartext der Nachricht berechnen.

## Schwachstellen

Es existieren viele gut funktionierende Angriffe auf WEP-gesicherte Netze. Wenn ein WEP-gesichertes WLAN jedoch keine Teilnehmer hat, das heißt, wenn sich niemals jemand an diesem Netzwerk angemeldet hat, dann ist die Wahrscheinlichkeit sehr gering, den Schlüssel schnell zu berechnen bzw. ihn überhaupt zu berechnen. Die meisten Angriffe nutzen die Schwachstelle des mit 24 Bit sehr kurzen Initialisierungsvektor IV bei der RC4-Verschlüsselung aus. Diese Angriffsmethode wird in allgemeinen Bezug auch als Related-Key-Attack bezeichnet.
Viele aktive Angriffe setzen seitens des Angreifers modifizierte Treiber voraus, da diese Reinjection beherrschen müssen. Anfangs unterstützten viele Treiber nicht einmal das passive Lauschen auf einem oder gar mehreren Kanälen (Monitor Mode). Jedoch ist passives Lauschen eine Grundvoraussetzung. Angenommen, ein Access Point hat viele Clients, die viele Daten produzieren; dann könnte man alles aufzeichnen und versuchen, mit den gewonnenen Daten den WEP-Schlüssel zu berechnen. Falls die Datenmenge noch nicht ausreicht, so kann man oft diesen Datenstrom verwenden, um daraus ARP Requests zu extrahieren, die man für die Reinjection benötigt. Das Flooding seitens des Angreifers mittels ARP Requests führt – richtig durchgeführt – zu vielen ARP Replies, die dann zum Brechen des WEP-Schlüssels verwendet werden können. Reinjection ist treiberseitig recht kompliziert, da die Frames, die man in das WLAN bringt, im richtigen Timing gesendet werden müssen. Weiter ist zu beachten, dass ein Access Point nach einer gewissen Zeit eine erneute Authentifikation seitens des Clients voraussetzt. Wenn der Client sich nicht wieder am Netz anmeldet, dann werden alle gesendeten Daten am Access Point verworfen und in Kismet ist beispielsweise suspicious client zu lesen.

### CRC32 als Message Authentication Code (MAC)

Die CRC32-Funktion ist streng linear, denn CRC32(A XOR B)=CRC32(A) XOR CRC32(B). Daher ist diese Funktion als Message Authentication Code ungeeignet, denn es ist auch ohne den eigentlich dafür benötigten geheimen Schlüssels möglich, die Bits zu berechnen, die sich in der Prüfsumme ändern müssen, wenn man den Geheimtext ändern will. Durch diese Schwäche kann man den Payload des Paketes nach Belieben modifizieren, da man nach der Modifikation nur noch den MAC, also den neuen CRC32 Wert, berechnen muss.
Der obige Modifikationsschritt sieht in etwa so aus:
Im letzten Schritt berechnet man die neue Nachricht m_neu und den dazugehörigen MAC c_neu:
Um eine gefälschte Nachricht zu erstellen und um diese dann zu versenden, müssen nun die Datenfelder m und CRC32(m) im original Datenpaket (engl. Frame) durch die neu errechneten Werte m_neu und c_neu ersetzt werden. Nach dem Ersetzen kann das modifizierte Paket dann erneut versendet werden.
Auf diese Art kann man alle Pakete ändern. Wenn man jedoch wissen will, ob die Modifikation erfolgreich war, sollte man ein Paket wählen, das bei der Gegenstelle dann wieder zu einer Antwort führt.
Wenn das Quellpaket z. B. ein Ping-Request war, so könnte man z. B. testen, auf welche Modifikationen im Paket man eine Antwort bekommt. Interessante zustandslose Pakete wären: ARP-Request sowie Ping.

### Brechen des Schlüssels

Es ist möglich, einen genutzten WEP-Schlüssel und damit die gesamte WEP-Verschlüsselung zu brechen. Es gibt für verschiedene Systeme Zubehör, das durch Mithören einer ausreichenden Menge des Datenverkehrs den verwendeten WEP-Schlüssel berechnen kann, zum Beispiel Aircrack oder Airsnort. Dieser Angriff basiert darauf, möglichst viele Pakete mit gleichem, schwachem Initialisierungsvektor zu haben. So ist es heute bereits möglich, eine WEP-Verschlüsselung in unter einer Minute zu knacken.
In den letzten Jahren wurden die Angriffsmöglichkeiten immer weiter verbessert und ausgeweitet. So ist es beispielsweise möglich, wenn auch nur eine der übermittelten Nachrichten auch im Klartext bekannt ist, beliebige Inhalte (korrekt verschlüsselt) in das WLAN einzuspeisen. Des Weiteren gibt es eine Technik, einzelne, mitgehörte Datenpakete zu entschlüsseln, indem sie mehrmals leicht modifiziert wieder in das WLAN eingespielt werden. Dieser so genannte KoreK-Angriff verwendet nicht wie bisher Datenpakete mit gleichem Initialisierungsvektor, sondern mit unterschiedlichen, wodurch der Angriff viel effektiver wird.
Außerdem kommen neben den passiven Angriffen auch aktive Angriffe zum Einsatz. So kann man Antworten des Access-Points forcieren, um innerhalb kürzester Zeit (~1 min) ausreichend Daten für einen erfolgreichen passiven Angriff zu sammeln. Dazu werden ARP-Pakete anhand bestimmter Signaturen gezielt abgefangen und – ohne ihren entschlüsselten Inhalt zu kennen – wieder verschlüsselt in das WLAN eingespeist.

## Verwendung
### Sicherheitsmaßnahmen

Aufgrund der vielfältigen Schwachstellen ist es nicht möglich, WEP mit zusätzlichen Maßnahmen so zu schützen, dass eine sichere Kommunikation möglich ist. Nur die Abschaltung und der Wechsel auf ein aktuelles und als sicher anerkanntes Verfahren wie WPA3 ist sinnvoll.

### Hardware

Bei alter Hardware, welche nur WEP unterstützt, ist es oft möglich durch Software- und Firmwareupdates eine Verwendung von sichereren Verschlüsselungen wie WPA oder WPA2 zu ermöglichen. Bei Geräten, wo das WLAN-Modul nicht fest verbaut ist, kann dies auch durch den Austausch gegen ein neueres WLAN-Modul geschehen.
Neue Hardware wie Router bieten WEP mittlerweile nicht mehr als Verschlüsselung an oder warnen eindringlich vor der Verwendung.

### Betriebssysteme

Auch Betriebssysteme wie Windows 10 haben WEP mittlerweile als veraltet und unsicher gekennzeichnet. Die Unterstützung von WEP und WPA (TKIP) wurde in Windows 10 und 11 zwischenzeitlich gänzlich entfernt.