WEP: przykład statystycznego ataku na zle zaprojektowany algorytm

Transkrypt

WEP: przykład statystycznego ataku na zle zaprojektowany algorytm
WEP: przykład statystycznego
ataku na źle zaprojektowany
algorytm szyfrowania
Mateusz Kwaśnicki
Politechnika Wrocławska
Wykład habilitacyjny
Warszawa, 25 października 2012
Plan wykładu:
• Słabości standardu WEP
• Opis WEP i algorytmu RC4
• „Statystyczne” łamanie algorytmu RC4
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Czym jest WEP
• W komputerowej lokalnej sieci kablowej wiadomości
słysza˛ wszyscy użytkownicy podłaczeni
˛
do sieci.
• W nowszych instalacjach: (teoretycznie) wyłacznie
˛
nadawca, odbiorca i urzadzenie
˛
pośredniczace.
˛
• W sieciach bezprzewodowych wiadomości
podsłuchać może każdy.
• W 1999 roku ustalono standard WEP (ang. Wired
Equivalent Privacy), który miał zapewnić poufność
na poziomie sieci kablowych.
• Przy projektowaniu tego standardu popełniono
wiele bł˛
edów.
• Obecnie standardem jest WPA2 (ang. Wi-Fi
Protected Access 2), uznawany za bezpieczny.
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Idea WEP (1)
• Wiadomości sa˛ szyfrowane za pomoca˛ sekretnego
klucza, znanego tylko osobom uprawnionym.
• Ten sam klucz jest wykorzystywany do
uwierzytelnienia oraz szyfrowania.
• Szyfrowanie (algorytm RC4) jest symetryczne.
• Powód: wzgl˛
edy wydajnościowe.
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Pierwsza słabość
Problem 1
Wszystkie osoby znajace
˛ sekretny klucz (wszyscy użytkownicy sieci) sa˛ w stanie odszyfrować wiadomości.
• Ten sam problem wyst˛
epuje w sieciach kablowych.
• Rozwiazanie:
˛
wykorzystać szyfrowanie
asymetryczne lub tymczasowym kluczem.
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Idea WEP (2)
• Na podstawie klucza generowany jest ciag
˛ bitów X.
• Szyfrogramem wiadomości M jest M ⊕ X
(⊕ oznacza sum˛
e dwójkowa).
˛
• Suma dwójkowa ma dużo własności algebraicznych.
• Do wiadomości zawsze jest dołaczana
˛
suma
kontrolna CRC32.
• Urzadzenia
˛
sieciowe zwykle informuja˛ o
wiadomościach ze zła˛ suma˛ kontrolna.
˛
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Druga słabość
Problem 2
Można bajt po bajcie interakcyjnie odszyfrować wiadomość (atak „chop-chop”).
• Ten problem jest niezależny od sposobu
generowania X (tj. algorytmu RC4).
• Rozwiazanie:
˛
stosować inny algorytm wyznaczania
sumy kontrolnej.
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Trzecia słabość
Problem 3
Algorytm RC4 nie jest bezpieczny!
• Rozwiazanie:
˛
stosować inny algorytm szyfrowania.
• Wszystkie trzy kwestie sa˛ rozwiazane
˛
w WPA2
(cz˛
eściowo w WPA).
Bł˛
edy w standardzie
WEP i RC4
Historia ataków na WEP
• 2001: „FMS”
Scott R. Fluhrer, Itsik Mantin oraz Adi Shamir
wskazuja˛ bład
˛ w RC4, który pozwala odtworzyć
klucz WEP.
• 2004: „KoreK”
Anonimowy autor KoreK istotnie usprawnia
powyższa˛ technik˛
e.
• 2004: „chop-chop”
KoreK ujawnia metod˛
e „chop-chop”.
• 2007: „PTW”
Erik Tews, Ralf-Philipp Weinmann oraz Andrei
Pyshkin jeszcze usprawniaja˛ atak FMS.
Łamanie RC4
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Standard WEP
Oznaczenia:
• Wiadomość to ciag
˛ bitów M.
• Szyfrogram to M ⊕ X.
(„⊕” — suma dwójkowa)
• X to klucz.
• X = RC4(IV · RK).
(„·” — połaczenie
˛
ciagów)
˛
• IV to wektor inicjalizujacy
˛ (24 bity),
generowany dowolnie dla każdej wiadomości.
• RK to sekretny klucz główny (104 bity)
Algorytm:
• Nadawca wybiera IV, oblicza X = RC4(IV · RK)
i przesyła (IV, M ⊕ X).
• Odbiorca wyznacza X = RC4(IV · RK)
i oblicza M = (M ⊕ X) ⊕ X.
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Obserwacja
• Jeśli znamy cz˛
eść wiadomości M i podsłuchamy
M ⊕ X, to możemy odtworzyć cz˛
eść X.
• Wi˛
ekszość wiadomości ma ustalona˛ struktur˛
ei
możemy odgadnać
˛ pierwsze bity M.
• Wszystkie wiadomości protokołów IP oraz ARP
zaczynaja˛ si˛
e od 10101010!
• Możemy skłonić punkt dost˛
epowy do generowania
takich wiadomości!
Wniosek
Atakujacy
˛ zna IV oraz pierwszych 8 bitów X dla każdej
przesłanej wiadomości.
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Algorytm RC4
• Przypomnijmy: X = RC4(IV · RK).
• Oznaczmy K = IV · RK.
• Dzielimy K na bajty (bloki 8 bitów) i powtarzamy
cyklicznie, aby uzyskać K0 , ..., K255 .
• Przez 〈x〉 oznaczamy reszt˛
e z dzielenia x przez 256.
• Algorytm RC4 składa si˛
e z dwóch cz˛
eści.
RC4 — cz˛
eść I
(1) Niech k0 = 0 oraz σ0 (i) = i dla i = 0, ..., 255.
(2) Dla n = 0, ..., 255 określamy
¬
¶
kn+1 = kn + σn (n) + Kn ,

