ataku na ´ zle zaprojektowany algorytm szyfrowania
Mateusz Kwa´snicki Politechnika Wrocławska
Wykład habilitacyjny Warszawa, 25 pa´zdziernika 2012
• Słabo´sci standardu WEP
• Opis WEP i algorytmu RC4
• „Statystyczne” łamanie algorytmu RC4
Czym jest WEP
• W komputerowej lokalnej sieci kablowej wiadomo´sci słysz ˛a wszyscy u˙zytkownicy podł ˛aczeni do sieci.
• W nowszych instalacjach: (teoretycznie) wył ˛acznie nadawca, odbiorca i urz ˛adzenie po´srednicz ˛ace.
• W sieciach bezprzewodowych wiadomo´sci podsłucha´c mo˙ze ka˙zdy.
• W 1999 roku ustalono standard WEP (ang. Wired Equivalent Privacy), który miał zapewni´c poufno´s´c 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.
Idea WEP (1)
• Wiadomo´sci s ˛a szyfrowane za pomoc ˛a 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´sciowe.
Pierwsza słabo´s´c
Problem 1
Wszystkie osoby znaj ˛ace sekretny klucz (wszyscy u˙zyt- kownicy sieci) s ˛a w stanie odszyfrowa´c wiadomo´sci.
• Ten sam problem wyst˛epuje w sieciach kablowych.
• Rozwi ˛azanie: wykorzysta´c szyfrowanie asymetryczne lub tymczasowym kluczem.
Idea WEP (2)
• Na podstawie klucza generowany jest ci ˛ag bitów X.
• Szyfrogramem wiadomo´sci M jest M ⊕ X (⊕ oznacza sum˛e dwójkow ˛a).
• Suma dwójkowa ma du˙zo własno´sci algebraicznych.
• Do wiadomo´sci zawsze jest doł ˛aczana suma kontrolna CRC32.
• Urz ˛adzenia sieciowe zwykle informuj ˛a o wiadomo´sciach ze zł ˛a sum ˛a kontroln ˛a.
Druga słabo´s´c
Problem 2
Mo˙zna bajt po bajcie interakcyjnie odszyfrowa´c wiado- mo´s´c (atak „chop-chop”).
• Ten problem jest niezale˙zny od sposobu generowania X (tj. algorytmu RC4).
• Rozwi ˛azanie: stosowa´c inny algorytm wyznaczania sumy kontrolnej.
Trzecia słabo´s´c
Problem 3
Algorytm RC4 nie jest bezpieczny!
• Rozwi ˛azanie: stosowa´c inny algorytm szyfrowania.
• Wszystkie trzy kwestie s ˛a rozwi ˛azane w WPA2 (cz˛e´sciowo w WPA).
Historia ataków na WEP
• 2001: „FMS”
Scott R. Fluhrer, Itsik Mantin oraz Adi Shamir wskazuj ˛a bł ˛ad w RC4, który pozwala odtworzy´c klucz WEP.
• 2004: „KoreK”
Anonimowy autor KoreK istotnie usprawnia powy˙zsz ˛a technik˛e.
• 2004: „chop-chop”
KoreK ujawnia metod˛e „chop-chop”.
• 2007: „PTW”
Erik Tews, Ralf-Philipp Weinmann oraz Andrei Pyshkin jeszcze usprawniaj ˛a atak FMS.
Standard WEP
Oznaczenia:
• Wiadomo´s´cto ci ˛ag bitów M.
• Szyfrogramto M ⊕ X. („⊕” — suma dwójkowa)
• X to klucz.
• X = RC4(IV · RK). („·” — poł ˛aczenie ci ˛agów)
• IV to wektor inicjalizuj ˛acy(24 bity),
generowany dowolnie dla ka˙zdej wiadomo´sci.
• 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.
Obserwacja
• Je´sli znamy cz˛e´s´c wiadomo´sci M i podsłuchamy M ⊕ X, to mo˙zemy odtworzy´c cz˛e´s´c X.
• Wi˛ekszo´s´c wiadomo´sci ma ustalon ˛a struktur˛e i mo˙zemy odgadn ˛a´c pierwsze bity M.
• Wszystkie wiadomo´sci protokołów IP oraz ARP zaczynaj ˛a si˛e od 10101010!
• Mo˙zemy skłoni´c punkt dost˛epowy do generowania takich wiadomo´sci!
Wniosek
Atakuj ˛acy zna IV oraz pierwszych 8 bitów X dla ka˙zdej przesłanej wiadomo´sci.
Algorytm RC4
• Przypomnijmy: X = RC4(IV · RK).
• Oznaczmy K = IV · RK.
• Dzielimy K na bajty (bloki 8 bitów) i powtarzamy cyklicznie, aby uzyska´c K0, ..., K255.
• Przez 〈x〉 oznaczamy reszt˛e z dzielenia x przez 256.
• Algorytm RC4 składa si˛e z dwóch cz˛e´sci.
RC4 — cz˛e´s´c I
(1) Niech k0=0 orazσ0(i) = i dla i = 0, ..., 255.
(2) Dla n = 0, ..., 255 okre´slamy kn+1=¬kn+σn(n) +Kn
¶,
σn+1(kn+1) =σn(n), σn+1(n) =σn(kn+1),
σn+1(i) =σn(i) dla pozostałych i.
Algorytm RC4
• Po cz˛e´sci I:σ256jest permutacj ˛a {0, ..., 255}.
RC4 — cz˛e´s´c II (1) Niech j256=0.
(2) Dla n = 256, 257, ... okre´slamy jn+1= jn+σn〈n + 1〉,
σn+1〈jn+1〉 =σn〈n + 1〉, σn+1〈n + 1〉 =σn〈jn+1〉,
σn+1(i) =σn(i) dla pozostałych i, Xn−256=σn+1¬σn+1〈n + 1〉 +σn+1〈jn+1〉¶.
Przypomnienie
Cel
Poznanie klucza głównego RK. (Umo˙zliwi to np. rozszy- frowanie wszystkich podsłuchanych wiadomo´sci.)
Dla ka˙zdej podsłuchanej wiadomo´sci znamy:
• pierwszy bajt klucza X, tj. X0,
• ci ˛ag inicjalizacyjny IV, tj. K0,K1,K2(bo K = IV · RK).
Poka˙zemy, jak odgadn ˛a´c pierwszy bajt RK.
Wtedy dla ka˙zdej wiadomo´sci zna´c b˛edziemy:
• pierwszy bajt klucza X, tj. X0,
• ci ˛ag 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.
RC4 — cz˛e´s´c I
k0=0, σ0(i) = i, kn+1=¬kn+σn(n) +Kn
¶,
σn+1(kn+1) =σn(n), σn+1(n) =σn(kn+1),
σn+1(i) =σn(i) dla pozostałych i.
Analiza RC4
• Umiemy odtworzy´c pierwsze trzy kroki, tj. k3iσ3.
• Poka˙zemy, ˙ze (w´sród wybranych wiadomo´sci) ponadprzeci˛etnie cz˛esto X0=σ4(3).
• Wtedy X0=σ4(3) =σ3(k4).
• St ˛ad k4=σ−13 (X0).
• Zatem poznamy RK0=K3=〈k4− k3−σ3(3)〉.
• Je´sli X0=σ4(3), to wiadomo´s´c nazwiemyistotn ˛a.
RC4 — cz˛e´s´c I
k0=0, σ0(i) = i, kn+1=¬kn+σn(n) +Kn
¶,
σn+1(kn+1) =σn(n), σn+1(n) =σn(kn+1),
σn+1(i) =σn(i) dla pozostałych i.
Analiza RC4
• W n-tym krokuσzmienia si˛e na pozycji n i kn+1.
• k4, ..., k256 symuluj ˛a ci ˛ag losowy.
• Załó˙zmy, ˙ze s ˛a losowe.
• Dla i0∈ {0, 1, 2, 3}:
P(σ256(i0) =σ4(i0)) = (1 −2561 )252≈ 1e.
RC4 — cz˛e´s´c I
k0=0, σ0(i) = i, kn+1=¬kn+σn(n) +Kn
¶,
σn+1(kn+1) =σn(n), σn+1(n) =σn(kn+1),
σn+1(i) =σn(i) dla pozostałych i.
Analiza RC4
• Odrzucamywiadomo´s´c, je´sli j :=σ3(1) /∈ {0, 1, 2}.
• Ponadto odrzucamywiadomo´s´c, je´sli σ3(j) + j6= 3.
• Zostaje przeci˛etnie 2563 ·2561 ≈ 1 000 00045 wiadomo´sci.
• Pσ256(i) =σ4(i) dla i = 1, 3, j≈ (1e)3≈ 5%.
• P(σ3(1) =σ4(1) oraz σ3(j) =σ4(j)) = 254256.
Analiza RC4
Podsumujmy:
• nie odrzucili´smyok. 1 000 00045 wiadomo´sci;
• j :=σ3(1) ∈ {0, 1, 2};
• σ3(j) + j =3;
• z prawdopodobie´nstwem ok. 4,9%:
σ256(1) =σ4(1) =σ3(1) = j, σ256(j) =σ4(j) =σ3(j), σ256(3) =σ4(3).
RC4 — cz˛e´s´c II
σ257(σ256(1)) =σ256(1), σ257(1) =σ256(σ256(1)),
σ257(i) =σ256(i) dla pozostałych i.
X0=σ257¬σ256(σ256(1)) +σ256(1)¶.
Analiza RC4
• Dla ok. 4,9% spo´sródnieodrzuconychwiadomo´sci:
σ256(1) = j, σ256(j) =σ3(j), σ256(3) =σ4(3) oraz j ∈ {0, 1, 2} iσ3(j) + j =3.
• Zatem X0=σ257〈σ3(j) + j〉 =σ257(3).
• Skoroσ256(1) = j 6= 3,σ257(3) =σ256(3) =σ4(3).
• Wobec tego wiadomo´s´c jestistotna.
Analiza RC4
Wniosek
W´sródnieodrzuconych wiadomo´sciistotnychjest ok.
4,9%. Innymi słowy wzór:
RK0=¬σ−1
3 (X0)− k3−σ3(3)¶ (?) zachodzi w ok. 4,9% przypadków.
(Nieodrzuconychwiadomo´sci jest ok. 1 000 00045 .) Podobnie uzasadnia si˛e, ˙ze dla pozostałych ok. 95,1%
nieodrzuconychwiadomo´sci prawa strona (?) ma mniej wi˛ecej równomierny rozkład na {0, ..., 255}.
Obserwuj ˛ac dostatecznie wiele wiadomo´sci i badaj ˛ac empiryczny rozkład prawej strony (?), odgadujemy RK0.
Analiza RC4
Uwagi:
• Wiadomo´sci wykorzystane do odgadni˛ecia RK0
mo˙zna wykorzysta´c ponownie do odgadywania RK1, RK2 itd.
• Przy 5 000 000 wiadomo´sci mamy ok. 50% szans powodzenia (wynik eksperymentalny).
• Poniewa˙z k4, ..., k256 nie s ˛a losowe, czasem atak zawodzi nawet przy du˙zej liczbie wiadomo´sci.
• Usprawnione wersje powy˙zszej techniki wymagaj ˛a zaledwie ok. 50 000 wiadomo´sci dla 95% szans powodzenia (wynik eksperymentalny).
• Do przeprowadzenia ataku wystarczy np. telefon z systemem Android i kilkana´scie sekund.
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)