Защита беспроводных сетей, 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