W niecały rok od ogłoszenia przez Wi-Fi Alliance standardu WPA3 badacze Mathy Vanhoef oraz Eyal Ronen przeprowadzili jego analizę i wskazali szereg słabości. Wyjaśniamy, czy jest się czego obawiać i co można z tym zrobić.
Jedną z ważniejszych modyfikacji w WPA3 względem WPA2 miał być protokół uzgadniania połączenia (Dragonfly Handshake). Zmiany miały wyeliminować podatności ujawnione w WPA2 (m.in. WPA KRACK). Dragonfly miał uniemożliwić atakującym zarejestrowanie sesji uzgadniania hasła (4-Way Handshake) i uruchomienie ataku słownikowego w trybie offline. WPA3 wprowadził również perfect forward secrecy (PFS), który uniemożliwia atakującym odszyfrowanie analizowanego wstecznie historycznego ruchu sieciowego w sytuacji poznania hasła. Badacze przeanalizowali nowy protokół Dragonfly i dokonane odkrycia przedstawili w swojej publikacji, a także na specjalnie przygotowanej stronie internetowej. Pokazano, że całkiem nowy protokół uwierzytelniania posiada szereg słabości. W istocie to, co było przyczyną odejścia od WPA2 na rzecz WPA3 (problemy z uwierzytelnianiem), ujawniło się w nowej odsłonie.
Podkreślono, że upublicznienie informacji o słabościach odbyło się zgodnie z zasadami odpowiedzialnego ujawniania podatności (responsible disclosure). Badacze we współpracy z Wi-Fi Alliance oraz CERT/CC, w skoordynowany sposób, powiadomili wszystkich dostawców, których dotyczy problem.
WPA3 i Dragonfly
Wi-Fi Alliance uruchomiło WPA3 w dwóch wersjach: WPA3-Personal oraz WPA3-Enterprise. WPA3-Personal wykorzystuje protokół uwierzytelniania o nazwie Simultaneous Authentication of Equals (SAE), znany jako Dragonfly. Urządzenie WPA3-Personal używa go jako mechanizmu uzgadniania parametrów połączenia podczas komunikacji z innymi urządzeniami obsługującymi Wi-Fi. Naukowcy odkryli kilka możliwych ataków na protokół i niestety są to wady konstrukcyjne protokołu, a nie jego implementacji:
- CERT ID #VU871675: Downgrade attack against WPA3-Transtition mode leading to dictionary attacks.
- CERT ID #VU871675: Security group downgrade attack against WPA3’s Dragonfly handshake.
- CVE-2019-9494: Timing-based side-channel attack against WPA3’s Dragonfly handshake.
- CVE-2019-9494: Cache-based side-channel attack against WPA3’s Dragonfly handshake.
- CERT ID #VU871675: Resource consumption attack (i.e. denial of service) against WPA3’s Dragonfly handshake.
Odkryte słabości zostały nazwane Dragonblood. Można je podzielić na 3 kategorie.
Dragonblood – degradacja poziomu bezpieczeństwa
Jeden z błędów obniżenia wersji opiera się na wstecznej kompatybilności WPA3 z WPA2. Wsteczna kompatybilność została wprowadzona przez Wi-Fi Alliance, by ułatwić sprawniejsze przejście na urządzenia z obsługiwanym nowym protokołem.
Urządzenia WPA3 współpracujące z zestawem WPA2 używają trybu o nazwie WPA3-Transition. Osoba atakująca może zmusić urządzenia WPA3 korzystające z tego trybu do połączenia za pomocą WPA2 i przechwycenia części komunikacji uzgadniania WPA2, a pozyskane dane mogą zostać wykorzystane do odzyskania hasła Wi-Fi.
Dragonblood side-channel attack
W tym przypadku chodzi o zapewnienie atakującym wystarczającej ilości informacji, aby wydedukować hasło przy użyciu „kanału bocznego”, czyli danych wyciekających przypadkowo w ramach innego procesu.
Odkryto, że informacja o ilości czasu, której punkt dostępowy (access point, AP) potrzebuje na odpowiedź, może spowodować wyciek hasła. Gdy punkt dostępowy korzysta z grup zabezpieczeń opartych na krzywych eliptycznych, żadne informacje dotyczące taktowania nie są ujawniane. Jednak gdy AP obsługuje krzywe Brainpool lub grupy MODP, czas odpowiedzi zależy od użytego hasła. Atakujący może wykorzystać te informacje do przeprowadzenia ataku słownikowego, symulując, ile czasu zajmie przetworzenie każdego hasła przez AP i porównując je z obserwowanymi czasami.
Drugie odkrycie związane jest z obserwacją wzorców dostępu do pamięci na urządzeniu ofiary podczas konstruowania ramki w protokole Dragonfly. Wzorce te mogą ujawnić informacje o stosowanym haśle. Ich obserwowanie jest możliwe, jeśli atakujący kontroluje dowolną aplikację na urządzeniu ofiary (jako przykład podano kod JavaScript w przeglądarce ofiary). Ujawnione wzorce można następnie wykorzystać do przeprowadzenia ataku słownikowego, symulując wzorce dostępu do pamięci związane z odgadniętym hasłem i porównując je z tymi, które zmierzono.
Badacze przekonują, że podatności związane z analizą kanału bocznego (side-channel attack) można wykorzystać do siłowego poznania wszystkich 8-znakowych haseł z wykorzystaniem usługi Amazon EC2 za jedyne 125 dolarów.
Dragonblood – odmowa dostępu do usługi (DoS)
Urządzenie, które inicjuje połączenie w protokole Dragonfly, rozpoczyna od wysłania specjalnej ramki (commit frame) do drugiego urządzenia. Przetwarzanie tej ramki i generowanie odpowiedzi jest kosztowne obliczeniowo. W rezultacie atakujący może przeciążać punkty dostępu, generując zaledwie 16 sfałszowanych ramek na sekundę. Atak polegający na zużyciu zasobów powoduje wysokie zużycie procesora w punkcie dostępowym, wyczerpuje jego baterię, uniemożliwia lub opóźnia podłączanie innych urządzeń do punktu dostępowego za pomocą WPA3, a także może zatrzymać lub spowolnić inne funkcje punktu dostępowego.
Smocze narzędzia
Na dowód swoich odkryć naukowcy opublikowali w repozytorium GitHub cztery osobne narzędzia, które mogą być użyte do odtworzenia wyników ich analiz.
- Dragondrain – narzędzie, które można wykorzystać do przetestowania, do jakiego stopnia punkt dostępowy Wi-Fi jest podatny na ataki DoS przeciwko Dragonfly WPA3.
- Dragontime – eksperymentalne narzędzie do przeprowadzania ataków z kategorii timing-based side-channel attack.
- Dragonforce – eksperymentalne narzędzie, które pobiera informacje do pozyskania hasła po atakach z kategorii timing-based side-channel attack.
- Dragonslayer – narzędzie, które realizuje ataki na EAP-pwd.
Publikując te narzędzia, autorzy jednoznacznie informują, by nie spodziewać się ich łatwego wykorzystania w atakach na WPA3. Ataki te nie są trywialne do wykonania.
Wi-Fi Alliance ogłosiło w kwietniu aktualizację bezpieczeństwa standardu WPA3 po publicznym ujawnieniu przez Vanhoefa i Ronena błędów Dragonblood.
EAP-pwd umożliwia całkowite ominięcie autoryzacji
W ramach badań nad podatnościami nazwanymi Dragonblood naukowcy ujawnili poważne wady w EAP-pwd. Protokół EAP-pwd wewnętrznie również korzysta z protokołu uzgodnienia Dragonfly i zapewnia uwierzytelnianie na podstawie nazwy użytkownika i hasła w niektórych sieciach Wi-Fi (Enterprise). Odkryto, że EAP-pwd jest podatny na te same typy ataku, które ujawniono dla WPA3. Wykryte słabości mogą umożliwić osobie atakującej podszywanie się pod użytkownika i uzyskiwanie dostępu do sieci Wi-Fi bez znajomości jego hasła.
Wszystkie testowane implementacje EAP-pwd były podatne na ataki związane z nieprawidłową implementacją krzywych eliptycznych, kiedy poprzez wysłanie specjalnie spreparowanej krzywej atakujący może całkowicie ominąć uwierzytelnianie. Większość wdrożeń była również podatna na ataki odbicia (reflection attack). Poniżej lista ujawnionych luk:
- CERT ID #VU871675: Overview of attacks specific to hostapd and wpa_supplicant
- CVE-2019-9495: Cache-based side-channel attack against the EAP-pwd implementation of hostapd and wpa_supplicant.
- CVE-2019-9497: Reflection attack against the EAP-pwd implementation of hostapd and wpa_supplicant.
- CVE-2019-9498: Invalid curve attack against the EAP-pwd server of hostapd resulting in authentication bypass.
- CVE-2019-9499: Invalid curve attack against the EAP-pwd client of wpa_supplicant resulting in server impersonation.
- CVE-2019-11234: Reflection attack against the EAP-pwd implementation of FreeRADIUS.
- CVE-2019-11235: Invalid curve attack against the EAP-pwd server of FreeRADIUS resulting in authentication bypass.
Autorzy zweryfikowali istnienie podatności w takich usługach jak: FreeRADIUS, Radiator, Aruba’s EAP-pwd for Windows, iNet Wireless Daemon, Hostapd i wpa_supplicant. Obecnie do części z wymienionych rozwiązań zostały zaimplementowane poprawki eliminujące opisane problemy. Szczegóły można odnaleźć na stronie informacyjnej Dragonblood.
Nowe możliwości ataku
W sierpniu 2019 badacze ujawnili kolejne dwie znaczące podatności, pokazujące błędny sposób usuwania wcześniej odkrytych słabości.
Pierwsza z nich (CVE-2019-13377) dotyczy algorytmu kodowania hasła w ramach nowego protokołu uzgadniania Dragonfly, z którego korzysta WPA3. Luka została wprowadzona w wyniku zastosowania nowych, silniejszych kryptograficznych krzywych eliptycznych (od P-256 do P-521) w protokole WPA3, po wcześniejszej publikacji informacji o słabości (w kwietniu 2019 roku). Atakujący nadal może zastosować atak kanałem bocznym poprzez pomiar czasu kodowania oraz informacje o jego wykonaniu, które mogą zostać użyte do siłowego złamania hasła Wi-Fi.
Druga podatność (CVE-2019-13456) dotyczy algorytmu EAP-pwd (Extensible Authentication Protocol) stosowanego w powszechnie używanej usłudze RADIUS (także FreeRADIUS). Ten atak również polega na wykorzystaniu kanału bocznego, co pozwala atakującemu wykraść informacje potrzebne do siłowego wymuszenia hasła Wi-Fi i uzyskania dostępu do zaszyfrowanych sieci. Ta słabość jest charakterystyczna dla konkretnego wdrożenia, co oznacza, że administrator Wi-Fi musiałby skonfigurować sieć tak, aby mieć wpływ na uwierzytelnianie RADIUS.
Przedstawiono bardzo interesujący wniosek: prywatne tworzenie zaleceń i standardów bezpieczeństwa jest w najlepszym wypadku nieodpowiedzialne, a w najgorszym przypadku nieudolne (It also, once again, shows that privately creating security recommendations and standards is at best irresponsible and at worst inept).
Poprawki czy nowy standard?
Standard Wi-Fi jest obecnie aktualizowany o odpowiednie zabezpieczenia. A to może doprowadzić do powstania WPA3.1. Problemem może być fakt, iż aktualizacja, która eliminuje większość wskazanych ataków, nie będzie wstecznie kompatybilna z obecnymi wdrożeniami WPA3.
Komentarze
Mam wrażenie, że od lat głównym problemem Wi-Fi Alliance jest bardzo rozbudowany syndrom „not invented here”…
Czy nowe kali 2019.3 ma juz te narzedzia (: ?
Damn skids.. Bez kali już nie jesteś takim l33t haxx0rem?
Słyszałem, że Kali jest tworzony przez NSA aby wyłapywać takich hakierów.
Słyszałem, że NSA tak pisze aby tacy hakierzy nie używali Kali.
„Naukowcy odkryli kilka możliwych ataków na protokół i niestety są to wady konstrukcyjne protokołu, a nie jego implementacji:”
Niestety nie jest to prawda – CVE-2019-9494 jest typowym błędem implementacji, co z resztą jest napisane bezośrednio w opisie podatności – „The implementations of SAE in hostapd and wpa_supplicant are vulnerable to side channel attacks as a result of observable timing”
Dragondrain – link do repozytorium się zmienił:
https://github.com/vanhoefm/dragondrain-and-time
Timing to metoda stara jak świat (pomiary czasu odpowiedzi) aż dziw bierze że ta metoda, opracowana na potrzeby łamania procesorów Cryptoworks nadal jest skuteczna. O ile mnie pamięć nie myli jej twórcą był Polski hacker, „JG2000”.
Czyli błąd umożliwiający przechwycenie transmisji jest na poziomie założeń czy może nieprzewidzeniu tej luki/podatności.Zastanówmy się w oparciu o wiedzę i logikę czy jest możliwa taka procedura nawiązania połączenia gdzie od samego początku (czyli przed uzgodnieniem/uwierzytelnieniem)występuje szyfrowanie.Teoretycznie wydaje się to możliwe gdy wpisane hasło dostępu do sieci już jest zaszyfrowane przed samą próbą połączenia.