Как взламывают роутеры через 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), после чего происходит процесс настройки.

PIN-код WPS, написанный на корпусе роутера

PIN-код WPS, написанный на корпусе роутера

 

При соединении с роутером можно открыть специальную сессию WPS, в рамках которой настроить роутер или получить уже имеющиеся настройки, если правильно ввести PIN-код. Для открытия подобной сессии не нужна аутентификация. Это может сделать любой желающий! Получается, что PIN-код уже потенциально подвержен атаке типа bruteforce.

Окно для ввода PIN-кода WPS

Окно для ввода PIN-кода WPS

Уязвимость ротуеров с WPS

PIN-код WPS состоит из 8 цифр — следовательно, существует 10^8 (100 000 000) вариантов для подбора. Однако количество вариантов можно существенно сократить. Дело в том, что последняя цифра PIN-кода представляет собой некую контрольную сумму, которая высчитывается на основании семи 7 цифр. В итоге получаем уже 10^7 (10 000 000) вариантов. Далее внимательно смотрим на устройство протокола аутентификации WPS (таблица 1). Оказывается, проверка PIN-кода осуществляется в 2 этапа. Ключ делится на 2 равные части, и каждая часть проверяется отдельно.

Таблица 1. Протокол аутентификации WPS

Протокол аутентификации WPS

Посмотрим на схему:

Если после отсылки сообщения M4 атакующий получил в ответ EAP-NACK, то он может быть уверен, что первая часть PIN-кода неправильная.

Если же он получил EAP-NACK после отсылки M6, то, соответственно, вторая часть PIN-кода неверна. Получаем 10^4 (10 000) вариантов для первой половины и 10^3 (1 000) для второй. В итоге имеем всего лишь 11 000 вариантов для полного перебора. Чтобы лучше понять, как это будет работать, посмотри на алгоритм.

Алгоритм брутфорса PIN-кода WPS

Алгоритм брутфорса PIN-кода WPS

Скорость подбора ключа

Она ограничена скоростью обработки роутером WPS-запросов: одни точки доступа будут выдавать результат каждую 1 секунду, другие — каждые 10 секунд. Основное время при этом затрачивается на расчет открытого ключа по алгоритму Диффи-Хеллмана, он должен быть сгенерирован перед шагом M3. Затраченное на это время можно уменьшить, выбрав на стороне клиента простой секретный ключ, который в дальнейшем упростит расчеты других ключей. Практика показывает, что для успешного открытия ключа WPS достаточно перебрать лишь 50% вариантов, и в среднем брутфорс занимает всего от 4 до 8 часов.

Вам также может понравиться...

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

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