Wi‑Fi podatne na atak – tak działa KRACK. Linux i Android szczególnie zagrożone
Mathy Vanhoef z uniwersytetu KU Leuven przedstawia szczegółoweinformacje dotyczące ataku KRACK – key reinstallation attack. Toprawdziwa katastrofa, największe od lat zagrożenie bezpieczeństwasieci bezprzewodowych, działające przeciwko wszystkim współczesnymsieciom Wi-Fi. Udany KRACK pozwala napastnikom na wykradaniewrażliwych informacji, wstrzykiwanie danych i manipulowanie nimi, ajego skutki są najbardziej dotkliwe dla urządzeń linuksowych i zAndroidem 6.0+.
16.10.2017 | aktual.: 16.10.2017 14:30
Jak wiadomo, handshake, czyli wymiana informacji między dwomaurządzeniami, jest integralną częścią procesu uwierzytelnienia wprotokole bezpieczeństwa WPA2. Kiedy klient chce dołączyć dozabezpieczonej sieci Wi-Fi, wymiana taka służy potwierdzeniu, żezarówno klient jak i punkt dostępowy posiadają właściwe daneuwierzytelniające, tj. wstępnie rozprowadzone hasło sieci.Wykorzystywana tu procedura 4-way handshake służy też dostworzenia klucza szyfrującego, który posłuży do zaszyfrowaniadalszego ruchu sieciowego.
KRACK polega na nakłonieniu ofiary do reinstalacji jużwykorzystywanego klucza. Oczywiste jest, że klucz powinien byćwykorzystany tylko jednorazowo. Protokół WPA2 tego jednak niezapewnia. Odpowiednio manipulując wiadomościami kontrolnymiprotokołu uwierzytelniania można zainstalować już wcześniejwykorzystywany klucz, co powoduje, że powiązane z nim parametry,takie jak numer transmisyjny pakietu (nonce) i numer odebranegopakietu (licznik odtworzeń) są resetowane do swojej startowejwielkości.
Szczegóły tego ataku zostały opisane w artykulept. Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2,który zostanie oficjalnie przedstawiony przez Vanhoefa podczaskonferencji Computer and Communications Security. Możemy jednakpokrótce wyjaśnić, co tu się właściwie dzieje.
Otóż podczas negocjowania nowego klucza szyfrującego, kluczzostaje zainstalowany po odebraniu trzeciej wiadomości z sekwencji.Sęk w tym, że nic nie gwarantuje odebrania wiadomości, może onaprzecież gdzieś zaginąć. Punkt dostępowy, jeśli nie otrzymawłaściwej odpowiedzi, wyśle trzecią wiadomość po raz kolejny.Klient może więc otrzymać tę wiadomość wielokrotnie, a zakażdym razem zainstaluje ten sam klucz szyfrujący, resetując przytym wartość nonce i licznika odtworzeń.
KRACK Attacks: Bypassing WPA2 against Android and Linux
Napastnik może więc wymusić resetowanie nonce, gromadząc iodtwarzając trzecią wiadomość uwierzytelniania 4-way handshake.Co się dzieje dalej zależy już od konkretnego rodzaju wymianyinformacji. Na przykład przeciwko AES-CCMP napastnik może odtwarzaćpakiety i je deszyfrować, przechwytując następnie pakiety TCP iwstrzykując w nie złośliwe dane. Przeciwko WPA-TKIP pakiety mogązostać odtworzone, odszyfrowane i sfałszowane. To samo dotyczynowego rozszerzenia GCMP dla sieci WiG, jak również ataków nagrupowy klucz, PeerKey, TDLS, szybkie handshake BSS oraz WNM SleepMode Response.
Dlaczego jednak zresetowanie nonce pozwala na odszyfrowaniedanych? Dochodzi otóż do sytuacji, w której ten sam kluczszyfrujący zostaje użyty z wartościami nonce, które już kiedyśbyły użyte. Oznacza to, że wszystkie protokoły szyfrujące WPA2korzystają z tego samego strumienia klucza przy szyfrowaniupakietów. Jeśli wiadomość ponownie zaszyfrowana tym samymstrumieniem kluczy ma znaną treść, to odtworzenie strumieniakluczy staje się trywialne. W praktyce nie jest trudno wymusićprzesłanie wiadomości o znanej treści, znane są też (trudnejednak) techniki odszyfrowania pakietów o treści nieznanej, alemożliwej do przewidzenia (tekst w języku naturalnym).
Na koniec mamy fatalną wiadomość dla użytkowników Androida iLinuksa. Oni zagrożeni są w sposób szczególny. Chodzi o to, żeautorzy klienta Wi-Fi wpa_supplicant, powszechnie używanego wLinuksie i Androidzie 6.0+, jakoś dziwnie wczytali się wspecyfikację standardu Wi-Fi. Mówi ona, że klucz szyfrujący mazostać usunięty z pamięci po jego pierwszym zainstalowaniu. Gdywpa_supplicant otrzyma ponownie wysłaną trzecią wiadomość wtrakcie 4-way handshake, zainstaluje zerowy klucz szyfrujący zamiastrzeczywistego – zerowy, ponieważ przed chwilą został wyzerowanyz pamięci. Oznacza to, że przechwytywanie i manipulowanie ruchemsieciowym wysyłanym przez urządzenia z Linuksem i Androidem jesttrywialne.
Zgłoszone przez badaczy łącznie 10 luk w WPA2 otrzymało numeryod CVE-2017-13077 do CVE-2017-13088. W gestii producentów pozostajeich wdrożenie. Pamiętajmy – to problem przede wszystkim postronie klientów. Większość routerów może nie potrzebowaćaktualizacji, co najwyżej dotyczyć one będą ich trybuklienckiego.
Poprawki wprowadzane do WPA2 zachowują wsteczną kompatybilność,więc załatany klient może wciąż rozmawiać z niezałatanympunktem dostępowym. Łatki po prostu zapewniają, że klucz jestinstalowany tylko raz. Czekajcie na aktualizacje – praktyczniewszystkie wspierane urządzenia i systemy powinny niebawem zostaćuodpornione na KRACK.