Аутентификация и шифрование

Согласно стандарту IEEE 802.11, существует три базовых режима безопасности, выбираемых беспроводным устройством в зависимости от уровня секретности:

ü открытый режим (ни шифрование, ни аутентификация не используются);

ü защищенный режим без аутентификации, но с шифрованием трафика;

ü защищенный режим с аутентификацией и шифрованием трафика.

Шифрование в обоих случаях осуществляется по WEP-протоколу (Wired Equivalent Privacy – эквивалент проводной защищенности), опирающемуся на потоковый криптоалгоритм RC4. Исходные данные (data) нарезаются на фреймы (fames) с размером 1.518 бит (впрочем, размер задан не жестко и в зависимости от конфигурации оборудования он может существенно отличаться). Для каждого фрейма определяется и укладывается в пакет 32-битная контрольная сумма (ICV), вычисляемая по алгоритму CRC32. Эффективный ключ шифрования (PRNG – Pseudo-Random Number Generator – генератор псевдослучайных чисел) генерируется на основе двух ключей – 40-битного секретного ключа (secret key или WEP key), назначаемого пользователем, и 24-битного вектора инициализации (IV – Initialization Vector), генерируемого случайным образом для каждого пакета. Все вместе это называется 64-битным шифрованием и представит собой классический пример американского маркетинга по одурачиванию доверчивых пользователей. В самом деле, зачем потребителю знать, что для взлома ключа злоумышленнику достаточно подобрать всего лишь 40 бит из 64!

Вектора инициализации назначаются самим WLAN-устройством и передаются в открытом виде. Зачем

они нужны? А затем, что используемый криптоалгоритм легко вскрывается атакой по открытому тексту. Если злоумышленнику известен хотя бы один исходный байт в каждом фрейме, ключ шифрования восстанавливается без труда, поскольку различные части ключа многократно применяются к различным частям зашифрованных фреймов. Чтобы этого избежать, никакой ключ шифрования не должен использоваться дважды. Вектора инициализации автоматически изменяются с каждым пакетом, что обеспечивает «прозрачную» смену ключа, без ведома и участия пользователя (см. рис. 2).

 
 

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

       
   
 

 

 

 
 

Упрощенно процесс шифрования потока данных выглядит так (расчет контрольной суммы здесь не показан):

K=IV.WEPkey → KSA(K) → PRNG (K)XORdata stream

где функции KSA(A) и PRNG(К) выражаются следующим псевдокодом (см. листинг 1, 2 и рис. 4).

       
   
 

Аутентификация осуществляется по старой доброй схеме запрос/отклик (challenge/response). Клиент (Client или Station), желающий подключится к точке доступа (Access Point), посылает запрос на аутентификацию (Authentication Request). Точка доступа генерирует 128-байтовый псевдослучайный «испытательный текст» (Challenge Text) и отправляет его клиенту. Получив «испытательный текст», клиент шифрует его 64-битным ключом, полученным на основе секретного WEP-ключа и произвольного вектора инициализации. Зашифрованный испытательный текст (Encrypted Challenge Text) вместе с вектором инициализации передается на точку доступа, где происходит об ратный процесс: используя имеющийся в ее распоряжении секретный WEP-ключ и открытый вектор инициализации, точка доступа расшифровывает пакет и сравнивает полученный текст с оригинальным испытательным текстом. Если они совпадают, аутентификация считается успешной и клиенту отправляется подтверждение доступа (Confirm Success) (см. рис. 5).

 
 

Независимо от выбранного режима секретности, точка доступа может использовать привязку к MAC-адресам и проверку SSID/ESSID ([Extended] Service Set IDentifiсation – идентификация [расширенного] комплекта услуг, условно называемая «именем сети»), отсекая всех непрошеных нару шителей еще на стадии подключения (технология Access Control List – список управления доступом). Для самоуспокоения такая мера, может быть, и сгодится, но вот злоумышленников она остановит навряд ли. И MAC, и SSID передаются по сети открытым текстом, так что их перехват не представляет никакой проблемы. Перепрограммировать MAC-адрес своей карты чуть сложнее, но хакеры с этим легко справляются (даже если карта не позволяет сделать этого программным образом – а подавляющее большинство карт это позволяет – атакующий всегда может «перешить» ПЗУ). Что же касается SSID, то он и вовсе прописывается с пользовательского интерфейса, поскольку используется исключительно как «маркер», позволяющий беспроводному устройству отличить одну сеть от другой. Борьба с хакерами в его задачу не входит. Тем не менее это еще не значит, что SSID можно не заполнять (а большинство пользователей именно так и поступает)!