σn+1 (kn+1 ) = σn (n),
σ
(n) = σn (kn+1 ),
 n+1
σn+1 (i) = σn (i)
dla pozostałych i.
Bł˛
edy w standardzie
WEP i RC4
Algorytm RC4
• Po cz˛
eści I: σ256 jest permutacja˛ {0, ..., 255}.
RC4 — cz˛
eść II
(1) Niech j256 = 0.
(2) Dla n = 256, 257, ... określamy
jn+1 = jn + σn 〈n + 1〉,

σn+1 〈jn+1 〉 = σn 〈n + 1〉,
σ
〈n + 1〉 = σn 〈jn+1 〉,
 n+1
σn+1 (i) = σn (i)
dla pozostałych i,
¬
¶
Xn−256 = σn+1 σn+1 〈n + 1〉 + σn+1 〈jn+1 〉 .
Łamanie RC4
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Przypomnienie
Cel
Poznanie klucza głównego RK. (Umożliwi to np. rozszyfrowanie wszystkich podsłuchanych wiadomości.)
Dla każdej podsłuchanej wiadomości znamy:
• pierwszy bajt klucza X, tj. X0 ,
• ciag
˛ inicjalizacyjny IV, tj. K0 , K1 , K2 (bo K = IV · RK).
Pokażemy, jak odgadnać
˛ pierwszy bajt RK.
Wtedy dla każdej wiadomości znać b˛
edziemy:
• pierwszy bajt klucza X, tj. X0 ,
• ciag
˛ inicjalizacyjny IV, tj. K0 , K1 , K2 (bo K = IV · RK),
• pierwszy bajt RK, tj. K3 = RK0
i w analogiczny sposób odgadniemy RK1 , potem RK2 itd.
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Analiza RC4
RC4 — cz˛
eść I
k0 = 0,
σ0 (i) = i,

σn+1 (kn+1 ) = σn (n),
σ
(n) = σn (kn+1 ),
 n+1
σn+1 (i) = σn (i)
¬
¶
kn+1 = kn + σn (n) + Kn ,
dla pozostałych i.
• Umiemy odtworzyć pierwsze trzy kroki, tj. k3 i σ3 .
• Pokażemy, że (wśród wybranych wiadomości)
ponadprzeci˛
etnie cz˛
esto X0 = σ4 (3).
• Wtedy X0 = σ4 (3) = σ3 (k4 ).
• Stad
˛ k4 = σ3−1 (X0 ).
• Zatem poznamy RK0 = K3 = 〈k4 − k3 − σ3 (3)〉.
• Jeśli X0 = σ4 (3), to wiadomość nazwiemy istotna.
˛
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Analiza RC4
RC4 — cz˛
eść I
k0 = 0,
σ0 (i) = i,

σn+1 (kn+1 ) = σn (n),
σ
(n) = σn (kn+1 ),
 n+1
