WEP был призван обеспечить тот же уровень конфиденциальности для беспроводных сетей, что и для проводных. Однако из-за их фундаментальной разницы таких сетей он оказался неадекватен возложенным на него задачам.
Беспроводные сети появились со стандартом IEEE 802.11 в 1997 г. Этот стандарт описывает практически все параметры — от методов взаимодействия разнообразных сетевых устройств до сетевой безопасности. После создания чернового варианта, авторы осознали необходимость обеспечения для беспроводных сетей той же «безопасности», что и в проводных. Свою работу они назвали «Эквивалентом конфиденциальности проводных сетей» (Wired Equivalent Privacy, WEP).
Исходным назначением WEP было не создание защищенного сетевого протокола наподобие предоставляемого IPSec, а скорее обеспечение конфиденциальности на том же уровне, что и в проводных сетях. Другими словами, WEP создан для предотвращения «случайной прослушки». Хотя намеченные цели были достигнуты, авторы 802.11 не могли предвидеть в полной мере то, каким образом сетевые и системные администраторы будут развертывать беспроводные сети. Они организовывались так же, как и проводные, — без оглядки на их фундаментальную разницу. Если вторые оставались заключенными внутри кабелей, то первые не имели физических границ. Вследствие этого важнейшего различия WEP превратился из «достаточно хорошего» протокола в неадекватный.
IEEE 802.11
Стандарт IEEE 802.11 определяет все необходимое для развертывания беспроводных сетей — начиная со спецификаций физической передачи сигнала и заканчивая взаимодействием при аутентификации. Беспроводной трафик, как и его проводной аналог, состоит из кадров, передаваемых от одной станции к другой. Различие же в том, что на другом конце коммуникационной пары находятся либо беспроводной клиент, либо беспроводная точка доступа.
Стандарт 802.11 поддерживает два режима взаимодействия беспроводных клиентов: нерегулярный (ad hoc) и регулярный (в рамках сложившейся инфраструктуры). Первый предназначен для находящихся в радиусе взаимодействия друг с другом станций; сеть между клиентами организуется спонтанно. Во втором режиме точки доступа обеспечивают большее постоянство сетевой структуры. Последняя состоит из одной и более точек доступа, а также распределительной системы (например, проводной сети) для связи беспроводной сети с проводной.
Чтобы одну беспроводную сеть можно было отличить от другой, стандарт 802.11 определяет идентификатор комплекта услуг (Service Set Identifier, SSID). Он представляет собой настраиваемую строку, содержащую до 32 символов. SSID схож с сетевой частью IP-адреса в проводных сетях. Его можно считать идентифицирующим элементом, «склеивающим» различные компоненты беспроводной сети воедино. Трафик от беспроводных клиентов с одним SSID можно отличить от трафика с другим SSID. С его помощью точка доступа способна распознать, какой трафик предназначается ей.
Трафик стандарта 802.11 подразделяется на три составляющих: контрольные кадры, управляющие кадры и кадры данных. Первые несут информацию о готовности к передаче (Request To Send, RTS) или к приему (Clear To Send, CTS) и подтверждают прием (АСКnowtedgement, ACK). Вторые, т. е. управляющие кадры, включают кадры «неисправность», «проверка запроса/отклика», «аутентификация» и «связи». Соответственно, кадры третьего типа содержат сам трафик 802.11. Данными обычно считается сетевой трафик, в частности инкапсулированные пакеты IP.
Стандарт 802.11 поддерживает два типа механизмов аутентификации: открытый и с общим ключом. Открытая аутентификация предполагает знание клиентом SSID беспроводной сети. Кроме того, клиенту должно быть известно, используется ли в системе WEP и какой ему присвоен ключ. При аутентификации с общим ключом беспроводные клиенты должны подтвердить знание ими секретного ключа. Это достигается путем обмена по принципу «вызов/отклик», схожим с используемым в протоколе CHAP. Точка доступа отсылает произвольный вызов клиенту (открытым текстом), который затем шифрует его и передает обратно. Точка доступа дешифрует ответ и сравнивает вызов с исходным. Если они идентичны, аутентификация прошла успешно. Аутентификация с общим ключом обычно менее защищена, чем с открытым, так как включает несколько компонентов, доступных для атаки с известным простым текстом, о чем будет рассказано ниже.
ПРОТОКОЛ WEP
Протокол WEP — это своего рода электронная шифровальная книга, в соответствии с которой используемый текстовый блок шифруется отправителем, передается и декодируется получателем. Процесс кодирования WEP представлен на Рисунке 1.
На этом рисунке текстовое сообщение (1) пропускается через алгоритм проверки целостности (стандарт 802.11 определяет использование CRC-32) для получения значения проверки целостности (Integrity Check Value, ICV), добавляемого в конец исходного сообщения (2). Случайный 24-разрядный вектор инициализации (Initialization Vector, IV) присоединяется спереди к секретному ключу (распространяемому внешними средствами). На основании полученной комбинации вычисляется (3) посевочное значение для псевдослучайного генератора чисел WEP (PRNG). Затем WEP PRNG (4) выдает ключевую последовательность той же длины, что и комбинация текст/ICV. Для получения зашифрованного текста WEP к обоим компонентам применяется операция «исключающее ИЛИ» (XOR) (5). К этому тексту присоединяется спереди вектор инициализации (простым текстом) (6).
Рисунок 2. Кадр данных WEP. |
По завершении кодирования данные упаковываются (см. Рисунок 2). Зашифрованная комбинация «данные/ICV» добавляется к используемому вектору инициализации вместе с общим секретным ключом для генерации ключевого потока RC4. Этот вектор состоит из 24-разрядного вектора инициализации, 6-разрядного блока нулей и 2 бит для идентификатора ключа. Секретный ключ состоит из 40 бит. Идентификатор позволяет сетевому администратору или пользователю выбирать один из четырех различных
40-разрядных секретных ключей для использования на беспроводном устройстве. Таким образом обеспечивается гибкость предоставления пользователям различных ключей для разных беспроводных сетей или для смены ключей в случае раскрытия одного из них.
Длина ключей WEP нередко вызывает недоразумения. Хотя для генерации ключевого потока RC4 требуется 64-разрядный ключ, 24 его бита представляют собой вектор инициализации. Для секретного ключа остаются лишь 40 бит.
Осознав проблемы WEP, институт IEEE в 2001 г. предложил внести в этот протокол изменения. Его новая версия — WEP2 — увеличивает длину вектора инициализации с 24 бит до 128 и обеспечивает поддержку Kerberos V. Хотя подобное увеличение смягчает проблему коллизий WEP (описанную ниже), оно не устраняет угрозы атак с известным простым текстом, повторного использования ключевых потоков (см. ниже), вопроса о подставных точках доступа, а также атак по типу «отказ в обслуживании» на точки доступа и беспроводных клиентов. Некоторые поставщики добавили в свои продукты поддержку ключей WEP2, но все же в полном объеме WEP2 пока не поддерживается.
СЛАБЫЕ МЕСТА ИНИЦИАЛИЗАЦИИ
WEP2 появился недавно и вынужден пробивать себе дорогу на рынок.
Большинство существующих беспроводных сетей на базе WEP разработано с учетом прежней версии этого стандарта. Если у вас уже есть сеть WEP с 24-разрядными векторами инициализации или вы раздумываете над ее приобретением, следует учесть последствия такого шага. Пространство вектора инициализации размером 224 может содержать около 16 млн ключей. Стандарт 802.11 не определяет каких-либо методов выбора векторов инициализации. Разрабатывая прошивку для беспроводных устройств, многие поставщики задавали начальное значение векторов при инициализации устройства равное 0 (т. е. 00:00:00) с увеличением его на единицу для каждого последующего вектора. Это напоминает старый метод присвоения порядковых номеров TCP, увеличивающихся в системе UNIX на 64 тыс. для каждого пакета. Он приводит к увеличению числа используемых векторов инициализации с малыми значениями, что является широко известным слабым местом ключевых потоков.
Другой недостаток векторов инициализации обусловлен ограничением на их длину. Так как в соответствии со стандартом 802.11 она составляет всего 24 бит, все значения векторов в сети на 11 Мбит/с могут оказаться исчерпаны всего за несколько часов, что опасно возможными коллизиями векторов. Они возникают при шифровании двух пакетов ключевым потоком, сгенерированным с помощью одного и того же значения вектора v и секретного ключа k. Вследствие коллизии злоумышленник может получить простой текст из зашифрованного в пакетах беспроводной сети. Как показано на Рисунке 1, сообщение, состоящее из простого текста и контрольной суммы, подвергается операции XOR с ключевым потоком RC4, полученным на основании комбинации вектора инициализации и секретного ключа. Если два пакета шифруются одним ключевым потоком (т. е. произошла коллизия), его легко удалить, применив к двум пакетам операцию XOR, после чего в них остается комбинация XOR простого текста. Хотя этот вопрос может показаться второстепенным, помните, что IP-трафик достаточно хорошо структурирован. Злоумышленнику не составит труда определить значения данных путем поиска текста, применение операции XOR к которому дает XOR двух простых текстов [1].
С коллизиями векторов инициализации связана еще одна проблема. Учитывая, что ключевой поток можно воссоздать из пакета WEP, злоумышленник может попытаться позднее с его помощью расшифровать другие пакеты. Так как пространство векторов инициализации очень мало/, он может попробовать определить ключевые потоки, посылая в сеть трафик с разными значениями векторов. Ключевые потоки можно установить в результате применения операции XOR к зашифрованному трафику и какому-либо известному простому тексту. Это, в свою очередь, позволит создать словарь ключевых потоков. Позже, когда законный трафик пойдет по беспроводной сети, злоумышленник сможет перехватить его и — имея ключевой поток для вектора инициализации, используемого при шифровании трафика, — выделить из него ключевой поток, а затем обратной операцией XOR восстановить простой текст [2].
АТАКА С ИЗВЕСТНЫМ ПРОСТЫМ ТЕКСТОМ
Другим методом атак беспроводной сети WEP являются атаки с известным простым текстом. Злоумышленник располагает текстовым сообщением и копией зашифрованного текста. Ему недостает ключа для кодирования простого текста (или декодирования зашифрованного).
Подобную атаку можно провести посредством пересылки выбранной системе известных данных с последующим их перехватом при передаче адресату. Эти данные можно создать с помощью обычного письма электронной почты. После перехвата злоумышленником зашифрованного трафика беспроводной сети, относящегося к его письму, у него окажутся три составляющие из четырех: известное текстовое сообщение, зашифрованные данные и вектор инициализации. Затем ему понадобится только провести атаку со словарем для определения секретного ключа. Основой для атаки с известным простым текстом может стать и обмен «вызов/отклик», применяемый в механизме аутентификации с общим ключом стандарта 802.11. В этом случае в роли простого текста выступает произвольный вызов, посылаемый точкой доступа клиенту, а зашифрованный текст — отклик клиента.
Как и любая другая система безопасности на основе паролей, надежность WEP определяется сложностью получения секретного ключа путем примитивной атаки «в лоб», т. е. зависит от длины и состава ключа, а также частоты его замены. Один из серьезных, как оказалось впоследствии, недостатков WEP — самосинхронизация для каждого сообщения, поскольку вектор инициализации передается простым текстом с каждым пакетом. Хотя стандарт 802.11 предполагает изменение значений этих векторов, он оставляет частоту и способ изменений на совести того, кто внедряет систему. В лучшем случае вектор инициализации — произвольное число. Однако, как сказано выше, карты некоторых поставщиков для беспроводных сетей обнуляют это значение до 00:00:00 при каждом сбросе системы и затем линейно его увеличивают.
Побочным эффектом атаки с известным простым текстом становится возможность применения злоумышленником операции XOR к зашифрованному и простому тексту и получение ключевого потока, чтобы впоследствии повторно использовать его (вместе с приложенным вектором инициализации) для передачи пакетов в беспроводную сеть путем выполнения операции XOR над ключевым потоком и новыми данными. Злоумышленник может передавать в беспроводную сеть пакеты без аутентификации в точке доступа.
ФЛЮРЕР, МАНТИН И ШАМИР
В августе 2001 г. Скотт Флюрер из компании Cisco Systems, Итсик Мантин и Ади Шамир с факультета вычислительной техники израильского института Weizmann подготовили документ, где описываются слабые места алгоритма распределения ключей (Key Scheduling Algorithm, KSA) RC4. Этот алгоритм определяет исходное состояние на основании ключа переменного размера и затем передает его генератору псевдослучайных чисел (PRNG) RC4 для создания псевдослучайного ключевого потока.
Проблемы RC4 известны давно. В 1995 г. Эндрю Роос опубликовал некоторые предварительные результаты анализа RC4 PRNG в конференции sci.crypt в Usenet. В 1996 г. Ян Фаркхар сообщил в ней же о 35-процентной вероятности совпадения первого байта ключевого потока RC4 с первым байтом ключа. Флюрер, Мантин и Шамир обнаружили два слабых места в алгоритме KSA. Первое — существование крупных классов «ненадежных» ключей, когда малая часть секретного ключа определяет большое число битов выходных данных KSA [3]. Это приводит к проблеме непропорционального влияния ключевых битов ключа на первичные выходные данные алгоритма RC4. Вторая уязвимость связана с первой. Она проявляется, если часть ключа, предоставляемая KSA, становится доступной злоумышленнику (сравните с WEP, где то же происходит с вектором инициализации). Когда одна и та же секретная часть ключа используется с многочисленными известными значениями, злоумышленник относительно легко может вывести ее путем анализа исходного слова ключевых потоков. Атака, описанная Флюрером, Мантином и Шамиром, работает с ключами любого размера, в том числе с 24-разрядными WEP и 128-разряднми WEP2, и не зависит от того, предшествует ли вектор инициализации секретному ключу или следует за ним.
Работой названных специалистов воспользовались Адам Стабблфилд из университета Rice University и Джон Иоаннидис и Авиэль Рубин из AT&T Labs. С помощью обычного доступного оборудования и ПО они смогли взломать шифр WEP в тестовой сети за несколько часов. Их работу повторили другие, и до того, как Стабблфилд и сотоварищи опубликовали исходный код, они нашли еще два средства в открытом доступе: airsnort и WEPCrack Тима Ньюсхэма [4].
НА ЗАЩИТЕ БЕСПРОВОДНЫХ СЕТЕЙ
Темпы развертывания беспроводных сетей постоянно увеличиваются. По данным отчета Allied Business Intelligence, поставки беспроводных узлов в 2000 г. составили 4,9 млн единиц. А к 2006 г. этот показатель может достичь 55,9 млн. Такой бум беспроводных устройств и сетей значительно осложнит жизнь системных администраторов, если проблемы WEP не будут разрешены. С этой целью ряд компаний-поставщиков, включая Cisco Systems, Agere Systems, Enterasys Networks и Avaya, предложил собственные решения.
Некоторые компании взяли на вооружение механизм расширяемого протокола аутентификации (Extensible Authentication Protocol, EAP) стандарта 802.1х. Этот стандарт обеспечивает контроль на уровне портов, когда доступ предоставляется только после аутентификации клиента. В беспроводных сетях указанный метод зарекомендовал себя очень хорошо, так как точка доступа разрешает клиенту войти в сеть только после регистрации на сервере RADIUS. Таким образом обеспечивается паллиативное решение, пока рабочая группа 802.11i не разработает лучший механизм защиты беспроводных сетей.
ТОЧКИ ДОСТУПА
Несмотря на существующие проблемы WEP, сетевые администраторы могут развертывать беспроводные сети, но с некоторыми оговорками. Точки доступа должны устанавливаться очень аккуратно. Их не следует соединять с внутренней проводной сетью, даже при использовании WEP. Учитывая известные проблемы этого протокола и низкий уровень сложности взлома такого трафика, беспроводную сеть лучше всего рассматривать как небезопасную или «грязную» сеть.
Поэтому точки доступа должны находиться по внешнюю сторону от брандмауэров. Вход в сеть осуществляется либо через защищенную оболочку (secure shell), либо с помощью решения VPN на основе IPSec. Оба метода обеспечивают как аутентификацию пользователей, так и их дифференциацию.
Большинство точек доступа поддерживает фильтрацию MAC-адресов, данная функция должна быть корректно настроена, даже несмотря на возможность имитации адресов. Использовать WEP необходимо — у него есть слабые места, но упрощать задачу злоумышленникам ни к чему. Управление сетевыми адресами также непростая проблема, о чем не следует забывать. Преимуществом беспроводных устройств, поддерживающих аутентификацию 802.1х, является возможность предоставления сетевого адреса после аутентификации и получения доступа в сеть. Однако многие беспроводные устройства не поддерживают аутентификацию EAP. Для сетей на базе таких устройств решением может стать установка сервера DHCP, снабжающего адресами отдельных клиентов беспроводной сети, причем это должно быть единственной функцией данного хоста. Не надо забывать, что сервер может стать центром притяжения не только для клиентов, но и для атак по типу «отказ в обслуживании». Хотя такое решение не оптимально, оно позволяет управлять распределением адресов в беспроводной сети. Другой способ — наличие встроенных серверов DHCP во многих точках доступа.
Брандмауэр должен пропускать в сеть только трафик IPSec или secure shell, для этого нужна соответствующая маршрутизация клиентов. На Рисунке 3 показана беспроводная сеть, настроенная по вышеописанному способу. На этапе 1 беспроводной клиент аутентифицируется и прикрепляется к беспроводной точке доступа по методу открытой аутентификации. Точка доступа настроена на фильтрацию MAC-адресов. По завершении процесса она перенаправляет запросы DHCP на сервер DHCP, который присваивает беспроводному клиенту сетевой адрес (этап 2). Оказавшись в беспроводной сети, клиент может приступить к процедуре получения доступа к защищенной брандмауэром «проводной» инфраструктуре. Для этого клиент либо настраивает туннель IPSec VPN к устройству VPN, либо использует защищенную оболочку для связи с сервером SSH, как показано на этапе 3 Рисунка 4. Брандмауэр настроен так, что пропускает только трафик SSH или IPSec, отбрасывая любой другой.
Пока проблемы WEP не будут разрешены, беспроводные сети будут представлять серьезную проблему для сетевых администраторов. Однако, несмотря на все сложности, их можно развертывать с соответствующими предосторожностями.
Идо Дубравский проработал в области UNIX и сетевого администрирования в течение девяти лет. В настоящее время он выполняет обязанности инженера по сетевой безопасности в Консультационном центре Cisco Systems.
Источники
- Н. Борисов, Я. Голдберг и Д. Вагнер, "Перехват мобильных коммуникаций: небезопасность стандарта 802.11". Опубликовано в материалах 7-й ежегодной конференции по вычислительной технике и сетям. Июль 2001 г.
- Дж. Уокер, "Уязвимость ключей любого размера. Анализ инкапсуляции WEP". IEEE Doc: 802.11-00/362. Октябрь 2000 г.
- С. Флюрер, И. Мантин и А. Шамир, "Слабые места алгоритма распределения ключей RC4". Август 2001 г.
- А. Стабблфилд, Дж. Иоаннидис и А. Рубен, "Использование атаки Флюрера, Мантина и Шамира для взлома WEP". AT&T Labs Technical Report TD-4ZCPZZ. Август 2001 г.
- "ANSI/IEEE Std 802.11, 1999 Edition", Институт инженеров по электротехнике и электронике, 1999 г.