Защита беспроводных сетей, WPA: теория и практика (часть первая)

Тема безопасности беспроводных сетей по-прежнему остается актуальной, хотя уже достаточно давно существуют надежные (на сегодняшний момент, конечно же) методы защиты этих сетей. Разумеется, речь идет о технологии WPA (Wi-Fi Protected Access).

Большинство существующего на данный момент Wi-Fi оборудования имеет поддержку данной технологии, но, к сожалению, до сих пор в нашей лаборатории попадаются экземпляры, не знающие о WPA. Это более чем странно — заканчивается 2005 год, а некоторые производители до сих пор считают, что технология WEP спасет пользователей беспроводной сети от утечки информации. WEP уже давно устарела. На смену этой технологии пришел WPA, а также на горизонте виднеется новый стандарт 802.11i (некоторые производители преподносят его, как WPA2).

Технология WPA, призванная временно (в ожидании перехода к 802.11i) закрыть бреши WEP, состоит из нескольких компонентов:

  • протокол 802.1x — универсальный протокол для аутентификации, авторизации и учета (AAA)
  • протокол EAP — расширяемый протокол аутентификации (Extensible Authentication Protocol)
  • протокол TKIP — протокол временнОй целостности ключей, другой вариант перевода — протокол целостности ключей во времени (Temporal Key Integrity Protocol)
  • MIC — криптографическая проверка целостности пакетов (Message Integrity Code)
  • протокол RADIUS

За шифрование данных в WPA отвечает протокол TKIP, который, хотя и использует тот же алгоритм шифрования — RC4 — что и в WEP, но в отличие от последнего, использует динамические ключи (то есть ключи часто меняются). Он применяет более длинный вектор инициализации и использует криптографическую контрольную сумму (MIC) для подтверждения целостности пакетов (последняя является функцией от адреса источника и назначения, а также поля данных).

RADIUS-протокол предназначен для работы в связке с сервером аутентификации, в качестве которого обычно выступает RADIUS-сервер. В этом случае беспроводные точки доступа работают в enterprise-режиме.

Если в сети отсутствует RADIUS-сервер, то роль сервера аутентификации выполняет сама точка доступа — так называемый режим WPA-PSK (pre-shared key, общий ключ). В этом режиме в настройках всех точек доступа заранее прописывается общий ключ. Он же прописывается и на клиентских беспроводных устройствах. Такой метод защиты тоже довольно секьюрен (относительно WEP), очень не удобен с точки зрения управления. PSK-ключ требуется прописывать на всех беспроводных устройствах, пользователи беспроводных устройств его могут видеть. Если потребуется заблокировать доступ какому-то клиенту в сеть, придется заново прописывать новый PSK на всех устройствах сети и так далее. Другими словами, режим WPA-PSK подходит для домашней сети и, возможно, небольшого офиса, но не более того.

В этой серии статей будет рассмотрена работа WPA совместно с внешним RADIUS-сервером. Но прежде чем перейти к ней, немного подробнее остановимся на механизмах работы WPA. А перед этим рассмотрим технологию WPA2.

Технология WPA являлась временной мерой до ввода в эксплуатацию стандарта 802.11i. Часть производителей до официального принятия этого стандарта ввели в обращение технологию WPA2, в которой в той или иной степени используются технологии из 802.11i. Такие как использование протокола CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol), взамен TKIP, в качестве алгоритма шифрования там применяется усовершенствованный стандарт шифрования AES (Advanced Encryption Standard). А для управления и распределения ключей по-прежнему применяется протокол 802.1x.

Как уже было сказано выше, протокол 802.1x может выполнять несколько функций. В данном случае нас интересуют функции аутентификации пользователя и распределение ключей шифрования. Необходимо отметить, что аутентификация происходит «на уровне порта» — то есть пока пользователь не будет аутентифицирован, ему разрешено посылать/принимать пакеты, касающиеся только процесса его аутентификации (учетных данных) и не более того. И только после успешной аутентификации порт устройства (будь то точка доступа или умный коммутатор) будет открыт и пользователь получит доступ к ресурсам сети.

