Mathy Vanhoef, autor útoku KRACK na bezdrátové sítě s WPA2, a Eyal Ronen, spoluautor některých útoků na TLS, zveřejnili informace o šesti zranitelnostech (CVE-2019-9494 — CVE-2019-9499) v technologii ochrany bezdrátových sítí WPA3, které umožňují obnovit připojovací heslo a získat přístup k bezdrátové síti bez znalosti hesla. Zranitelnosti jsou shromážděny pod kódovým názvem Dragonblood a umožňují kompromitovat metodu vyjednávání připojení Dragonfly, která poskytuje ochranu před offline útoky na hesla. Kromě WPA3 se metoda Dragonfly také používá k ochraně proti útokům se slovníkem v protokolu EAP-pwd, který se používá na zařízeních Android, RADIUS serverech a v hostapd/wpa_supplicant.
Ve výzkumu byly identifikovány dva hlavní typy architektonických problémů v WPA3. Oba typy problémů mohou být nakonec využity k obnově přístupového hesla. První typ umožňuje provést downgrade na nespolehlivé kryptografické metody (downgrade attack): prostředky pro zajištění kompatibility s WPA2 (transitní režim, který umožňuje použití WPA2 a WPA3) umožňují útočníkovi donutit klienta provést čtyřfázové vyjednávání připojení používané WPA2, což následně umožňuje použít klasické útoky na hesla, které jsou aplikovatelné na WPA2. Kromě toho byla odhalena také možnost provedení downgrade útoku přímo na metodu vyjednávání připojení Dragonfly, která umožňuje návrat k méně chráněným typům eliptických křivek.
Druhý typ problémů vede k úniku informací o charakteristikách hesla prostřednictvím bočních kanálů a je založen na nedostatcích metody kódování hesla v Dragonfly, které umožňují na základě nepřímých údajů, jako je změna latencí při provádění operací, obnovit původní heslo. Algoritmus použitého v Dragonfly pro transformaci hashe do eliptické křivky (hash-to-curve) byl náchylný k útokům prostřednictvím sledování informací v procesorové cache (cache attack) a algoritmus transformace hashe do skupiny (hash-to-group) je náchylný k útokům pomocí měření doby provádění operací (timing attack).
K provedení útoků prostřednictvím analýzy cache musí útočník mít možnost vykonávat neprivilegovaný kód na systému uživatele připojujícího se k bezdrátové síti. Obě metody umožňují získání informací potřebných pro upřesnění správného výběru částí hesla při jeho odhadu. Účinnost útoku je dostatečně vysoká a umožňuje uhádnout 8-znakové heslo obsahující malé písmena, přičemž stačí zachytit pouze 40 handshake relací a vynaložit prostředky odpovídající pronájmu výpočetních schopností Amazon EC2 za 125 dolarů.
Na základě odhalených zranitelností bylo navrženo několik scénářů útoků:
- Útok na downgrade na WPA2 s možností provádění slovního odhadu. V podmínkách, kdy klient a přístupový bod podporují jak WPA3, tak WPA2, může útočník nasadit svou vlastní podvodnou přístupovou síť se stejným názvem sítě, která podporuje pouze WPA2. V takové situaci klient použije pro WPA2 charakteristickou metodu sjednávání připojení, během které bude určena nepřijatelnost takového downgrade, avšak dojde k tomu ve fázi, kdy zprávy o sjednávání kanálu byly odeslány a všechny potřebné informace pro slovní útok už unikly. Podobná metoda je použitelná i pro downgrade na problematické verze eliptických křivek v SAE.
Kromě toho bylo zjištěno, že démon iwd, vyvíjený společností Intel jako alternativa k wpa_supplicant, a bezdrátový stack Samsung Galaxy S10 jsou náchylné k downgrade útokům i v sítích, které používají pouze WPA3 — pokud se tato zařízení dříve spojila se sítí WPA3, pokusí se připojit k podvodné síti WPA2 se stejným názvem.
- Útoky přes boční kanály s extrakcí informací z procesorové cache. Algoritmus kódování hesel v Dragonfly obsahuje podmíněné větvení a útočník, který může na bezdrátovém systému uživatele vykonávat kód, může na základě analýzy chování cache určit, který blok výrazů if-then-else byl vybrán. Získané informace mohou být použity k provedení postupného odhadu hesla, přičemž se používají metody podobné offline útokům na slovníky při odhadu hesel WPA2. Pro ochranu se doporučuje přejít na operace s konstantní dobou provádění, nezávisle na charakteru zpracovávaných dat;
- Útoky přes boční kanály s hodnocením doby vykonávání operací. V kódu Dragonfly při kódování hesel se používá několik multiplikativních skupin (MODP) a proměnlivý počet iterací, jejichž počet závisí na použitých heslech a MAC adrese přístupového bodu nebo klienta. Útočník na dálku může určit, kolik iterací bylo vykonáno během kódování hesla a použít je jako indikátor při postupném odhadu hesla.
- Útok na odmítnutí služby. Útočník může zablokovat určité funkce přístupového bodu vyčerpáním dostupných zdrojů prostřednictvím odesílání velkého množství požadavků na zprovoznění kanálu. K obejití ochrany proti floodu, která je zajištěna v WPA3, stačí odesílat požadavky z falešných, jedinečných MAC adres.
- Přechod na méně chráněné kryptografické skupiny, které se používají při vyjednávání spojení v WPA3. Například pokud klient podporuje eliptické křivky P-521 a P-256 a používá P-521 jako preferovanou možnost, pak útočník, bez ohledu na podporu
P-521 na straně přístupového bodu, může klienta donutit k použití P-256. Útok se provádí založením některých zpráv během vyjednávání spojení a odesíláním falešných zpráv informujících o absenci podpory určitých typů eliptických křivek.
Bylo připraveno několik skriptů pro kontrolu zařízení na přítomnost zranitelností s příklady provedení útoků:
- Dragonslayer — implementace útoků na EAP-pwd;
- Dragondrain — nástroj pro ověřování zranitelnosti přístupových bodů v implementaci metody dohodování spojení SAE (Simultaneous Authentication of Equals), který lze použít k iniciaci odmítnutí služby;
- Dragontime — skript pro provádění útoku skrze externí kanály proti SAE, který zohledňuje rozdíly v časovém zpracování operací při použití skupin MODP 22, 23 a 24;
- Dragonforce — nástroj pro obnovu informací (výběr hesla) založený na datech o různém čase zpracování operací nebo na určení usazování dat v cache.
Spojení Wi-Fi Alliance, které vyvíjí standardy pro bezdrátové sítě, oznámilo, že problém se týká omezeného počtu raných implementací WPA3-Personal a může být vyřešen aktualizací firmwaru a software. K dosažení zranitelností pro provádění škodlivých činností dosud nedošlo. Pro posílení ochrany Wi-Fi Alliance přidala do certifikačního programu pro bezdrátová zařízení další testy pro ověření správnosti implementací a také kontaktovala výrobce zařízení pro koordinaci odstranění zjištěných problémů. Opravy na odstranění problémů již byly vydány pro hostap/wpa_supplicant. Aktualizace balíčků jsou k dispozici pro Ubuntu. V Debianu, RHEL, SUSE/openSUSE, Arch, Fedoře a FreeBSD zůstávají problémy zatím neopravené.
Zdroj: opennet.ru
