KRACK

Логотип атаки KRACK

KRACK (абревіатура англ. Key Reinstallation Attack — повторне використання ключа) — вразливість типу атаки відтворення в протоколі Wi-Fi Protected Access (WPA), який служить для захисту бездротових з'єднань Wi-Fi. Ця вразливість була виявлена в 2017 році[1] дослідниками Меті Вангофом (Mathy Vanhoef) та Френком Пісенсом (Frank Piessens) з університету KU Leuven в Бельгії[2]. Дослідники оприлюднили свою знахідку в жовтні 2017 року[3].

Виявлена вразливість дозволяє повторно встановлювати один і той самий криптографічний нонс на третьому кроці в процедурі відкриття сеансу (так зване рукостискання) за протоколом WPA2. Завдяки цьому зловмисник має можливість здійснити криптоаналіз та встановити сеансовий ключ. Таким чином, зловмисник може «прослуховувати» дані, а в деяких випадках, навіть «підробляти» дані, що передаються між клієнтом та точкою доступу.

Дана вразливість наявна у протоколах WPA та WPA2 та для всіх визначених стандартом алгоритмів шифрування: WPA-TKIP, AES-CCMP, та GCMP. Її можна усунути латками та оновленням програмного забезпечення клієнтів та точок доступу Wi-Fi.

Огляд

Уразливість, на яку відбувається атака, знаходиться в 4-кроковому алгоритмі відкриття сеансу (так зване рукостискання) протоколу англ. Wi-Fi Protected Access II (WPA2). Цей алгоритм виконується при під'єднанні нового клієнта до захищеної Wi-Fi мережі. Основним завданням алгоритму «рукостискання» є перевірка достовірності спільного секрету — пароля, яким захищена дана мережа. Під час «рукостискання» також відбувається погодження нового ключа для шифрування всіх даних, які будуть передані протягом сеансу. Станом на момент оприлюднення доповіді, дана вразливість була присутня у всіх відомих системах Wi-Fi а також у старіших версіях протоколу WPA[4].

Уразливість KRACK покладається на можливості примусити жертву повторно скористатись вже наявним ключем. Це досягається шляхом маніпуляцій криптографічними повідомленнями під час «рукостискання». Коли жертва встановлює ключ, вона скидає значення пов'язаних параметрів — лічильники переданих пакетів (нонс) та отриманих пакетів (лічильник відтворення) до початкових значень. Аби убезпечити користувачів від криптоаналізу ключ має бути встановлений лише один раз, але завдяки виявленій можливості маніпулювати процедурою «рукостискання» з'являється практично реалізований спосіб реалізації даної уразливості[4].

При під'єднанні нового клієнта до мережі Wi-Fi відбувається узгодження спільного ключа шифрування за 4 кроки (4-крокове «рукостискання»). Узгоджений ключ потім служить для шифрування всіх «нормальних» пакетів даних. Однак, оскільки окремі повідомлення можуть бути втрачені, точка доступу (англ. Access Point, AP) може повторно відправляти повідомлення третього кроку поки не отримає підтвердження його отримання. Як наслідок, клієнт може отримувати це повідомлення декілька разів. Кожного разу, отримавши таке повідомлення клієнт встановлюватиме наявний ключ шифрування та скидатиме лічильники. Дослідникам вдалось на практиці довести, що зловмисник здатен примусити жертву скидати лічильники шляхом повторного відправлення повідомлення з 3-го кроку із 4-х крокового «рукостискання». Завдяки повторному використанню нонса з'являється можливість атаки на криптографічний протокол: відтворення пакетів, дешифрування та, навіть, підробка їх вмісту[4]. Цей метод придатний для атаки на протоколи Group Key, Fast Basic Service Set (BSS) Transition, PeerKey, Tunneled Direct-Link Setup (TDLS) PeerKey (TPK), або Wireless Network Management (WNM) Sleep Mode[5].