Функции аутентификации возлагаются на протокол EAP, который сам по себе является лишь каркасом для методов аутентификации. Вся прелесть протокола в том, что его очень просто реализовать на аутентификаторе (точке доступа), так как ей не требуется знать никаких специфичных особенностей различных методов аутентификации. Аутентификатор служит лишь передаточным звеном между клиентом и сервером аутентификации. Методов же аутентификации, которых существует довольно много:

  • EAP-SIM, EAP-AKA — используются в сетях GSM мобильной связи
  • LEAP — пропреоретарный метод от Cisco systems
  • EAP-MD5 — простейший метод, аналогичный CHAP (не стойкий)
  • EAP-MSCHAP V2 — метод аутентификации на основе логина/пароля пользователя в MS-сетях
  • EAP-TLS — аутентификация на основе цифровых сертификатов
  • EAP-SecureID — метод на основе однократных паролей

рис.1, структура EAP-кадра

Кроме вышеперечисленных, следует отметить следующие два метода, EAP-TTLS и EAP-PEAP. В отличие от предыдущих, эти два метода перед непосредственной аутентификацией пользователя сначала образуют TLS-туннель между клиентом и сервером аутентификации. А уже внутри этого туннеля осуществляется сама аутентификация, с использованием как стандартного EAP (MD5, TLS), или старых не-EAP методов (PAP, CHAP, MS-CHAP, MS-CHAP v2), последние работают только с EAP-TTLS (PEAP используется только совместно с EAP методами). Предварительное туннелирование повышает безопасность аутентификации, защищая от атак типа «man-in-middle», «session hihacking» или атаки по словарю.

На рис.1 показана структура EAP кадра. Протокол PPP засветился там потому, что изначально EAP планировался к использованию поверх PPP туннелей. Но так как использование этого протокола только для аутентификации по локальной сети — излишняя избыточность, EAP-сообщения упаковываются в «EAP over LAN» (EAPOL) пакеты, которые и используются для обмена информацией между клиентом и аутентификатором (точкой доступа).


рис.2, 802.1x в действии

Схема аутентификации состоит из трех компонентов:

  • Supplicant — софт, запущенный на клиентской машине, пытающейся подключиться к сети
  • Authenticator — узел доступа, аутентификатор (беспроводная точка доступа или проводной коммутатор с поддержкой протокола 802.1x)
  • Authentication Server — сервер аутентификации (обычно это RADIUS-сервер)

Теперь рассмотрим сам процесс аутентификации. Он состоит из следующих стадий:

  1. Клиент может послать запрос на аутентификацию (EAP-start message) в сторону точки доступа
  2. Точка доступа (Аутентификатор) в ответ посылает клиенту запрос на идентификацию клиента (EAP-request/identity message). Аутентификатор может послать EAP-request самостоятельно, если увидит, что какой-либо из его портов перешел в активное состояние.
  3. Клиент в ответ высылает EAP-response packet с нужными данными, который точка доступа (аутентификатор) перенаправляет в сторону Radius-сервера (сервера аутентификации).
  4. Сервер аутентификации посылает аутентификатору (точке доступа) challenge-пакет (запрос информации о подлинности клиента). Аутентификатор пересылает его клиенту.
  5. Далее происходит процесс взаимной идентификации сервера и клиента. Количество стадий пересылки пакетов туда-сюда варьируется в зависимости от метода EAP, но для беспроводных сетей приемлема лишь «strong» аутентификация с взаимной аутентификацией клиента и сервера (EAP-TLS, EAP-TTLS, EAP-PEAP) и предварительным шифрованием канала связи.
  6. На следующий стадии, сервер аутентификации, получив от клиента необходимую информацию, разрешает (accept) или запрещает (reject) тому доступ, с пересылкой данного сообщения аутентификатору. Аутентификатор (точка доступа) открывает порт для Supplicant-а, если со стороны RADIUS-сервера пришел положительный ответ (Accept).
  7. Порт открывается, аутентификатор пересылает клиенту сообщение об успешном завершении процесса, и клиент получает доступ в сеть.
  8. После отключения клиента, порт на точке доступа опять переходит в состояние «закрыт».

Описанный процесс проиллюстрирован на рис.3 (там показан один из простейших методов EAP):


рис.3, процесс аутентификации

Как видно из рисунка, для коммуникации между клиентом (supplicant) и точкой доступа (authenticator) используются пакеты EAPOL. Протокол RADIUS используется для обмена информацией между аутентификатором (точкой доступа) и RADIUS-сервером (сервером аутентификации). При транзитной пересылке информации между клиентом и сервером аутентификации пакеты EAP переупаковываются из одного формата в другой на аутентификаторе.

Детальное рассмотрение алгоритмов шифрования, а также методы генерации сессионных ключей шифрования, пожалуй, выходят за рамки данного материала, поэтому рассмотрю их лишь вкратце.

