![](https://habrastorage.org/storage2/8ca/3bc/210/8ca3bc2102f7a45a3fb29ff666745a70.jpg)
Основы
Любое взаимодействие точки доступа (сети), и беспроводного клиента, построено на:
- Аутентификации — как клиент и точка доступа представляются друг другу и подтверждают, что у них есть право общаться между собой;
- Шифровании — какой алгоритм скремблирования передаваемых данных применяется, как генерируется ключ шифрования, и когда он меняется.
Параметры беспроводной сети, в первую очередь ее имя (SSID), регулярно анонсируются точкой доступа в широковещательных beacon пакетах. Помимо ожидаемых настроек безопасности, передаются пожелания по QoS, по параметрам 802.11n, поддерживаемых скорости, сведения о других соседях и прочее. Аутентификация определяет, как клиент представляется точке. Возможные варианты:
- Open — так называемая открытая сеть, в которой все подключаемые устройства авторизованы сразу
- Shared — подлинность подключаемого устройства должна быть проверена ключом/паролем
- EAP — подлинность подключаемого устройства должна быть проверена по протоколу EAP внешним сервером
Открытость сети не означает, что любой желающий сможет безнаказанно с ней работать. Чтобы передавать в такой сети данные, необходимо совпадение применяющегося алгоритма шифрования, и соответственно ему корректное установление шифрованного соединения. Алгоритмы шифрования таковы:
- None — отсутствие шифрования, данные передаются в открытом виде
- WEP — основанный на алгоритме RC4 шифр с разной длиной статического или динамического ключа (64 или 128 бит)
- CKIP — проприетарная замена WEP от Cisco, ранний вариант TKIP
- TKIP — улучшенная замена WEP с дополнительными проверками и защитой
- AES/CCMP — наиболее совершенный алгоритм, основанный на AES256 с дополнительными проверками и защитой
Комбинация Open Authentication, No Encryption широко используется в системах гостевого доступа вроде предоставления Интернета в кафе или гостинице. Для подключения нужно знать только имя беспроводной сети. Зачастую такое подключение комбинируется с дополнительной проверкой на Captive Portal путем редиректа пользовательского HTTP-запроса на дополнительную страницу, на которой можно запросить подтверждение (логин-пароль, согласие с правилами и т.п).
Шифрование WEP скомпрометировано, и использовать его нельзя (даже в случае динамических ключей).
Широко встречающиеся термины WPA и WPA2 определяют, фактически, алгоритм шифрования (TKIP либо AES). В силу того, что уже довольно давно клиентские адаптеры поддерживают WPA2 (AES), применять шифрование по алгоритму TKIP нет смысла.
Разница между WPA2 Personal и WPA2 Enterprise состоит в том, откуда берутся ключи шифрования, используемые в механике алгоритма AES. Для частных (домашних, мелких) применений используется статический ключ (пароль, кодовое слово, PSK (Pre-Shared Key)) минимальной длиной 8 символов, которое задается в настройках точки доступа, и у всех клиентов данной беспроводной сети одинаковым. Компрометация такого ключа (проболтались соседу, уволен сотрудник, украден ноутбук) требует немедленной смены пароля у всех оставшихся пользователей, что реалистично только в случае небольшого их числа. Для корпоративных применений, как следует из названия, используется динамический ключ, индивидуальный для каждого работающего клиента в данный момент. Этот ключ может периодический обновляться по ходу работы без разрыва соединения, и за его генерацию отвечает дополнительный компонент — сервер авторизации, и почти всегда это RADIUS-сервер.
Все возможные параметры безопасности сведены в этой табличке:
Свойство | Статический WEP | Динамический WEP | WPA | WPA 2 (Enterprise) |
Идентификация | Пользователь, компьютер, карта WLAN | Пользователь, компьютер |
Пользователь, компьютер |
Пользователь, компьютер |
Авторизация |
Общий ключ |
EAP |
EAP или общий ключ |
EAP или общий ключ |
Целостность |
32-bit Integrity Check Value (ICV) |
32-bit ICV |
64-bit Message Integrity Code (MIC) |
CRT/CBC-MAC (Counter mode Cipher Block Chaining Auth Code — CCM) Part of AES |
Шифрование |
Статический ключ |
Сессионный ключ |
Попакетный ключ через TKIP |
CCMP (AES) |
РАспределение ключей |
Однократное, вручную |
Сегмент Pair-wise Master Key (PMK) |
Производное от PMK |
Производное от PMK |
Вектор инициализации |
Текст, 24 бита |
Текст, 24 бита |
Расширенный вектор, 65 бит |
48-бит номер пакета (PN) |
Алгоритм |
RC4 |
RC4 |
RC4 |
AES |
Длина ключа, бит |
64/128 |
64/128 |
128 |
до 256 |
Требуемая инфраструктура |
Нет |
RADIUS |
RADIUS |
RADIUS |
Если с WPA2 Personal (WPA2 PSK) всё ясно, корпоративное решение требует дополнительного рассмотрения.
WPA2 Enterprise
![](https://habrastorage.org/storage2/501/177/e68/501177e68355ba582e372648ba160712.jpg)
Здесь мы имеем дело с дополнительным набором различных протоколов. На стороне клиента специальный компонент программного обеспечения, supplicant (обычно часть ОС) взаимодействует с авторизующей частью, AAA сервером. В данном примере отображена работа унифицированной радиосети, построенной на легковесных точках доступа и контроллере. В случае использования точек доступа «с мозгами» всю роль посредника между клиентов и сервером может на себя взять сама точка. При этом данные клиентского суппликанта по радио передаются сформированными в протокол 802.1x (EAPOL), а на стороне контроллера они оборачиваются в RADIUS-пакеты.
Применение механизма авторизации EAP в вашей сети приводит к тому, что после успешной (почти наверняка открытой) аутентификации клиента точкой доступа (совместно с контроллером, если он есть) последняя просит клиента авторизоваться (подтвердить свои полномочия) у инфраструктурного RADIUS-сервера:
![](https://habrastorage.org/storage2/2a6/cce/a30/2a6ccea309a4329d87191d6d93ecce1c.jpg)
Использование WPA2 Enterprise требует наличия в вашей сети RADIUS-сервера. На сегодняшний момент наиболее работоспособными являются следующие продукты:
- Microsoft Network Policy Server (NPS), бывший IAS — конфигурируется через MMC, бесплатен, но надо купить винду
- Cisco Secure Access Control Server (ACS) 4.2, 5.3 — конфигурируется через веб-интерфейс, наворочен по функционалу, позволяет создавать распределенные и отказоустойчивые системы, стоит дорого
- FreeRADIUS — бесплатен, конфигурируется текстовыми конфигами, в управлении и мониторинге не удобен
При этом контроллер внимательно наблюдает за происходящим обменом информацией, и дожидается успешной авторизации, либо отказа в ней. При успехе RADIUS-сервер способен передать точке доступа дополнительные параметры (например, в какой VLAN поместить абонента, какой ему присвоить IP-адрес, QoS профиль и т.п.). В завершении обмена RADIUS-сервер дает возможность клиенту и точке доступа сгенерировать и обменяться ключами шифрования (индивидуальными, валидными только для данной сеcсии):
![](https://habrastorage.org/storage2/f22/81f/e53/f2281fe53051e9253862120df340c242.jpg)
EAP
Сам протокол EAP является контейнерным, то есть фактический механизм авторизации дается на откуп внутренних протоколов. На настоящий момент сколько-нибудь значимое распространение получили следующие:
- EAP-FAST (Flexible Authentication via Secure Tunneling) — разработан фирмой Cisco; позволяет проводить авторизацию по логину-паролю, передаваемому внутри TLS туннеля между суппликантом и RADIUS-сервером
- EAP-TLS (Transport Layer Security). Использует инфраструктуру открытых ключей (PKI) для авторизации клиента и сервера (суппликанта и RADIUS-сервера) через сертификаты, выписанные доверенным удостоверяющим центром (CA). Требует выписывания и установки клиентских сертификатов на каждое беспроводное устройство, поэтому подходит только для управляемой корпоративной среды. Сервер сертификатов Windows имеет средства, позволяющие клиенту самостоятельно генерировать себе сертификат, если клиент — член домена. Блокирование клиента легко производится отзывом его сертификата (либо через учетные записи).
- EAP-TTLS (Tunneled Transport Layer Security) аналогичен EAP-TLS, но при создании туннеля не требуется клиентский сертификат. В таком туннеле, аналогичном SSL-соединению браузера, производится дополнительная авторизация (по паролю или как-то ещё).
- PEAP-MSCHAPv2 (Protected EAP) — схож с EAP-TTLS в плане изначального установления шифрованного TLS туннеля между клиентом и сервером, требующего серверного сертификата. В дальнейшем в таком туннеле происходит авторизация по известному протоколу MSCHAPv2
- PEAP-GTC (Generic Token Card) — аналогично предыдущему, но требует карт одноразовых паролей (и соответствующей инфраструктуры)
Все эти методы (кроме EAP-FAST) требуют наличия сертификата сервера (на RADIUS-сервере), выписанного удостоверяющим центром (CA). При этом сам сертификат CA должен присутствовать на устройстве клиента в группе доверенных (что нетрудно реализовать средствами групповой политики в Windows). Дополнительно, EAP-TLS требует индивидуального клиентского сертификата. Проверка подлинности клиента осуществляется как по цифровой подписи, так (опционально) по сравнению предоставленного клиентом RADIUS-серверу сертификата с тем, что сервер извлек из PKI-инфраструктуры (Active Directory).
Поддержка любого из EAP методов должна обеспечиваться суппликантом на стороне клиента. Стандартный, встроенный в Windows XP/Vista/7, iOS, Android обеспечивает как минимум EAP-TLS, и EAP-MSCHAPv2, что обуславливает популярность этих методов. С клиентскими адаптерами Intel под Windows поставляется утилита ProSet, расширяющая доступный список. Это же делает Cisco AnyConnect Client.
![](https://habrastorage.org/storage2/11f/b3b/222/11fb3b222b1a405e9af9164f555b8eae.jpg)
![](https://habrastorage.org/storage2/64a/393/d5c/64a393d5c1588c1a879aaa5227e7cc72.jpg)
Насколько это надежно
В конце концов, что нужно злоумышленнику, чтобы взломать вашу сеть?
Для Open Authentication, No Encryption — ничего. Подключился к сети, и всё. Поскольку радиосреда открыта, сигнал распространяется в разные стороны, заблокировать его непросто. При наличии соответствующих клиентских адаптеров, позволяющих прослушивать эфир, сетевой трафик виден так же, будто атакующий подключился в провод, в хаб, в SPAN-порт коммутатора.
Для шифрования, основанного на WEP, требуется только время на перебор IV, и одна из многих свободно доступных утилит сканирования.
Для шифрования, основанного на TKIP либо AES прямое дешифрование возможно в теории, но на практике случаи взлома не встречались.
Конечно, можно попробовать подобрать ключ PSK, либо пароль к одному из EAP-методов. Распространенные атаки на данные методы не известны. Можно пробовать применить методы социальной инженерии, либо терморектальный криптоанализ.
Получить доступ к сети, защищенной EAP-FAST, EAP-TTLS, PEAP-MSCHAPv2 можно, только зная логин-пароль пользователя (взлом как таковой невозможен). Атаки типа перебора пароля, или направленные на уязвимости в MSCHAP также не возможны либо затруднены из-за того, что EAP-канал «клиент-сервер» защищен шифрованным туннелем.
Доступ к сети, закрытой PEAP-GTC возможен либо при взломе сервера токенов, либо при краже токена вместе с его паролем.
Доступ к сети, закрытой EAP-TLS возможен при краже пользовательского сертификата (вместе с его приватным ключом, конечно), либо при выписывании валидного, но подставного сертификата. Такое возможно только при компрометации удостоверяющего центра, который в нормальных компаниях берегут как самый ценный IT-ресурс.
Поскольку все вышеозначенные методы (кроме PEAP-GTC) допускают сохранение (кэширование) паролей/сертификатов, то при краже мобильного устройства атакующий получает полный доступ без лишних вопросов со стороны сети. В качестве меры предотвращения может служить полное шифрование жесткого диска с запросом пароля при включении устройства.
Запомните: при грамотном проектировании беспроводную сеть можно очень хорошо защитить; средств взлома такой сети не существует (до известного предела)