Теоретические основы защиты WPA\WPA2

Информация, которую вы можете получить в данной статье, может быть использована для получения неавторизованного доступа к сетям, и ваши действия могут попасть под статьи 272-273 УК РФ. Эти сведения публикуются здесь исключительно для ознакомления, и за их использование в противоправных целях несете ответственность только вы.  Данная статья посвящается теме, которая была освящена на встрече МГУПИ User Group «Обеспечение безопасности беспроводных сетей(WPA2)».

Введение

В предыдущей статье было рассказано об общих принципах работы беспроводных сетей и обеспечении их безопасности. Было рассказано о типах беспроводных сетей, и об общих принципах их безопасности, а также о примере того, как легко получить доступ к сети с WEP-шифрованием.
В данной статье будет рассказано, как работает WPA, и какие основные уязвимости в нем могут использовать злоумышленники для незаконного проникновения в вашу сеть.
 

Преимущества WPA перед WEP


  WPA, WiFi Protected Access – новый, самый современный, на данный момент, механизм защиты беспроводных сетей от неавторизованного доступа. WPA, и его дальнейшее развитие WPA2 пришло на замену механизму WEP, который начал устаревать к тому времени. Еще раз, рассмотрим принцип действия WEP:
 
1. Кадр данных состоит из зашифрованной и незашифрованной части.  Зашифрованная часть сдержит в себе данные и контрольную суммы(CRC32), незашифрованная – вектор инициализации и идентификатор ключа. 
 
2. Каждый кадр данных шифруется поточным шифром RC4, используя в качестве ключа шифрования вектор инициализации с присоединенным к нему ключом WEP.
 
Таким образом, для каждого кадра данных генерируется свой ключ шифрования, однако в то же время каждый новый ключ шифрования отличается от другого всего лишь на вектор инициализации. (24 бита, когда длина ключа может быть 40 либо 104 бит)Таким образом, если злоумышленник перехватит большое количество пакетов, то он получит следующее:-большое количество векторов инициализации
-большое количество зашифрованных данных
-ключ шифрования для каждого последующего кадра отличается от предыдущего всего на 4 бита(длина вектора инициализации)
Таким образом, есть возможность извлечения ключа путем выполнения математических операций над пакетами.
Для того, чтобы успешно получить ключ WEP, злоумышленнику необходимо следующее:
-находиться в том месте, где есть возможность приема сигнала сети(вполне хватит RSSI в -85 dBm)
-захватить около 100-200 тыс. векторов инициализации, в зависимости от длины ключа(WEP-40 или WEP-104). Обычно, для этого нужно перехватить 25-50 Мб трафика, передающегося в сети. При наличии высокой сетевой активности (загрузка файлов ( особенно с использованием пиринговых сетей) видеоконференции), для захвата необходимого объема трафика хватит  5-10 минут.
 
Также обратите внимание на то, как злоумышленник выполняет захват трафика.
Обычно, беспроводные сетевые адаптеры работают в нормальном режиме – принимают только те пакеты, которые посланы на их MAC-адрес, при условии, что они подключены к этой беспроводной сети. Однако, физически ни что не мешает беспроводному сетевому адаптеру захватывать все пакеты, которые есть в радиусе его действия на выбранном канале. Для реализации такой возможности существуют специальные неофициальные драйвера и программное обеспечение. Больше того, такое программное обеспечение продается вполне легально, и оно используется для мониторинга беспроводных сетей. Примером такой программы может служить CommView for WiFi компании TamoSoft. Далее злоумышленник выполняет анализ захваченного трафика. Поскольку WEP был взломан уже много лет назад, то в интернете можно найти утилиты, которые в автоматическом режиме извлекают ключ из CAP-файла с трафиком, самой распространенной среди них является Aircrack.
Таким образом, WEP имеет следующие минусы
-предсказуемость ключа шифрования для кадра
-отсутствие средств аутентификации в сети
-слабый механизм проверки целостности данных
Поэтому многие предприятия отказывались от использования беспроводных сетей вообще, чтобы избежать утечку корпоративной информации. Однако с появлением WPA, а в последствии WPA2 ситуация изменилась, и все больше и больше корпоративных пользователей стали использовать WPA. Действительно, в сравнении с WEP он обладает рядом преимуществ:
-математическая независимость друг от друга ключей шифрования для каждого пакета
-новый механизм подсчета контрольной суммы
-WPA включает в себя средства аутентификации протокола 802.1Х
 