За певних умов зловмисник може не тільки «прослуховувати» Wi-Fi трафік, а й здійснювати низку атак типу «людина посередині»: перехоплювати сеанси TCP, виконувати вставку інформації в сеанси HTTP, відтворювати адресні або широкомовні пакети, та здійснювати інші атаки типу спуфінг[5].

Значення

Зловмисники мають можливість прослуховувати мережевий трафік та викрадати з нього паролі, HTTP-куки, тощо. Зловмисники також отримують можливість дешифрування пакетів TCP SYN, завдяки чому існує можливість встановити лічильник пакетів та викрасти сеанс TCP. Таким чином, попри використання WPA2 зловмисник має можливість здійснити такі ж саме поширені атаки типу «людина посередині» як і на відкриті мережі Wi-Fi, в тому числі, вставляти шкідливі модулі в дані HTTP. Наприклад, зловмисник може вставляти шкідливе програмне забезпечення у HTTP-дані, які отримує жертва з переглянутих нею вебсайтів[4].

Наслідки атаки KRACK особливо небезпечні якщо у Wi-Fi мережі використані протоколи шифрування WPA-TKIP або GCMP замість AES-CCMP. Слід зазначити, що протокол GCMP лежить в основі стандарту WiGig (IEEE 802.11ad), який має отримати значне поширення в найближчі роки[4].

Напрям скомпрометованої передачі даних залежить від процедури «рукостискання», проти якої здійснено атаку. Якщо атаковано 4-крокове «рукостискання», зловмисник отримує можливість дешифрувати та підробляти пакети даних, відправлені клієнтом. Якщо атаковано рукостискання Fast BSS Transition (FT), зловмисник може дешифровувати та підробляти дані, відправлені клієнту[4].

Слід зазначити, що KRACK не встановлює пароль, яким захищена Wi-Fi мережа[4].

Атака KRACK має особливо тяжкі наслідки проти утиліти wpa_supplicant версій 2.4 та вище. Дана утиліта поширена в різних дистрибутивах Linux, в тому числі Android. Вразлива версія утілити присутня в релізах Android починаючи з версії 6.0. Особливість вразливості цієї утиліти в тому, що вона обнуляє ключ шифрування. Таким чином, близько 50 % наявних (станом на 2017 рік) пристроїв під управлінням операційної системи Android вразливі до цієї атаки[4].

Захист

Частково протидіяти даній атаці можливо використанням VPN та відвіданням вебсайтів за протоколом HTTPS. Проте, слід зауважити, що VPN шлюзи також мають повний доступ до мережевого трафіку клієнтів, а HTTPS сервери у деяких конфігураціях можуть бути вразливими до різного типу атак (наприклад, так звані англ. Downgrade Attack на пониження безпеки або навіть взагалі відміну шифрування)[6].

Надійнішим захистом від уразливості є оновлення програмного забезпечення з відповідними латками на клієнтських пристроях (ноутбуках, смартфонах, тощо) та точках доступу Wi-Fi. Проте, найімовірніше, оновити операційні системи клієнтських пристроїв та вбудоване ПЗ точок доступу вдасться не всюди[6]. Особливо тривалим буде оновлення смартфонів та пристроїв під управлінням операційних систем сімейства Android через відомі проблеми цього процесу[7].

Примітки

  1. Cimpanu, Catalin (16 жовтня 2017). New KRACK Attack Breaks WPA2 WiFi Protocol. Bleeping Computer. Архів оригіналу за 18 жовтня 2017. Процитовано 16 жовтня 2017.
  2. Gallagher, Sean (16 жовтня 2017). How the KRACK attack destroys nearly all Wi-Fi security. Ars Technica. Архів оригіналу за 12 листопада 2020. Процитовано 16 жовтня 2017.
  3. Hern, Alex (16 жовтня 2017). 'All wifi networks' are vulnerable to hacking, security expert discovers. The Guardian. ISSN 0261-3077. Архів оригіналу за 23 грудня 2020. Процитовано 16 жовтня 2017.
  4. а б в г д е ж и KRACK attacks. Архів оригіналу за 18 жовтня 2017. Процитовано 18 жовтня 2017.
  5. а б VU#228519: Wi-Fi Protected Access II (WPA2) handshake traffic can be manipulated to induce nonce and session key reuse. CERT-CC. 16 Жов 2017. Архів оригіналу за 18 жовтня 2017. Процитовано 17 Жов 2017.
  6. а б DAN GOODIN (16 жовтня 2017). Serious flaw in WPA2 protocol lets attackers intercept passwords and much more. Ars Technica. Архів оригіналу за 8 березня 2020. Процитовано 18 жовтня 2017.
  7. Chris Hoffman (November 20th, 2012). Why Your Android Phone Isn’t Getting Operating System Updates and What You Can Do About It. How-To Geek. Архів оригіналу за 19 жовтня 2017. Процитовано 18 жовтня 2017.

