Wi-Fi Protected Setup
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Cisco_router_WPS_button.jpg/220px-Cisco_router_WPS_button.jpg)
Wi-Fi Protected Setup (защищённая установка), WPS — стандарт (и одноимённый протокол) полуавтоматического создания беспроводной сети Wi-Fi, созданный Wi-Fi Alliance. Официально запущен 8 января 2007 года.
Целью протокола WPS является упрощение процесса настройки беспроводной сети, поэтому изначально он назывался Wi-Fi Simple Config. Протокол призван оказать помощь пользователям, которые не обладают широкими знаниями о безопасности в беспроводных сетях, и как следствие, имеют сложности при осуществлении настроек. WPS автоматически обозначает имя сети и задаёт шифрование для защиты от несанкционированного доступа в сеть, при этом нет необходимости вручную задавать все параметры.
Есть два типа WPS: WPS с пин-кодом из 8 цифр, на клиенте нужно ввести тот же код, что и на точке доступа; и кнопка WPS — нужно нажать кнопку на точке доступа и на клиенте с интервалом меньше двух минут, тогда они соединятся друг с другом.
В роутерах компании TP-Link эта функция раньше называлась QSS (Quick Security Setup) и выполняет аналогичные функции.
Уязвимость WPS
В декабре 2011 Стефан Фибёк (англ. Stefan Viehböck) и Крейг Хеффнер (англ. Craig Heffner) рассказали о серьёзных прорехах в протоколе WPS. Оказалось, что если в точке доступа активирован WPS c PIN (который по умолчанию включён в большинстве роутеров), то подобрать PIN-код для подключения можно за считанные часы.
PIN-код состоит из восьми цифр — следовательно, существует 108 (100 000 000) вариантов PIN-кода для подбора. Однако количество вариантов можно существенно сократить. Дело в том, что последняя цифра PIN-кода представляет собой контрольную сумму, которую можно вычислить на основании первых семи цифр. Таким образом количество вариантов уже сокращается до 107 (10 000 000).
Авторизация по WPS предполагает отправку клиентом последовательности цифр PIN-кода и пакетов M4 или M6 и ответы на них от базовой станции. Если первые 4 цифры PIN-кода некорректны, то, получив их, точка доступа отправит EAP-NACK сразу после получения M4, а если была ошибка в последних 3 цифрах правой части (8-е число не считаем, так как оно легко генерируется атакующим по формуле) — то после получения M6. Таким образом, недостаток протокола позволяет разделить PIN-код на две части, 4 начальные цифры и 3 последующие, и проверять каждую часть на корректность отдельно.
Если PIN-код разбить на две части: Следовательно, получается 104 (10 000) вариантов для первой половины и 103 (1000) — для второй. В итоге это составляет всего лишь 11 000 вариантов для полного перебора, что более, чем в 9000 раз меньше исходного числа вариантов 108.
Таким образом, вместо одного большого пространства значений 107 мы получаем два: по 104 и 103, и, понятно, что 107 > 104+103. В итоге достаточно протестировать 11 000 комбинаций вместо 10 000 000.
Также были обнаружены уязвимости в генераторах случайных числах маршрутизаторов некоторых производителей. Уязвимость получила название pixie dust. Для уязвимых роутеров можно получить pin после первой попытки и оффлайн-брутфорса.
Защита от взлома
Защититься от атаки можно пока одним способом: отключить WPS с авторизацией по пин-коду в настройках роутера. Правда, сделать это возможно далеко не всегда, иногда WPS отключается только полностью. Самое большее, что могут сделать производители, — выпустить прошивку, позволяющую вводить тайм-аут на блокировку функции, например, после 5 неудачных попыток ввода PIN-кода, что усложнит брутфорс и увеличит время подбора идентификатора злоумышленником.