Принцип работы WPA


 
Первые модификации WPA представляли собой усовершенствованный WEP.
Рассмотрим один из первых протоколов WPA, WPA-TKIP
В нем используется 48-битный вектор инициализации, и изменены правила построения вектора, также для подсчета контрольной суммы используется MIC (Message Integrity Code), который используется вместо устаревшего и менее надёжного CRC32
И самым главным усовершенствованием является то, что длина ключа шифрования теперь составляет 128 бит, вместо 40. Для управления ключами существует специальная иерархия, которая призвана предотвратить предсказуемость ключа шифрования для каждого кадра. Благодаря TKIP ключ шифрования для каждого кадра данных генерируется таким образом, что они не повторяют друг друга, пусть даже частично.
Таким образом, WPA-сети полностью защищены от атак replay (повторение ключей) и forgery (подмена содержимого пакетов), чего нельзя было сказать о WEP, где было возможно обойти CRC32-проверку контрольной суммы, а также отослать кадр с точно таким же ключом шифрования, как и у предыдущего.
Вместе с этим, в WPA были интегрированы механизмы проверки подлинности: EAP, а также осуществляется полная поддержка 802.1Х стандартов для проверки подлинности. EAP  - Extensible Authentication Protocol, один из самых распространенных протоколов проверки подлинности. Используется для аутентификации в проводных сетях, и поэтому WPA-беспроводная сеть легко интегрируема в уже имеющуюся инфраструктуру. Обязательным условием аутентификации является предъявление пользователем маркера доступа, подтверждающего его право на доступ в сеть. Для получения маркера выполняется запрос к специальной базе данных, а без аутентификации работа в сети для пользователя будет запрещена. Система проверки  расположена на специальном RADIUS-сервере, а в качестве базы данных используется Active Directory(в Windows-системах)
Таким образом, WPA является синтезом следующих технологий и стандартов:
WPA = 802.1X + EAP + TKIP + MIC
Тем не менее, TKIP защита была взломана частично, в 2008 году. Для ее успешного обхода необходимо, чтобы в беспроводном маршрутизаторе использовался QoS. Злоумышленник может получить возможность перехватывать и расшифровывать данные, передаваемые в сети, а также подделывать пакеты, передаваемые в сети. Поэтому был разработан механизм WPA2, представляющий собой усовершенствованный WPA.
 

Принцип работы WPA2


 
Нахождение уязвимостей в WPA привело к тому, что были создан метод защиты WPA2. Существенным отличием его от WPA является то, что трафик в сети шифруется не только от устройств, не подключенных к этой сети, но и друг от друга. Иными словами, каждое устройство имеет свои ключи шифрования для обмена данными с точкой доступа. В сети существует несколько ключей шифрования:
1) Pairwise Transient Key (PTK). При помощи данного типа ключа шифруется личный трафик каждого клиента. Таким образом, обеспечивается защита сети «изнутри», чтобы один клиент, авторизованный в сети, не мог перехватить трафик другого.
2)Group Temporal Key (GTK). Данный ключ шифрует широковещательные данные.
WPA2 используется в качестве алгоритма шифрования CCMP


