Как взламывают роутеры через WPS?
Содержание
Бесплатных wifi сетей без пароля становится все меньше и меньше. Еще недавно, пользователь мог даже не знать, что беспроводную сеть можно защитить с помощью пароля, обезопасив себя от посторонних подключений. То сегодня пользователю все чаще подсказывают о такой возможности. Взять хотя бы новые прошивки роутеров, которые выпускают ведущие провайдеры для популярных моделей, чтобы упростить настройку. Нужно указать 2 вещи — логин/пароль и пароль для защиты wifi сети. Сами производители маршрутизаторов стараются сделать процесс настройки незамысловатым.
Так, большинство современных роутеров поддерживают механизм WPS (Wi-Fi Protected Setup). С его помощью пользователь за считанные секунды может настроить безопасную беспроводную сеть, вообще не забивая себе голову тем, что «где-то еще нужно включить шифрование и прописать WPA-ключ». Для этого нужно ввести в систему 8-ми символьный PIN, который написан на роутере, – и готово! Но, сразу 2 исследователя рассказали о серьезных фундаментальных дырах в протоколе WPS. Это как черный ход для любого роутера. Оказалось, что если в точке доступа активирован WPS, который, включен в большинстве роутеров по умолчанию, то подобрать PIN для подключения и извлечь ключ для подключения можно очень быстро.
Как работает WPS?
Задумка создателей WPS хороша. Механизм автоматически задает имя сети и шифрование. Таким образом, пользователю нет необходимости лезть в веб-интерфейс и разбираться со сложными настройками. А к уже настроенной сети можно без проблем добавить любое устройство, например, смартфон или планшет: если правильно ввести PIN, то он получит все необходимые настройки. Это очень удобно, поэтому все крупные игроки на рынке, такие как Cisco/Linksys, Netgear, D-Link, Belkin, TP-link, ZyXEL сейчас предлагают беспроводные роутеры с поддержкой WPS.
Существует три варианта использования WPS:
Push-Button-Connect (PBC). Пользователь нажимает специальную кнопку на роутере и программную на компьютере, тем самым активируя процесс настройки.
Ввод PIN-кода в веб-интерфейсе. Пользователь заходит через браузер в административный интерфейс роутера и вводит там PIN-код из 8 цифр, написанный на корпусе устройства (рисунок 1), после чего происходит процесс настройки.
При соединении с роутером можно открыть специальную сессию WPS, в рамках которой настроить роутер или получить уже имеющиеся настройки, если правильно ввести PIN-код. Для открытия подобной сессии не нужна аутентификация. Это может сделать любой желающий! Получается, что PIN-код уже потенциально подвержен атаке типа bruteforce.
Уязвимость ротуеров с WPS
PIN-код WPS состоит из 8 цифр — следовательно, существует 10^8 (100 000 000) вариантов для подбора. Однако количество вариантов можно существенно сократить. Дело в том, что последняя цифра PIN-кода представляет собой некую контрольную сумму, которая высчитывается на основании семи 7 цифр. В итоге получаем уже 10^7 (10 000 000) вариантов. Далее внимательно смотрим на устройство протокола аутентификации WPS (таблица 1). Оказывается, проверка PIN-кода осуществляется в 2 этапа. Ключ делится на 2 равные части, и каждая часть проверяется отдельно.
Таблица 1. Протокол аутентификации WPS
Посмотрим на схему:
Если после отсылки сообщения M4 атакующий получил в ответ EAP-NACK, то он может быть уверен, что первая часть PIN-кода неправильная.
Если же он получил EAP-NACK после отсылки M6, то, соответственно, вторая часть PIN-кода неверна. Получаем 10^4 (10 000) вариантов для первой половины и 10^3 (1 000) для второй. В итоге имеем всего лишь 11 000 вариантов для полного перебора. Чтобы лучше понять, как это будет работать, посмотри на алгоритм.
Скорость подбора ключа
Она ограничена скоростью обработки роутером WPS-запросов: одни точки доступа будут выдавать результат каждую 1 секунду, другие — каждые 10 секунд. Основное время при этом затрачивается на расчет открытого ключа по алгоритму Диффи-Хеллмана, он должен быть сгенерирован перед шагом M3. Затраченное на это время можно уменьшить, выбрав на стороне клиента простой секретный ключ, который в дальнейшем упростит расчеты других ключей. Практика показывает, что для успешного открытия ключа WPS достаточно перебрать лишь 50% вариантов, и в среднем брутфорс занимает всего от 4 до 8 часов.