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)