σn+1 (i) = σn (i)
¬
¶
kn+1 = kn + σn (n) + Kn ,
dla pozostałych i.
• W n-tym kroku σ zmienia si˛
e na pozycji n i kn+1 .
• k4 , ..., k256 symuluja˛ ciag
˛ losowy.
• Załóżmy, że sa˛ losowe.
• Dla i0 ∈ {0, 1, 2, 3}:
P(σ256 (i0 ) = σ4 (i0 )) = (1 −
1 252
)
256
≈ 1e .
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Analiza RC4
RC4 — cz˛
eść I
k0 = 0,
σ0 (i) = i,

σn+1 (kn+1 ) = σn (n),
σ
(n) = σn (kn+1 ),
 n+1
σn+1 (i) = σn (i)
¬
¶
kn+1 = kn + σn (n) + Kn ,
dla pozostałych i.
• Odrzucamy wiadomość, jeśli j := σ3 (1) ∈
/ {0, 1, 2}.
• Ponadto odrzucamy wiadomość, jeśli σ3 (j) + j 6= 3.
1
45
3
• Zostaje przeci˛
etnie 256
· 256
≈ 1 000
wiadomości.
000
€
Š
•
P σ256 (i) = σ4 (i) dla i = 1, 3, j ≈ ( 1e )3 ≈ 5%.
•
P(σ3 (1) = σ4 (1) oraz σ3 (j) = σ4 (j)) =
254
.
256
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Analiza RC4
Podsumujmy:
• nie odrzuciliśmy ok.
• j := σ3 (1) ∈ {0, 1, 2};
45
1 000 000
wiadomości;
• σ3 (j) + j = 3;
• z prawdopodobieństwem ok. 4,9%:
σ256 (1) = σ4 (1) = σ3 (1) = j,
σ256 (j) = σ4 (j) = σ3 (j),
σ256 (3) = σ4 (3).
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Analiza RC4
• Dla ok. 4,9% spośród nieodrzuconych wiadomości:
σ256 (1) = j,
σ256 (j) = σ3 (j),
σ256 (3) = σ4 (3)
oraz j ∈ {0, 1, 2} i σ3 (j) + j = 3.
RC4 — cz˛
eść II

σ257 (σ256 (1)) = σ256 (1),
σ (1) = σ256 (σ256 (1)),
 257
σ257 (i) = σ256 (i)
dla pozostałych i.
¬
¶
X0 = σ257 σ256 (σ256 (1)) + σ256 (1) .
• Zatem X0 = σ257 〈σ3 (j) + j〉 = σ257 (3).
• Skoro σ256 (1) = j 6= 3, σ257 (3) = σ256 (3) = σ4 (3).
• Wobec tego wiadomość jest istotna.
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Analiza RC4
Wniosek
Wśród nieodrzuconych wiadomości istotnych jest ok.
4,9%. Innymi słowy wzór:
¬
¶
RK0 = σ3−1 (X0 ) − k3 − σ3 (3)
(?)
zachodzi w ok. 4,9% przypadków.
(Nieodrzuconych wiadomości jest ok.
45
.)
1 000 000
Podobnie uzasadnia si˛
e, że dla pozostałych ok. 95,1%
nieodrzuconych wiadomości prawa strona (?) ma
mniej wi˛
ecej równomierny rozkład na {0, ..., 255}.
Obserwujac
˛ dostatecznie wiele wiadomości i badajac
˛
empiryczny rozkład prawej strony (?), odgadujemy RK0 .
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Analiza RC4
Uwagi:
• Wiadomości wykorzystane do odgadni˛
ecia RK0
można wykorzystać ponownie do odgadywania
RK1 , RK2 itd.
• Przy 5 000 000 wiadomości mamy ok. 50% szans
powodzenia (wynik eksperymentalny).
• Ponieważ k4 , ..., k256 nie sa˛ losowe, czasem atak
zawodzi nawet przy dużej liczbie wiadomości.
• Usprawnione wersje powyższej techniki wymagaja˛
zaledwie ok. 50 000 wiadomości dla 95% szans
powodzenia (wynik eksperymentalny).
• Do przeprowadzenia ataku wystarczy np. telefon z
systemem Android i kilkanaście sekund.
Bł˛
edy w standardzie
WEP i RC4
Łamanie RC4
Korzystałem z:
M. Beck, E. Tews
Practical attacks against WEP and WPA
Proc. WiSec ’09 (2009): 79–86
E. Tews
Attacks on the WEP protocol
Cryptology ePrint Archive, Report 2007/471 (2007)

Podobne dokumenty