Уязвимости в технологии защиты беспроводных сетей WPA3 и в EAP-pwd
11 апреля 2019 года
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/27/Wikinews-logo-ru.svg/300px-Wikinews-logo-ru.svg.png)
Мэти Ванхофом (Mathy Vanhoef), автор атаки KRACK на беспроводные сети с WPA2, и Эяль Ронен ( Eyal Ronen), соавтор некоторых атак на TLS, раскрыли сведения о шести уязвимостях ( CVE-2019-9494 - CVE-2019-9499) в технологии защиты беспроводных сетей WPA3, позволяющих воссоздать пароль подключения и получить доступ к беспроводной сети без знания пароля. Уязвимости объединены под кодовым именем Dragonblood и позволяют скомпрометировать метод согласования соединений Dragonfly, предоставляющий защиту от подбора паролей в offline-режиме. Кроме WPA3 метод Dragonfly также применяется для защиты от словарного подбора в протоколе EAP-pwd, применяемом в Android, RADIUS-серверах и в hostapd/wpa_supplicant.
В ходе исследования выявлено два основных типа архитектурных проблем в WPA3. Оба типа проблем, в конечном счёте, могут использоваться для воссоздания пароля доступа. Первый тип позволяет совершить откат на ненадёжные криптографические методы (downgrade attack): средства для обеспечения совместимости с WPA2 (транзитный режим, допускающий использование WPA2 и WPA3) позволяют атакующему вынудить клиента выполнить применяемое WPA2 четырёхэтапное согласование соединений, что позволяет в дальнейшем использовать классические атаки по подбору паролей, применимые к WPA2. Кроме того, выявлена и возможность совершения downgrade-атаки непосредственно на метод согласования соединений Dragonfly, позволяющей откатиться на менее защищённые типы эллиптических кривых.
Второй тип проблем приводит к утечке по сторонним каналам информации о характеристиках пароля и основан на недоработках метода кодирования пароля в Dragonfly, которые позволяют по косвенным данным, таким как изменение задержек при выполнении операций, воссоздать исходный пароль. Применяемый в Dragonfly алгоритм преобразования хэша в эллиптическую кривую (hash-to-curve) оказался подвержен атакам через отслеживание оседания информации в процессорном кэше (cache attack), а алгоритм преобразования хэша в группу (hash-to-group) подвержен атакам через измерение времени выполнения операций (timing attack).
Для совершения атак через анализ кэша атакующий должен иметь возможность выполнения непривилегированного кода на системе пользователя, подключающегося к беспроводной сети. Оба метода дают возможность получить информацию, необходимую для уточнения правильности выбора частей пароля в процессе его подбора. Эффективность атаки достаточно высока и позволяет подобрать 8-символьный пароль, включающий символы в нижнем регистре, перехватив всего 40 сеансов согласования соединения (handshake) и потратив ресурсы, эквивалентные аренде мощностей Amazon EC2 на 125 долларов.
На основе выявленных уязвимостей предложено несколько сценариев атак:
- Атака по откату на WPA2 с возможностью проведения словарного подбора. В условиях когда клиент и точка доступа поддерживают как WPA3, так и WPA2, атакующий может развернуть собственную подставную точку доступа с тем же именем сети, которая поддерживает только WPA2. В такой ситуации клиент применит свойственный для WPA2 метод согласования подключения, в процессе которого будет определена недопустимость подобного отката, но сделано это будет на стадии, когда сообщения о согласовании канала отправлены и вся необходимая для словарной атаки информация уже утекла. Похожий метод применим и для отката на проблемные версии эллиптических кривых в SAE.
Кроме того, выявлено, что демон iwd, развиваемом компанией Intel в качестве альтернативы wpa_supplicant, и беспроводной стек Samsung Galaxy S10 подвержены downgrade-атаке даже в сетях, применяющих только WPA3 - если данные устройства до этого соединялись с WPA3-сетью, они попытаются соединиться с подставной сетью WPA2 с тем же именем.
- Атака по сторонним каналам с извлечением сведений из процессорного кэша. Алгоритм кодирования паролей в Dragonfly содержит условное ветвление и атакующий, имея возможность выполнить код в системе пользователя беспроводной сети, может на основе анализа поведения кэша определить какой выбран из блоков выражения if-then-else. Полученная информация может применяться для выполнения поступательного подбора пароля, используя методы, похожие на совершения словарных offline-атак по подбору паролей WPA2. Для защиты предлагается перейти на использование операций с постоянным временем выполнения, не зависящим от характера обрабатываемых данных;
- Атака по сторонним каналам с оценкой времени выполнения операций. В коде Dragonfly при кодировании паролей применяется несколько мультипликативных групп (MODP) и переменное число итераций, количество которых зависит от используемого пароля и MAC-адреса точки доступа или клиента. Удалённый атакующий может определить сколько итераций выполнено в ходе кодирования пароля и использовать их как признак при поступательном подборе пароля.
- Вызов отказа в обслуживании. Атакующий может заблокировать работу определённых функций точки доступа из-за исчерпания доступных ресурсов через отправку большого числа запросов согласования канала связи. Для обхода предусмотренной в WPA3 защиты от флуда достаточно отправки запросов с фиктивных неповторяющихся MAC-адресов.
- Откат на менее защищённые криптографические группы, используемые в процессе согласования соединений в WPA3. Например, если клиент поддерживает эллиптические кривые P-521 и P-256, и использует P-521 в качестве приоритетного варианта, то атакующий, независимо от поддержки
P-521 на стороне точки доступа, может принудить клиента к использованию P-256. Атака осуществляется путём отсеивания некоторых сообщений в процессе согласования соединения и отправки поддельных сообщений с информацией об отсутствии поддержки определённых типов эллиптических кривых.
Для проверки устройств на наличие уязвимостей подготовлено несколько скриптов с примерами совершения атак:
- Dragonslayer - реализация атак на EAP-pwd;
- Dragondrain - утилита для проверки подвеженности точек доступа уязвимости в реализации метода согласования соединений SAE (Simultaneous Authentication of Equals), которую можно использовать для инициирования отказа в обслуживании;
- Dragontime - скрипт для проведения атаки по сторонним каналам против SAE, учитывающей разницу во времени обработки операций при использовании групп MODP 22, 23 и 24;
- Dragonforce - утилита для восстановления информации (подбор пароля) на основе сведений о разном времени обработки операций или определения оседания данных в кэше.
Объединение Wi-Fi Alliance, развивающее стандарты для беспроводных сетей, объявило, что проблема затрагивает ограниченное число ранних реализаций WPA3-Personal и может быть устранена через обновление прошивки и ПО. Фактов применения уязвимостей для совершения вредоносных действий пока не зафиксировано. Для усиления защиты Wi-Fi Alliance добавил в программу сертификации беспроводных устройств дополнительные тесты для проверки корректности реализаций, а также связался с производителями устройств для совместной координации устранения выявленных проблем. Патчи с устранением проблем уже выпущены для hostap/wpa_supplicant. Обновления пакетов доступны для Ubuntu. В
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.