Первоначальная аутентификация производится на основе общих данных, о которых знают и клиент, и сервер аутентификации (как то логин/пароль, сертификат и т.д.) — на этом этапе генерируется Master Key. Используя Master Key, сервер аутентификации и клиент генерируют Pairwise Master Key (парный мастер ключ), который передается аутентификатору со стороны сервера аутентификации. А уже на основе Pairwise Master Key и генерируются все остальные динамические ключи, которым и закрывается передаваемый трафик. Необходимо отметить, что сам Pairwise Master Key тоже подлежит динамической смене.

Теперь перейдем от сухой теории к реальности, а именно реализации WPA в Windows XP. Нормальная поддержка WPA (с поддержкой AES) появилась, только начиная с windows service pack 2.


рис.4

В закладке аутентификация доступны методы

  • MD5-Challenge — самый примитивный и слабый, рассматривать не будем;
  • PEAP (Protected EAP) позволяет производить аутентификацию на основе сертификатов или логина/пароля. Он нам интересен в первую очередь возможностью аутентификации пользователя, используя логин/пароль. При этом нам не требуется настраивать инфраструктуру открытых ключей (PKI). Достаточно подключить RADIUS-сервер к какой-либо базе (обычный файл, mysql, ldap) с хранящимися пользователями и производить аутентификацию пользователей по ней.
  • Smart Card or Other Certificate — обычный EAP-TLS. Требует настроенной PKI, использует сертификаты для аутентификации клиентов. Более гибок (разумеется, после настройки PKI), чем аутентификация по логину/паролю. А также является единственным способом получить работающую связку беспроводных пользователей, работающих в Windows-домене.

Во второй части статьи будет рассмотрена настройка Windows-клиентов (Windows XP SP2), RADIUS-сервера (FreeRadius), и PKI на основе OpenSSL. Последние два компонента работают в операционной системе Gentoo Linux.

 

Навигация

 




29 ноября 2005 Г.

������ ������������ �����, WPA: ������ � �������� (����� ������).

������ ������������ �����, WPA: ������ � �������� (����� ������)

���� ������������ ������������ ����� ��-�������� �������� ����������, ���� ��� ���������� ����� ���������� �������� (�� ����������� ������, ������� ��) ������ ������ ���� �����. ����������, ���� ���� � ���������� WPA (Wi-Fi Protected Access).

����������� ������������� �� ������ ������ Wi-Fi ������������ ����� ��������� ������ ����������, ��, � ���������, �� ��� ��� � ����� ����������� ���������� ����������, �� ������� � WPA. ��� ����� ��� ������� — ������������� 2005 ���, � ��������� ������������� �� ��� ��� �������, ��� ���������� WEP ������ ������������� ������������ ���� �� ������ ����������. WEP ��� ����� ��������. �� ����� ���� ���������� ������ WPA, � ����� �� ��������� ��������� ����� �������� 802.11i (��������� ������������� ����������� ���, ��� WPA2).

���������� WPA, ���������� �������� (� �������� �������� � 802.11i) ������� ����� WEP, ������� �� ���������� �����������:

  • �������� 802.1x — ������������� �������� ��� ��������������, ����������� � ����� (AAA)
  • �������� EAP — ����������� �������� �������������� (Extensible Authentication Protocol)
  • �������� TKIP — �������� ��������� ����������� ������, ������ ������� �������� — �������� ����������� ������ �� ������� (Temporal Key Integrity Protocol)
  • MIC — ����������������� �������� ����������� ������� (Message Integrity Code)
  • �������� RADIUS

�� ���������� ������ � WPA �������� �������� TKIP, �������, ���� � ���������� ��� �� �������� ���������� — RC4 — ��� � � WEP, �� � ������� �� ����������, ���������� ������������ ����� (�� ���� ����� ����� ��������). �� ��������� ����� ������� ������ ������������� � ���������� ����������������� ����������� ����� (MIC) ��� ������������� ����������� ������� (��������� �������� �������� �� ������ ��������� � ����������, � ����� ���� ������).

RADIUS-�������� ������������ ��� ������ � ������ � �������� ��������������, � �������� �������� ������ ��������� RADIUS-������. � ���� ������ ������������ ����� ������� �������� � enterprise-������.

