• Nie Znaleziono Wyników

WEP: przykład statystycznego ataku na ´zle zaprojektowany algorytm szyfrowania

N/A
N/A
Protected

Academic year: 2021

Share "WEP: przykład statystycznego ataku na ´zle zaprojektowany algorytm szyfrowania"

Copied!
22
0
0

Pełen tekst

(1)

ataku na ´ zle zaprojektowany algorytm szyfrowania

Mateusz Kwa´snicki Politechnika Wrocławska

Wykład habilitacyjny Warszawa, 25 pa´zdziernika 2012

(2)

Słabo´sci standardu WEP

Opis WEP i algorytmu RC4

„Statystyczne” łamanie algorytmu RC4

(3)

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.

(4)

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.

(5)

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.

(6)

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.

(7)

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.

(8)

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).

(9)

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.

(10)

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.

(11)

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.

(12)

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.

(13)

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.

(14)

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.

(15)

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.

(16)

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.

(17)

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.

(18)

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).

(19)

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.

(20)

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.

(21)

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.

(22)

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)

Cytaty

Powiązane dokumenty

Wyka˙z, ˙ze je´ sli stosunek promienia okregu wpisanego w tr´ ojkat prostokatny do promienia okregu opisanego na tym tr´ ojkacie jest r´ owny √.. 2 − 1, to tr´ ojkat ten jest

[r]

Metoda Clear( ) – zeruje określoną liczbę elementów tablicy (parametry: tablica, indeks początkowy, indeks końcowy). Array.Clear (tablica, 0, tabliaca.Length -1)

Wyprowadzanie danych przy użyciu konsoli do strumienia wyjściowego Out Console.Out..

Będą to metody statyczne, bo metoda main( ) z której będą one wywoływane jest

Je ˙zeli drugi gracz zaakceptuje propozycj ˛e, to dostaje kwot ˛e, na któr ˛ a si ˛e zgodził, a pierwszy gracz zachowuje reszt ˛e pieni ˛edzy.. Je ˙zeli drugi gracz

(b) Zak ladaj¸ ac, ˙ze rzeczywista ´ srednia waga pude lka proszku do prania wynosi 2,9 kg, wyzna- czy´ c prawdopodobie´ nstwo, ˙ze przeprowadzaj¸ ac test na poziomie istotno´

[r]