CCMP(Counter Mode with Cipher Block Chaining Message Authentication Code Protocol), протокол блочного шифрования с кодом аутентичности сообщения и режимом сцепления блоков и счётчика – протокол шифрования для сети WPA2, использующий алгоритм AES как основу для шифрования данных. В соответствии со стандартом FIPS-197 используется 128-битный ключ шифрования.
Основное отличие от TKIP и WEP – это централизованное управление целостностью пакетов, которое выполняется на уровне AES.
Структура пакета, зашифрованного CCMP
 

 
Пакет CCMP увеличен на 16 октетов. Заголовок CCMP состоит из трех частей: PN(номер пакета, 48-разрядный), ExtIV(вектор инициализации), и идентификатора ключа.
Инкапсуляция данных с использованием CCMP:
1)Номер пакета увеличивается на некое число, чтобы избежать повторения пакетов
2)Создаются дополнительные аутентификационные данные
3)Создается служебное поле nonce
4)Номер пакета и идентификатор ключа помещаются в заголовок пакета
5)Поле nonce и дополнительные аутентификационные данные шифруются с использованием временного ключа.
   
Декапсуляция данных с использованием CCMP:
1)Создаются поля дополнительных идентификационных данных и поле nonce с использованием данных пакета.
2)Поле дополнительных идентификационных данных извлекается из заголовка зашифрованного пакета
3)Извлекается поле А2, номер пакета и поле приоритета
4)Извлекается поле MIC
5)Выполняется расшифровка пакета и проверка его целостности, с использованием шифротекста пакета, дополнительных идентификационных данных, временного ключа и собственно MIC
6)Выполняется сборка пакета в расшифрованном виде.
7)Пакеты с повторяющимся номером отбрасываются
 
Данный метод шифрования в сети на данный момент является наиболее надежным.

Методы аутентификации в WPA\WPA2


 
Аутентификация, то есть подтверждение пользователем прав на доступ к ресурсам является обязательным условием работы WPA\WPA2
Для этого в классическую реализацию WAP\WPA2 включена поддержка 802.11 и EAP.
Иными словами, для того, чтобы клиентское устройство успешно прошло процесс подключения, необходимо, чтобы оно идентифицировало себя. На практике это выглядит следующим образом: пользователю предлагается ввести логин и пароль для доступа в сеть. Проверка учетных данных выполняется на RADIUS-сервере, который в свою очередь, связывается с сервером аутентификации. В качестве сервера аутентификации используется контроллер домена Windows Server 2008R2, его же используют как RADIUS-сервер.
Подобный  подход к реализации WPA\WPA2 называется WPA-Enterprise. Он используется в крупных производственных сетях, где уже развернута инфраструктура Active Directory.
Однако очевидно, что развертывание Active Directory и RADIUS в условиях малого бизнеса, либо же в домашних условий практически невозможно. Поэтому, чтобы стандарты WPA\WPA2 могли использоваться в домашних условиях, организацией Wi-Fi Alliance была разработана упрощенная реализация, называемая WPA-PSK(Pre-Shared Key). Он использует те же протоколы шифрования, однако схема аутентификации пользователей в нем сильно упрощена. Для того, чтобы устройство получило маркер доступа в сеть, на устройстве необходимо ввести специальную парольную фразу, называемую Pre-Shared Key. Длина должна быть от 8 до 32 символов, притом можно использовать специальные символы, а также символы национальных алфавитов. После ввода парольной фразы она помещается в специальный пакет ассоциации (пакет обмена ключами, handshake), который передается на точку доступа. Если парольная фраза верна, то устройству выдается маркер доступа в сеть. Данный подход в разы проще, чем WPA-Enterprise, и поэтому нашел широкое применение среди малого бизнеса и домашних пользователей.
 