���� � ���� ����������� RADIUS-������, �� ���� ������� �������������� ��������� ���� ����� ������� — ��� ���������� ����� WPA-PSK (pre-shared key, ����� ����). � ���� ������ � ���������� ���� ����� ������� ������� ������������� ����� ����. �� �� ������������� � �� ���������� ������������ �����������. ����� ����� ������ ���� �������� �������� (������������ WEP), ����� �� ������ � ����� ������ ����������. PSK-���� ��������� ����������� �� ���� ������������ �����������, ������������ ������������ ��������� ��� ����� ������. ���� ����������� ������������� ������ ������-�� ������� � ����, �������� ������ ����������� ����� PSK �� ���� ����������� ���� � ��� �����. ������� �������, ����� WPA-PSK �������� ��� �������� ���� �, ��������, ���������� �����, �� �� ����� ����.

� ���� ����� ������ ����� ����������� ������ WPA ��������� � ������� RADIUS-��������. �� ������ ��� ������� � ���, ������� ��������� ����������� �� ���������� ������ WPA. � ����� ���� ���������� ���������� WPA2.

���������� WPA �������� ��������� ����� �� ����� � ������������ ��������� 802.11i. ����� �������������� �� ������������ �������� ����� ��������� ����� � ��������� ���������� WPA2, � ������� � ��� ��� ���� ������� ������������ ���������� �� 802.11i. ����� ��� ������������� ��������� CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol), ������ TKIP, � �������� ��������� ���������� ��� ����������� ������������������� �������� ���������� AES (Advanced Encryption Standard). � ��� ���������� � ������������� ������ ��-�������� ����������� �������� 802.1x.

��� ��� ���� ������� ����, �������� 802.1x ����� ��������� ��������� �������. � ������ ������ ��� ���������� ������� �������������� ������������ � ������������� ������ ����������. ���������� ��������, ��� �������������� ���������� ��� ������ ����� — �� ���� ���� ������������ �� ����� ����������������, ��� ��������� ��������/��������� ������, ���������� ������ �������� ��� �������������� (������� ������) � �� ����� ����. � ������ ����� �������� �������������� ���� ���������� (���� �� ����� ������� ��� ����� ����������) ����� ������ � ������������ ������� ������ � �������� ����.

������� �������������� ����������� �� �������� EAP, ������� ��� �� ���� �������� ���� �������� ��� ������� ��������������. ��� �������� ��������� � ���, ��� ��� ����� ������ ����������� �� ��������������� (����� �������), ��� ��� �� �� ��������� ����� ������� ����������� ������������ ��������� ������� ��������������. �������������� ������ ���� ������������ ������ ����� �������� � �������� ��������������. ������� �� ��������������, ������� ���������� �������� �����:

  • EAP-SIM, EAP-AKA — ������������ � ����� GSM ��������� �����
  • LEAP — ��������������� ����� �� Cisco systems
  • EAP-MD5 — ���������� �����, ����������� CHAP (�� �������)
  • EAP-MSCHAP V2 — ����� �������������� �� ������ ������/������ ������������ � MS-�����
  • EAP-TLS — �������������� �� ������ �������� ������������
  • EAP-SecureID — ����� �� ������ ����������� �������


���.1, ��������� EAP-�����

����� �����������������, ������� �������� ��������� ��� ������, EAP-TTLS � EAP-PEAP. � ������� �� ����������, ��� ��� ������ ����� ���������������� ��������������� ������������ ������� �������� TLS-������� ����� �������� � �������� ��������������. � ��� ������ ����� ������� �������������� ���� ��������������, � �������������� ��� ������������ EAP (MD5, TLS), ��� ������ ��-EAP ������� (PAP, CHAP, MS-CHAP, MS-CHAP v2), ��������� �������� ������ � EAP-TTLS (PEAP ������������ ������ ��������� � EAP ��������). ��������������� �������������� �������� ������������ ��������������, ������� �� ���� ���� �man-in-middle�, �session hihacking� ��� ����� �� �������.

�� ���.1 �������� ��������� EAP �����. �������� PPP ���������� ��� ������, ��� ���������� EAP ������������ � ������������� ������ PPP ��������. �� ��� ��� ������������� ����� ��������� ������ ��� �������������� �� ��������� ���� — �������� ������������, EAP-��������� ������������� � «EAP over LAN» (EAPOL) ������, ������� � ������������ ��� ������ ����������� ����� �������� � ���������������� (������ �������).


���.2, 802.1x � ��������

����� �������������� ������� �� ���� �����������:

  • Supplicant — ����, ���������� �� ���������� ������, ���������� ������������ � ����
  • Authenticator — ���� �������, �������������� (������������ ����� ������� ��� ��������� ���������� � ���������� ��������� 802.1x)
  • Authentication Server — ������ �������������� (������ ��� RADIUS-������)

