WLAN-Verschlüsselung WEP: Arbeitsweise und Designfehler

Transcrição

WLAN-Verschlüsselung WEP: Arbeitsweise und Designfehler
Fachbereich Informatik
WLAN-Verschlüsselung WEP:
Arbeitsweise und Designfehler
Kryptologie 1
Dr. Rainer Schöpf
Wintersemester 2007/2008
von
Sebastian Abt
Dennis Kipp
[email protected]
[email protected]
Inhaltsverzeichnis
Inhaltsverzeichnis
i
Abbildungsverzeichnis
ii
1 Einführung
1
2 Notation
1
3 Funktionsweise
3.1 RC4-Algorithmus . . . . . . . . . . . . . . . . . .
3.1.1 Key-Scheduling Algorithmus . . . . . . .
3.1.2 Pseudo-Random Generation Algorithmus
3.2 Cyclic Redundancy Check . . . . . . . . . . . . .
3.3 Wired Equivalent Privacy . . . . . . . . . . . . .
3.3.1 Frame-Format . . . . . . . . . . . . . . .
3.3.2 Authentifikation . . . . . . . . . . . . . .
3.3.3 Verschlüsselung . . . . . . . . . . . . . . .
3.3.4 Entschlüsselung . . . . . . . . . . . . . . .
3.3.5 Datenintegrität . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
2
2
2
3
4
4
5
6
6
7
8
.
.
.
.
.
.
.
8
8
9
9
11
11
12
12
4 Designfehler
4.1 Shared Key Authentication . . . .
4.2 Manuelle Schlüsselverwaltung . . .
4.3 Wiederverwendung von Schlüsseln
4.4 Schwache Schlüssel . . . . . . . . .
4.5 Gezielte Datenmanipulation . . . .
4.6 Frame-Fragmentierung . . . . . . .
4.7 Zu kurze Shared Keys . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Fazit
12
Literatur
iii
i
Abbildungsverzeichnis
1
2
3
4
5
Schemabild Key-Scheduling Algorithmus . . . . . . .
Schemabild Pseudo-Random Generation Algorithmus
WEP Frame Format . . . . . . . . . . . . . . . . . .
Schemabild WEP-Verschlüsselung . . . . . . . . . . .
Schemabild WEP-Entschlüsselung . . . . . . . . . .
ii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
4
6
7
8
1 Einführung
Das Wired Equivalent Privacy (WEP) Verfahren wurde vom Institute of Electrical and Electronics Engineers (IEEE) im Rahmen des Standards 802.11 [1] zur Sicherung von funkbasierten Netzen (Wireless LAN, WLAN) mit der Intention definiert, wie der Name andeutet, über funkbasierte Ethernet-Netzwerke ausgetauschte Daten gleichermaßen zu sichern,
wie es bei kabelgebundenen Netzen gegeben ist. Dies ist auf Grund des frei zugänglichen
Übertragungskanals zwingend erforderlich.
Zur Verschlüsselung der zu übertragenden Daten verwendet WEP den Verschlüsselungsalgorithmus RC4 (Rivest Cipher 4) von RSA Security Inc, dem wohl weltweit am häufigsten
eingesetzten Stromchiffre-Verfahren. Auf Grund von Schwachstellen im RC4-Algorithmus,
sowie Designfehler im WEP Verfahren, lässt WEP sich heuer in weniger als 60 Sekunden
knacken [2].
Diese Arbeit wurde während unseres KoSI Studiums am Fachbereich Informatik der Hochschule Darmstadt im Rahmen der Vorlesung Kryptologie 1 bei Dr. Rainer Schöpf im Wintersemester 2007/2008 angefertigt und wird im Folgenden, nach Erläuterung der weiterhin
verwendeten Notation in Kapitel 2, in Kapitel 3 die grundlegende Funktionsweise der WEP,
RC4- und CRC-32 Algorithmen erläutern. In Kapitel 4 werden wir anschließend Designfehler
in WEP zusammenfassen, die das erfolgreiche Attackieren eines mittels WEP geschützten
Funknetzes ermöglichen und enden in Kapitel 5 mit einem Fazit dieser Arbeit.
2 Notation
Für ein einheitliches Verständnis möchten wir an dieser Stelle kurz die im weiteren Verlauf
des Dokumentes verwendeten Bezeichner einführen:
• Die zu verschlüsselnde Nachricht in Klartext bezeichnen wir mit P.
• Den verschlüsselten Nachrichtentext bezeichnen wir mit C.
• Den internen Zustand des RC4-Algorithmus bezeichnen wir mit S.
• Den geheimen Schlüssel bezeichnen wir mit K.
• Den pseudo-zufälligen Bytestrom bezeichnen wir mit R.
• Die Indizes zur Operation auf S bezeichnen wir mit i und j.
• Die Operation swap(· , *) vertauscht die beiden Oktette · und *.
• Die Operation | · | bestimmt die Länge des Arguments · in Byte.
• I(K) initiiert den Zustand S für den gegeben Schlüssel K.
• R(S, l) erzeugt den Bytestrom R der Länge l auf Zustand S.
• C32 (P ) berechnet die CRC-32 Prüfsumme zu P .
Bei P, C, S, K und R handelt es sich je um Arrays bzw. transponierte Vektoren über 8 bit
breiten Zahlenwerten. Die Indizes i und j halten vorzeichenlose 8 bit breite Zahlen.
1
3 Funktionsweise
3.1 RC4-Algorithmus
Bei RC4 handelt es sich um eine symmetrische Stromchiffre, die 1987 von Ronald L. Rivest
für RSA Security Inc. entwickelt wurde. RC4 erzeugt aus einem gegebenen geheimen Schlüssel
K mit einer maximalen Länge von 2048 bit einen pseudo-zufälligen Bytestrom R beliebiger
Länge, der mit den zu verschlüsselnden Daten P XOR-verknüpft wird:
C =R⊕P
(1)
Den aus dieser Verknüpfung entstandenen Datenstrom C nennt man Cipher – er stellt den
verschlüsselten Geheimtext dar.
Da der pseudo-zufällige Bytestrom die gleiche Länge besitzt, wie die zu verschlüsselnden
Daten, ist auch der aus der Verschlüsselung resultierende Geheimtext gleich lang. Diese Länge
bezeichnen wir fortan mit l.
Zur Erzeugung der Sequenz R verfügt der Algorithmus intern über einen Zustand S, der eine
Permutation aller 8 bit Zahlen x, mit 0 ≤ x ≤ 255, darstellt, sowie zwei Indizes i und j, die zur
Operation auf S dienen. Die Initialpermutation wird mittels eines Key-Scheduling Algorithmus
(KSA) anhand des geheimen Schlüssels bestimmt und anschließend zur Erzeugung des pseudozufälligen Bytestroms durch den Pseudo-Random Generation Algorithmus (PRGA, PRNG)
genutzt. Berechne I(K) die Initialpermutation S und R(S, l) den Strom R der Länge l, so
ergibt sich:
R = R(I(K), l)
(2)
Kombiniert man nun die Gleichungen (1) und (2), so ergibt sich der Geheimtext C als:
C = R(I(K), l) ⊕ P
Wenngleich es durch den enorm großen Zustandsraum des RC4-Algorithmus, nämlich 2562 ×
≈ 21700 bei der hier betrachteten Implementation mit 8 bit Worten, mit heutiger Technologie unmöglich ist, in vertretbarer Zeit den Zustandsraum zu durchsuchen bzw. Zustandsfolgen
zu erraten, ist es durch eine Schwachstelle im Key-Scheduling Algorithmus in Verbindung mit
WEP möglich, Rückschlüsse auf den pseudo-zufälligen Bytestrom und damit den zur Verschlüsselung verwendeten geheimen Schlüssel zu ziehen.
28 !
Die nun folgenden beiden Sektionen beschreiben die Funktionsweise des Key-Scheduling
bzw. Pseudo-Random Generation Algorithmus.
3.1.1 Key-Scheduling Algorithmus
Zu Beginn wird der KSA mit der Identitätspermutation initialisiert, d.h. S[i] = i, ∀ i =
0, 1, 2, ..., 255 (siehe Listing 1, Zeile 1–3). Anschließend wird eine erste Permutation, die Initialpermutation, durchgeführt. Hierbei wird jedes Oktett, wenn auch mit sich selbst, mindestens
einmal vertauscht. Der Einfügepunkt j 0 des gerade zu vertauschenden Oktetts S[i] ergibt sich
aus der Summe des aktuellen Index j, des Wertes S[i], sowie des Wertes des Schlüssels K an
der Position i, Modulo 256 (siehe Listing 1, Zeile 5–8).
Die genaue Funktionsweise des RC4 Key-Scheduling Algorithmus ist beispielhaft in Listing
1 als Pseudocode und als Schemabild in Abbildung 1 dargestellt.
2
swap
S[0] S[1] S[j‘]
S[i]
S[j]
i
j
S[255]
j‘ = (j + S[i] + K[i mod |K|]) mod 256
K[0] K[1] K[2]
K[i]
K[n]
Abbildung 1: Schemabild Key-Scheduling Algorithmus
Listing 1: Key-Scheduling Algorithmus in Pseudocode
1
2
3
4
5
6
7
8
for i = 0 to 255 do
S[ i ] = i
end
j = 0
for i = 0 to 255 do
j = ( j + S [ i ] + K[ i mod |K | ] ) mod 256
swap ( S [ i ] , S [ j ] )
end
3.1.2 Pseudo-Random Generation Algorithmus
Ausgehend von der im vorigen Abschnitt beschriebenen Initialpermutation S erzeugt der
PRGA einen Bytestrom der Länge l, indem in jedem Schritt n = 0, 1, ..., l − 1 der Index i um
1 erhöht und j auf den Wert S[i] gesetzt wird, und die Oktette an den daraus resultierenden
Stellen i und j vertauscht werden. Anschließend wird das Oktett an der Stelle ((S[i] + S[j])
mod 256) zurückgegeben.
Man beachte, dass der Pseudo-Random Generation Algorithmus den internen Zustand S
des RC4-Algorithmus nur sehr langsam, nämlich bei der Berechnung eines jeden Oktetts genau einmal, durch das Vertauschen der beiden Oktette S[i] und S[j] ändert.
Listing 2 und Abbildung 2 verdeutlichen die Funktionsweise des Pseudo-Random Generation Algorithmus.
3
swap
S[0]
S[1]
S[t]
S[i]
S[j]
i
j
S[255]
t = (S[i] + S[j]) mod 256
R[0] R[1] R[2]
...
R[n]
...
R[l-1]
Abbildung 2: Schemabild Pseudo-Random Generation Algorithmus
Listing 2: Pseudo-Random Generation Agorithmus in Pseudocode
1
2
3
4
5
6
7
8
i = 0
j = 0
for n = 0 to ( l − 1 ) do
i = n mod 256
j = ( j + S [ i ] ) mod 256
swap ( S [ i ] , S [ j ] )
R[ n ] = S [ ( S [ i ] + S [ j ] ) mod 2 5 6 ]
end
Als Resultat dieses Algorithmus erhalten wir einen Bytestrom R der Länge l, den wir zur
Verschlüsselung des Klartextes P verwenden können (siehe Gleichung (1)).
3.2 Cyclic Redundancy Check
Der Cyclic Redundancy Check (CRC) ist, basierend auf einer Modulo-Polynomdivision, ein
sowohl in Hard- als auch Software sehr einfach zu implementierendes Verfahren zur Berechnung einer Prüfsumme X auf gegebenen Daten P anhand eines Generator-Polynoms n-ten
Grades Pn :
X = Cn (P ) ⇔ X = P mod Pn
Dieses Verfahren wird in der Informatik häufig zur Erkennung von Übertragungsfehlern
in Kommunikationsprotokollen eingesetzt. Bekannte Protokolle, die das CRC Verfahren zur
Prüfsummenbildung verwenden sind etwa die Protokolle der TCP/IP-Familie, Bluetooth oder
das ZIP Verfahren zur Datenkompression. Es gibt unterschiedliche Varianten des CRC Verfahrens, kenntlich gemacht durch n. Die für das WEP Verfahren verwendete Implementierung
ist CRC-32, welches eine n = 32 bit große Prüfsumme erzeugt. Das für CRC-32 verwendete
Divisions-Polynom lautet 0x04C11DB7 bzw. x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 +
x8 + x7 + x5 + x4 + x2 + x + 1.
3.3 Wired Equivalent Privacy
Das WEP Verfahren wurde mit der Intention entworfen, die Sicherheit der Daten in kabellosen
Netzwerke in ähnlicher Weise zu schützen, wie dies bei kabelgebundenen Netzen der Fall
4
ist. Bestandteile dieses Schutzes sind die Wahrung der Datenintegrität, Sicherstellung der
Authentiziät der Netzwerkteilnehmer, sowie das Ver- und Entschlüsseln der übertragenen
Daten, um diese vor Unbefugten und Datenmanipulation zu schützen. Zum Erreichen dieser
Ziele nutzt das WEP Verfahren die Algorithmen CRC-32 und RC4.
Zur erfolgreichen Chiffrierung und Dechiffrierung muss jedem am Funknetzwerk teilnehmenden Endgerät - fortan Station genannt - im Voraus jedoch ein gemeinsamer, geheimer
Schlüssel über einen sicheren Kommunikationskanal mitgeteilt werden. Diesen Schlüssel nennen wir fortan Common Shared Key (CSK). WEP unterstützt die Konfiguration von maximal
4 CSKs, die – sofern konfiguriert – wechselweise zur Chiffrierung der Daten genutzt werden
können. Die Common Shared Keys können eine Größe von 40 oder 104 bit haben. Der doch
sehr schwache CSK von 40 bit wurde zur Zeit des Standardentwurfs absichtlich gewählt, um
einen Export von Systemen mit kryptographischen Komponenten unter dem damaligen US
Export Gesetz zu ermöglichen.
3.3.1 Frame-Format
Ein WEP-verschlüsseltes 802.11 Frame besteht vereinfacht aus den folgenden 3 Teilen:
Initialization Vector oder kurz IV. Hierbei handelt es sich um die ersten 4 Byte des WEP
Frames. Das letzte Oktett des IVs teilt sich in 6 Füllbits, gefolgt von 2 Bits, die den für
das WEP Verfahren zu verwendenden geheimen Schlüssel markieren. Die ersten 3 Byte
des Initialization Vectors sind der für die Verschlüsselung bedeutsame Teil, da dieser
mit dem hinterlegten geheimen Schlüssel konkateniert wird und als Eingabe für den
KSA dient. Durch die Konkatenation des 24 bit großen IVs mit dem hinterlegten CSK
ergibt sich eine Gesamtschlüssellänge von 64 bzw. 128 bit.
Der Initialization Vector wird im Klartext zusammen mit den WEP-verschlüsselten
Daten übertragen.
Da in dieser Arbeit für die weitere Betrachtung des WEP Verfahrens lediglich die ersten
3 Byte des Initialization Vectors von Bedeutung sind, werden wir uns fortan stets – sofern nicht explizit auf das Gegenteil hingewiesen – lediglich auf die ersten 24 bit des IVs
beziehen, wenn wir den Begriff Initialization Vector bzw. dessen Abkürzung IV gebrauchen. Des Weiteren beziehen wir uns fortan auf die Konkatenation des IVs und des Common Shared Keys, wenn wir vom gehemein Schlüssel K reden, also: K = hIV, CSKi.
Diesen Schlüssel K möchten wir weiterhin auch als Session Key bezeichnen.
Protocol Data Unit oder kurz PDU. Die PDU beinhaltet die tatsächlichen Nutzdaten, also
den sensibelsten Teil des Frames. Die Länge der Protocol Data Unit ist daher offensichtlich variabel.
Integrity Check Value oder kurz ICV. Die Integrity Check Value ist eine 4 Byte große
Prüfsumme, die die Integrität der Daten sicherstellen soll. Zur Errechnung der Prüfsumme
wird CRC-32 angewendet. Die Prüfsumme wird auf dem Klartext der zu übertragenden
Daten berechnet und anschließend zusammen mit den Nutzdaten WEP-verschlüsselt
übertragen.
Abbildung 3 verdeutlicht den Aufbau eines WEP Frames.
5
Figure 45—WEP decipherment block diagram
8.2.4 WEP algorithm specification
WEP uses the RC4 PRNG algorithm from RSA Data Security, Inc.6
8.2.5 WEP Frame Body expansion
Figure 46 shows the encrypted Frame Body as constructed by the WEP algorithm.
Abbildung 3: WEP Frame Format
[1, Figure 46]
Figure 46—Construction of expanded WEP Frame Body
The WEP ICV shall be a 32-bit field containing the CRC-32, as defined in 7.1.3.6 calculated over the Data
3.3.2
Authentifikation
(PDU) field as depicted in Figure 46. The expanded Frame Body shall include a 32-bit IV field immediately
the original ist
Frame
This field shall
contain threeum
subfields:
a three-octetdass
fieldnur
that autoricontains
Diepreceding
Authentifikation
ein Body.
erforderlicher
Mechanismus
sicherzustellen,
the
initialization
vector,
a
2-bit
key
ID
field,
and
a
6-bit
pad
field.
The
ordering
conventions
defined
in 7.1.1
sierte Personen miteinander kommunizieren können. WEP definiert zwei Arten der Authenapply to the IV fields and its subfields and to the ICV field. The key ID subfield contents select one of four
tifikation: Open System Authentication und Shared Key Authentication.
Die
Open
System
Authentication
ist Please
eine contact
sehr RSA
einfache
Authentifikation,
beiRC4der
die terms
zu
6Details
of the RC4
algorithm
are available from RSA.
for algorithm
details and the uniform
licensee
that
RSA
offers
to
anyone
wishing
to
use
RC4
for
the
purpose
of
implementing
the
IEEE
802.11
WEP
option.
If
necessary,
contact
the
authentifizierende Station – fortan Requestor genannt – einen Authentication Request an die
IEEE Standards Department Intellectual Property Rights Administrator for details on how to communicate with RSA.
authentifizierende Station – fortan Authenticator genannt – sendet. Der Authenticator kann
diesen Request akzeptieren oder ihn verwerfen. Worauf die Entscheidungsgrundlage des Authenticators
basiert ist im IEEE 802.11 Standard [1] nicht näher
definiert. Denkbar ist z.B.
Copyright © 1999 IEEE. All rights reserved.
64
eine Entscheidungsfindung auf Basis der MAC-Adresse des Requestors. Das Ergebnis der Authentifikation wird dem Requestor mittels einer Authentication Response vom Authenticator
mitgeteilt.
Etwas komplizierter läuft die Authentifikation bei der Shared Key Authentication ab. Die
Shared Key Authentication ist ein Challenge-Response Verfahren, bei dem der Requestor
an den Authenticator einen Authentication Request sendet. Der Authenticator antwortet
auf diesen Request mit einer Challenge, einem 128 Byte großen Datenstrom. Der Requestor verschlüsselt diese Challenge nach dem WEP Verfahren und sendet die verschlüsselte
Challenge an den Authenticator zurück. Der Authenticator prüft anschließend die empfangene verschlüsselte Challenge auf Gültigkeit und akzeptiert bzw. verwirft den Authentication
Request.
Weitere Details zur Authentifikation und den ausgetauschten Frames lassen sich [1] entnehmen.
3.3.3 Verschlüsselung
Das WEP Verfahren verwendet zur Verschlüsselung der sensieblen Daten den in Sektion
3.1 beschriebenen Verschlüsselungsalgorithmus RC4. Als Eingabe für den RC4-Algorithmus
dienen der Session Key K, sowie das zu verschlüsselnde Datenpaket M = hP, ICV i – eine
6
MEDIUM ACCESS CONTROL (MAC) AND PHYSICAL (PHY) SPECIFICATIONS
ISO/IEC 8802-11: 1999(E)
ANSI/IEEE Std 802.11, 1999 Edition
Referring to Figure 44 and viewing from left to right, encipherment begins with a secret key that has been
distributed to cooperating STAs by an external key management service. WEP is a symmetric algorithm in
which the same key is used for encipherment and decipherment.
Figure 44—WEP encipherment block diagram
Abbildung 4: Schemabild WEP-Verschlüsselung
The secret key is concatenated with an initialization vector (IV) and the resulting seed is input to a PRNG. The
[1,
Figure
44]a key sequence k of pseudorandom octets equal in length to the number of data octets that are to
PRNG
outputs
be transmitted in the expanded MPDU plus 4 [since the key sequence is used to protect the integrity check value
(ICV) as well as the data]. Two processes are applied to the plaintext MPDU. To protect against unauthorized
Konkatenation
Klartextes
P mit
seiner
Prüfsumme
(siehe Abbildung
4):
data modification, des
an integrity
algorithm
operates
onCRC-32
P to produce
an ICV. Encipherment
is then accomplished
by mathematically combining the key sequence with the plaintext concatenated with the ICV. The output of the
C and
=R
⊕M
process is a message containing the IV
ciphertext.
⇔ C = R(I(K), l) ⊕ M
(3)
The WEP PRNG is the critical⇔component
of this process,
C = R(I(K),
l) ⊕ hP,since
ICVititransforms a relatively short secret key
into an arbitrarily long key sequence. This greatly simplifies the task of key distribution, as only the secret
C =STAs.
R(I(hIV,
CSKi),
hP, C32
(P )i of the secret key and prokey needs to be communicated⇔
between
The IV
extendsl)the⊕useful
lifetime
vides the self-synchronous property of the algorithm. The secret key remains constant while the IV changes
Die Verwendung
IVs zur
Verschlüsselung
ist wichtig,
ohne
der Algorithmus
von
periodically.
Each neweines
IV results
in a new
seed and key sequence,
thus da
there
is a ihn
one-to-one
correspondence
einem
konstanten
Schlüssel,
dem
CSK,
abhängen
und
dies
die
chiffrierten
Daten
sehr
anfällig
between the IV and k. The IV may be changed as frequently as every MPDU and, since it travels with the
message,
receiver will
always be
able to decipher
message. The IV is
transmitted
in the clear sincedes
it
für
eine the
statistische
Analyse
machen
würde. any
Nichtsdestotrotz
stellt
die Konkatenation
doesund
not provide
an attacker
with any information
about
secret
key, and since
value must
be known
by
IVs
des CSKs
eine erhebliche
Schwäche
im the
WEP
Verfahren
da, its
worauf
wir in
4.3 näher
the recipient
in order to perform the decryption.
eingehen
werden.
Des Weiteren sei an dieser Stelle darauf hingewiesen, dass der IEEE 802.11 Standard [1]
When choosing how often to change IV values, implementors should consider that the contents of some
nicht
definiert, auf welche Art und Weise der Initialization Vector erzeugt werden muss und wie
fields in higher-layer protocol headers, as well as certain other higher-layer information, is constant or
häufig
ein IV zur Verschlüsselung von einer Station in aufeinanderfolgenden Frames verwendet
highly predictable. When such information is transmitted while encrypting with a particular key and IV, an
werden
darf.can
Dass
IV-Kollisionen
– also
daskey
mehrfache
Verwenden
eines
IVs
Chiffrierung
eavesdropper
readily
determine portions
of the
sequence generated
by that
(key,
IV)zur
pair.
If the same
der
Daten
–
auftreten,
ist
anhand
der
bei
WEP
vorgegebenen
Größe
von
24
bit
offensichtlich.
(key, IV) pair is used for successive MPDUs, this effect may substantially reduce the degree of privacy conferred by the WEP algorithm, allowing an eavesdropper to recover a subset of the user data without any
knowledge
of the secret key. Changing the IV after each MPDU is a simple method of preserving the effec3.3.4
Entschlüsselung
tiveness of WEP in this situation.
Das Dechiffrieren eines erhaltenen Frames erfolgt völlig analog zur Verschlüsselung. Die Station
entnimmt
dem
empfangenen
Frame
und ICV)
konkateniert
diesen
The WEP
algorithm
is applied
to the frame
body den
of an Initialization
MPDU. The (IV,Vector
frame body,
triplet forms
the
actual
datazu
to verwendenden
be sent in the dataCSK,
frame.um den zur Entschlüsselung notwendigen Session Key K 0 zu
mit
dem
erhalten. Auf Basis dieses Schlüssels erzeugt der Empfänger den pseudo-zufälligen Bytestrom
0 und
0 , um the
For
WEPverknüpft
protected frames,
the first four octets
of the
frame body
contain
field for the Nachricht
MPDU. ThisD
R
die verschlüsselten
Daten
C XOR
mit R
dieIV
dechiffrierte
field is defined in 8.2.5. The PRNG seed is 64 bits. Bits 0 through 23 of the IV correspond to bits 0 through
zu erhalten (siehe Abbildung 5):
23 of the PRNG seed, respectively. Bits 0 through 39 of the secret key correspond to bits 24 through 63 of
the PRNG seed, respectively. The bit and octet numbering0 conventions in 7.1.1 apply to the PRNG seed,
D =R ⊕C
secret key, and IV. The numbering of the octets of the PRNG seed corresponds to that of the RC4 key. The
0
⇔ is followed byDthe
= ICV.
R(I(K
l) ⊕ICV
C is 32 bits. The WEP Integrity
IV is followed by the MPDU, which
The ),
WEP
0
Check algorithmUnter
is CRC-32,
as
defined
in
7.1.3.6.
Verwendung von (3): D = R(I(K ), l) ⊕ [R(I(K), l) ⊕ M ]
⇔
D = [R(I(K 0 ), l) ⊕ R(I(K), l)] ⊕ M
Für K 0 = K folgt hieraus:
D = [R(I(K), l) ⊕ R(I(K), l)] ⊕ M
As stated previously, WEP combines k with P using bitwise XOR.
⇔
Copyright © 1999 IEEE. All rights reserved.
D = M = hP, IV Ci = hP, C32 (P )i
7
63
Referring to Figure 45 and viewing from left to right, decipherment begins with the arrival of a message. The
IV of the incoming message shall be used to generate the key sequence necessary to decipher the incoming
message. Combining the ciphertext with the proper key sequence yields the original plaintext and ICV. Correct decipherment shall be verified by performing the integrity check algorithm on the recovered plaintext
and comparing the output ICV’ to the ICV transmitted with the message. If ICV’ is not equal to ICV, the
received MPDU is in error and an error indication is sent to MAC management. MSDUs with erroneous
MPDUs (due to inability to decrypt) shall not be passed to LLC.
Figure 45—WEP decipherment block diagram
Abbildung 5: Schemabild WEP-Entschlüsselung
WEP45]
algorithm specification
[1,8.2.4
Figure
WEP uses the RC4 PRNG algorithm from RSA Data Security, Inc.6
Die Korrektheit der empfangenen, entschlüsselten Daten verifiziert das WEP Verfahren
8.2.5die
WEP
Frame
Body
expansion
über
32 bit
breite
ICV.
Hierbei wird der CRC-32 Algorithmus auf die soeben dechiffrierten
Daten D angewendet, um die Prüfsumme ICV 0 zu errechnen. Gilt ICV = ICV 0 , so handelt es
Figure
shows
the encrypted
Frame Body as constructed
by the WEP
algorithm.
sich
um46
eine
erfolgreiche
Entschlüsselung
integerer Daten
und die
empfangenen Daten können
weiter verarbeitet werden. Ist dies nicht der Fall, so sollen die entschüsselten Daten laut [1]
verworfen werden.
3.3.5 Datenintegrität
Zur Wahrung der Datenintegrität berechnet das WEP Verfahren eine CRC-32 Prüfsumme,
wie in Sektion 3.2 beschrieben, über der Protocol Data Unit. Die berechnete Prüfsumme wird
zusammen mit den Daten WEP-verschlüsselt über das Funknetz übertragen.
Da es sich bei CRC jedoch um einen linearen Algorithmus handelt, lässt sich relativ einfach
bestimmen, welche Prüfsummenbits bei einer Modifikation der Datenbits verändert werden
müssen, um wieder eine gültige Prüfsumme zu erhalten. Hierdurch ergeben sich zusammen
mit anderen Schwachstellen Angriffsmöglichkeiten auf das WEP Verfahren, auf die wir in 4.5
näher eingehen werden.
4 DesignfehlerFigure 46—Construction of expanded WEP Frame Body
4.1 Shared Key Authentication
The WEP ICV shall be a 32-bit field containing the CRC-32, as defined in 7.1.3.6 calculated over the Data
(PDU)
depicted in Figure
46. Thedas
expanded
Body shall
a 32-bit IV field
immediately
Wie
in field
3.3.2asbeschrieben,
definiert
WEPFrame
Verfahren
zweiinclude
Möglichkeiten
der Authentifipreceding
the
original
Frame
Body.
This
field
shall
contain
three
subfields:
a
three-octet
field
that
contains
kation: Open System Authentication und Shared Key Authentication. Beim Betrachten
der
the initialization vector, a 2-bit key ID field, and a 6-bit pad field. The ordering conventions defined in 7.1.1
Mechanismen mag es den Eindruck erwecken, als sei die Open System Authentication das
apply to the IV fields and its subfields and to the ICV field. The key ID subfield contents select one of four
vermeindlich schwächere Verfahren, da sich eine Station hierbei nicht wirklich selbst authen6Details ofwohingegen
tifiziert,
dies
beim Challenge-Response
Verfahren
Shared
Authentication
the RC4 algorithm
are available
from RSA. Please contact RSA
for algorithmder
details
and the Key
uniform
RC4 licensee terms
thatFall
RSA offers
to anyone Schluß
wishing to trügt.
use RC4 for the purpose of implementing the IEEE 802.11 WEP option. If necessary, contact the
der
ist. Dieser
IEEE Standards Department Intellectual Property Rights Administrator for details on how to communicate with RSA.
Bei der Shared Key Authentication wird die Challenge vom Authenticator als Klartext über
das Netzwerk übertragen, folglich kann es von einem Angreifer problemlos gelesen und gespeichert
im Klartext. Authentifiziert
Copyright © 1999 IEEE. All rights reserved.
64 werden. Der Angreifer verfügt nun über Pc , die Challenge
sich nun eine Station am Access Point, so sendet sie die Challenge Pc WEP-verschlüsselt an
den AP zurück. Wir erinnern uns: Cc = R ⊕ Pc – die verschlüsselte Challenge. Auch dieses
verschlüsselte Frame kann nun vom Angreifer problemlos gelesen und gespeichert werden, wo-
8
mit der Angreifer sowohl über Pc , als auch Cc verfügt und damit unmittelbar den Bytestrom
R herleiten kann: R = Cc ⊕ Pc . Hierdruch verfügt der Angreifer nun über den Bytestrom
R und den dazugehörigen IV, kann sich auf Grund der festen Größe der Challenge von 128
Byte fortan folglich problemlos für jede gegebene Challenge am Netz authentifizieren, indem
er sie mit dem errechneten Bytestrom R XOR-verknüpft und beim Versenden der Antwort
den abgefangenen IV verwendet.
4.2 Manuelle Schlüsselverwaltung
Common Shared Keys müssen auf allen Stationen im Netz manuell konfiguriert werden. WEP
erlaubt die Konfiguration von maximal 4 CSKs. Um korrektes Chiffrieren und Dechiffrieren zu ermöglichen, müssen diese Schlüssel auf allen Stationen im Netz in der korrekten
Reihenfolge konfiguriert werden. Dies hat zur Folge, dass der administrative Aufwand zur
Schlüsselverwaltung bereits bei Netzwerken moderater Größe derart groß wird, dass die zur
Verschlüsselung verwendeten CSKs im Allgemeinen nur sehr selten bis gar nicht gewechselt
werden.
Dieser Umstand hat zusammen mit den in Sektion 3.3.3 erwähnten IV-Kollisionen zur Folge,
dass in einem Netzwerk mehrere Frames basierend auf dem selben Schlüssel K verschlüsselt
werden. Die Auswirkungen der Wiederverwendung von Schlüsseln werden im folgenden Abschnitt beschreiben.
4.3 Wiederverwendung von Schlüsseln
Wie in Sektion 3.3.3 beschrieben, setzt sich der geheime Schlüssel K beim WEP Verfahren
aus 24 bit Initialization Vector und 40 bzw. 104 bit CSK zusammen. Dies ist ein für den
RC4 Algorithmus – und Stromchiffren im Allgemeinen – typischer und wichtiger Ansatz,
da es sich bei RC4 um einen linearen Algorithmus handelt, der aus einem Schlüssel K einen
Byterstrom R erzeugt und damit den Klartext P verschlüsselt (siehe (1)). Würde man auf die
Verwendung eines IVs zur Erzeugung des Schlüssels K verzichten, so ergäbe sich K = CSK,
also C = R(I(CSK), l) ⊕ P , für jede zu verschlüsselnde Nachricht P . Angenommen ein
Angreifer fängt die so verschlüsselten Frames C1 , C2 , gehörend zu den Nachrichten P1 , P2 , ab,
so ergbit sich:
C1 = R ⊕ P 1 ∧ C2 = R ⊕ P 2
⇔ R = C1 ⊕ P 1 ∧ R = C2 ⊕ P 2
⇔ C1 ⊕ P 1 = C2 ⊕ P 2
⇔ C1 ⊕ C2 = P 1 ⊕ P 2
(4)
D.h. die verschlüsselten Nachrichten C1 , C2 geben Aufschluss auf den Klartext. Sollte man
bereits über Kenntnis eines Klartextes Pk verfügen, lässt sich aus (4) unmittelbar auf einen
unbekannten Klartext Pu schließen:
9
Ck ⊕ Cu = Pk ⊕ Pu
⇔ Ck ⊕ Cu ⊕ P k = P u
⇔ (R ⊕ Pk ) ⊕ (R ⊕ Pu ) ⊕ Pk = Pu
⇔ Pk ⊕ (R ⊕ R) ⊕ Pk ⊕ Pu = Pu
⇔ (Pk ⊕ Pk ) ⊕ Pu = Pu
⇔ Pu = Pu
Analog lässt sich natürlich auch auf den zur Verschlüsselung verwendeten Bytestrom R schließen und fortan jede mit K verschlüsselte Nachricht entschlüsseln, sowie beliebige Nachrichten
der Länge l unter Verwendung von R ohne Kenntnis über K chiffrieren.
Um dieses Problem zu Umgehen, sieht das WEP Verfahren die Verwendung eines Initialization Vectors vor, der zur Erzeugung des geheimen Schlüssels K verwendet wird. Dieser IV
ist, wie bereits erwähnt, jedoch nur 24 bit groß, d.h. es gibt insgesamt 224 = 16777216 IVs.
Das bedeutet, dass bei heutigen 802.11g Netzen mit einer maximalen Bitübertragungsrate
von 54 Mbit/s bei einer vollen Nutzung der Übertragungsrate mit 1500 Byte großen Frames
nach einer Stunde (5 Stunden bei 11 Mbit/s) garantiert Kollisionen auftreten, wenn die IVs
kontinuierlich inkrementiert werden. Werden die IVs zufällig aus dem Wertebereich [0; 224 ]
bestimmt, so treten begründet durch das Geburtstagsparadoxon Kollisionen bereits nach ca.
5000 anstatt ca. 16 Millionen Frames auf.
Zwar weist der IEEE 802.11 Standard [1] darauf hin, dass das Wiederverwenden von IVs
zu Sicherheitslücken führen kann, definiert jedoch nicht wie mit IV-Kollisionen umzugehen
ist bzw. welche Zeit- oder Frame-Intervalle zwischen zwei gleichen, aufeinanderfolgenden IVs
liegen müssen. Dies ist – in Verbindung mit einer fehlenden Schlüsselverwaltung – eine große
Schwachstelle des WEP Verfahrens, da Angreifer dadurch garantiert an mehrere, mit dem
gleichen Schlüssel chiffrierten Daten kommen und auf Grund der oben genannten Funktionsweise des RC4 Algorithmus so Rückschlüsse auf den Klartext ziehen können.
Durch dieses Verhalten tun sich einige Angriffsmöglichkeiten gegen WEP auf. Beispielhaft
möchten wir an dieser Stelle die Praktikabilität eines Angriffsverfahrens beschreiben, das als
Known-Plaintext Attacke bekannt ist. Wie der Name andeutet, geht man bei diesem Verfahren
davon aus, dass man den Klartext zu einem verschlüsselten Text kennt und dadurch auf den
zur Verschlüsselung verwendeten Bytestrom schließen kann.
Da Funknetze häufig auf irgend eine Art und Weise mit dem Internet verbunden sind, ist
diese Attacke mit relativ wenig Aufwand durchführbar. Nehmen wir an, es gäbe innerhalb eines WEP-geschützten Funknetzes eine Station V mit IP-Adresse x und der Angreifer verfüge
über einen an das Internet angeschlossenen Rechner I mit IP-Adresse y. Des Weiteren werde
ICMP nicht gefiltert. Der Angreifer kann nun beliebig große ICMP-Pakete mit Sender-Adresse
y und Ziel-Adresse x versenden. Diese Pakete kann er im Klartext auf I speichern und gleichzeitig die verschlüsselten Daten im Funknetz abhören. Wählt der Angreifer eine hinreichend
auffällige Paketegröße nahe dem technischen Maximum – sehr einfach bestimmbar durch eine
Analyse der im Funknetz übertragenen Framegrößen –, so kann er die ihm bekannten Frames
mit hoher Wahrscheinlichkeit identifizieren.
Die so gewonnen verschlüsselten Informationen kann er zusammen mit dem IV nutzen,
um sich den Bytestrom R zu errechnen. Mit etwas Geduld lässt sich auf diese Weise eine
10
Datenbank aufbauen, die zu jedem IV einen Bytestrom R kennt. Der Speicherbedarf einer
derartigen Datenbank beläuft sich auf realistisch 224 × 1500 Byte = 23 GB bzw. maximal
224 × 2312 Byte = 36 GB.
4.4 Schwache Schlüssel
Wenngleich diese Schwachstelle unserer Meinung nach nicht als Designfehler des WEP Verfahrens zu sehen ist, sondern vielmehr eine Schwachstelle im RC4 Key-Scheduling Algorithmus
darstellt, die erst nach der Standardisierung von 802.11 entdeckt wurde, möchten wir sie der
Vollständigkeit wegen an dieser Stelle dennoch kurz anführen, da sie als Grundlage der in
kurzer Zeit durchführbaren Angriffe auf WEP dient. Eine genaue Erläuterung der schwachen
Schlüssel und der Schwachstelle im RC4-Algorithmus lässt sich [3], [4] und [5] entnehmen.
Schwache Schlüssel beginnen zum Beispiel mit dem Muster (x + 3, 255, n, . . .), wobei x
das zu attackierende Byte des CSK kennzeichnet und n beliebig ist. Ein derartiger Schlüssel
erlaubt Rückschlüsse auf das Byte x des CSK, sofern die ersten w ≤ x Bytes des Bytestroms
bekannt sind.
Man beachte, dass die Schwäche also im gewählten IV zu suchen ist und daher vom Angreifer sehr leicht identifiziert werden kann. Die notwendigen ersten Bytes sind im Allgemeinen
gegeben, da die ersten acht verschlüsselten Bytes eines 802.11 WEP Frames aus dem Ethernet
LLC/SNAP-Header bestehen.
4.5 Gezielte Datenmanipulation
WEP nutzt zur Sicherung der Datenintegrität das CRC-32 Verfahren. CRC-32 ist kein kryptographisch sicheres Verfahren, sondern ein in Hard- und Software einfach zu implementierender
Algorithmus, der es ermöglicht, durch die Übertragung in fehlerbehafteten Übertragungskanälen entstandene Bitfehler zu erkennen. Bei CRC-32 handelt es sich jedoch, wie bei RC4, um
einen linearen Algorithmus, d.h.:
C32 (P1 ) ⊕ C32 (P2 ) = C32 (P1 ⊕ P2 )
Dieses Verhalten des CRC-32 Algorithmus lässt sich dazu verwenden, im Zusammenspiel
mit RC4 beliebige Stellen des Datenteils einer verschlüsselten Nachricht zu modifizieren und
gleichzeitig eine neue, gültige, verschlüsselte Checksumme zu errechnen, ohne den Bytestrom
R oder gar den Schlüssel K zu kennen.
Sei C eine abgefangene verschlüsselte Nachricht zum Klartext P und C 0 = C ⊕ hd, C32 (d)i
die um d modifizierte neue, verschlüsselte Nachricht zu P 0 . Dann folgt:
C 0 = C ⊕ hd, C32 (d)i
= (R ⊕ hP, ICV i) ⊕ hd, C32 (d)i
= (R ⊕ hP, C32 (P )i) ⊕ hd, C32 (d)i
= R ⊕ (hP, C32 (P )i ⊕ hd, C32 (d)i)
= R ⊕ hP ⊕ d, C32 (P ) ⊕ C32 (d)i
= R ⊕ hP ⊕ d, C32 (P ⊕ d)i
= R ⊕ hP 0 , C32 (P 0 )i
11
Wir können also durch Verwenden des XOR-Operators beliebige Änderungen an den zu
übertragenen Daten vornehmen. Dieses Verhalten erlaubt es uns, relativ einfach Datenverkehr
eines WLANs umzuleiten, um so an den Klartext eines Frames heranzukommen und damit
die Known-Plaintext Attacke durchzuführen. [6] erläutert wie man auf dieses Art und Weise
Ziel-Adressen im IP-Header modifizieren und WLAN-Netze attackieren kann.
4.6 Frame-Fragmentierung
Der IEEE 802.11 Standard [1] untstützt das Fragmentieren von WEP Paketen auf Ebene
2. Eine Station kann ein Frame in maximal 16 Frames fragmentieren und diese mit dem
gleichen Bytestrom R verschlüsselt über das Funknetz übertragen. Der Access Point wird
die übertragenen Frames empfangen, reassemblieren und als Ganzes weiterversenden. Auf
diese Art und Weise lassen sich Byteströme beliebiger Länge in sehr kurzer Zeit erzeugen, da
der Klartext des zusammengesetzten Frames bekannt ist und demzufolge der Bytestrom des
reassemblierten Frames berechnet werden kann. Diese Byteströme können sodann für weitere
Attacken genutzt werden.
Auch diesem Verfahren liegt zu Grunde, dass mindestens die ersten 8 verschlüsselten Byte
eines jeden 802.11 WEP Frames bekannt sind und somit als Ansatz genutzt werden können.
Eine genaue Beschreibung des zu Grunde liegenden Verfahren lässt sich [7] entnehmen.
4.7 Zu kurze Shared Keys
WEP verwendet 40 oder 104 bit breite Schlüssel, d.h. Schlüssel bestehend aus 5 oder 13
Zeichen, was zur Folge hat, dass brute-force Attacken auf die Schlüssel in akzeptabler Zeit
realisierbar sind. Ein derartiges Vorgehen kann besonders dann interessant sein, wenn man
bereits über eine Menge von IV/Bytestrom-Pärchen verfügt.
5 Fazit
Das Wired Equivalent Privacy Verfahren bietet keinen ausreichenden Schutz und sollte nicht
weiter zur Sicherung kabelloser Netze genutzt werden. Keine der geforderten Eigenschaften
– Authentizität, Abhörsicherheit, Datenintegrität – werden von WEP sichergestellt. Allen
Nutzern funkbasierter Netze empfehlen wir daher, ausschließlich WPA bzw. WPA2 gesicherte Netzwerke zu nutzen oder am besten innerhalb des Local Area Networks eine von einer
höheren Schicht zur Verfügung gestellten Verschlüsselung, wie zum Beispiel IPSec, einzusetzen.
Dass das WEP Verfahren heuer unzulänglich ist, demonstrierten zuletzt in beeindruckender
Weise Forscher der Technischen Universität Darmstadt. Sie entwarfen einen Algorithmus, um
mit sehr wenigen Daten in ein mit einem 104 bit starken Schlüssel geschütztes WEP-Netz in
weniger als 60s einzubrechen [2].
12
Literatur
[1] IEEE-SA Standards Board. ANSI/IEEE 802.11-1999 standard, http://standards.
ieee.org/getieee802/download/802.11-1999.pdf
[2] Erik Tews, Ralf-Philipp Weinmann, Andrei Pyshkin. Breaking 104 bit WEP in less than
60 seconds, Cryptology ePrint Archive, Report 2007/120, http://eprint.iacr.org/
2007/120
[3] Itsik Mantin. Analysis Of the RC4 stream cipher, Master thesis at The Weizmann Institute of Science, 2001, http://www.wisdom.weizmann.ac.il/~itsik/RC4/rc4.html
[4] Scott Fluhrer, Itsik Mantin, Adi Shamir. Weaknesses in the Key Scheduling Algorithm
of RC4, Lecture Notes In Computer Science; Vol. 2259, http://www.wisdom.weizmann.
ac.il/~itsik/RC4/Papers/Rc4_ksa.ps
[5] Scott Fluhrer, Itsik Mantin, Adi Shamir. Attacks On RC4 and WEP, Cryptobytes Vol.
5 No. 1, 2002, http://www.rsasecurity.com/rsalabs/cryptobytes/cryptobytes_
v5n2.pdf
[6] Nikita Borisov, Ian Goldberg, David Wagner. Intercepting Mobile Communications: The
Insecurity of 802.11, Proceedings of the 7th Annual International Conference on Mobile
Computing And Networking, July 16 - 21, 2001, http://www.isaac.cs.berkeley.edu/
isaac/mobicom.pdf
[7] Andrea Bittau, Mark Handley, Joshua Lackey. The Final Nail in WEP’s Coffin, Proceedings of the 2006 IEEE Symposium on Security and Privacy, 2006, http://tapir.cs.
ucl.ac.uk/bittau-wep.pdf
iii