Див. також

Посилання

  • KRACK attacks [Архівовано 28 лютого 2020 у Wayback Machine.] — ресурс, присвячений даній вразливості
  • KRACK — Key Reinstallation Attacks: Breaking WPA2 (CERT-EU Security Advisory 2017—021) [Архівовано 18 жовтня 2017 у Wayback Machine.]
  • CERT-CC VU#228519: Wi-Fi Protected Access II (WPA2) handshake traffic can be manipulated to induce nonce and session key reuse [Архівовано 18 жовтня 2017 у Wayback Machine.]
  • CWE-323: Reusing a Nonce, Key Pair in Encryption [Архівовано 18 листопада 2017 у Wayback Machine.]
  • Презентація та слайди про дану уразливість: Mathy Vanhoef (28 грудня 2017). KRACKing WPA2 by Forcing Nonce Reuse. Chaos Computer Club. Архів оригіналу за 6 січня 2018. Процитовано 5 січня 2018.
CVE

Окремі елементи виявленої вразливості отримали власні коди CVE (англ. Common Vulnerabilities and Exposures):

  • CVE-2017-13077 [Архівовано 18 жовтня 2017 у Wayback Machine.]: Reinstallation of the pairwise encryption key (PTK-TK) in the 4-way handshake.
  • CVE-2017-13078 [Архівовано 18 жовтня 2017 у Wayback Machine.]: Reinstallation of the group key (GTK) in the 4-way handshake.
  • CVE-2017-13079 [Архівовано 18 жовтня 2017 у Wayback Machine.]: Reinstallation of the integrity group key (IGTK) in the 4-way handshake.
  • CVE-2017-13080 [Архівовано 18 жовтня 2017 у Wayback Machine.]: Reinstallation of the group key (GTK) in the group key handshake.
  • CVE-2017-13081 [Архівовано 18 жовтня 2017 у Wayback Machine.]: Reinstallation of the integrity group key (IGTK) in the group key handshake.
  • CVE-2017-13082 [Архівовано 18 жовтня 2017 у Wayback Machine.]: Accepting a retransmitted Fast BSS Transition (FT) Reassociation Request and reinstalling the pairwise encryption key (PTK-TK) while processing it.
  • CVE-2017-13084 [Архівовано 18 жовтня 2017 у Wayback Machine.]: Reinstallation of the STK key in the PeerKey handshake.
  • CVE-2017-13086 [Архівовано 18 жовтня 2017 у Wayback Machine.]: reinstallation of the Tunneled Direct-Link Setup (TDLS) PeerKey (TPK) key in the TDLS handshake.
  • CVE-2017-13087 [Архівовано 18 жовтня 2017 у Wayback Machine.]: reinstallation of the group key (GTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame.
  • CVE-2017-13088 [Архівовано 18 жовтня 2017 у Wayback Machine.]: reinstallation of the integrity group key (IGTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame.


Замок Це незавершена стаття з криптографії.
Ви можете допомогти проєкту, виправивши або дописавши її.
{{{alt}}} Це незавершена стаття про комп'ютерні мережі.
Ви можете допомогти проєкту, виправивши або дописавши її.

П:  Портал «Програмування» П:  Портал «Інформаційні технології»