Wireless Risk Potential Scenario: WEP: Difference between revisions
Line 82: | Line 82: | ||
Aufgrund einer Schwachstelle im RC4-Algorythmus lassen sich aus bestimmten IVs Rückschlüsse auf Bits im Schlüssel ziehen. Es ist daher möglich, mit relativ wenigen abgefangenen Paketen den presharedkey zu errechnen. Ein Programm, dass dieses Verfahren einsetzt, ist das bekannte [http://www.aircrack-ng.org aircrack]. Mit nur ca 150.000 bis 300.000 Paketen kann man innerhalb von Sekunden (oft sogar schneller) den presharedkey errechnen. |
Aufgrund einer Schwachstelle im RC4-Algorythmus lassen sich aus bestimmten IVs Rückschlüsse auf Bits im Schlüssel ziehen. Es ist daher möglich, mit relativ wenigen abgefangenen Paketen den presharedkey zu errechnen. Ein Programm, dass dieses Verfahren einsetzt, ist das bekannte [http://www.aircrack-ng.org aircrack]. Mit nur ca 150.000 bis 300.000 Paketen kann man innerhalb von Sekunden (oft sogar schneller) den presharedkey errechnen. |
||
Durch die Verlängerung des Schlüssels wächst die Anzahl der schwachen IVs derart, dass die benötigte Menge abgefangener Pakete nur linear steigt. (Doppelte Schlüssellänge -> Doppelter Aufwand) |
Durch die Verlängerung des Schlüssels wächst die Anzahl der schwachen IVs derart, dass die benötigte Menge abgefangener Pakete nur linear steigt. (Doppelte Schlüssellänge -> Doppelter Aufwand) |
||
=== Fragmentierung === |
|||
Der WEP-Standard lässt Fragmentierung auf der MAC-Ebene zu. Ein Paket kann in maximal 16 Fragmente zerlegt werden, die alle mit dem selben IV verschüsselt sein dürfen. Dies ist eine der größten Schwachstellen, da somit relativ einfach Pakete beliebigen Inhalts verschicken lassen. |
|||
=== Wörterbuchangriff === |
|||
Da es eine überschaubare Menge IVs gibt, ist es möglich ein Wörterbuch zu erstellen, dass Paare von IV und dazugehörigem Schlüsselstrom enthält. Damit kann man bei Bedarf verschlüsselte Pakete entschlüsseln. Durch das generieren von Paketen mit bekantem Inhalt (z.b ARP-Request) kann man ein solches Wörterbuch gezielt aufbauen. Ein solches Wörterbuch hätte dann eine Größe von <math> 2^24 * 2312 Byte = 36GByte</math>. Ein solches Wörterbuch macht die Kenntnis des Presharedkey überflüssig, man kann sämtliche Pakte ver- und entschlüsseln. |
|||
=== Prüfsummenfunktion === |
|||
Die im Standard vorgesehene Prüfsummenfunktion CRC32 ist keine kryptografische Hashfunktion. Es handelt sich um eine lineare Funktion, die im gewissen Maße vorhersagbar ist (Zip-Recovery nutzt dies zur Fehlerbehebung). Es ist daher eine geziehlte Manipulation möglich. Ein Tool, was dies ausnutzt ist [http://www.netstumbler.org/showthread.php?t=12489 chop-chop] |
|||
=== schwache Passwörter === |
|||
Häufig werden lediglich ASCII-Passwörter der Länge 5 oder 13 Zeichen verwendet. Der daraus resultierende Schlüsselraum für den Presharedkey ist so klein, dass damit bruteforce Angriffe realistisch werden. |
|||
= Status = |
= Status = |
Revision as of 10:03, 17 October 2006
Im Rahmen des IT Security Workshop 2006 haben wir uns mit der Sicherheit der WEP-Verschlüsselung befasst. Wir haben bestehende Schwachstellen analysiert und einen eigenen Angriff nach Vorlage von A.Bittau entwickelt.
Ziele
Ziel ist es verschiedene Angriffsszenarien auf WEP zu prüfen. Besonderer Schwerpunkt liegt dabei auf den "modernen" Angriffen, die auch bei Netzen ohne viel Traffic Erfolg versprechen.
Ansatzpunkt ist die Arbeit von A.Bittau
Als Ziel der Angriffe dient ein Netgear WGT634U Accesspoint in Standardkonfiguration.
Der Angreifer ist in unserem Szenario ebenfalls ein Netgear WGT634U, auf dem Linux (Hacking the Netgear wgt634u) läuft.
Funktionsweise von WEP
Eigenschaften von WEP
WEP (Wired Equivalent Privacy) ist ein Verschlüsselungsstandard, der von der IEEE herausgegeben wurde. Es findet ausschließlich eine Verschlüsselung auf dem drahtlosen Medium statt. WEP soll lediglich Sicher stellen, dass nur bestimmte Teilnehmer an der Kommunikation teilnehmen können. Das heißt, jeder, der den preshared key kennt, kann die Daten entschlüsseln - eine Verschlüsselung, der Teilnehmer gegeneinander findet nicht statt.
- Verschlüsselung auf OSI Layer 3
- symmetrischer Stromchiffre
- basiert auf RC4-Pseudozufallszahlengenerator
- offizielle Schlüssellängen 40 (64) Bit und 104 (128) Bit
Funktionsweise von Stromchiffre
- Verschlüsselung einer Nachricht der Länge :
- Entschlüsselung einer Nachricht der Länge :
Bildquelle Wikipedia
Verschlüsselung bei WEP
Mit dem Zufallszahlengenerator RC4 wird eine Zufallszahlenfolge gebildet, die so lang ist, wie der zu verschlüsselnde Text (plus 4 Byte). Der RC4-Algorythmus wird dabei mit dem Schlüssel (40 oder 104 Bit) und einem sogenannten Initialisierungsvektor (IV) initiiert. Der IV hat eine Länge von 24 Bit. Zusammen mit dem Schlüssel ergeben sich so die 64 bzw 128 Bit, für die WEP bekannt ist. Der Schlüssel muss a priori allen Teilnehmern bekannt sein, der IV wird jedesmal im Klartext mitverschickt. Über den Klartext wird vor der Verschlüsselung eine CRC32-Prüfsumme (Integrity Check Value - ICV) berechnet und hinten an den Klartext angehängt. Anschließend wird der Klartext (und die Prüfsumme) mit der RC4-Zufallszahl verschlüsselt. Vor den somit entstandenen Ciphertext wird der IV und ein Schlüsselindex (WEP unterstützt 4 verschiedene Schlüssel) geschrieben.
Bildquelle Wikipedia
Entschlüsselung bei WEP
Mit dem, im Klartext versendeten IV und dem preshared key wird der RC4-Schlüsselstrom erzeugt. Der erzeugte Strom ist der selbe, wie bei der Verschlüsselung. Aus dem Schlüsselstrom und dem Kryptotext wird der Klartext und dessen Prüfsumme errechnet. Anschliessend wird die errechnete Prüfsumme mit der übertragenen Prüfsumme verglichen - stimmen die beiden überein gilt das Paket als fehlerfrei entschlüsselt. Andernfalls wird die Entschlüsselung als gescheitert betrachtet und das Paket verworfen.
Bildquelle Wikipedia
Aufbau eines WEP-Pakets
+---------------+-----------+---------------+----------------+----------+ | 24 Byte | 4 Byte | 1 - 2308 Byte | 4 Byte | 4 Byte | | 802.11 Header | IV Header | Frame Body | ICV | FCS | | Klartext | Klartext | verschlüsselt | verschluesselt | Klartext | +---------------+-----------+---------------+----------------+----------+
Der FCS ist eine erneute CRC32-Prüfsumme, die vom Treiber vor dem Senden über die gesammte Nachricht generiert wird.
Theoretische Schwachstellen von WEP
Kleiner Schlüsselraum (40 bzw 108 Bit)
Keystreamreuse
Eine, der größten Schwachstellen bei Stromchiffren ist es, den gleichen Schlüssel mehrfach zu verwenden. Wenn ein Angreifer zwei Nachrichten, die mit dem gleichen Schlüssel verschlüsselt wurden abfängt, besitzt er automatisch das XOR der beiden Klartexte. Sehr oft lassen sich daraus schon wichtige Informationen gewinnen. Bei WEP gibt es nur verschiedene IVs. Nach spätestens 16777216 versendeten Paketen wiederholen sich die IVs und somit die erzeugten Schlüsselströme. Viele Accesspoints beginnen zudem mit einem IV von 0 und inkrementieren diesen einfach. Zudem gibt es bestimmte IVs, die als Schwach gelten (Schwache IVs). Einige APs lassen diese einfach aus, was die Wahrscheinlichkeit des Keystreamreuse noch erhöht.
Schwache IVs
Aufgrund einer Schwachstelle im RC4-Algorythmus lassen sich aus bestimmten IVs Rückschlüsse auf Bits im Schlüssel ziehen. Es ist daher möglich, mit relativ wenigen abgefangenen Paketen den presharedkey zu errechnen. Ein Programm, dass dieses Verfahren einsetzt, ist das bekannte aircrack. Mit nur ca 150.000 bis 300.000 Paketen kann man innerhalb von Sekunden (oft sogar schneller) den presharedkey errechnen. Durch die Verlängerung des Schlüssels wächst die Anzahl der schwachen IVs derart, dass die benötigte Menge abgefangener Pakete nur linear steigt. (Doppelte Schlüssellänge -> Doppelter Aufwand)
Fragmentierung
Der WEP-Standard lässt Fragmentierung auf der MAC-Ebene zu. Ein Paket kann in maximal 16 Fragmente zerlegt werden, die alle mit dem selben IV verschüsselt sein dürfen. Dies ist eine der größten Schwachstellen, da somit relativ einfach Pakete beliebigen Inhalts verschicken lassen.
Wörterbuchangriff
Da es eine überschaubare Menge IVs gibt, ist es möglich ein Wörterbuch zu erstellen, dass Paare von IV und dazugehörigem Schlüsselstrom enthält. Damit kann man bei Bedarf verschlüsselte Pakete entschlüsseln. Durch das generieren von Paketen mit bekantem Inhalt (z.b ARP-Request) kann man ein solches Wörterbuch gezielt aufbauen. Ein solches Wörterbuch hätte dann eine Größe von . Ein solches Wörterbuch macht die Kenntnis des Presharedkey überflüssig, man kann sämtliche Pakte ver- und entschlüsseln.
Prüfsummenfunktion
Die im Standard vorgesehene Prüfsummenfunktion CRC32 ist keine kryptografische Hashfunktion. Es handelt sich um eine lineare Funktion, die im gewissen Maße vorhersagbar ist (Zip-Recovery nutzt dies zur Fehlerbehebung). Es ist daher eine geziehlte Manipulation möglich. Ein Tool, was dies ausnutzt ist chop-chop
schwache Passwörter
Häufig werden lediglich ASCII-Passwörter der Länge 5 oder 13 Zeichen verwendet. Der daraus resultierende Schlüsselraum für den Presharedkey ist so klein, dass damit bruteforce Angriffe realistisch werden.