Wiederverwendung des RC4-Schlüsselstroms
WEP verschlüsselt den Klartext durch Verknüpfung mittels
exklusivem Oder mit einem RC4-Schlüsselstrom. Der verwendete Schlüsselstrom
wird durch den RC4-Schlüssel bestimmt, welcher sich aus Initialisierungsvektor
und WEP-Schlüssel zusammensetzt. Ist einem Angreifer der Klartext einer
versendeten Nachricht bekannt, so kann er den RC4-Schlüsselstrom durch Verknüpfung
des Chiffretext mit dem Klartext mittels exklusivem Oder erlangen. Der zugehörige
Initialisierungsvektor wird bei jeder Nachricht unverschlüsselt mitgeschickt
und ist dem Angreifer somit bekannt. Fängt der Angreifer nun eine Nachricht mit
demselben Initialisierungsvektor ab, so kann er diese mit Hilfe des RC4-Schlüsselstroms
entschlüsseln.
Als Voraussetzung hierfür gilt natürlich, dass sich der
WEP-Schlüssel nicht geändert hat und der RC4-Schlüsselstrom eine ausreichende
Länge besitzt. Zusätzlich kann er auch selbst Nachrichten verschicken. Dies
ist möglich, da der Standard die Wiederverwendung von Initialisierungsvektoren
nicht verbietet, sondern nur empfiehlt, eine Wiederverwendung solange wie möglich
zu vermeiden. Aufgrund der Länge des Initialisierungsvektors von 24 Bit sind
jedoch höchstens 16,8 Mio. verschiedene RC4-Schlüsselströme möglich, die bei
einer durchschnittlichen Auslastung des Netzes von 2,5 MBit/s und einer
durchschnittlichen Größe der Nachrichten von 1024 Byte bereits innerhalb eines
Tages verbraucht werden (vgl. Tabelle 2). Es ist deshalb für einen Angreifer möglich
ein Wörterbuch aus Kombinationen von Initialisierungsvektor und zugehörigem
RC4-Schlüsselstrom aufzubauen, um so Nachrichten zu ver- und vor allem auch zu
entschlüsseln. Abbildung 13 soll den dargestellten Zusammenhang nochmals
verdeutlichen.
Zeit zum Versenden von 16.8 Mio. Nachrichten in Abhängigkeit
der durchschnittlichen
Größe der Nachrichten und der durchschnittlichen Auslastung des Netzes.
Die für den Aufbau eines solchen Wörterbuchs nötigen RC4-Schlüsselströme
lassen sich wie bereits vorgestellt ermitteln, wenn der Klartext zu einer
verschlüsselten Nachricht bekannt ist. Der Klartext läßt sich auf
verschiedene Weise ermitteln. Zum einen kann dies erreicht werden, indem von
außen eine Einspeisung von Nachrichten mit bekanntem Klartext erfolgt,
beispielsweise durch ICMP Nachrichten oder E-Mails.
Für aufeinanderfolgende Nachrichten verwendete
RC4-Schlüsselstrom ändert sich aufgrund des Initialisierungsvektors. Ein
Angreifer kann den Schlüsselstrom durch Erlangung des Klartextes einer
Nachricht gewinnen. Auf diese Weise lässt sich ein Wörterbuch aus
Kombinationen von Initialisierungsvektor und zugehörigem RC4-Schlüsselstrom
aufbauen, welches zum Ver- und Entschlüsseln von Nachrichten verwendet werden
kann.
Zum anderen ist es auch möglich, wenn mehrere Nachrichten
abgefangen werden, die aufgrund desselben Initialisierungsvektors mit demselben
RC4-Schlüsselstrom verschlüsselt sind. Durch Verknüpfung mittels exklusivem
Oder zwei solcher verschlüsselten Nachrichten C1 und C2 hebt sich der RC4-Schlüsselstrom
RC4KS auf und es bleibt die Verknüpfung der beiden Klartexte P1 und P2 übrig:
Durch
ist hierbei das exklusive Oder dargestellt. Für die Erlangung der einzelnen
Klartexte können nun Verfahren wie Häufigkeitsanalyse angewendet werden.
Einfacher wird es jedoch, wenn mehr als zwei Nachrichten (n > 2) mit
demselben Initialisierungsvektor und damit demselben Schlüsselstrom abgefangen
werden. Hierdurch entsteht ein Problem der Tiefe n.
Auch wenn durch die hier vorgestellte Schwäche nicht der
WEP-Schlüssel selbst ermittelt werden kann, so ermöglicht ein Wörterbuch aus
Kombinationen von Initialisierungsvektor und zugehörigem RC4-Schlüsselstrom
dennoch die nahezu uneingeschränkte Ver- und Entschlüsselung von Nachrichten.
Voraussetzung hierfür ist, dass der im Wörterbuch vorhandene RC4-Schlüsselstrom
eine ausreichende Länge besitzt. Als Nachteile sind jedoch der Aufwand für die
Erlangung des zum Aufbau des Wörterbuches nötigen Klartextes und der verhältnismäßig
große Speicherplatzaufwand für das Wörterbuch zu nennen. Die maximale Größe
des Wörterbuchs berechnet sich hierbei aus der Anzahl der Einträge c, der Größe
eines Initialisierungsvektors Si und der maximalen Größe eines RC4-Schlüsselstroms
SRC4:
Die maximale Größe eines RC4-Schlüsselstroms wird hierbei
durch die maximale Länge des Rumpfes eines IEEE 802.11 MAC-Rahmens abzüglich
der 4 Byte für Schlüsselnummer und Initialisierungsvektor vorgegeben (vgl.
Abbildung 1).