Key Reinstallation Attack ( KRACK - Key Reinstallation Attack ) är en replay attack på alla Wi-Fi- nätverk med WPA2 - kryptering .
Det upptäcktes först av de belgiska forskarna Mathy Vanhoef och Frank Piessens 2016 . [1] Resultaten av studien publicerades i oktober 2017. Genom att använda denna attack kan en angripare "lyssna" på data, och i vissa fall till och med "förfalska" data som överförs mellan klienten och åtkomstpunkten.
Alla säkra Wi-Fi-nätverk använder ett 4- vägs handskakningsschema [ för att generera en kryptografisk nyckel . Angriparen tvingar offret att återställa den redan använda kryptonyckeln i det tredje steget av 4-vägshandskakningen.
På grund av användningen av AES-CCMP-strömchifferet i WPA2-protokollet försvagar omnyckeln krypteringen avsevärt. Således kan en angripare utföra en kryptoattack, ta reda på nyckeln och "koppla" data som utbyts mellan klienten och åtkomstpunkten. På Linux- system[ vad? ] och Android 6.0 som ett resultat av attacken återställdes null-nyckeln, vilket gjorde det mycket lättare att hacka enheten.
När en ny klient ansluter till ett Wi-Fi-nätverk förhandlas en delad krypteringsnyckel i 4 steg (4-stegs "handskakning"). Den överenskomna nyckeln används sedan för att kryptera alla "normala" datapaket. Men eftersom enskilda meddelanden kan gå förlorade, kan åtkomstpunkten ( Engelska åtkomstpunkten, AP ) sända meddelanden i tredje steget igen tills den får en bekräftelse på mottagandet. Som en konsekvens kan klienten få detta meddelande flera gånger. Varje gång, efter att ha mottagit ett sådant meddelande, ställer klienten in den befintliga krypteringsnyckeln och återställer räknarna ( engelska replay counters ). Forskarna kunde i praktiken bevisa att en angripare kan tvinga offret att nollställa räknarna genom att skicka om det tredje stegets meddelande under det fjärde stegets "handskakning".
På grund av återanvändningen av krypteringsnyckeln blir det möjligt att attackera det kryptografiska protokollet : spela upp paket, dekryptera och till och med förfalska deras innehåll [2] . Den här metoden är lämplig för att attackera Group Key, Fast Basic Service Set (BSS) Transition, PeerKey, Tunneled Direct-Link Setup (TDLS) PeerKey (TPK) eller Wireless Network Management (WNM) Sleep Mode [3] protokoll .
Under vissa förhållanden kan en angripare inte bara "lyssna" på Wi-Fi-trafik, utan också utföra ett antal man-in-the-middle- attacker : avlyssna TCP-sessioner, infoga information i HTTP-sessioner, spela upp adress eller sända paket, och utföra andra attacker såsom spoofing [3] .
Angripare har möjlighet att lyssna på nätverkstrafik och stjäla lösenord, HTTP-cookies och liknande från den. Angripare får också möjligheten att dekryptera TCP SYN- paket , vilket gör det möjligt att ställa in en paketräknare och stjäla en TCP-session. Således, trots användningen av WPA2, har en angripare förmågan att utföra en man-in-the-middle-attack, och kan även infoga skadliga moduler i HTTP-data. En angripare kan till exempel injicera skadlig programvara i HTTP-data som offret får från de webbplatser de har tittat på. [fyra]
Konsekvenserna av en KRACK-attack är särskilt farliga om Wi-Fi-nätverket använder WPA-TKIP- eller GCMP-krypteringsprotokoll istället för AES-CCMP. Det bör noteras att GCMP-protokollet ligger till grund för WiGig -standarden (IEEE 802.11ad), som bör bli utbredd under de kommande åren. [fyra]
Tabellen visar angriparens handlingar som ett resultat av KRACK-attacken i förhållande till klienten och åtkomstpunkten (AP), beroende på vilket datakrypteringsprotokoll som används (pilarna visar anvisningarna för att skicka informationspaket):
Protokoll | Upprepa | Dekryptering | förfalskning |
---|---|---|---|
TKIP | AP → klient | klient → AP | klient → AP |
CCMP | AP → klient | klient → AP | - |
GCMP | AP → klient | klient → AP | klient ↔ AP |
Attacken är särskilt förödande för version 2.4 och 2.5 av wpa_supplicant, en Wi-Fi-klient som användes på vissa Linux-operativsystem när sårbarheten upptäcktes . Den här klienten installerade en nullnyckel istället för att installera om den riktiga nyckeln. Denna sårbarhet berodde på en bugg i 802.11-standarden, som implicit specificerade att minnet skulle rensas från krypteringsnyckeln direkt efter att den installerats. Eftersom Android använder en modifierad wpa_supplicant innehåller Android 6.0 och Android Wear 2.0 också denna sårbarhet. Som ett resultat påverkas 31,2 % av Android-enheterna av denna attack. [5]
Tabellen visar effekten av KRACK-attacken på olika typer av Wi-Fi-klienter. Den andra kolumnen innehåller information om huruvida klientimplementeringen tillåter att meddelandet i tredje steget skickas om i en 4-vägs handskakning.
Genomförande | Re.Msg3 | 4 sätt |
---|---|---|
OS X 10.9.5 | Ja | sårbar |
macOS Sierra 10.12 | Ja | sårbar |
iOS 10.3.1 | Nej | inte sårbar |
wpa_supplicant v2.3 | Ja | sårbar |
wpa_supplicant v2.4-5 | Ja | sårbar |
wpa_supplicant v2.6 | Ja | sårbar |
Android 6.0.1 | Ja | sårbar |
OpenBSD 6.1 (rum) | Ja | inte sårbar |
OpenBSD 6.1 (iwn) | Ja | sårbar |
Windows 7 | Nej | inte sårbar |
Windows 10 | Nej | inte sårbar |
MediaTek | Ja | sårbar |
Användare rekommenderas starkt att använda ett VPN och endast besöka webbplatser som använder HTTPS-protokollet . Det bör dock noteras att VPN-gateways också har full tillgång till klientnätverkstrafik, och HTTPS-servrar i vissa konfigurationer kan vara sårbara för olika typer av attacker (till exempel de så kallade engelska nedgraderingsattackerna , som ett resultat av vilka användare tvingas byta till en osäker anslutning över HTTP-protokollet). [6]
Tabellen innehåller korrigeringar för olika enheter som eliminerar möjligheten för en KRACK-attack. Till exempel, i Wi-Fi-klienten wpa_supplicant 2.6, ställs krypteringsnyckeln endast in en gång: efter den första mottagningen av det tredje stegets meddelande från åtkomstpunkten. [2]
För operativsystem i Linux-familjen släpptes patchar 2017. [7]
OS | Version | Fixar |
---|---|---|
Android | Allt | Säkerhetsnivå 2017-11-06 [8] |
Chrome OS | Allt | 62.0.3202.74 [9] |
iOS | iOS 11 | iOS 11.1 [10] för iPhone >=7, iOS 11.2 [11] för alla iOS-enheter som kör iOS 11. iOS-versioner tidigare än 11 påverkades inte. |
macOS High Sierra | 10.13 | 10.13.1 [12] |
macOS Sierra | 10.12 | Säkerhetsuppdatering 2017-001 [12] |
Windows | 7 | KB4041681 och KB4041678 [13] |
Windows | 8.1 | KB4041693 och KB4041687 [13] |
Windows | tio | KB4042895 [13] |
Windows Server | 2016 | KB4041691 [13] |