Уязвимости в технологии защиты беспроводных сетей WPA3 и в EAP-pwd

Мэти Ванхофом (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. В Debian, RHEL, SUSE/openSUSE, Arch, Fedora и FreeBSD проблемы пока остаются неисправленными.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.