������ ���������� ��� ������� ��������������. �� ������� �� ��������� ������:

  1. ������ ����� ������� ������ �� �������������� (EAP-start message) � ������� ����� �������
  2. ����� ������� (��������������) � ����� �������� ������� ������ �� ������������� ������� (EAP-request/identity message). �������������� ����� ������� EAP-request ��������������, ���� ������, ��� �����-���� �� ��� ������ ������� � �������� ���������.
  3. ������ � ����� �������� EAP-response packet � ������� �������, ������� ����� ������� (��������������) �������������� � ������� Radius-������� (������� ��������������).
  4. ������ �������������� �������� ��������������� (����� �������) challenge-����� (������ ���������� � ����������� �������). �������������� ���������� ��� �������.
  5. ����� ���������� ������� �������� ������������� ������� � �������. ���������� ������ ��������� ������� ����-���� ����������� � ����������� �� ������ EAP, �� ��� ������������ ����� ��������� ���� «strong» �������������� � �������� ��������������� ������� � ������� (EAP-TLS, EAP-TTLS, EAP-PEAP) � ��������������� ����������� ������ �����.
  6. �� ��������� ������, ������ ��������������, ������� �� ������� ����������� ����������, ��������� (accept) ��� ��������� (reject) ���� ������, � ���������� ������� ��������� ���������������. �������������� (����� �������) ��������� ���� ��� Supplicant-�, ���� �� ������� RADIUS-������� ������ ������������� ����� (Accept).
  7. ���� �����������, �������������� ���������� ������� ��������� �� �������� ���������� ��������, � ������ �������� ������ � ����.
  8. ����� ���������� �������, ���� �� ����� ������� ����� ��������� � ��������� «������».

��������� ������� ���������������� �� ���.3 (��� ������� ���� �� ���������� ������� EAP):


���.3, ������� ��������������

��� ����� �� �������, ��� ������������ ����� �������� (supplicant) � ������ ������� (authenticator) ������������ ������ EAPOL. �������� RADIUS ������������ ��� ������ ����������� ����� ���������������� (������ �������) � RADIUS-�������� (�������� ��������������). ��� ���������� ��������� ���������� ����� �������� � �������� �������������� ������ EAP ����������������� �� ������ ������� � ������ �� ���������������.

��������� ������������ ���������� ����������, � ����� ������ ��������� ���������� ������ ����������, �������, ������� �� ����� ������� ���������, ������� ��������� �� ���� �������.

�������������� �������������� ������������ �� ������ ����� ������, � ������� ����� � ������, � ������ �������������� (��� �� �����/������, ���������� � �.�.) — �� ���� ����� ������������ Master Key. ��������� Master Key, ������ �������������� � ������ ���������� Pairwise Master Key (������ ������ ����), ������� ���������� ��������������� �� ������� ������� ��������������. � ��� �� ������ Pairwise Master Key � ������������ ��� ��������� ������������ �����, ������� � ����������� ������������ ������. ���������� ��������, ��� ��� Pairwise Master Key ���� �������� ������������ �����.

������ �������� �� ����� ������ � ����������, � ������ ���������� WPA � Windows XP. ���������� ��������� WPA (� ���������� AES) ���������, ������ ������� � windows service pack 2.


���.4

� �������� �������������� �������� ������

  • MD5-Challenge — ����� ����������� � ������, ������������� �� �����;
  • PEAP (Protected EAP) ��������� ����������� �������������� �� ������ ������������ ��� ������/������. �� ��� ��������� � ������ ������� ������������ �������������� ������������, ��������� �����/������. ��� ���� ��� �� ��������� ����������� �������������� �������� ������ (PKI). ���������� ���������� RADIUS-������ � �����-���� ���� (������� ����, mysql, ldap) � ����������� �������������� � ����������� �������������� ������������� �� ���.
  • Smart Card or Other Certificate — ������� EAP-TLS. ������� ����������� PKI, ���������� ����������� ��� �������������� ��������. ����� ����� (����������, ����� ��������� PKI), ��� �������������� �� ������/������. � ����� �������� ������������ �������� �������� ���������� ������ ������������ �������������, ���������� � Windows-������.

    �� ������ ����� ������ ����� ����������� ��������� Windows-�������� (Windows XP SP2), RADIUS-������� (FreeRadius), � PKI �� ������ OpenSSL. ��������� ��� ���������� �������� � ������������ ������� Gentoo Linux.

     

    ���������