KRACK: застрашена ли е WiFi мрежата ви
Удобството и свободата на WiFi мрежите винаги е било за сметка на сигурността.
Последен ъпдейт на 28 юни 2018 в 13:31 ч.
Последен ъпдейт: 03 октомври 2017 г.
Рисковете от подслушване, подмяна и инжектиране на трафик при използване на слабо защитени или отворени мрежи са често обсъждана тема, но какво ще кажете за рискове в защитените мрежи?
Wi-Fi Protected Access II (WPA2) е стандарт на повече от 10 години, който е задължителен за всички WiFi обозначени устройства. До скоро се смяташе, че WPA2 е изключително сигурен и непробиваем. Преди дни двама белгийски изследователи публикуваха своите открития за слабости в имплементацията на протокола, които могат да бъдат използвани в серия от атаки известни с името – „KRACK“ (Key Reinstallation AttaCK). Важно е да споменем, че тези слабости са документирани и преди, но рисковете за експлоатацията им са били теоретични… до сега.
Какви са опасностите при успешна атака?
На практика престъпници могат да използват тази иновативна техника за да се сдобият с информацията, която при нормални обстоятелства трябва да е достатъчно добре защитена (криптирана). Могат да бъдат откраднати финансови данни, пароли, чат съобщения, електронни писма, мултимедия и т.н…. В зависимост от настройките на мрежата, е възможно инжектиране и/или изменяне на информация, тоест сервиране на ransomware или друг тип malware в услугите и сайтовете, които посещавате.
Какво всъщност представлява KRACK?
Слабостта се крие в преинсталацията на ключовете за криптиране при злоупотреба на съобщенията за договаряне. От време на време, докато се договаря криптирането на безжичната връзка, клиента и точката за достъп (Access Point или само AP) трябва да съгласуват ключове.
За да се постигне това съгласуване се ползва протокол, който има четири стъпки – “four-way handshake”:
- AP-то до клиента – хайде да се разберем за сесиен ключ. Ето малко еднократна и произволна стойност за изчисляването му;
- Клиента до AP-то – добре, ето и от мен малко еднократна и произволна стойност за изчислението на ключа;В този момент, двете страни включват в изчислението и паролата за достъп до WiFi мрежата (така нареченият Pre-Shared Key или PSK). Така се изчислява сесийният ключ и се избягва прекият обмен на паролата, като се гарантира уникален ключ за всяка сесия.
- AP-то до клиента – потвърждавам, че сме се договорили за достатъчно данни за конструиране на сесиен ключ;
- Клиента към AP-то – да, така е. Потвърждавам!
Въпреки, че математически погледнато четирите стъпки описани до тук са напълно достатъчни за генериране на сигурен ключ, процесът може да бъде реализиран несигурно, което прави KRACK атаката възможна:
- Злосторникът стартира AP, което е двойник на истинското и клонира MAC адреса му, но оперира на различен радио канал. Така „лошото“ AP отклонява съобщение №4 и то не достига крайната си цел.
- Докато трае това „неразбирателство“, клиентът вече може да е започнал комуникацията с точката за достъп (AP), понеже и двете страни имат сесийният ключ, макар и да не са довършили докрай “four-way handshake” протокола.
Това означава, че клиентът вече генерира криптографски материал, наричан keystream, с който ще защити предаваната информация. За да е сигурно, че keystream поредицата никога не се повтаря, клиентът добавя nonce (число което не се повтаря) към сесийният ключ. Това число се инкрементира за всеки фрейм, което гарантира, че keystream-a различен всеки път.
Има няколко вида KRACK атаки, но при всички тях се разчита на преизползване на keystream данни, което води до криптиране на различна информация с един ключ. Респективно, Ако знаете един набор от данни, можете да разберете другия – това е най-добрият случай. Някои случаи са по-лоши от това, защото могат да доведат до пълно компрометиране на връзката.
Вижте още: презентацията на официалните откриватели на атаката.
Обратно към атаката:
- В даден момент, легитимното AP ще изпрати копие на съобщение №3, вероятно няколко пъти… докато „лошото“ AP не реши да пропусне съобщението до клиента.
- Тук идва и „кофти“ реализацията, която обезсмисля заложената математическа гениалност – клиента най – накрая финализира договарянето, като рестартира keystream-a и „реинсталира“ сесийният ключ (от тук идва и името на похвата). Стойноста на числото, което никога не трябва да се повтаря (nonce), също е върната към това което е била след съобщение №2.
На практика keystream последователността започва да се повтаря, което е голямо НЕ СЕ ПРАВИ ТАКА в криптографията.
„…всяко WiFi устройство е уязвимо към някоя от атаките. Oсобено опустошителен ефект има срещу Android 6.0 – принуждава клиента да използва предсказуем ключ за криптиране – само `0`“
Ако се знае съдържанието на първоначалният фрейм, може да се възстанови keystream-a използван за криптирането му > ако keystream-a е известен, може да се използва за декриптиране на последващите фреймове.
Атаката е успешна дори, ако нападателят успее да прихване дори няколко фрейма от дадена сесия.
Колко сме уязвими и как да се предпазим?
Въпреки, че всичко до сега звучеше доста заплашително и лесно за изпълнение, пък и доста медиен шум се вдигна, има няколко фактора които смекчават обстоятелствата:
- Атаката изисква нападателя да се намира физически в обхвата на WiFi мрежата. Иначе казано, ако видите подозрителна персона с качулка да удря по клавиатурата до домът или офисът Ви, имате сериозен проблем и той не е в WiFi настройките;
- Атаката е изключително сложна за изпълнение и лесна за неутрализиране – трябва просто да приложите последните актуализации върху точките за достъп или върху клиентите. Microsoft пуснаха ъпдейт адресиращ уязвимостта в началото на месеца. И Apple iOS устройствата, и macOS са уязвими! Тук може да намерите подробен списък със засегнатите операционните системи и производители, както дали вече имат ъпдейти с фиксове. Apple публикуваха патч за уязвимостта.
- Остават си препоръките за използване на сигурни протоколи (тези които завършват на „S“ обикновено са такива ;), както активиране на VPN при свързване с непознати и отворени мрежи.