воскресенье, 13 сентября 2009 г.

WPA2 на Windows XP SP2

Кто-то может сказать, что тема WiFi под Windows XP SP2 сейчас не актуальна. В общем да, но среди домашних машин вполне можно встретить и более древние экземпляры ОС от M$. Так к чему это я?

Часть первая, практическая.

Исходное состояние дел:
  • работает домашняя точка доступа ASUS WL-500W, включен WPA2-PSK
  • 2 ноутбука подключаются нормально (Win XP)
Решил на днях подключить к WiFi-сетке еще ноут Acer 5110 WLMi, сетевая карточка Atheros 5005.

Хоть при автоопределении сети, хоть при ручном задании - коннекта нет. "Не-не-не!" - отвечает винда. Подключение не устанавливается, и после каждой попытки сваливаются настройки аутентификации с WPA Pre-shared key на 802.1X (TLS/PEAP).

Следующим шагом обновил драйвер (был за 2006 год) - и что же? "Не-не-не!" - опять говорит мне винда: "Windows is unable to connect to the selected network. The network may no longer be in range. Please refresh the list of available networks, and try to connect again". Но настройки уже не слетают.

Дальше в помощь google. Выяснилось, что Win XP SP2 не поддерживает WPA2. Вот только тогда я вспомнил, что WPA != WPA2 : )
И после установки фикса KB893357 ноут стал нормально коннектиться к сетке с WPA2.

Часть вторая, теоретическая.

Вопрос отчасти риторический. Почему ноутбук без поддержки WPA2 пытается подключиться к сети с защитой WPA2 и ведет себя неадекватно: соединение выдает ошибку или просто тихо не устанавливается, вместо того, чтобы указать - "неподдерживаемый протокол"?

На момент создания Win XP SP2 было 2 механизма защиты wireless сетей:
- на базе WEP (включая полностью открытую сеть с отсутствием защиты)
- на базе WPA.

WPA - это по сути ранняя и облегченная версия стандарта 802.11i.
WPA2 - это уже полноценный 802.11i 2004 года.

Как известно, типичная практика (и не только в сетях): включать в протокол версионность.
WPA и WPA2 - ранняя и финальная реализации 802.11i соответственно - согласно стандарту включают в поле version значение 1. Таким образом, тупо проверить версию и уведомить пользователя о неподдерживаемом протоколе не получится. Нужно проводить дальнейший разбор.

Если разработчики Win XP SP2 действовали по принципу: "всё что не WEP - то WPA" - становится понятным, что начиная с какого-то момента в процессе аутентификации станция продолжает действовать согласно WPA, тогда как точка доступа ожидает поведения в стиле WPA2. Точка доступа тихо отбрасывает несоответствующие кадры, станция продолжает их отсылать - и по истечении таймаута пользователь получает сообщение: "Товарищ, сеть больше не видна". Что и наблюдалось на практике.

И в догонку пара ссылок: wiki про WPA, стандарт IEEE 802.11i.