Mathy Vanhoef, autor ataku KRACK na sieci bezprzewodowe z WPA2, oraz Eyal Ronen, współautor niektórych ataków na TLS, ujawnili informacje o sześciu podatnościach (CVE-2019-9494 — CVE-2019-9499) w technologii zabezpieczeń sieci bezprzewodowych WPA3, które umożliwiają odtworzenie hasła dostępu i uzyskanie dostępu do sieci bezprzewodowej bez znajomości hasła. Podatności te są zbiorczo oznaczone kryptonimem Dragonblood i pozwalają na skompromitowanie metody negocjacji połączeń Dragonfly, która zapewnia ochronę przed atakami typu offline. Oprócz WPA3 metoda Dragonfly jest również stosowana w celu ochrony przed atakami słownikowymi w protokole EAP-pwd, używanym w Androidzie, serwerach RADIUS oraz w hostapd/wpa_supplicant.
W trakcie badania zidentyfikowano dwa główne typy problemów architektonicznych w WPA3. Oba typy problemów mogą być w końcu wykorzystane do odtworzenia hasła dostępu. Pierwszy typ pozwala na przeprowadzenie ataku polegającego na powrocie do mniej bezpiecznych metod kryptograficznych (downgrade attack): mechanizmy zapewniające zgodność z WPA2 (tryb przejściowy, który pozwala na korzystanie z WPA2 i WPA3) umożliwiają atakującemu zmuszenie klienta do przeprowadzenia czteroetapowej negocjacji połączeń WPA2, co ułatwia zastosowanie klasycznych ataków na hasła, które są odpowiednie dla WPA2. Co więcej, wykryto także możliwość przeprowadzenia downgrade-ataku bezpośrednio na metodzie negocjacji połączeń Dragonfly, co pozwala na przejście do mniej zabezpieczonych typów krzywych eliptycznych.
Drugi typ problemów prowadzi do wycieku informacji dotyczących cech hasła przez boczne kanały i oparty jest na niedociągnięciach metody kodowania hasła w Dragonfly, które pozwalają na odtworzenie oryginalnego hasła na podstawie pośrednich danych, takich jak zmiana opóźnień podczas wykonywania operacji. Zastosowany w Dragonfly algorytm przekształcania hasha na krzywą eliptyczną (hash-to-curve) okazał się podatny na ataki polegające na śledzeniu ujścia informacji w pamięci podręcznej procesora (cache attack), a algorytm przekształcania hasha na grupę (hash-to-group) jest podatny na ataki przez pomiar czasu wykonywania operacji (timing attack).
Aby przeprowadzić ataki za pomocą analizy pamięci podręcznej, atakujący musi mieć możliwość wykonania nieuprzywilejowanego kodu na systemie użytkownika łączącego się z siecią bezprzewodową. Obie metody umożliwiają pozyskanie informacji niezbędnych do weryfikacji poprawności wyboru części hasła w trakcie jego łamania. Skuteczność ataku jest wystarczająco wysoka, aby złamać 8-znakowe hasło, zawierające małe litery, przechwycając jedynie 40 sesji negocjacji połączenia (handshake) i wydając zasoby równoważne wynajmowi mocy obliczeniowej Amazon EC2 za 125 dolarów.
Na podstawie zidentyfikowanych luk zaproponowano kilka scenariuszy ataków:
- Atak typu 'downgrade' na WPA2 z możliwością przeprowadzenia łamania hasła. W warunkach, gdy klient i punkt dostępu obsługują zarówno WPA3, jak i WPA2, atakujący może uruchomić swoją własną fałszywą sieć z tym samym nazwą, która obsługuje tylko WPA2. W takiej sytuacji klient zastosuje metodę negocjacji połączenia charakterystyczną dla WPA2, w trakcie której zostanie określona niedopuszczalność takiego downgrade'u, jednak nastąpi to na etapie, gdy wiadomości o negocjacji kanału zostały wysłane, a wszystkie niezbędne informacje do przeprowadzenia ataku słownikowego już wyciekły. Podobna metoda jest stosowana również w przypadku downgrade'u do problematycznych wersji krzywych eliptycznych w SAE.
Dodatkowo zidentyfikowano, że demon iwd, rozwijany przez firmę Intel jako alternatywa dla wpa_supplicant, oraz stos bezprzewodowy Samsung Galaxy S10 są podatne na ataki typu downgrade, nawet w sieciach, które stosują wyłącznie WPA3 — jeśli te urządzenia wcześniej łączyły się z siecią WPA3, spróbują połączyć się z fałszywą siecią WPA2 o tej samej nazwie.
- Atak przez kanały boczne z wydobywaniem danych z pamięci podręcznej procesora. Algorytm kodowania haseł w Dragonfly zawiera warunkowe instrukcje, a atakujący, mając możliwość wykonania kodu w systemie użytkownika sieci bezprzewodowej, może na podstawie analizy zachowania pamięci podręcznej określić, który blok został wybrany z instrukcji if-then-else. Uzyskane informacje mogą być wykorzystywane do realizacji ataków polegających na znanym haśle, wykorzystując metody podobne do offline’owych ataków słownikowych na hasła WPA2. Aby zapewnić ochronę, zaleca się przejście na operacje z czasem wykonania, który jest niezależny od rodzaju przetwarzanych danych;
- Atak przez kanały boczne związany z oceną czasu wykonania operacji. W kodzie Dragonfly przy kodowaniu haseł stosuje się kilka grup multiplikacyjnych (MODP) i zmienną liczbę iteracji, której liczba zależy od używanego hasła oraz adresu MAC punktu dostępowego lub klienta. Zdalny atakujący może określić, ile iteracji zostało wykonanych podczas kodowania hasła i wykorzystać to jako wskazówkę przy znanym ataku na hasło.
- Atak denial of service. Atakujący może zablokować działanie określonych funkcji punktu dostępowego z powodu wyczerpania dostępnych zasobów poprzez wysyłanie dużej liczby żądań ustalenia kanału komunikacyjnego. Aby obejść zabezpieczenia przed floodem w WPA3, wystarczy wysyłać żądania z fikcyjnych, unikalnych adresów MAC.
- Powrót do mniej bezpiecznych grup kryptograficznych używanych w procesie ustalania połączeń w WPA3. Na przykład, jeśli klient obsługuje krzywe eliptyczne P-521 i P-256 oraz używa P-521 jako preferowanej opcji, atakujący, niezależnie od wsparcia
P-521 po stronie punktu dostępowego, może wymusić na kliencie użycie P-256. Atak realizowany jest poprzez odrzucanie niektórych wiadomości w procesie ustalania połączenia i wysyłanie fałszywych wiadomości z informacjami o braku wsparcia dla określonych typów krzywych eliptycznych.
Aby sprawdzić urządzenia pod kątem luk bezpieczeństwa, przygotowano kilka skryptów z przykładami przeprowadzania ataków:
- Dragonslayer — implementacja ataków na EAP-pwd;
- Dragondrain — narzędzie do weryfikacji podatności punktów dostępu w realizacji metody uzgadniania połączeń SAE (Simultaneous Authentication of Equals), które można wykorzystać do inicjowania ataku typu denial of service;
- Dragontime — skrypt do przeprowadzania ataku przez zewnętrzne kanały na SAE, uwzględniający różnice w czasie przetwarzania operacji przy użyciu grup MODP 22, 23 i 24;
- Dragonforce — narzędzie do odzyskiwania informacji (łamanie haseł) na podstawie danych o różnym czasie przetwarzania operacji lub określania osiadania danych w pamięci podręcznej.
Konsorcjum Wi-Fi Alliance, rozwijające standardy dla sieci bezprzewodowych, ogłosiło, że problem dotyczy ograniczonej liczby wczesnych realizacji WPA3-Personal i można go rozwiązać dzięki aktualizacji oprogramowania systemowego. Na razie nie zarejestrowano przypadków wykorzystania podatności do dokonania złośliwych działań. Aby zwiększyć bezpieczeństwo, Wi-Fi Alliance dodał do programu certyfikacji urządzeń bezprzewodowych dodatkowe testy w celu weryfikacji poprawności realizacji oraz nawiązał współpracę z producentami urządzeń w celu wspólnej koordynacji eliminacji zidentyfikowanych problemów. Łatki usuwające problemy zostały już wydane dla hostap/wpa_supplicant. Aktualizacje pakietów są dostępne dla Ubuntu. W Debianie, RHEL, SUSE/openSUSE, Arch, Fedora i FreeBSD problemy nadal pozostają nieusunięte.
Źródło: opennet.ru
