Переходим с WEP на WPA: демо взлома убедило лучше любых слов
Переводим точки доступа с WEP на WPA после показательного взлома ключа на месте. Часть точек WPA не поддержала - пришлось менять. Что WPA исправил и почему слабый пароль всё равно оставляет дыру.
WPA приходит на смену дырявому WEP
Весной мы разбирали ситуацию с WEP: протокол сломан принципиально, ключ восстанавливается из перехваченного трафика, и длина ключа делу не помогает. С тех пор прошёл год с лишним, и большинство клиентов это знали - но точки стояли с WEP и менять никто не торопился. Пока мы не устроили демонстрацию.
Взяли один из офисов, где после перехода на 802.11g стояло три точки с 128-битным WEP. Попросили пятнадцать минут времени у руководителя, достали ноутбук, запустили захват трафика в пассивном режиме. Через двадцать две минуты показали WEP-ключ прямо на экране. Вслух ничего объяснять не пришлось - вопрос стал «когда переходим», а не «надо ли».
Что именно не так с WEP. Протокол использует RC4, и уязвимость не в алгоритме шифрования как таковом, а в том, как WEP обращается с векторами инициализации. Их всего 24 бита - пространство небольшое, и при нормальной нагрузке векторы начинают повторяться через несколько часов. Накопив достаточно пакетов с повторяющимися векторами, из самого шифрованного потока вытаскивается ключ математически, без перебора. Атака не требует ничего особенного: утилиты, которые это делают, публично доступны, работают на обычном ноутбуке.
Что WPA делает иначе. Ключевое изменение - TKIP, Temporal Key Integrity Protocol. Вместо одного статического ключа TKIP генерирует отдельный ключ шифрования для каждого пакета. Атака на WEP строилась именно на том, что один и тот же ключ используется снова и снова с повторяющимися IV - в TKIP эта логика сломана. Дополнительно есть MIC - Message Integrity Check, контроль целостности пакетов, который не даёт подделывать или переигрывать перехваченный трафик. Для режима PSK (Pre-Shared Key), который используется в большинстве офисов без RADIUS-сервера, аутентификация строится через четырёхстороннее рукопожатие - хэш пароля передаётся не в открытом виде и не хранится на точке в восстановимой форме.
Сертификация WPA началась в 2003-м, и к этому лету прошивки для большинства нормальных точек уже есть. Но «большинства» - не значит «всех».
Где прошивки помогли, а где нет. Из трёх точек у того клиента две обновились нормально: скачали прошивку с сайта производителя, залили через веб-интерфейс, перенастроили на WPA-PSK. Третья точка - более старая модель - формально тоже имела прошивку с пометкой WPA в release notes, но после обновления вела себя нестабильно: клиенты отваливались каждые несколько часов и переподключались заново. Попробовали несколько раз, откатились назад и в итоге просто заменили точку. Цена вопроса оказалась небольшой, нервов съело больше, чем денег.
По другим клиентам картина похожая: точки 2002-2003 годов выпуска обновляются нормально примерно в трёх случаях из четырёх. Самые старые устройства - особенно первые 802.11b с оригинальными чипсетами - WPA не получат никак. Там либо замена, либо изоляция сегмента и VPN поверх, как мы рекомендовали раньше.
Почему короткий пароль всё равно слаб. WPA-PSK с TKIP убирает атаку на основе накопления векторов инициализации - но открывает другую поверхность. Четырёхстороннее рукопожатие при аутентификации клиента можно перехватить и атаковать офлайн перебором по словарю или брутфорсом. Ключ шифрования сессии выводится из пароля PSK через хэш-функцию, и если пароль - «wifi2004» или «office123» - словарная атака его найдёт довольно быстро даже на обычном железе. WPA не защищает от слабого пароля, он только убирает математическую дыру в самом протоколе.
Практическое правило: пароль PSK должен быть длинным и случайным. Не слово из словаря, не дата, не название компании. Минимум 12-15 случайных символов - тогда офлайн-перебор рукопожатия становится нереальным по времени. Мы завели привычку генерировать PSK из случайных символов и выдавать его клиенту напечатанным - не на стикере под клавиатурой, а на бумаге в закрытом месте.
Что проверить при переходе. Клиентские адаптеры тоже требуют поддержки WPA - либо через обновлённые драйверы, либо аппаратно. Windows XP с Service Pack 1 и специальным патчем WPA поддерживает; без патча - нет. Windows 2000 - через сторонний клиент или утилиту производителя адаптера, встроенного WPA-клиента нет. Это не катастрофа, но надо проверить до перехода, а не после.
После перехода у всех клиентов мы просим пройти по периметру со сниффером и убедиться, что старых открытых точек не осталось и WEP нигде не торчит. Один раз нашли точку в подсобке - кто-то поставил её самостоятельно год назад и забыл. WEP, заводской пароль, прямо в офисной сети. Помогло именно то, что прошлись с проверкой по итогам, а не просто поставили галочку «перевели на WPA».
Итог пока такой: переход несложный, большинство оборудования тянет, стоимость замены неподдерживающих устройств невысокая. Единственное, где можно сэкономить время и нервы - сначала проверить список совместимости прошивки конкретной модели, а не просто лить что есть и смотреть что будет.
- Wi-Fi в переговорной и WEP, который ломается за двадцать минут · 19 июня 2003
- 802.11g в офисе: скорость есть, роуминг - нет · 29 января 2004