Уязвимости в WPA\WPA2


 
При всех своих достоинствах, WPA\WPA2 не лишен уязвимостей.
Начнем с того, что еще в 2006 году TKIP-шифрование в WPA было взломано. Эксплоит позволяет прочитать данные, передаваемые от точки доступа клиентской машине, а также передавать поддельную информацию на клиентскую машину. Для реализации этой атаки необходимо, чтобы в сети использовался QoS.
Поэтому я также не рекомендую использовать WPA для защиты вашей беспроводной сети. Конечно, взломать его сложнее, нежели WEP, и WPA защитит вас от атаки школьников с Aircrack, однако, он не устоит против целенаправленной атаки на вашу организацию. Для наибольшей защиты я рекомендую использовать WPA2
Однако и WPA2 не лишен уязвимостей. В 2008 году была обнаружена уязвимость, позволяющая провести атаку «человек в центре». Она позволяла участнику сети перехватить и расшифровать данные, передаваемые между другими участниками сети с использованием их Pairwise Transient Key. Поэтому, при работе в такой сети имеет смысл использовать дополнительные средства шифрования передаваемой информации.(ПСКЗИ «Шипка» например) В то же время обратите внимание, что для того, чтобы воспользоваться этой уязвимостью, злоумышленнику необходимо быть авторизованным и подключенным к сети.
Однако я бы хотел заострить внимание на «домашней» реализации WPA-PSK. В нем упрощена схема авторизации, таким «узким» местом в нем является сам Pre-Shared Key, поскольку ввод этого ключа дает устройству полный доступ в сеть (если не задействована MAC-фильтрация).
Сам ключ хранится в точке доступа. В зависимости от модели и микропрограммного обеспечения устройства, реализуются методы его защиты. В некоторых случаях злоумышленнику достаточно получить доступ в веб-панель управления, и получить Pre-Shared Key, который хранится там открытым текстом. В некоторых случаях, поле с ним защищено, как поле с паролем, но все равно есть возможность его извлечения, если злоумышленник сможет извлечь из устройства микросхему памяти и получить к ней доступ на низком уровне. Поэтому обращайте внимание на физическую защищенность вашего беспроводного оборудования.
И наконец, самой последней уязвимостью является возможность перехвата пакетов handshake, в которых передается Pre-Shared Key при подключении устройства к сети. По сколько Pre-Shared key шифруется, у злоумышленника остается только одна возможность – атака грубой силой на захваченные ассоционные пакеты. С одной стороны, это нерационально, но стоит понимать, что для этого совсем не нужно находиться рядом с точкой доступа, и для такой атаки грубой силой(либо словарной) злоумышленник может задействовать большие вычислительные ресурсы.
Также стоит обратить внимание, что для того, чтобы перехватить handshake злоумышленнику совсем не обязательно ждать того момента, как к сети будет подключено новое устройство. На некоторых беспроводных адаптерах, при использовании нестандартных драйверов, есть возможность посылки в сеть реассоционных пакетов, которые будут прерывать сетевые соединения и инициировать новый обмен ключами в сети между клиентами и точкой доступа. В таком случае, для того, чтобы захватить требуемые пакеты, необходимо, чтобы к сети был подключен хотя бы один клиент. Также, злоумышленнику необходимо находиться близко от точки доступа, чтобы мощности его адаптера (а такие адаптеры обычно низко чувствительны и маломощны, и сильно перегреваются при работе) хватило для ПОСЫЛКИ пакетов реассоциации (вспомните WEP, где нужно было всего лишь «наловить» достаточный объем трафика). И в конце концов, атака грубой силой занимает много времени, однако использование вычислительного кластера существенно упрощает задачу.
 

Заключение


 
В данной статье был о рассмотрено, как работает механизм WPA\WPA2, а также его основные уязвимости.
Поэтому, для защиты WPA\WPA2 дома используйте длинные, сложные (не словарные) пароли, и использованием спецсимволов, и желательно – непечатаемых ASCII символов. Однако стоит понимать, что в таком случае возможность подключения многих мобильных устройств будет ограничена, если пароль нельзя будет ввести с этого устройства.
На работе же всегда используйте WPA-Enterprise, особенно, если у вас уже развернута сеть Active Directory. Это обезопасит вашу сеть от большей части атак. Но также не забывайте о других средствах защиты вашей инфраструктуры.
В следующей статье этого цикла будет приведен пример того ,как злоумышленник может получить доступ к сети  WPA2-PSK, использующую нестойкий пароль, а также временно вывести WPA-сеть из строя путем атаки Denial of Service.