Раскрыты детали новой техники атаки KRACK (Key Reinstallation Attacks), позволяющей вклиниться в беспроводное соединение на базе технологии WPA2 и организовать перехват или подстановку трафика без подключения к беспроводной сети и без определения пароля доступа. Новая техники атаки сводит на нет уровень защиты WPA2, делая работу через WPA2 не более защищённой чем, работа в публичной WiFi-сети. Всем пользователям рекомендуется обязательно использовать дополнительные уровни защиты при работе с конфиденциальными данными при соединении через WPA2, такие как VPN или обращение к ресурсам только по HTTPS.
Атака затрагивает концептуальную недоработку в стандарте WPA2, что делает уязвимыми все корректные реализации стандарта, независимо от применяемых шифров (WPA-TKIP, AES-CCMP, GCMP). В том числе наличие проблемы подтверждено в Android, Linux, macOS, iOS, Windows, OpenBSD, MediaTek и Linksys. Наибольшую опасность представляет уязвимость в пакете wpa_supplicant, для которого проведение атаки существенно упрощается, так как в версиях wpa_supplicant 2.4+ дополнительно найдена уязвимость, при помощи которой атакующие могут перевести соединение на работу с пустым ключом шифрования и полностью контролировать трафик. Уязвимость связана с тем, что после установки ключ очищается из памяти, поэтому операция переустановки приводит к использованию пустого ключа. Wpa_supplicant используется в платформе Android 6+ и дистрибутивах Linux, что делает данные системы наиболее уязвимыми при доступе в сеть через WPA2. Для других реализаций возможна выборочная расшифровка кадров.
Атака сводится к инициированию процесса перенастройки сессионных ключей шифрования WPA/WPA2/RSN (TK, GTK или IGTK), путём отправки клиенту или точке доступа специально оформленного кадра. Подобная перенастройка может быть использована злоумышленником для отключения защиты от повторного воспроизведения и существенного снижения стойкости шифрования до уровня, позволяющего, в зависимости от применяемого шифра, выполнить расшифровку содержимого передаваемых кадров или определить части ключей шифрования.
В частности, так как атакующий добивается переустановки уже используемого ключа в процессе согласования соединения, то осуществляется сброс привязанного к соединению номера передаваемых пакетов (nonce) и сбрасывается счётчик полученных ответов. Таким образом появляется возможность повторного использования одноразового значения "nonce". В зависимости от настроек беспроводной сети атакующий может организовать прослушивание трафика или манипуляцию данными, например, осуществить подстановку вредоносного кода на страницы сайтов, получаемые без HTTPS.
Опасность проблемы сглаживает то, что уязвимость может быть устранена без нарушения обратной совместимости, путём наложения патча на стороне клиента. Проблема будет устранена в hostapd/wpa_supplicant 2.7, но уже доступны патчи и пакеты с исправлением сформированы для Debian и Fedora, а в ближайшие часы ожидаются для Ubuntu, RHEL и SUSE. Из производителей оборудование обновление прошивки пока выпустил только Mikrotik. В OpenBSD проблема была устранена ещё конце августа, так как разработчики данной системы отказались откладывать исправление до окончания эмбарго, но согласились не афишировать связь исправления с уязвимостью до общего анонса.
После сегодняшнего раскрытия информации, WPA2 более нельзя будет считать надежным, как это некогда произошло с WEP. Под ударом, вероятнее всего, окажутся миллионы сетевых устройств и их владельцы, а использования Wi-Fi придется избегать до выхода патчей. И если роутеры, скорее всего, получат обновления для этих потенциальных проблем, что произойдет с сонмом IoT-устройств, можно только догадываться.
Мало кто знает, что буква S в аббревиатуре IoT означает Security
Атака состоит в том, что можно сбросить IV (или nonce, в терминологии wifi) на клиенте. Таким образом можно заставить клиента использовать тот же самый keystream ещё раз. А потом ещё раз. И ещё. Дальше мы ксорим два потока данных с одинаковым keystream между собой и таким образом снимаем шифрование. Остаются просто расшифрованные данные, поксоренные между собой.
Если используется AES — то прослушка всего трафика, если TKIP или GCMP — то еще и подмена.
Номера уязвимостей:
CVE-2017-13077: Reinstallation of the pairwise encryption key (PTK-TK) in the 4-way handshake.
CVE-2017-13078: Reinstallation of the group key (GTK) in the 4-way handshake.
CVE-2017-13079: Reinstallation of the integrity group key (IGTK) in the 4-way handshake.
CVE-2017-13080: Reinstallation of the group key (GTK) in the group key handshake.
CVE-2017-13081: Reinstallation of the integrity group key (IGTK) in the group key handshake.
CVE-2017-13082: Accepting a retransmitted Fast BSS Transition (FT) Reassociation Request and reinstalling the pairwise encryption key (PTK-TK) while processing it.
CVE-2017-13084: Reinstallation of the STK key in the PeerKey handshake.
CVE-2017-13086: reinstallation of the Tunneled Direct-Link Setup (TDLS) PeerKey (TPK) key in the TDLS handshake.
CVE-2017-13087: reinstallation of the group key (GTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame.
CVE-2017-13088: reinstallation of the integrity group key (IGTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame.
Ubiquiti выпустили обновление
We've prepared firmware 3.9.3.7537. Please see below for the changelog and links to the firmware binaries.
Firmware changes from 3.9.2:
[ACIWPro] Enable DFS support.
[UAP] Add more security details to scan info.
[UAP] Security patch for the WPA2 vulnerability called KRACK (details HERE).*
[UAP] Various backend fixes and/or improvements.
[USXG] Fix fastpath tools.
[HW] Improve error codes returned on firmware upgrade fail.
В LEDE бекпортировали исправления. Пока только в транке, обновлений к стабильному выпуску не выходило.
Кинетики пропатчены в 2.11.A.4.0-1 и в официальной beta тоже поправлено.