Защита информации в сетях IEEE 802.11 (Wi-Fi)
Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Защита информации в системах беспроводной связи
Конспект лекций
назад | содержание |
4 Защита информации в сетях IEEE 802.11 (Wi-Fi)
4.1 Общая характеристика систем широкополосной связи Wi-Fi
Основные параметры каналов. Архитектура, основные элементы и оборудование беспроводных сетей данного типа. Стандарты группы IEEE 802.11 (a, b, g, e, i…).
Для построения беспроводной сети Wi-Fi используются адаптеры и точки доступа.
Адаптер, показанный на рис. 4.1, представляет собой устройство, которое подключается через слот расширения PCI, PCMCI или CompactFlash. Существуют также адаптеры с подключением через порт USB. Wi-Fi адаптер выполняет ту же функцию, что и сетевая карта в проводной сети. Он служит для подключения компьютера пользователя к беспроводной сети. Благодаря платформе Centrino все современные ноутбуки имеют встроенные адаптеры Wi-Fi, совместимые со многими современными стандартами. Wi-Fi адаптеры, как правило, снабжены и КПК (карманные персональные компьютеры), что также позволяет подключать их к беспроводным сетям.
Рисунок 4.1 – Wi-Fi адаптеры
Если вы собираетесь строить небольшую сеть, количество устройств в которой ограничено десятью, для создания сети вам понадобятся лишь сетевые адаптеры. Такая архитектура Wi-Fi сети называется Ad Hoc или беспроводной одноранговой сетью.
Сеть получается достаточно дешевой – ее стоимость равна цене сетевых адаптеров - в среднем - $20-40 за адаптер. Достоинства такой сети – в простоте настройки и в исключительной мобильности – скажем, вы легко можете связать по Wi-Fi пару-тройку ноутбуков где-нибудь в парке. Но есть у сети и недостатки. В частности – ограниченное количество компьютеров, которое может входить в сеть, ограниченное расстояние между компьютерами, ограниченные возможности связи с проводными сегментами сети. Конечно, можно соорудить маршрутизатор из какого-нибудь ПК, оснащенного проводным и беспроводным интерфейсами, но зачем создавать лишнюю нагрузку на систему, если есть способ лучше (хотя – дороже) – воспользоваться так называемой точкой доступа.
Точка доступа, показанная на рис. 4.2, представляет собой автономный модуль со встроенным микрокомпьютером и приёмно-передающим устройством. Через точку доступа осуществляется взаимодействие и обмен информацией между беспроводными адаптерами, а также связь с проводным сегментом сети. Таким образом, точка доступа играет роль коммутатора.
Рисунок 4.2 - Wi-Fi точки доступа
Сеть, построенная с использованием точки доступа, называется Инфраструктурой (Infrastructure). В центре такой сети находится отдельное устройство, снабженное Wi-Fi-антеннами, часто – интерфейсами для подключения к проводным сетям или даже телефонным линиям.
Точка доступа имеет сетевой интерфейс (uplink port), при помощи которого она может быть подключена к обычной проводной сети. Через этот же интерфейс может осуществляться и настройка точки.
Точка доступа может использоваться как для подключения к ней клиентов (базовый режим точки доступа), так и для взаимодействия с другими точками доступа с целью построения распределённой сети (Wireless Distributed System - WDS). Это режимы беспроводного моста «точка-точка» и «точка - много точек», беспроводный клиент и повторитель.
С помощью точки доступа можно легко организовать роуминг при перемещении мобильного компьютера пользователя в зоне охвата большей, чем зона охвата одной точки доступа, организовав «соты» из нескольких точек доступа, обеспечив перекрытие их зон действия. В этом случае необходимо обеспечить, чтобы в предполагаемой зоне перемещения мобильного пользователя все точки доступа и мобильные компьютеры имели одинаковые настройки (номера каналов, идентификаторы и др.).
Следует учитывать, что при нескольких подключениях к одной точке полоса пропускания делится на количество подключённых пользователей. Теоретически ограничений на количество подключений нет, но стоит ограничиться, исходя из минимально необходимой скорости передачи данных для каждого пользователя. На практике, одна точка доступа может обслуживать не более 10-15 клиентов одновременно.
Каждое беспроводное устройство Wi-Fi упрощенно состоит из нескольких функциональных частей, представленных на рис. 4.3. Устройства всех стандартов 802.11 придерживаются описанной ниже архитектуры.
Рисунок 4.3 – Общая функциональная модель устройства стандарта 802.11
PMD подуровень (от англ. Physical layer Medium Dependent) - подуровень среды передачи. Подуровень обеспечивает кодирование, модуляцию/демодуляцию и синхронизацию.
PLCP подуровень (от англ. Physical Layer Convergence Procedure) – подуровень сопряжения физического уровня. Определяет параметры, с которыми будут переданы либо приняты данные (например, скорость).
Для постоянного согласования работы подуровней осуществляется централизованное Управление физическим уровнем.
MAC подуровень (от англ. Media Access Control) – подуровень управления доступом к среде. Определяет адреса беспроводных устройств, параметры доступа в сеть и т.п.
Принятие решений о пересылке, обеспечении доступа в сеть и т.п. осуществляет блок Управления MAC подуровнем.
Главенствующую роль в беспроводном устройстве занимает блок Управления Устройством. Он согласовывает работу подуровней, а так же обеспечивает хранение ключей и шифрование информации по последним стандартам безопасного доступа RSNA.
На физическом уровне элементарная единица данных это PPDU (от англ. Physical Layer Packet Data Unit). Стоит отметить, что сама аббревиатура PDU (Protocol data unit) — это обобщённое название фрагмента данных на разных уровнях Модели OSI. PPDU состоит из:
преамбулы (Preamble Sequence), необходимой для синхронизации;
разделителя SFD (Start of Frame Delimiter), служит указателем о конце преамбулы и начале заголовка;
заголовка физического уровня (Physical Header), содержит информацию о типе модуляции, скорости и т.д. Это поле так же называют “PLCP header” (Physical Layer Convergence Procedure) – процедура согласования физических уровней разных устройств.
сервисной единицы данных PSDU (Physical Layer Service Data Unit), которая, по сути, является фрагментом данных MAC-уровня (PSDU = MPDU).
На канальном уровне стандарта IEEE 802.11 любой кадр называется MPDU (от англ. MAC layer Packet Data Unit) – фрагмент данных MAC-уровня; и состоит из:
заголовка (“Fr.Control”, “Address Fields” и т.д.);
сервисной единицы данных MSDU (MAC layer Service Data Unit), или, другими словами, полезной нагрузки;
последовательности для проверки на ошибки.
Схематическое представление общей структуры фрагментов данных представлено на рис. 4.4.
Рисунок 4.4 – Обобщенная структура фрагментов данных физического и MAC уровня стандарта IEEE 802.11
На физическом уровне стандарта 802.11 предусмотрены различные типы модуляции и, как следствие, различные форматы физических кадров:
Infrared на диапазоне инфракрасных волн 850-950 нм (скорость 1 и 2 Мбит/с)
FHSS на 2.4 ГГц (скорость 1 и 2 Мбит/с)
DSSS на 2.4 ГГц (скорость 1 и 2 Мбит/с)
HR-DSSS (скорость 1, 2, 5.5 и 11 Мбит/с)
OFDM (6, 9, 12, 18, 24, 36, 48 и 54 Мбит/с)
Сегодня в стандартах используются только DSSS, HR-DSSS и OFDM.
HR-DSSS модуляции DBPSK, DQPSK
Скорость манипуляции неизменна и составляет 11 Мчип/с или Мбод/с.
DBPSK и DQPSK кодируются 11-ти чиповой последовательностью Баркера: +1, –1, +1, +1, –1, +1, +1, +1, –1, –1, –1. Коды Баркера обладают наилучшими среди известных псевдослучайных последовательностей свойствами шумоподобности, что и обусловило их широкое применение.
1 Мбит/с – DBPSK, один бит передается 11-тью короткими сигналами (чипами).
2 Мбит/с – DQPSK, два бита передаются 11-ти чиповой последовательностью.
Для скоростей 5,5 и 11 Мбит/с вместо кода Баркера используются комплементарные коды и они хорошо описаны здесь: http://www.cyberguru.ru/networks/wlan/wireless-lan-page4.html
5,5 Мбит/с – DQPSK, 4ре бита передаются 8-ми чиповой последовательностью.
11 бит/с – DQPSK, 4ре бита передаются 4-х чиповой последовательностью.
OFDM – BPSK, QPSK, 16-QAM, 64-QAM
В полосе 20 МГц организовано 48 подканалов + 4 подканала используются для пилотного сигнала (эталонная последовательность для синхронизации). Скорость манипуляции составляет 250 Кчип/с или Кбод/с.
Пример:
Рисунок 4.5 – Пример формирования OFDM сигнала
Рисунок 4.6 – Модуляционные созвездия для подканалов OFDM
Использование технологий физического уровня в стандартах
В Wi-Fi устройствах стандарта 802.11b используется HR-DSSS, а в 802.11g совместно используются HR-DSSS и OFDM на частоте 2.4 ГГц, поэтому стандарты b и g совместимы. Устройства, работающие на стандарте 802.11a (частота 5 ГГц), используют только OFDM и не совместимы с 802.11b и 802.11g устройствами.
Таблица 4.1 – Суммарная информация о стандартах
11 сентября 2009 года был утвержден стандарт 802.11n, предусматривающий работу в диапазонах 2,4 и 5 ГГц на скоростях до 600 Мбит/с. Устройства стандарта 802.11n совместимы со всеми устройствами предшествующих стандартов, однако в режиме совместимости невозможно будет использовать новшества стандарта и, соответственно, заявленные большие скорости.
Таблица 4.2 – Варианты технологий физического уровня (выдержка из стандарта IEEE 802.11)
Скорость передачи, Мбит/с
Метод кодирования
Модуляция
1
(обязательно)
Код Баркера
DBPSK
2
(обязательно)
Код Баркера
DQPSK
5,5
(обязательно)
CCK
DQPSK
(опционально)
PBCC
DBPSK
6
(обязательно)
OFDM
BPSK
(опционально)
CCK-OFDM
BPSK
9
(опционально)
OFDM, CCK-OFDM
BPSK
11
(обязательно)
CCK
DQPSK
(опционально)
PBCC
DQPSK
12
(обязательно)
OFDM
QPSK
(опционально)
CCK-OFDM
QPSK
18
(опционально)
OFDM, CCK-OFDM
QPSK
22
(опционально)
PBCC
DQPSK
24
(обязательно)
OFDM
16-QAM
(опционально)
CCK-OFDM
33
(опционально)
PBCC
36
(опционально)
OFDM, CCK-OFDM
16-QAM
48
(опционально)
OFDM, CCK-OFDM
64-QAM
54
(опционально)
OFDM, CCK-OFDM
64-QAM
PLCP подуровень
Все данные, предшествующие PSDU, на физическом уровне нужны для согласования работы устройств, участвующих в процессе обмена информацией. Процедура согласования называется PLCP (Physical Layer Convergence Procedure).
Рисунок 4.7 – Формат PPDU при HR-DSSS с длинным заголовком
Рисунок 4.8 – Формат PPDU при HR-DSSS с коротким заголовком
Рисунок 4.9 – Формат PPDU при OFDM
В сетях 802.11 уровень MAC обеспечивает два режима доступа к разделяемой среде:
распределенный режим DCF (Distributed Coordination Function);
централизованный режим PCF (Point Coordination Function).
Распределенный режим доступа DCF
Рассмотрим сначала, как обеспечивается доступ в распределенном режиме DCF. В этом режиме реализуется метод множественного доступа с контролем несущей и предотвращением коллизий (Carrier Sense Multiple Access with Collision Avoidance - CSMA/CA). Вместо неэффективного в беспроводных сетях прямого распознавания коллизий по методу CSMA/CD здесь используется их косвенное выявление. Для этого каждый переданный кадр должен подтверждаться кадром положительной квитанции, посылаемым станцией назначения. Если же по истечении оговоренного тайм-аута квитанция не поступает, станция-отправитель считает, что произошла коллизия.
Режим доступа DCF требует синхронизации станций. В спецификации 802.11 эта проблема решается достаточно элегантно - временные интервалы начинают отсчитываться от момента окончания передачи очередного кадра (рис. 4.10). Это не требует передачи каких-либо специальных синхронизирующих сигналов и не ограничивает размер пакета размером слота, так как слоты принимаются во внимание только при принятии решения о начале передачи кадра.
Станция, которая хочет передать кадр, обязана предварительно прослушать среду. Стандарт IEEE 802.11 предусматривает два механизма контроля активности в канале (обнаружения несущей): физический и виртуальный. Первый механизм реализован на физическом уровне и сводится к определению уровня сигнала в антенне и сравнению его с пороговой величиной. Виртуальный механизм обнаружения несущей основан на том, что в передаваемых кадрах данных, а также в управляющих кадрах АСК и RTS/CTS содержится информация о времени, необходимом для передачи пакета (или группы пакетов) и получения подтверждения. Все устройства сети получают информацию о текущей передаче и могут определить, сколько времени канал будет занят, т.е. устройство при установлении связи сообщает всем, на какое время оно резервирует канал. Как только станция фиксирует окончание передачи кадра, она обязана отсчитать интервал времени, равный межкадровому интервалу (IFS). Если после истечения IFS среда все еще свободна, начинается отсчет слотов фиксированной длительности. Кадр можно передавать только в начале какого-либо из слотов при условии, что среда свободна. Станция выбирает для передачи слот на основании усеченного экспоненциального двоичного алгоритма отсрочки, аналогичного используемому в методе CSMA/CD. Номер слота выбирается как случайное целое число, равномерно распределенное в интервале [0, CW], где "CW" означает "Competition Window" (конкурентное окно).
Рисунок 4.10 – Схема распределенного режима доступа к среде
Рассмотрим этот довольно непростой метод доступа на примере рисунка 4.10. Пусть станция А выбрала для передачи на основании усеченного экспоненциального двоичного алгоритма отсрочки слот 3. При этом она присваивает таймеру отсрочки (назначение которого будет ясно из дальнейшего описания) значение 3 и начинает проверять состояние среды в начале каждого слота. Если среда свободна, то из значения таймера отсрочки вычитается 1, и если результат равен нулю, начинается передача кадра.
Таким образом, обеспечивается условие незанятости всех слотов, включая выбранный. Это условие является необходимым для начала передачи.
Если же в начале какого-нибудь слота среда оказывается занятой, то вычитания единицы не происходит, и таймер "замораживается". В этом случае станция начинает новый цикл доступа к среде, изменяя только алгоритм выбора слота для передачи. Как и в предыдущем цикле, станция следит за средой и при ее освобождении делает паузу в течение межкадрового интервала. Если среда осталась свободной, то станция использует значение "замороженного" таймера в качестве номера слота и выполняет описанную выше процедуру проверки свободных слотов с вычитанием единиц, начиная с замороженного значения таймера отсрочки.
Размер слота зависит от способа кодирования сигнала; так, для метода FHSS размер слота равен 28 мкс, а для метода DSSS - 1 мкс. Размер слота выбирается таким образом, чтобы он превосходил время распространения сигнала между любыми двумя станциями сети плюс время, затрачиваемое станцией на распознавание занятости среды. Если такое условие соблюдается, то каждая станция сети сумеет правильно распознать начало передачи кадра при прослушивании слотов, предшествующих выбранному ею для передачи слоту. Это, в свою очередь, означает следующее.
Коллизия может иметь место только в том случае, когда несколько станций выбирают один и тот же слот для передачи.
В этом случае кадры искажаются, и квитанции от станций назначения не приходят. Не получив в течение определенного времени квитанцию, отправители фиксируют факт коллизии и пытаются передать свои кадры снова. При каждой повторной неудачной попытке передачи кадра интервал [0, CW], из которого выбирается номер слота, удваивается. Если, например, начальный размер окна выбран равным 8 (то есть CW = 7), то после первой коллизии размер окна должен быть равен 16 (CW = 15), после второй последовательной коллизии - 32 и т. д. Начальное значение CW, в соответствии со стандартом 802.11, должно выбираться в зависимости от типа физического уровня, используемого в беспроводной локальной сети.
Как и в методе CSMA/CD, в данном методе количество неудачных попыток передачи одного кадра ограничено, но стандарт 802.11 не дает точного значения этого верхнего предела. Когда верхний предел в N попыток достигнут, кадр отбрасывается, а счетчик последовательных коллизий устанавливается в ноль. Этот счетчик также устанавливается в ноль, если кадр после некоторого количества неудачных попыток все же передается успешно.
В беспроводных сетях возможна ситуация, когда два устройства (А и В) удалены и не слышат друг друга, однако оба попадают в зону охвата третьего устройства С - так называемая проблема скрытого терминала. Если оба устройства А и В начнут передачу, то они принципиально не смогут обнаружить конфликтную ситуацию и определить, почему пакеты не проходят.
Централизованный режим доступа PCF
В том случае, когда в сети имеется станция, выполняющая функции точки доступа, может также применяться централизованный режим доступа PCF, обеспечивающий приоритетное обслуживание трафика. В этом случае говорят, что точка доступа играет роль арбитра среды.
Режим доступа PCF в сетях 802.11 сосуществует с режимом DCF. Оба режима координируются с помощью трех типов межкадровых интервалов (рис. 4.11).
Рисунок 4.11 - Сосуществование режимов PCF и DCF
После освобождения среды каждая станция отсчитывает время простоя среды, сравнивая его с тремя значениями:
короткий межкадровый интервал (Short IFS - SIFS);
межкадровый интервал режима PCF (PIFS);
межкадровый интервал режима DCF (DIFS).
Захват среды с помощью распределенной процедуры DCF возможен только в том случае, когда среда свободна в течение времени, равного или большего, чем DIFS. То есть в качестве IFS в режиме DCF нужно использовать интервал DIFS - самый длительный период из трех возможных, что дает этому режиму самый низкий приоритет.
Межкадровый интервал SIFS имеет наименьшее значение, он служит для первоочередного захвата среды ответными CTS-кадрами или квитанциями, которые продолжают или завершают уже начавшуюся передачу кадра.
Значение межкадрового интервала PIFS больше, чем SIFS, но меньше, чем DIFS. Промежутком времени между завершением PIFS и DIFS пользуется арбитр среды. В этом промежутке он может передать специальный кадр, который говорит всем станциям, что начинается контролируемый период. Получив этот кадр, станции, которые хотели бы воспользоваться алгоритмом DCF для захвата среды, уже не могут этого сделать, они должны дожидаться окончания контролируемого периода. Его длительность объявляется в специальном кадре, но этот период может закончиться и раньше, если у станций нет чувствительного к задержкам трафика. В этом случае арбитр передает служебный кадр, после которого по истечении интервала DIFS начинает работать режим DCF.
На управляемом интервале реализуется централизованный метод доступа PCF. Арбитр выполняет процедуру опроса, чтобы по очереди предоставить каждой такой станции право на использование среды, направляя ей специальный кадр. Станция, получив такой кадр, может ответить другим кадром, который подтверждает прием специального кадра и одновременно передает данные (либо по адресу арбитра для транзитной передачи, либо непосредственно станции).
Для того чтобы какая-то доля среды всегда доставалась асинхронному трафику, длительность контролируемого периода ограничена. После его окончания арбитр передает соответствующий кадр и начинается неконтролируемый период.
Каждая станция может работать в режиме PCF, для этого она должна подписаться на данную услугу при присоединении к сети.
ПРОБЛЕМА СКРЫТОГО ТЕРМИНАЛА
В беспроводных сетях возможна ситуация, когда два устройства (А и В) удалены и не слышат друг друга, однако оба попадают в зону охвата третьего устройства С (рис. 4.12) - так называемая проблема скрытого терминала. Если оба устройства А и В начнут передачу, то они принципиально не смогут обнаружить конфликтную ситуацию и определить, почему пакеты не проходят.
Рисунок 4.12 - Проблема скрытого терминала
В режиме доступа DCF применяются меры для устранения эффекта скрытого терминала. Для этого станция, которая хочет захватить среду и в соответствии с описанным алгоритмом начинает передачу кадра в определенном слоте, вместо кадра данных сначала посылает станции назначения короткий служебный кадр RTS (Request To Send - запрос на передачу). На этот запрос станция назначения должна ответить служебным кадром CTS (Clear To Send - свободна для передачи), после чего станция-отправитель посылает кадр данных. Кадр CTS должен оповестить о захвате среды те станции, которые находятся вне зоны сигнала станции-отправителя, но в зоне досягаемости станции-получателя, то есть являются скрытыми терминалами для станции-отправителя.
Максимальная длина кадра данных 802.11 равна 2346 байт, длина RTS-кадра - 20 байт, CTS-кадра - 14 байт. Так как RTS- и CTS-кадры гораздо короче, чем кадр данных, потери данных в результате коллизии RTS- или CTS-кадров гораздо меньше, чем при коллизии кадров данных. Процедура обмена RTS- и CTS-кадрами не обязательна. От нее можно отказаться при небольшой нагрузке сети, поскольку в такой ситуации коллизии случаются редко, а значит, не стоит тратить дополнительное время на выполнение процедуры обмена RTS- и CTS-кадрами.
При помехах иногда случается, что теряются большие фреймы данных, поэтому можно уменьшить длину этих фреймов путем фрагментации. Фрагментация фрейма - это выполняемая на уровне MAC функция, назначение которой - повысить надежность передачи фреймов через беспроводную среду. Под фрагментацией понимается дробление фрейма на меньшие фрагменты и передача каждого из них отдельно.
Общее описание канального уровня (MAC уровень)
Первые два байта заголовка MPDU (см. рис. 4.4) – это управляющая информация о кадре (“Frame ьлогтControl”). Структура “Frame Control” представлена на рис. 4.13.
Рисунок 4.13 - Структура поля “ Frame Control”.
Рассмотрим значение каждой группы бит подробнее.
“Protocol Version” – версия протокола. В настоящее время значение этих бит всегда равно “00”. Остальные значения зарезервированы на будущее.
“Type” – тип передаваемого кадра. В стандарте IEEE 802.11 существуют три типа кадров (см. Таблицу 4.3).
Таблица 4.3 – Типы кадров стандарта 802.11
Тип кадра
Англ. название
Значение поля “Type”
Кадры управления
Management frames
00
Кадры контроля
Control frames
01
Кадры данных
Data frames
10
Зарезервировано
Reserved
11
Значения поля “SubType” задает подтип сообщения. Например, для кадров контроля, “SubType” поясняет, что передаваемое сообщение является тестовым, ответом на соединение, запросом на передачу (RTS - Request to Send), готовности к передаче (CTS - Clear to Send) или пустым (Null).
Поля “To DS/From DS” информируют о назначении и источнике кадра (откуда и кому был отправлен кадр). В зависимости от значения этих двух бит, поля адресов заголовка кадра управления или данных могут интерпретироваться по-разному (см. Таблицу 4.4).
Если поле “More Frag” = 1, значит, что для данного кадра существует множество фрагментов.
Если поле “Retry” = 1, это означает, что кадр передается повторно.
Поле “Pwr Mgt” информирует о смене режима управления мощностью передачи.
Поле “More Data” используется точкой доступа, чтобы сообщить что передаваемые данные буферизированы.
Поле “Protected” информирует о том, что данные зашифрованы.
Поле “Order” означает, что кадр отправлен в строгом соответствии с классом услуги.
В зависимости от типа, структура кадра бывает различна. Далее рассмотрим три возможных типа кадров.
Кадры управления (Management Frames)
Рисунок 4.14 – Формат кадра управления
Кадры управления необходимы для обмена информацией о режимах работы сети, аутентификации, организации роуминга и т.п. Всего в стандарте предусмотрено 11 типов управляющих кадров. Пять типов зарезервировано.
Кадры используют стандартные поля, рассмотренные в разделе описания кадров данных.
Формат кадра приведен на рис. 4.14. Рассмотрим подробнее каждый тип.
Beacon frame (1000) (от англ. beacon - маяк) – «сигнальный» кадр. Точка доступа регулярно рассылает такие кадры, чтобы оповестить о своем присутствии устройства, находящиеся в зоне вещания. В сигнальном кадре передается SSID точки доступа, временная отметка и другие параметры.
Probe Request (0100) / Probe Response (0101) – тестовый запрос/ответ. Беспроводное устройство может запросить некоторую информацию о другом беспроводном устройстве с помощью Probe Request (тестового запроса). Опрашиваемое беспроводное устройство должно ответить на запрос (Probe Respond). В качестве информации, которая передается в тестовом ответе, могут быть перечислены поддерживаемые устройством скорости передачи и т.д.
Authentication (1011) – кадр запроса на аутентификацию. Чтобы зарегистрироваться в сети, беспроводные устройства отсылают запрос на аутентификацию (Authentication frame) точке доступа. Если используется “Open System”, то точка доступа отвечает на запрос положительно либо отрицательно, тоже отсылая Authentication frame. Если же используется “Shared Key” с WEP шифрованием, то на запрос аутентификации точка доступа отсылает произвольный текст. Беспроводное устройство кодирует его имеющимся ключом и отсылает закодированный текст в аутентификационном кадре точке доступа. Точка доступа декодирует зашифрованный текст своим ключом и сравнивает его с исходным текстом. Если они одинаковы, точка доступа отсылает положительный ответ, нет – отрицательный. Стоит заметить, что весь обмен информацией происходит именно кадрами аутентификации (Authentication Frame).
Deauthentication (1100) – кадр деаутентификации. Если беспроводное устройство хочет покинуть беспроводную сеть (допустим при переключении на другую беспроводную сеть), оно оповещает об этом другие беспроводные устройства.
Association Request (0000) – запрос на привязку к точке доступа. Привязка беспроводного устройства к точке доступа требует выделения ресурсов на точке доступа и синхронизации обоих устройств. Устройства начинают привязку с отправки запроса. Кадр запроса на привязку несет в себе информацию об устройстве (например, поддерживаемые устройством скорости) и SSID сети. Когда точка доступа принимает запрос на привязку, она резервирует некоторое пространство памяти (буфер) для устройства и назначает ему идентификационный номер (ID).
Association Response (0001) – ответ на привязку к точке доступа. Точка доступа отсылает такой кадр, уведомляя беспроводное устройство о согласии либо отказе. Если ответ положительный, то в кадре отсылается идентификационный номер устройства и поддерживаемые скорости передачи данных. С этого момента беспроводное устройство может обмениваться данными с другими устройствами сети через точку доступа.
Reassociation Request (0010) – запрос на привязку к другой точке доступа одной сети. Если беспроводное устройство обнаружило другую точку доступа с уровнем сигнала выше, чем у текущей, она отсылает ей запрос на привязку. При этом новая точка доступа должна скоординировать пересылку кадров данных, которые могут находиться в буфере старой точки доступа.
Reassociation Response (0011) – ответ на привязку к другой точке доступа одной сети. Новая точка доступа должна отослать свое согласие либо отказ на привязку. Кадр будет содержать то же, что и Association Response.
Disassociation (1010) – кадр завершения привязки. Беспроводное устройство отсылает кадр для завершения привязки к точке доступа, если, к примеру, питание беспроводного устройства отключается. Точка доступа перераспределит свою память для других клиентов и удалит идентификационный номер из своей таблицы.
ATIM (Announcement Traffic Indication Message) (1001) – сообщение применяется в Ad Hoc сетях для оповещения о наличии буферизированных кадров. Это сообщение передается между двумя беспроводными устройствами, информируя одно из них о наличии потока данных, и тем самым, предотвращая возможность ухода в режим энергосбережения этого устройства.
Кадры контроля (Control Frames)
Кадры контроля необходимы для оповещения всех устройств беспроводной сети о занятии среды, а так же для начала обмена данными между двумя беспроводными устройствами. Все станции обращают внимание на значение длительности передачи (Duration), даже если не участвуют в обмене кадрами контроля, что необходимо для предотвращения коллизий.
Кадры контроля бывают:
Block Ack Request (BlockAckReq)
Block Ack (BlockAck)
RTS (Request To Send)
CTS – Clear To Send
ACK – Acknowledgement
PS-Poll – Power Save Poll
CF End
CF End and CF-ACK
Рассмотрим основные типы кадров контроля подробнее:
1. RTS – Request To Send. Запрос на посылку. Сообщает о занятии среды передачи на время, указанное в поле Duration и запрашивает, готова ли принимающее устройство.
2. CTS – Clear To Send. Свободно для передачи. После принятия RTS, устройство отсылает CTS, сообщая о том, что оно готово к приему последующего кадра
3. ACK – Acknowledgment. Подтверждение. Структура кадра показана на рис. 3.4. После того как беспроводное устройство приняло кадр данных или кадр управления и проверило его на целостность, оно отсылает подтверждение о правильном принятии кадра.
4. PS-Poll – Power Safe Poll – кадр, приняв который, адаптеры переходят в режим энергосбережения (не «слушают» среду).
Кадры данных (Data Frames)
Рисунок 4.15 - Общая структура кадра в стандарте 802.11.
Таблица 4.4 –Интерпретация полей адресов в зависимости от бит “To DS/From DS”
To DS
From DS
Address 1
Address 2
Address 3
Address 4
DA
SA
BSSID
N/A
1
DA
BSSID
SA
N/A
1
BSSID
SA
DA
N/A
1
1
RA
TA
DA
SA
Аббревиатуры в таблице 4.4:
BSSID (Base Service Set Identifier) – обычно, MAC-адрес точки доступа.
DA – Destination Address – MAC-адрес назначения
SA – Source Address – MAC-адрес станции, которая инициировала передачу
RA – Receiver Address - MAC-адрес станции, которая является следующим получателем в цепочке. Зачастую RA = DA.
TA - Transmitter Address – станции, которая в настоящий момент ведет передачу.
Рассмотрим подробнее каждый случай из таблицы 4.4:
«00» - кадр отправляется от беспроводной к беспроводной станции через точку доступа. У IEEE есть стандарт, который предусматривает передачу трафика между станциями в обход точек доступа (Ad hoc), но в данном случае весь обмен информацией происходит именно через точку доступа.
«00» - частный случай, когда кадр отправляется от беспроводной станции к точке доступа, в этом случае DA = BSSID. Та же логика работает при передаче кадров от ТД к беспроводной станции, т.е. SA = BSSID
«01» - описывает случай, когда клиент проводной ЛВС сети отправляет кадр клиенту беспроводной сети.
«10» - случай, обратный предыдущему. Беспроводной клиент (SA) отправляет кадр хосту проводной сети (DA) через точку доступа (BSSID).
«11» - не используется. В стандарте 802.11 этот случай не описан.
Duration / ID - в режиме сбережения мощности – это идентификационный номер станции (ID). Во всех остальных случаях, это время, необходимое для передачи кадра в микросекундах. В зависимости от того, какая модуляционная схема используется в данный момент, кадр может быть передан за разное количество микросекунд. Например, если радиоусловия хорошие и используется модуляция 64QAM, то кадр может быть передан почти в шесть раз быстрее, чем при BPSK модуляции.
Sequence Control – поле состоящее из двух полей:
4 бита – это поле Fragment Number или номер фрагмента в случае, если передаваемый MSDU был больше, чем 2312 байт длиной из-за чего был разделен на несколько фрагментов (фрагментирован). Если передаваемые данные меньше чем 2312 байт длиной, то их не нужно фрагментировать и поле всегда будет равно 0000.
12 бит – поле Sequence Number или обычный счетчик кадров. Когда клиент или ТД отправляют самый первый кадр, это поле равно нулю (000000000000). Второй кадр – 000000000001. Третий кадр – 000000000010, и так далее. Клиент увеличивает свой счетчик независимо от ТД, т.е. каждый считает по своему.
Контрольные вопросы:
1. Перечислите три основных типа кадров стандарта IEEE 802.11.
2. Перечислите хотя бы три подтипа кадров контроля и объясните их назначение.
3. Какова длина MAC-адреса устройств Wi-Fi?
4. Объясните назначение кадра управления Beacon.
4.2 Организация и планирование беспроводных сетей Wi-Fi
При организации беспроводной локальной сети необходимо учитывать некоторые особенности окружающей среды. На качество и дальность работы связи влияет множество физических факторов: число стен, перекрытий и других объектов, через которые должен пройти сигнал. Обычно расстояние зависит от типа материалов и радиочастотного шума от других электроприборов в помещении. Для улучшения качества связи надо следовать базовым принципам:
Сократить число стен и перекрытий между абонентами беспроводной сети - каждая стена и перекрытие отнимает от максимального радиуса от 1 м до 25 м. Расположить точки доступа и абонентов сети так, чтобы количество преград между ними было минимальным.
Проверить угол между точками доступа и абонентами сети. Стена толщиной 0,5 м при угле в 30 градусов для радиоволны становится стеной толщиной 1 м. При угле в 2 градуса стена становится преградой толщиной в 12 м! Надо стараться расположить абонентов сети так, чтобы сигнал проходил под углом в 90 градусов к перекрытиям или стенам.
Строительные материалы влияют на прохождение сигнала по-разному - целиком металлические двери или алюминиевая облицовка негативно сказываются на передаче радиоволн. Желательно, чтобы между абонентами сети не было металлических или железобетонных препятствий.
Таблица 4.5 - Некоторые затухания в препятствиях:
Внешняя бетонная стена 68 см
53 dB
Бетонная стена 45 см.
18 дБ
Стена из шлакоблоков
4dB
Стена в один кирпич 10 см.
6 дБ
Гипсокартоновая стена
3dB
Стеклянная перегородка с железной рамой
6dB
Обычное окно
3dB
Металлическая дверь
6dB
Металлическая дверь в кирпичной стене
12.4dB
При расчете потерь можно просто суммировать потери в препятствии (формула 4.1), а можно использовать усредненную формулу (формула 4.2):
Потери (дБ) = P(1) +Сумма затуханий в препятствиях (4.1)
Потери (дБ) = P(1) + n * 10 * log D (4.2)
где P(1) – потери за 1 метр, равны 41 дБ
D – расстояние в метрах
n – коэффициент потерь: открытое пространство n=2, открытый офис (без крупных перегородок) n=3.3, в домашних условиях n=4.5.
Затухание в препятствиях приведены в таблице 4.5.
После расчета потерь можно рассчитать мощность сигнала либо после определенных препятствий (ф. 4.1), либо на конкретном расстоянии от ТД по формуле 4.3:
Мощность сигнала (дБм) = Рп (дБм) + Куа (дБи) – Потери (дБ) (4.3)
где Рп – мощность передатчика;
Куа – коэффициент усиления антенны.
В самом общем случае можно учитывать и потери в фидере, но в современных ТД обычно антенна подключается напрямую к плате излучателя.
Приведем конкретный пример расчета для ТД D-link DWL-2100AP.
Мощность передатчика (DWL-2100AP) 16 дБм
Чувствительность приемника (802.11b)
@ 8% PER (packet error rate)
11 Мбит/с: -83 dBm
2 Мбит/с: -89 dBm
Чувствительность приемника (802.11g)
Кадры: 1000-байтные PDU при @ 10% PER (packet error rate)
- 54 Мбит/с: -66 dBm
- 48 Мбит/с: -71 dBm
- 36 Мбит/с: -76 dBm
- 24 Мбит/с: -80 dBm
- 18 Мбит/с: -83 dBm
- 12 Мбит/с: -85 dBm
- 9 Мбит/с: -86 dBm
- 6 Мбит/с: -87 dBm
Коэффициент усиления антенны 9 dBi.
Рассчитаем мощность сигнала на расстоянии 30 метров в условиях офиса:
Мощность сигнала = 16 + 9 – ( 41 + 3.3*10*log10 30) = -64,75 дБм.
Если сравнить получившееся значение с чувствительностью приемника, то можно ожидать 54 Мбит/с на этом расстоянии.
Планировать Wi-Fi сети можно так же с помощью программного обеспечения, проверяя мощности сигнала надо позиционировать антенну на лучший прием.
Удалить от абонентов беспроводных сетей, по крайней мере, на 1-2 метра электроприборы, генерирующие радиопомехи, микроволновые печи, мониторы, электромоторы, ИБП. Для уменьшения помех эти приборы должны быть надежно заземлены.
Если используются беспроводные телефоны стандарта 2,4 ГГц или оборудование X-10 (например, системы сигнализации), качество беспроводной связи может заметно ухудшиться или прерваться.
Для типичного жилья расстояние связи не представляет особой проблемы. Если обнаружена неуверенная связь в пределах дома, то надо расположить точку доступа между комнатами, которые следует связать беспроводной сетью.
При расширении сети необходимо следить, чтобы частоты соседних точек доступа не перекрывались во избежание взаимных помех и снижения скорости передачи. Это достигается настройкой соседних точек на неперекрывающиеся по частоте каналы 1, 6 и 11. Чередуя каналы таким образом, что соседние точки с каналами 1, 6 и 11 окажутся в вершинах равностороннего треугольника, можно охватить беспроводной связью сколь угодно большую площадь без перекрытия частот (рис. 4.16).
Рисунок 4.16 – Пример планирования сети без перекрытия частот
На развертывание беспроводных сетей используемые приложения оказывают влияние по-разному. Наиболее важные факторы - это:
Расчетная скорость в пересчете на одного клиента;
Типы используемых приложений;
Задержки в передаче данных.
Расчетная скорость каждого клиента уменьшается с вводом в зону обслуживания новых клиентов. Следовательно, если дома или в офисе используются требовательные к скорости приложения (например, программа Internet-телефонии Skype), необходимо увеличить количество точек доступа на единицу площади (рис. 4.17).
Рисунок 4.17 - Расширение беспроводной сети с максимальной скоростью
Для определения границы действия точек доступа используется ноутбук с установленной программой Network Stumbler. Она показывает, на какой скорости будет работать адаптер в зависимости от расстояния от точки доступа. По мере удаления скорость автоматически падает, и при достижении порогового уровня необходимо ставить новую точку.
Объединение всех точек доступа в офисе в локальную сеть можно осуществить несколькими способами. Самым простым и распространенным методом организации является объединение через проводную инфраструктуру (рис. 4.18).
Рисунок 4.18 - Объединение точек доступа через проводную инфраструктуру
В таком случае устанавливается коммутатор, к которому подключаются точки доступа посредством витой пары через uplink-порт. Также к этому коммутатору можно подвести широкополосный Internet. Преимуществом такого подключения является простота настройки зоны действия точек доступа на разные каналы, недостатком - прокладка проводов от точек доступа к коммутатору.
Второй способ - подключение с использованием расширенного режима WDS (рис. 4.19).
Рисунок 4.19 - Объединение точек доступа с использованием расширенного режима WDS
Роуминг - это возможность радиоустройства перемещаться за пределы действия базовой станции и, находясь в зоне действия "гостевой" станции, иметь доступ к "домашней" сети (рис. 4.20).
Рисунок 4.20 – Роуминг в Wi-Fi
Для организации связи между зданиями могут использоваться внешние беспроводные точки, работающие в режиме моста (рис. 4.21). Через uplink-порт внешняя точка подключается к обычному коммутатору и через него обеспечивает связь со всеми компьютерами подсети.
Рисунок 4.21 – Пример организации беспроводной связи между зданиями
Контрольные вопросы:
1. Как вы думаете, как мощность передатчика влияет на радиус покрытия сети?
2. Какое из препятствий меньше всего ослабляет сигнал? Какое самое непроходимое?
3. Сколько радиоканалов предусмотрено стандартом в диапазоне 2,4 ГГц. Какие из них разрешены в Российской Федерации?
4. Что такое Роуминг в терминах Wi-Fi?
4.3 Базовые механизмы защиты в сетях Wi- Fi
Лекции по безопасности в сетях 802.11 основаны на авторском переводе брошюры «The Evolution of 802.11 Wireless Security», автор Kevin Benton, дата публикации April 18th, 2010.
Краткое введение
При разработке стандартов беспроводного доступа появилась новая проблема – необходимо обеспечивать безопасность. Изначально, передача данных по радиоканалу опирается на технологию прямого расширения спектра или хоппинг, поэтому невозможно перехватить сигнал без знания шумоподобных последовательностей или последовательностей для частотного хоппинга. Однако, после открытой стандартизации такой системы, любой сможет перехватить передаваемые данные. Для устранения этой проблемы в стандарт 802.11 были введены методы шифрования полезной нагрузки в MPDU (см. рис. 4.4).
Безопасность в первой версии стандарта 802.11
В самой первой версии стандарта было описано два метода аутентификации (“Open System” и “Shared Key”) и один метод шифрования (“Wired Equivalence Privacy” или WEP). Механизмы аутентификации и шифрования можно сочетать получая различные конфигурации, которые приведены в таблице ниже.
Таблица 4.6
WEP шифрование
Нет шифрования
Аутентификация
“Open System”
Шифрование
Нет аутентификации
Нет шифрования
Нет аутентификации
Аутентификация
“Shared Key”
Шифрование
Аутентификация
Нет шифрования
Аутентификация
Из-за найденных уязвимостей аутентификации “Shared Key”, обсуждаемых ниже, аутентификация “Open System” с шифрованием обеспечивает бо̀льшую безопасность, чем “Shared Key”. При осуществлении шифрования клиенты обязаны знать правильный ключ, что позволит им стать полноценными участниками сети или, по сути, аутентифицирует их.
Аутентификация “Open System”
По существу аутентификация “Open System” (Открытая Система) – это отсутствие аутентификации в принципе. Присоединение к беспроводной сети осуществляется двумя простыми шагами.
Шаг 1. Клиент отсылает кадр точке доступа (или другой станции) к сети которой он хочет присоединится, содержащий следующую информацию:
поле тип (“Type”) указывает на то, что кадр это кадр управления (“Management”);
поле подтип (“SubType”) указывает на то, что это кадр аутентификации (“Authentication”);
идентификатор алгоритма аутентификации – “Open System”;
идентификатор станции – 48-битный MAC адрес;
последовательный номер сообщения – 1.
Шаг 2. Если точка доступа (или другая станция) настроена на аутентификацию “Open System”, то она отвечает кадром, содержащим следующую информацию:
поле тип (“Type”) указывает на то, что кадр это кадр управления (“Management”);
поле подтип (“SubType”) указывает на то, что это кадр аутентификации (“Authentication”);
идентификатор алгоритма аутентификации – “Open System”;
последовательный номер сообщения – 2;
результат аутентификации (“0” если прошла успешно).
Если аутентификация прошла успешно, теперь клиенту необходимо осуществить привязку к сети перед тем, как начать передавать трафик.
Клиент может быть аутентифицирован одновременно в нескольких сетях, однако он может быть привязан только к одной. Таким образом, привязка всегда подразумевает аутентификацию, в то время как аутентификация не означает последующую привязку.
Фильтрация по MAC-адресам
У многих точек доступа имеется дополнительная функция, позволяющая производить аутентификацию клиентов по их MAC-адресам. Это исключает успешную аутентификацию клиентов с посторонними MAC-адресами. Обычно точка доступа позволяет настраивать либо «белый список», то есть список разрешенных MAC адресов, либо «черный список», то есть список запрещённых адресов.
Скриншот ниже показывает перехваченный пакет с сообщением аутентификации, принятый клиентом с посторонним MAC-адресом в сети со включенной фильтрацией. Как можно увидеть в поле “Status code”, точка доступа присвоила ему значение “Unspecified failure” вместо значения “Successful”, необходимого для успешной аутентификации.
Рисунок 4.22 - Перехват пакета при неуспешной попытке аутентификации с MAC-фильтром
Несмотря на то, что этот метод широкодоступен, практика показывает, что его очень редко используют, так как с увеличением количества точек доступа и клиентов сложность администрирования экспоненциально возрастает. Более того, эту защиту очень просто обойти.
Как видно из приведенного выше снимка экрана, MAC-адреса передаются в незашифрованном виде. Любой может просто перехватить пакет и узнать MAC-адрес аутентифицированного клиента, после чего сконфигурировать свой беспроводной адаптер на использование этого адреса.
Скрытый SSID
Другая функция безопасности, которую так же легко обойти, называется «Скрытый SSID». Эта функция запрещает точкам доступа рекламировать свой SSID (Service Set Identification) или другими словами имя сети. По сути, эта функция просто отключает рассылку точкой доступа кадров подтипа “Beacon”. Это, однако, не мешает злоумышленникам просто сканировать среду и перехватывать другие кадры от этой точки доступа и её клиентов, которые содержат SSID. Это кадры “PROBE request”, “PROBE response”, “ASSOCIATION request” и “REASSOCIATION request”.
Снимок экрана, представленный ниже, показывает перехваченные пакеты клиента, соединенного со скрытой беспроводной сетью с SSID “HiddenSecret”. Так как там нет “Beacon” кадров, имя сети легко узнать из других кадров управления, например кадра “PROBE reauest”, показанного на скриншоте.
Рисунок 4.23 - Перехваченный пакет сети со скрытым SSID
Неэффективность этой функции не единственный её недостаток, так как она влияет на процесс роуминга клиентов между точками доступа. Клиентские адаптеры используют рассылаемые разными точками доступа кадры “Beacon”, принадлежащие одной ESSID для того, чтобы выбрать наиболее уверенный сигнал. Если же включена функция «Скрытый SSID», то клиенты постоянно опрашивают доступные точки доступа, создавая дополнительную нагрузку на сеть.
Шифрование
Если сеть сконфигурирована на использование аутентификации “Open System” и шифрования WEP, то алгоритм аутентификации не меняется. Различия начинаются после попытки клиентского адаптера осуществить привязку к точке доступа.
В случае, если привязка прошла успешно, пользователь должен ввести известный только участникам сети ключ, который будет использоваться в алгоритме шифрования WEP. Ключ представляет собой набор символов (цифры, буквы, знаки препинания) определенной длины либо набор шестнадцатеричных цифр (0-9, A-F). Обычно администратор выдает ключ всем пользователям лично в руки на бумажке. Если пользователь ввел не верный ключ или вообще его не ввел, то адаптер не сможет корректно шифровать и дешифровывать сообщения, а, соответственно, не сможет принимать или передавать трафик.
Так как клиенты без правильного ключа не смогут осуществить привязку к сети или дешифровать принимаемый трафик, то, по сути, аутентификация “Open System” вместе с шифрованием WEP осуществляют аутентификацию клиентов.
Исходя из вышеописанного, а так же из того, что аутентификация “Shared Key” имеет серьёзные уязвимости (описанные в разделе «Аутентификация “Shared Key”»), аутентификация “Open System” преимущественна в использовании независимо от того, используется ли WEP или нет.
Выводы
На сегодняшний день большое количество производителей сетевого оборудования внедряют функции «Скрытый SSID» и «Фильтрация по MAC-адресам». Обе функции очень легко обойти хотя они требуют дополнительных затрат времени на администрирование. Если ваша беспроводная сеть требует шифрование или аутентификации, то это можно организовать с помощью протоколов верхних уровней модели OSI (например IPsec, SSL, captive portal).
Аутентификация “Shared Key”
Процесс аутентификации для данного алгоритма начинается с обмена незашифрованными сообщениями подобно алгоритму “Open System”. Ключевое отличие заключается в использовании заранее известного только участниками сети ключа (Shared Key – общий ключ). Процесс может быть разделен на 4 шага.
Для всех шагов используются кадры, содержащие:
поле тип (“Type”) указывает на то, что кадр это кадр управления (“Management”);
поле подтип (“SubType”) указывает на то, что это кадр аутентификации (“Authentication”);
идентификатор алгоритма аутентификации – “Shared Key”.
Шаг 1. Клиент отсылает кадр точке доступа (или другой станции) к сети которой он хочет присоединится, содержащий следующую информацию:
идентификатор станции – 48-битный MAC адрес;
последовательный номер сообщения – «1».
Шаг 2. Если точка доступа (или другая станция) настроена на аутентификацию “Shared Key”, то она отвечает кадром, содержащим следующую информацию:
последовательный номер сообщения – «2»;
результат аутентификации (“0” если прошла успешно);
если результат аутентификации успешный, тестовое сообщение.
Тестовое сообщение – это последовательность случайных бит длиной 1024 бита.
Шаг 3. Клиент отсылает назад следующую информацию:
последовательный номер сообщения – «3»;
вектор инициализации для шифрования WEP;
тестовое сообщение, зашифрованное алгоритмом WEP с помощью вектора инициализации и общего ключа;
проверка целостности (ICV – Integrity Check Value), вычисленная и зашифрованная WEP алгоритмом.
Точка доступа (или другая станция) дешифрует кадр 3, используя общий ключ и вектор инициализации. Далее проверяется значение ICV, для того, чтобы убедиться, что сообщение принято правильно, без искажений. После проверки целостности, тестовое сообщение сравнивается с тем, что высылалось в кадре 2.
Если клиент в процессе шифрования использовал не верный общий ключ, проверка на целостность кадра 3 будет провалена и кадр будет отброшен (удален). Расширенную информацию о WEP шифровании и о проверке на целостность можно найти в разделе «Wired Equivalence Privacy – Конфиденциальность Эквивалентная Проводным системам передачи».
Шаг 4. Точка доступа (или другая станция) высылает последний кадр для завершения процесса аутентификации, содержащий следующую информацию:
последовательный номер сообщения – «4»;
результат аутентификации (успешно или нет).
Это завершает процесс аутентификации. Если обе стороны имеют разные ключи, тогда результат аутентификации будет неуспешным и клиент должен начать всё сначала. Если же клиент аутентифицировался, то ему разрешено осуществлять привязку к точке доступа и начать обмен информацией.
После того, как клиент аутентифицировался, весь последующий трафик будет шифроваться WEP алгоритмом с использованием того же самого общего ключа. Хотя и возможно использование аутентификации “Shared Key” без шифрования, такой конфигурации следует избегать из-за отсутствия какой-либо защиты от перехвата сообщений. Кроме того, ниже будет описана уязвимость, позволяющая злоумышленнику осуществлять процесс аутентификации без знания общего ключа.
Уязвимость
На первый взгляд кажется, что алгоритм “Shared Key” это приемлемый механизм аутентификации, однако специалисты быстро нашли серьёзную уязвимость - злоумышленнику необходимо перехватить все сообщения процесса аутентификации легального пользователя, после чего он без труда может аутентифицироваться сам.
Данная уязвимость опирается на тот факт, что точка доступа отсылает тестовое сообщение клиенту в незашифрованном виде (шаг 2 алгоритма). Алгоритм WEP использует потоковый ключ, генерируемый по алгоритму RC4, чтобы побитно выполнить операцию XOR («исключающее или») между ним и исходным сообщением, тем самым, вычисляя зашифрованное сообщение. Если злоумышленник перехватит исходное тестовое сообщение на шаге 2 и зашифрованное тестовое сообщение на шаге 3, то он без труда сможет вычислить потоковый ключ, который использовался при шифровании, выполнив побитную операцию XOR между исходным тестовым сообщением и зашифрованным.
Теперь злоумышленник может инициировать процесс аутентификации и на шаге 3 зашифровать тестовое сообщение вычисленным потоковым ключом, при этом приложить тот же самый вектор инициализации (IV – Initialization Vector), который использовался предыдущим пользователем. В результате злоумышленник успешно аутентифицируется. Весь описанный процесс показан на рис. 4.24.
Рисунок 4.24 – Уязвимость аутентификации “Shared Key”
Несмотря на то, что это очень простая атака, с помощью неё невозможно узнать ключ для шифрования. Таким образом, если сеть использует и шифрование, и аутентификацию “Shared Key”, то даже после успешной аутентификации злоумышленник не сможет корректно принимать и отправлять кадры, так как он не знает Общий Ключ сети. Однако существуют способы атак и для вычисления Общего Ключа, которые описаны в разделе «Уязвимости WEP».
Из-за описанной уязвимости не рекомендуется использовать аутентификацию “Shared Key”, т.к. аутентификация “Open System” совместно с шифрованием WEP выполняет ту же задачу.
Контрольные вопросы:
1. Назовите два базовых метода аутентификации и объясните различия между ними.
2. В чем идея функции безопасности «Скрытый SSID»? Есть ли у неё недостатки?
3. Поясните идею функции фильтрации по MAC-адресам?
4.4 Алгоритм шифрования WEP
В WEP шифрование данных осуществляется с использованием алгоритма RC4, разработанного компанией “RSA Data Security”. RC4 – это потоковый шифр, который шифрует один бит информации в единицу времени. В противоположность потоковым, существуют так же блочные шифры, которые шифруют информацию небольшими частями – блоками. Алгоритм RC4 нужен для имитации «одноразового блокнота» (One-time pad).
Схема одноразовых блокнотов или Шифр Вернама является системой шифрования, для которой доказана абсолютная криптографическая стойкость при условии, что ключ будет:
истинно случайным, т.е. не предугадываемым;
совпадает по размеру с заданным открытым текстом;
применяется только один раз.
Однако при таких ограничениях распространение ключей для передачи большого количества данных множеством участников сети становится невозможным. К примеру, чтобы передать зашифрованный DVD диск объемом 4.7 гигабайта, необходим ключ длиной 4.7 гигабайта.
Идея алгоритма RC4 заключается в имитации одноразового блокнота посредством использования «генератора псевдослучайной последовательности» бит (PRNG – Pseudo Random Number Generator), который порождает «потоковый ключ» для шифрования информации. «Потоковый ключ» напрямую зависит от исходного статического ключа для шифрования (иногда называемого «Сид», от англ. Seed - начало). Таким образом, одинаковые исходные ключи на входе алгоритма RC4 породят абсолютно идентичные «потоковые ключи». Функция PRNG это одностороннее преобразование, то есть из «потокового ключа» нельзя восстановить исходный ключ с помощью PRNG.
Псевдослучайность достигается созданием упорядоченного массива данных длиной 256 байт, содержимое которого впоследствии подвергается случайным изменениям на основании длины исходного ключа и его значения. После первичных изменений содержимое массива становится частью потокового ключа, при этом массив продолжает перемешиваться и изменяться, тем самым вычисляется следующая часть потокового ключа и т.д. Постоянное изменение массива предотвращает повторение частей потокового ключа.
Сама по себе операция шифрования при этом очень проста. Между информационной последовательностью и потоковым ключом побитно выполняется операция XOR («исключающее или» или «сложение по модулю 2»), тем самым вычисляется зашифрованное сообщение. На другом конце выполняется обратное преобразование: между зашифрованным сообщением и потоковым ключом побитно выполняется операция XOR, тем самым вычисляется исходная информационная последовательность.
Как работает WEP
Из-за особенностей алгоритма RC4, потеря хотя бы одного бита в передаваемых сообщениях приведет к сдвигу потоковых ключей как на точке доступа так и на клиентской станции. В итоге ни клиент, ни точка доступа не смогут больше правильно интерпретировать сообщения друг друга. Поэтому при подозрении о том, что кадр потерян в процессе передачи, устройства перезапускают процесс шифрования для каждого кадра.
В вышеописанном случае, если шифрование будет начинаться заново для каждого кадра, то алгоритм RC4 будет порождать одни и те же потоковые ключи для каждого передаваемого кадра. Таким образом, если произвести операцию XOR между двумя зашифрованными сообщениями, то мы получим тот же результат, что и при операции XOR между двумя незашифрованными сообщениями (т.е. ЗС1⊕ЗС2 = НЗС1⊕НЗС2, где ЗС – зашифрованное Сообщение, НЗС – Незашифрованное сообщение). Угадывая части незашифрованного сообщения (например, заголовок IP-пакета с адресами 192.168.x.x), атакующий может быстро вычислить потоковый ключ и соответственно вычислять исходные сообщения. Для предотвращения такой атаки к статическому общему ключу добавляется последовательность из 24-х случайных бит – «вектор инициализации» (IV – Initialization Vector), генерируемый передающим устройством каждый раз перед передачей сообщения (кадра). Общий ключ, объединенный с вектором инициализации, служит сидом для генератора RC4, делая потоковый ключ уникальным для каждого кадра. Теперь, когда вектор инициализации вычисляется каждым устройством индивидуально, его необходимо передавать в незашифрованном виде, чтобы приемник смог восстановить сид для RC4 и соответственно правильно дешифровать сообщение.
Обычно длина статического общего ключа равна 40 или 104 бит. После добавления вектора инициализации длина сида для алгоритма RC4 получается равной 64 (40+24) или 128 (104+24) бит. Обычно в параметрах устройств указывают именно общую длину ключа. Некоторые производители беспроводного оборудования предлагают поддержку ключей длиной более 128 бит, например 152 или 256 бит. Но увеличивается лишь статическая составляющая ключа, вектор инициализации остается таким же.
Кроме того, каждый передаваемый кадр включает в себя поле проверки на целостность (ICV – Integrity Check Value), которое используется для определения факта модификации принятого сообщения. Перед шифрованием передающая станция вычисляет CRC-32 хэш от незашифрованного исходного сообщения и добавляет вычисленные 32 бита в конец незашифрованного сообщения.
После этого ICV и исходное сообщение шифруются и передаются. После дешифрования сообщения на приёмной стороне, приемник вычисляет ICV сообщения и сравнивает его с принятым ICV. Если они совпадают, то приемник берет кадр в дальнейшую обработку; если нет, то отбрасывает (стирает).
Диаграмма ниже показывает процесс шифрования и дешифрования кадров алгоритмом WEP.
Рисунок 4.25 – WEP шифрование и дешифрование.
После шифрования WEP видоизменяется MPDU (рис. 4.26).
Рисунок 4.26 – Структура зашифрованного кадра данных
Уязвимости
Главная уязвимость протокола WEP связана с короткой длиной вектора инициализации – 24 бита дают возможность создать всего около 16 миллионов различных векторов. Это число может показаться большим, но в реальной работе все возможные варианты ключей будут использованы в течение нескольких часов. После этого значения вектора инициализации начнут повторяться. Чтобы взломать сеть, злоумышленнику нужно записать достаточно большой кусок трафика беспроводной сети и найти повторы вектора инициализации. После этого подбор статической составляющей ключа делается достаточно быстро с использованием легкодоступных программ.
Существуют также так называемые «нестойкие» векторы инициализации. Некоторые производители встраивают в свои устройства специальные процедуры для отбрасывания подобных векторов. Но, к сожалению, эта функция реализована не на всех устройствах. Если используются нестойкие векторы в ключе WEP, злоумышленнику не придется ждать несколько часов, пассивно накапливая трафик сети, узнать ключ WEP он сможет еще быстрее.
Деятельность злоумышленника облегчается тем, что практически невозможно сетевыми средствами определить факт прослушивания и записи трафика беспроводной сети.
Схема системы шифрования по протоколу WEP приведена на рисунке 4.25 Рассмотрим ее подробнее.
В блоке CRC-32 (Cyclic Redundancy Check) для незашифрованной информационной последовательности вычисляется контрольная сумма по алгоритму CRC. Контрольная сумма будет использоваться на приемной стороне для проверки правильности дешифрования. После вычисления, контрольная сумма объединяется с незашифрованной информационной последовательностью, образуя последовательность, готовую к шифрованию.
Далее система выбирает значение вектора инициализации (IV) и прикладывает его к секретному ключу WEP (активный ключ с нужным номером). Получившаяся последовательность будет являться «cидом» (от англ. «seed» - начальное число при генерации псевдослучайных чисел) для блока RC4. На основе «сида» блок шифрования RC4 вычисляет псевдослучайную последовательность, которая побитно «складывается по модулю два» (операция XOR) с данными и контрольной суммой CRC-32.
К получившемуся шифротексту добавляется незашифрованный вектор инициализации и номер ключа шифрования, образуя готовое сообщение. В завершении, к сообщению добавляется MAC‑заголовок и дополнительная контрольная сумма. Необходимо отметить, что MAC‑заголовок содержит информацию о методе шифрования, чтобы приемник сообщения смог правильно его расшифровать. Общая структура зашифрованного кадра приведена на рисунке 4.26.
Контрольные вопросы:
1. Какова длина вектора инициализации и его назначение?
2. Что такое RC4?
3. Поясните значение термина «сид»
4. Перечислите уязвимости алгоритма шифрования WEP.
4.5 Расширение безопасности - 802.11i
WPA предусматривает наличие трех участников процесса аутентификации. Это сервер аутентификации (Authentication Server, AS), точка доступа (Access Point, AP) и рабочая станция (Station, STA). В процессе шифрования данных участвуют только AP и STA (сервер аутентификации не используется).
Протокол WPA обеспечивает двустороннюю аутентификацию. При этом местами принятия решения о разрешении доступа являются STA и AS, а местами исполнения этого решения – STA и AP. Напомним, что в WEP аутентифицируется только рабочая станция, но не точка доступа.
Для работы по протоколу WPA создается иерархия ключей, включающая Master Key (MK), Pairwise Master Key (PMK), Pairwise Transient Key (PTK), а также групповые ключи (GTK), служащие для защиты широковещательного сетевого трафика.
MK – это симметричный ключ, воплощающий решение STA и AS о взаимной аутентификации. Для каждой сессии создается новый MK.
PMK – обновляемый симметричный ключ, владение которым означает разрешение (авторизацию) на доступ к среде передачи данных в течение данной сессии. PMK создается на основе MK. Для каждой пары STA и AP в каждой сессии создается новый PMK.
PTK – коллекция операционных ключей, которые используются для привязки PMK к данным STA и AP, распространения GTK и шифрования данных.
Подробно иерархия ключей представлена на рис. 4.27.
Существует два варианта аутентификации WPA, т.е. по сути вариантов получения ключа PMK:
1. Pre-Shared Key (PSK) – без сервера аутентификации
2. Extensible Authentication Protocol (EAP) – с сервером
В первом случае PMK вычисляется из заданного администратором сети пароля доступа к беспроводной сети.
Во втором случае, процесс аутентификации и доставки ключей определяется стандартом 802.1x. Он предоставляет возможность использовать в беспроводных сетях традиционные серверы аутентификации, такие как RADIUS, что является de facto стандартным решением.
Транспортом для сообщений 802.1x служит Extensible Authentication Protocol (EAP). EAP позволяет легко добавлять новые методы аутентификации. Точке доступа не требуется знать об используемом методе аутентификации, поэтому изменение метода никак не затронет точку доступа.
Наиболее популярные методы EAP – это LEAP, PEAP, TTLS и FAST. Каждый из методов имеет свои сильные и слабые стороны, условия применения, по-разному поддерживается производителями оборудования и программного обеспечения.
Кажется сложным? Что поделаешь, за безопасность приходится расплачиваться потерей простоты. К счастью, в такие тонкости приходится вникать только системным администраторам сетей, требующих высокого уровня безопасности. Для всех остальных придуман режим Pre-Shared Key (PSK), который позволяет обойтись без сервера аутентификации. При использовании WPA-PSK на точке доступа и на рабочей станции вручную вводится ключевая фраза – Pre-Shared Key, которая используется для вычисления PMK. Подробнее алгоритм генерации ключей описан в разделе 4.6.
Потенциальная уязвимость WPA-PSK возникает из-за того, что в реальных сетях ключевая фраза практически никогда не меняется и одинакова для всех пользователей сети. Злоумышленник может узнать ключевую фразу, например, от легального пользователя. Поэтому в больших корпоративных сетях, где вероятность «утечки» высока, используют аутентификацию EAP.
Рисунок 4.27 – Иерархия ключей
Кадры EAPOL
Для того, чтобы производить обмен ключами между точкой доступа и станциями в 802.11i используются специальные EAPOL-Key кадры. Эти же кадры используются для обновления устаревших ключей.
Как показано выше на рис. 4.27, EAPOL-Key кадры тоже защищаются с помощью ключей, независимых от TK для обычного трафика. Такой подход позволяет безопасно обмениваться или обновлять ключ в случае его устаревания или обнаружения попытки подделки ключа.
EAPOL-Key кадры защищаются с помощью 128-битного «ключа для подтверждения ключа» (англ. Key Confirmation Key), далее KCK, и 128-битного «ключа для шифрования ключа» (англ. Key Encryption Key), далее KEK. Эти ключи используются в одной из двух возможных комбинациях:
1) Проверка целостности сообщения HMAC-MD5 с алгоритмом шифрования RC4. Такая опция используется, если выбран режим TKIP.
Процедура HMAC-MD5 работает следующим образом. EAPOL-Key кадр хэшируется с помощью алгоритма MD5, который выдает на выход 128 бит. Эти биты складываются по модулю (операция XOR) со 128-битным ключом KCK. Получившаяся последовательность прикладывается к EAPOL-Key кадру, чтобы на приемном конце проверить его на предмет подделки.
Далее кадр шифруется потоковым алгоритмом RC4, используя в качестве сида 128-битный KEK и 128-битный вектор инициализации (случайные биты). Вектор инициализации прикладывается к EAPOL-Key кадру без шифрования, чтобы на приемном конце можно было дешифровать кадр. Первые 2048 бит сгенерированного RC4 потока отбрасываются, чтобы снизить предсказуемость этого генератора псевдослучайных чисел, последующие биты используются для шифрования путем обычной операции XOR с битами кадра EAPOL-Key.
2) Проверка целостности сообщения HMAC-SHA1-128 с алгоритмом шифрования AES. Такая опция используется, если выбран режим CCMP (AES).
Алгоритм работы следующий. EAPOL-Key кадр хэшируется с помощью алгоритма SHA1, который выдает на выход 160 бит. Результат усекается до 128 бит, которые опять же XOR’ятся с KCK. Получившаяся последовательность прикладывается к EAPOL-Key кадру, чтобы на приемном конце проверить его на предмет подделки.
Кадр шифруется алгоритмом AES с помощью ключа KEK, используя запаковку, в соответствии с RFC 3394. Процесс шифрования с запаковкой идентичен схеме шифрования CCMP, приведенной на рис. 4.33. Единственное отличие заключается в использовании блоков по 64 бита.
Кадры EAPOL используют общий формат кадров управления, представленный на рис. 4.14. Тип кадров: кадры управления. Подтип: кадры аутентификации.
Поле данных (frame body) кадров EAPOL имеет собственный особенный формат, представленный в таблице ниже.
Таблица 4.7 – Формат поля данных (frame body) кадров EAPOL.
Кадр EAPOL состоит из следующих полей.
1. Descriptor type – поле состоящее из одного байта, значения которого определены в стандарте IEEE Std 802.1X-2004. На рис. 4.28 показана вырезка из стандарта, определяющая значения этого байта.
Рисунок 4.28 – Возможные значения байта «Descriptor type»
Как следует из рисунка, значение «1» было зарезервировано под аутентификацию Open System и Shared Key, поэтому устарело и не используется. Значение «2» используется в случае с аутентификацией WPA.
2. Key Information – поле, формат которого представлен на рисунке 4.29.
Рисунок 4.29 – Формат поля Key Information кадра EAPOL
Key Descriptor Version – три первых бита, обозначающие тип шифрования
001 – используется шифрование TKIP, как следствие для вычисления MIC кадра EAPOL используется алгоритм HMAC-MD5, а для шифрования поля Key Data в кадрах EAPOL используется алгоритм RC4.
010 – используется шифрование AES-CCMP, как следствие для вычисления MIC кадра EAPOL используется алгоритм HMAC-SHA1, а для шифрования поля Key Data в кадрах EAPOL используется алгоритм AES.
Key Type – один бит, при этом:
0 – означает, что EAPOL кадр в данный момент используется для согласования ключа PTK, т.е. в момент первых двух рукопожатий.
1 – означает, что кадр используется для согласования группового ключа GTK, т.е. в момент 3 и 4 рукопожатия.
Reserved – два бита, поле зарезервировано для будущего использования, поэтому значение его фиксировано «00».
Install – один бит, имеет следующие значения:
0 – если поле Key Type равно нулю, т.е. в момент согласования ключа PTK.
1 – если поле Key Type равно единице, то этот бит означает, что данный EAPOL кадр переносит ключ GTK, который находится в поле Key Data. Такое значение разрешено только в момент третьего рукопожатия.
Key Ack – один бит, который может установить в значение «1» только точка доступа. По факту этот флаг используется как просьба точки доступа о подтверждении данного кадра (рукопожатие 1 и 3). Во всех остальных случаях (рукопожатие 2 и 4) флаг равен «0».
Key MIC – один бит, использующийся как индикатор того, что в данном кадре присутствует MIC. Если MIC не представлен в кадре, то поле равно «0».
Secure – один бит, используется как индикатор того, что теперь у клиента должны быть оба ключа (PTK и GTK). Фактически поле равно «0» в момент первых двух рукопожатий и равно «1» при рукопожатии 3 и 4.
Error – один бит, использующийся для индикации того, что поле MIC в кадрах данных TKIP было вычислено с ошибкой (т.е. подозрение на подделку трафика злоумышленником). В момент рукопожатий поле равно «0».
Request – один бит, использующийся совместно с предыдущим, для того, чтобы инициировать процесс обновления ключа PTK или GTK. В момент рукопожатий поле равно «0».
Encrypted Key Data – один бит, для индикации того, что поле Key Data зашифровано. Равен «0» в момент первых двух рукопожатий и равен «1» в момент рукопожатий 3 и 4.
Reserved – поле из трёх бит зарезервировано для будущего использования. Всегда равно «000».
3. Key Length – поле из 2 байт, значение которого равно длине ключа PTK в байтах, которое будет использоваться. Существует четыре варианта значения поля:
a. Шифрование CCMP – 16 байт, Key Length = 0010 в шестн.
b. Шифрование TKIP – 32 байта, Key Length = 0020 в шестн.
c. Шифрование WEP-40 – 5 байт, Key Length = 0005 в шестн.
d. Шифрование WEP-104 – 13 байт, Key Length = 000D в шестн.
4. Key Replay Counter – поле 8 байт. Представляет собой счетчик кадров EAPOL. Изначально счетчику присваивается значение 0. Только ТД разрешено увеличивать счетчик каждый раз после успешного приема кадра EAPOL от клиента. Клиент же должен вставлять в отправляемые кадры EAPOL то значение Key Replay Counter, которое было последний раз получено от ТД. Счетчик необходим для того, чтобы избежать повторений кадров, а так же определить попытку несанкционированного доступа в сеть.
5. Key Nonce – поле состоящее из 32 байт. Используется для передачи Anonce и Snonce, т.е. во время первых двух рукопожатий. В остальных случаях поле заполняется нулями.
6. EAPOL-Key IV – 16 байтное поле для отправки вектора инициализации при шифровании передаваемого ключа GTK во время 3 и 4 рукопожатий. Если вектор инициализации не требуется, то поле заполняется нулями.
7. Key RSC – 8 байтное поле. По сути это номер ключа GTK, который используется в данный момент в сети. Самый первый ключ имеет номер 1. Каждый раз при обновлении ключа GTK счетчик увеличивается на единицу. Поле используется либо во время третьего рукопожатия, когда ТД передает зашифрованный GTK, либо когда клиент отправляет отчёт об ошибке при неудачной проверке MIC. Во втором случае поле имеет особый формат, обсуждение которого выходит за рамки данного курса лекций. Во всех других случаях поле заполняется нулями.
8. Reserved – поле зарезервировано и заполняется нулями.
9. Key MIC – поле длиной 16 байт. MIC вычисляется двумя способами, в зависимости от схемы шифрования.
Если используется схема TKIP, то поле Key Descriptor Version = 1 и используется алгоритм HMAC-MD5.
Если используется схема CCMP, то поле Key Descriptor Version = 2 и используется алгоритм HMAC-SHA1, причем в этом случае результат усекается до 16 байт.
На вход функции хеширования подается готовый MSDU (frame body) кадра EAPOL, т.е. начиная с поля Descriptor type заканчивая полем Key Data включительно. Так как перед вычислением хеша поле Key MIC неизвестно, оно заполняется нулями, которые впоследствии заменяются результатом вычисления. Вычислить MIC можно онлайн тут: https://quickhash.com/
10. Key Data Length – поле длиной 2 байта, представляющее собой натуральное положительное число, обозначающее длину поля Key Data в байтах.
11. Key Data – поле переменной длины, которое может содержать любую информацию, необходимую для обмена ключами, которая не была включена в предыдущие поля кадра. Поле может вообще не содержать никакой информации, т.е. нулевой длины, либо содержать одну или несколько структур, называемых «информационные элементы». В первом случае предыдущее поле Key Data Length должно быть равно нулю, во втором, Key Data Length должно быть отлично от нуля. Если поле содержит несколько информационных элементов, то они стекируются один за другим.
В поле Key Data можно поместить два типа информационных элементов:
Информационный элемент RSN, для которого не предусмотрено шифрование;
Информационные элементы KDE, которые могут быть зашифрованы.
Информационный элемент RSN
Все клиенты поддерживающие иерархию ключей RSNA должны поддерживать данный информационный элемент, структура которого представлена на рис. 4.30. Представленные на рисунке размеры полей приведены в байтах. Этот информационный элемент должен быть отправлен в момент второго и третьего рукопожатия. Во втором рукопожатии клиент предлагает конфигурацию безопасности, и, после проверки ТД, в третьем рукопожатии ТД отправляет ту конфигурацию, которая будет в итоге использоваться.
Рисунок 4.30 – Формат информационного элемента RSN.
Element ID - поле указывает на тип элемента и всегда равно 48 в десятичной системе счисления или 30 в шестнадцатеричном формате.
Length - длина всех полей информационного элемента в байтах, следующих за полем Length. Т.е. суммарная длина полей от Version до PMKI list включительно.
Version – указывает на версию протокола RSNA, на сегодняшний день все значения кроме «1» зарезервированы, поэтому 2 байта всегда равны «01 00».
Group Cipher Suite – поле 4 байта, указывающее на то, как точка доступа защищает (шифрует) широковещательный трафик. В таблице 4.8 приведены возможные значения поля.
Таблица 4.8 – Варианты информационного элемента Chiper Suite.
Подчасть OUI
(3 байта)
Подчасть Suite type
(1 байт)
Значение
00-0F-AC
Шифрование не поддерживается
00-0F-AC
1
WEP-40
00-0F-AC
2
TKIP
00-0F-AC
3
Зарезервировано
00-0F-AC
4
CCMP
00-0F-AC
5
WEP-104
00-0F-AC
6-255
Зарезервировано
Vendor OUI
Other
Vendor-specific
Other
Any
Зарезервировано
В случает со схемой шифрования CCMP или TKIP значение поля должно быть «00-0F-AC-04» или «00-0F-AC-02» соответственно.
Pairwise Chiper Suite Count – 2 байта, поле указывающее на количество информационных элементов в поле Pairwise Chiper Suite list, что по факту определяет сколько схем шифрования поддерживается одновременно. Обычно разрешено использовать одну определенную схему шифрования, поэтому поле равно «0100».
Pairwise Chiper Suite list – поле принимает такие же значения как поле Group Cipher Suite, и так же зависит от типа шифрования но уже юникастового трафика (между ТД и клиентом), см. таблицу 4.8.
AKM Suite Count – поле показывает количество информационных элементов содержится в поле AKM Suite List. Обычно поле равно «01 00», т.е. AKM Suite List содержит только один информационный элемент.
AKM Suite List – поле, которое может содержать один или несколько информационных элементов AKM (связка OUI+Suite type). Информационные элементы приведены в таблице 4.9.
Таблица 4.9 – Информационные элементы AKM Suite
OUI
(3 байта)
Suite type
(1 байт)
Значение
Тип аутентификации
Режим управления ключами
00-0F-AC
Зарезервировано
Зарезервировано
00-0F-AC
1
EAP
RSNA
00-0F-AC
2
PSK
RSNA
00-0F-AC
3-255
Зарезервировано
Зарезервировано
Vendor OUI
Любое
Vendor Specific
Vendor Specific
Other
Любое
Зарезервировано
Зарезервировано
Информационный элемент «000FAC01» будет означать, что в сети используется аутентификация EAP, «000FAC02» - аутентификация PSK. В теории ТД доступа может поддерживать оба типа аутентификации, в этом случае оба информационных элемента могут быть включены в сообщение.
RSN capabilities – поле обозначает запрашиваемые или рекламируемые ТД возможности аутентификации. Длина поле 2 байта, структура поля приведена на рис. 4.31.
Рисунок 4.31 – Структура поля RSN capabilities.
Бит 0 – это флаг, показывающий возможность предварительной аутентификации. В случае с сетью, построенной на точках доступа флаг равен «1», так как аутентификация обязательна.
Остальные поля применяются в очень специфических случаях либо зарезервированы, поэтому равны «0» по умолчанию.
PMKID Count и PMKID List – данные поля могут использоваться только в кадрах (Re)Association, т.е. уже после аутентификации, поэтому в процессе аутентификации эти поля отсутствуют и мы не будем их рассматривать.
Информационный элемент KDE
Каждый информационный элемент KDE имеет общий формат, представленный на рис. 4.32.
Рисунок 4.32 – Формат информационного элемента KDE
Первое поле Type информационного элемента обозначает его начало и всегда равно «dd» в шестнадцатеричном формате.
Второе поле Length обозначает количество байт в полях OUI, Data Type и Data.
Третье и четвертое поля обозначают конкретный тип KDE. Имеющиеся типы представлены в таблице 4.10.
Таблица 4.10 – Варианты информационных элементов KDE.
Поле OUI
(3 байта)
Поле Data type
(1 байт)
Значение
00-0F-AC
Зарезервировано
00-0F-AC
1
GTK KDE
00-0F-AC
2
Зарезервировано
00-0F-AC
3
MAC address KDE
00-0F-AC
4
PMKID KDE
00-0F-AC
5
SMK KDE
00-0F-AC
6
Nonce KDE
00-0F-AC
7
Lifetime KDE
00-0F-AC
8
Error KDE
00-0F-AC
9–255
Зарезервировано
Vendor OUI
Any
На усмотрение производителя
Other
Any
Зарезервировано
Data – данное поле уникально для каждого информационного элемента KDE. Приведем ниже форматы только тех информационных элементов, которые используются в четырёхкратном рукопожатии.
Информационный элемент GTK KDE используется для передачи ключа GTK от ТД до клиента. Его структура представлена на рис. 4.33.
Рисунок 4.33 – Формат информационного элемента GTK KDE.
KeyID – идентификатор ключа, может быть равен 0, 1, 2 или 3. Стандартом предусмотрено хранение на устройствах до четырёх ключей GTK, которые будут использоваться по очереди. Но, как правило, такой функционал не внедряется в реальные устройства и KeyID равен «0».
Tx – если поле равно «1», то клиент должен использовать данный ключ при передаче так и при приеме широковещательного трафика. Если поле равно «0», то клиент должен использовать данный ключ только при приеме широковещательного трафика. Значение «1» используется по умолчанию.
Два следующих поля зарезервированы.
GTK – непосредственно сам ключ.
Следующий информационный элемент обозначает номер ключа PMK, который будет использоваться для получения ключа PTK и последующего шифрования трафика. Структура элемента очень проста и представлена на рис. 4.34.
Рисунок 4.34 – Формат информационного элемента PMKID.
В случае аутентификации PSK всегда используется один и тот же идентификатор ключа – «00000000000000000000000000000000».
Пример формата кадра EAPOL (первое рукопожатие для схемы TKIP) в виде таблицы 4.11. Значения, приведенные в двоичном виде, помечены буквой ”b” в конце. Остальные значения приведены в шестнадцатеричном виде.
Таблица 4.11 – Пример кадра EAPOL – первое рукопожатие.
Название поля
Размер поля байт/бит
Значение поля (двоичный B или шестнадцатеричный вид)
Frame Control
Protocol Version
2 бита
00 B
0b00
Type
2 бита
00 B
SubType
4 бита
1011 B
To DS
1 бит
0 B
From DS
1 бит
0 B
More flag
1 бит
0 B
Retry
1 бит
0 B
PwrMgt
1 бит
0 B
More Data
1 бит
0 B
Protected
1 бит
0 B
Order
1 бит
0 B
Duration ID
2 байта
N/A - Зависит от модуляции
Destination Address
6 байт
9439e5b014e5
Source Address
6 байт
000726404eff
BSSID Address
6 байт
000726404eff
Sequence Control
Fragment Number
4 бита
0000 B
Sequence Number
12 бит
000000000000b
Frame Body
(EAPOL frame)
Descriptor Type
1 байт
02
Key Information
2 байта
001 0 00 0 1 0 0 0 0 0 000b = 21 00
Key length
2 байта
0020
Key replay counter
8 байт
0000000000000000
Key Nonce
32 байта
6dd09a9a8b22c9937d31d82de8cf6fb3
a5acdb819a1645af61a1da78d8bde900
EAPOL-Key IV
16 байт
00000000000000000000000000000000
Key RSC
8 байт
0000000000000000
Reserved
8 байт
0000000000000000
Key MIC
16 байт
00000000000000000000000000000000
Key Data Length
2 байта
0000
Key Data -
PMKID KDE
Type
1 байт
dd
Length
1 байт
14
OUI
3 байта
000fac
Data Type
1 байт
04
PMKID
16 байт
00000000000000000000000000000000
CRC
4 байта
N/A, т.к. Duration ID неизвестно
Контрольные вопросы
1. Что такое PSK и откуда его берут устройства?
2. Объясните отличия аутентификации PSK от EAP.
3. Зачем нужна процедура HMAC-MD5?
4. Объясните назначение ключа KEK.
4.6 Алгоритм аутентификации WPA
Процесс аутентификации в WPA – это процесс одновременной проверки подлинности Точки Доступа и Клиента. Для аутентификации используется схема «четырёхкратного рукопожатия» (англ. 4-way handshake). Схема приведена на рис. 4.35.
Рисунок 4.35 – Схема «четырехкратного рукопожатия»
В соответствии с рис. 4.35, первые два «рукопожатия» - это обмен «ANonce» и «SNonce». Так как MAC адреса – это обязательная часть любых кадров (см. раздел 4.1), то после первых двух «рукопожатий» и у клиента и у точки доступа есть вся необходимая информация для вычисления PTK.
Третье «рукопожатие» нужно для обмена ключом GTK (Group Temporal Key), при этом клиент проверяет подлинность точки доступа на основании корректности используемых точкой доступа ключей KCK и KEK. Ключ GTK одинаков для всех клиентов и используется для шифрования широковещательного трафика (например ARP). Ключ GTK генерируется точкой доступа и это просто случайный набор бит.
Четвертое «рукопожатие» - это просто подтверждение от клиента, о том, что он правильно дешифровал GTK, и проверка подлинности ТД прошла успешно. При этом клиент шифрует подтверждение ключом KEK и добавляет проверку целостности ключом KCK, поэтому при дешифровке ТД автоматически проверяет правильность используемых ключей, тем самым проверяя подлинность клиента.
С точки зрения формирования кадров EAPOL каждое рукопожатие содержит разные информационные элементы.
1. Первое сообщение в процедуре 4-Way Handshake - это кадр EAPOL-Key, в котором поле Key Type должно быть равно «1», а поле Key Data должно содержать информационный элемент KDE PMKID. Кадр не шифруется. Смотри пример - таблица 4.11.
2. Второе сообщение 4-Way Handshake – это кадр EAPOL-Key, в котором поле Key Type должно быть равно «1», а поле Key Data должно содержать информационный элемент RSN. Кадр не шифруется.
3. Третье сообщение 4-Way Handshake – это кадр EAPOL-Key, в котором поле Key Type должно быть равно «1», а поле Key Data должно содержать информационные элементы RSN и KDE GTK. Поле Key Data должно быть зашифровано, но для упрощения в курсовой работе шифровать поле не нужно.
4. Четвертое сообщение 4-Way Handshake – это кадр EAPOL-Key, в котором поле Key Type должно быть равно «1», а поле Key Data должно быть пустым.
Вычисление ключа PTK.
Для того, чтобы начать передавать зашифрованные данные между ТД и клиентом, обоим участникам нужно вычислить Парный Транзитный Ключ (англ. Pairwise Transient Key - PTK). Этот ключ один из самых важных, так как он, в том числе, используется для первоначального установления безопасного соединения.
Ключ PTK вычисляется с помощью функции PRF (англ. Pseudo Random Function – псевдо случайная функция, см. ниже как это работает). Длина PTK зависит от того, какой режим используется: для TKIP 512 бит, для CCMP 384 бита.
Для того, чтобы вычислить ключ PTK, клиенту и точке доступа необходимо подать на вход функции PRF следующую информацию:
Ключ PMK – который в случае режима PSK вычисляется по формуле (4.4):
PMK = PBKDF2(PassPhrase, ssid, 4096, 32) (4.4)
Где PassPhrase - является просто паролем к сети Wi‑Fi. Введенные пользователем символы (a-z, A-Z, 0-9 и спец. символы) переводятся в двоичный или шестнадцатеричный вид по таблице ASCII. Например, A - это 41 в шестнадцатеричной системе или 0100 0001 в двоичной.
Ssid – так же цифробуквенное название Wi-Fi сети, используется как т.н. «соль».
4096 – число итераций при вычислении хэша;
32 – необходимая длина ключа PMK в байтах.
Вычислить PMK можно онлайн, например тут http://anandam.name/pbkdf2/
В случае аутентификации EAP, ключ PMK выдается RADIUS сервером.
MAC адрес клиента, который хочет пройти аутентификацию
MAC адрес точки доступа
Последовательность случайных бит, сгенерированная точкой доступа «ANonce» .
Последовательность случайных бит, сгенерированная клиентом «SNonce».
Такое разнообразие входных данных позволяет сгенерировать уникальный ключ для каждого клиента, поэтому другие клиенты сети не смогут дешифровать трафик.
В результате вычисленный ключ PTK делится на три части:
Ключ KCK [первые 128-бит ключа PTK], который используется для вычисления проверочной части всех EAPOL-Key кадров;
Ключ KEK [следующие 128-бит ключа PTK], который используется для шифрования всех EAPOL-Key кадров;
Ключ TK [оставшиеся биты ключа PTK], который используется для шифрования кадров данных.
Таблица 4.12 – Длины ключей в 802.11i
TKIP TK
CCMP TK
KCK
KEK
Общая длина ключа
TKIP PTK
256
128
128
512
CCMP PTK
128
128
128
384
TKIP GTK
256
256
CCMP GTK
128
128
Функция PRF - Pseudo-random Function
Для того, чтобы сгенерировать все ключи, представленные на рис. 4.27, необходим хороший псевдо случайный генератор для их создания. Такой генератор предусмотрительно описан в стандарте 802.11i, где его называют функцией PRF. Функция может генерировать псевдослучайные потоковые ключи длиной 128, 192, 256, 384 или 512 бит.
Функция PRF использует алгоритм HMAC-SHA1. Так как на выходе алгоритма HMAC-SHA1 каждый раз 160 бит, то его приходится запускать несколько раз. Например, для генерации ключа PTK 512 бит, необходимо вычислить функцию HMAC-SHA-1 четыре раза, так как 160+160+160+160 = 640, после чего 640 бит усекаются до 512 бит (т.е. лишние биты отбрасываются). Вычисления можно производить любым онлайн калькулятором, например: https://quickhash.com/
Вычисление каждых 160 бит производится по формуле (4.5):
160 бит ключа = HMAC-SHA1 (PMK, A || Y || B || X), (4.5)
где PMK – это HMAC ключ, но по сути это пароль к сети Wi-Fi.
A – это идентификатор процедуры, для которой используется псевдослучайная функция. В случае вычисления ключа PTK это текст “Pairwise key expansion”, который переводится в шестнадцатеричную систему по таблице ASCII без кавычек.
Y – это один октет (байт) равный 0;
X – это один октет (байт), содержащий номер запуска функции HMAC-SHA1, так как мы будем вычислять функцию четыре раза, для нашего случая X = 0, 1, 2 и 3.
Символ || означает конкатенацию, т.е. простое объединение типа «один за другим».
Переменная B вычисляется по формуле (4.6):
B = Min(AA,SPA) || Max(AA,SPA) || Min(ANonce,SNonce) || Max(ANonce,SNonce)) (4.6)
где Min и Max – функции выбора минимального или максимального значения из двух. Выбор максимума осуществляется путем конвертации шестнадцатеричных значений в десятичные и их последующего сравнения.
AA – это MAC‑адрес точки доступа (6 байт)
SPA – это MAC‑адрес клиента (6 байт)
ANonce и SNonce - Последовательность случайных бит, сгенерированная точкой доступа и клиентом соответственно, длина 32 октета (байта).
Теперь приведем конкретный пример вычислений ключа PTK.
При вычислении удобно пользоваться онлайн конвертером из ASCII в HEX (шестнадцатеричную систему) и обратно: http://www.dolcevie.com/js/converter.html
ПРИМЕР
Исходные данные
Название сети (SSID): HomeNet
Аутентификация: WPA-PSK
Шифрование: TKIP
Пароль к сети (PassPhrase): homeNET1234
MAC-адрес точки доступа(шестн.): 000726404eff
MAC-адрес клиента (шестн.): 9439e5b014e5
ANonce (шестн.):
6dd09a9a8b22c9937d31d82de8cf6fb3a5acdb819a1645af61a1da78d8bde900
SNonce (шестн.):
017482c244b2c352b4bc561d34156185053352d19808d312024c3ae76c618c55
Задание
Необходимо вычислить ключ PTK и отдельно выписать его части KCK, KEK и TK.
Вычисление:
1) Для начала вычислим ключ PMK. Для этого перейдем на сайт http://anandam.name/pbkdf2/ и введем необходимые для вычисления данные:
Рисунок 4.36 – Пример вычисление PMK онлайн
Итак, в результате получили ключ PMK в шестнадцатеричном формате:
a59124b7bd73bc60e7857b2be09760b81ef7d73d8101961f699fb5f322bb508d
2) Так как по заданию используется аутентификация WPA-PSK, а шифрование TKIP, то в соответствии с таблицей 4.12 длина ключа PTK равна 512 бит (64 байта).
Это значит, что для вычисления ключа нам необходимо запустить функцию HMAC-SHA1 четыре раза.
Cначала нужно собрать воедино необходимые данные.
Переменная A приведена в ASCII, поэтому конвертируем её в HEX:
A = Pairwise key expansion = 5061697277697365206b657920657870616e73696f6e
Теперь вычислим переменную B по формуле (4.6):
B = Min(AA,SPA) || Max(AA,SPA) || Min(ANonce,SNonce) || Max(ANonce,SNonce)) =
000726404eff9439e5b014e5017482c244b2c352b4bc561d34156185053352d19808d312024c3ae76c618c556dd09a9a8b22c9937d31d82de8cf6fb3a5acdb819a1645af61a1da78d8bde900
Разными цветами выделены логические части:
B = MAC-адрес ТД MAC-адрес клиента SNonce ANonce
Теперь можно записать второй аргумент функции HMAC-SHA1, используем цветовую дифференциацию для удобства:
A || Y || B || X =
5061697277697365206b657920657870616e73696f6e00000726404eff9439e5b014e5017482c244b2c352b4bc561d34156185053352d19808d312024c3ae76c618c556dd09a9a8b22c9937d31d82de8cf6fb3a5acdb819a1645af61a1da78d8bde90000
Последний байт 00 будет меняться в зависимости от номера вызова функции HMAC-SHA1:
00 – для первого
01 – для второго
02 – для третьего
03 – для четвертого
Теперь переходим на сайт https://quickhash.com/ и вычисляем функции HMAC-SHA1 (рис. 4.37).
Рисунок 4.37 – Пример вычисления функции HMCA-SHA1 онлайн.
Вычисление HMAC-SHA1 (4.5):
X = 00, HMAC-SHA1 = 1272d56986ac5f94e5421b13aa68c7eb9dec6529
X = 01, HMAC-SHA1 = 96cc1a1e6506679a6fe57dd7e0524ddbeecb3e99
X = 02, HMAC-SHA1 = c2e4ebb6e7ab12906f10dc51d955d2c935068796
X = 03, HMAC-SHA1 = 843c45d0ca0acf39b2129a7ba2fd39db15e64581
Теперь нужно соединить результаты и усечь до 512-бит (64 байт):
PTK =
1272d56986ac5f94e5421b13aa68c7eb9dec652996cc1a1e6506679a6fe57dd7e0524ddbeecb3e99c2e4ebb6e7ab12906f10dc51d955d2c935068796843c45d0
Разделим ключ на части в соответствии с таблицей 4.12:
KCK = 1272d56986ac5f94e5421b13aa68c7eb
KEK = 9dec652996cc1a1e6506679a6fe57dd7
TK = e0524ddbeecb3e99c2e4ebb6e7ab12906f10dc51d955d2c935068796843c45d0
Контрольные вопросы
1. Поясните назначение первых двух «рукопожатий» при аутентификации.
2. Что и себя представляет ANonce? Какой длины это поле?
3. Назначение функции PRF? Какие входные данные требует эта функция?
4. Отличается ли общая длина ключа PTK для схем шифрования TKIP и CCMP?
5. Что такое MIC?
4.7 Особенности аутентификации при использовании протокола RADIUS
Кроме того, что исходный стандарт 802.11 с аутентификациями Shared Key и Open System обладал серьёзными уязвимостями, изначально в нем не был предусмотрен метод корпоративной аутентификации большого числа пользователей. При использовании общего пароля PSK к беспроводной сети, если хотя бы одно устройство будет взломано, то администратору придется менять пароль на всех устройствах. Представьте, если в сети 500 устройств, сколько работы будет у администратора.
Именно поэтому в стандарт 802.11i был внедрен аутентификационный стандарт 802.1X совместно с PSK аутентификацией. Новый метод аутентификации носит название EAP, при этом управление ключами делегируется серверу аутентификации (Authentication Server), например RADIUS-серверу.
При использовании EAP аутентификации перед процедурой четырехкратного рукопожатия сначала следует провести процедуру аутентификации 802.1X, диаграмма которой представлена на рисунке 4.38.
Рисунок 4.38 – Диаграмма аутентификации EAP.
Процедура состоит из трех основных шагов:
1. Начало
ТД периодически отправляет кадры EAP-request, для того чтобы оповестить клиента о необходимости аутентификации.
Этот процесс так же пожжет быть запущен со стороны клиента, при этом клиент отправляет кадр EAPOL-Start, в ответ на который ТД отправляет кадр EAP-Request.
Клиент отвечает на кадр EAP-Request кадром EAP-Response, содержащим MAC-адрес клиента.
ТД перенаправляет кадр EAP-Response серверу аутентификации.
2. Согласование метода EAP
Сервер аутентификации сообщает клиенту доступные методы EAP, клиент в свою очередь либо соглашается на использование конкретного метода, либо посылает отказ по причине того, что доступные методы не поддерживаются клиентом.
3. Аутентификация
Клиент начинает взаимодействовать с сервером, используя согласованный на предыдущем шаге протокол, например EAP-MSCHAPv2, EAP-GTC, или EAP-TTLS.
Отправляемые кадры должны быть защищены с использованием криптографии публичным ключом.
Когда процесс аутентификации заканчивается, сервер аутентификации отправляет сообщение EAP-Success или EAP-Failure.
Если аутентификация прошла успешно, то сервер генерирует ключ MSK и отправляет его ТД и клиенту.
ТД и клиент из ключа MSK вычисляют ключ PMK и начинаю процедуру четырёхкратного рукопожатия.
Использование аутентификации EAP не только улучшает сетевую безопасность, но и упрощает работу администраторов. Если администратор хочет заблокировать доступ к сети конкретного пользователя, то нужно просто заблокировать аккаунт пользователя на сервере аутентификации. При этом это никак не отразится на других пользователях сети. В случае же PSK, администратору придется сменить пароль для всех пользователей, кроме того, которому нужно закрыть доступ.
Контрольные вопросы
1. В чем основное преимущество использования аутентификации EAP?
2. Перечислите три основных шага аутентификации EAP.
3. Назовите ключ, который клиент получает от RADUIS-сервера.
4.8 Схема шифрования и дешифрования WPA-TKIP
Как только Wi-Fi устройство получает все необходимые ключи и проходит процесс аутентификации, тогда оно может начинать передавать зашифрованный трафик. В стандарте 802.11i предусмотрено две схемы шифрования:
Temporal Key Integrity Protocol (TKIP)
Counter Mode with Cipher Block Chaining Message Authentication Code Protocol (CCMP).
Алгоритм CCMP разработан для того, чтобы избавится от всех угроз безопасности, которые были изначально в WEP. Но CCMP использует блочное шифрование AES вместо потокового шифра RC4, а для RC4 было выпущено много устройств, поддерживающих WEP. Поэтому для обратной совместимости был так же разработан алгоритм TKIP, использующий старый потоковый шифр RC4, но устраняющий большинство уязвимостей шифрования WEP.
Подробно алгоритм TKIP обсуждается в этом разделе. Алгоритм CCMP рассмотрен в следующем разделе.
Итак, TKIP был разработан на замену ненадежного шифрования WEP для уже существующих и выпущенных на рынок устройств, которые не поддерживают CCMP.
Такие устройства могли поддерживать TKIP после обновления прошивки. В алгоритме TKIP решены три основные проблемы устаревшего шифрования WEP:
1. Добавлена функция генерации уникального ключа для каждого передаваемого кадра данных. Функция называется «смесь ключей» и нужна для предотвращения атаки вычисления ключа на основании статистики, так как в WEP для всех кадров использовался одинаковый ключ.
2. Добавлен счетчик кадров, для предотвращения атак типа «повторение».
3. Добавлен новый алгоритм проверки кадра на предмет его подделки или видоизменения. Алгоритм называется Message Integrity Code (MIC).
Рассмотрим подробнее все эти нововведения.
Message Integrity Code (MIC)
Одна из ключевых проблем шифрования WEP, это возможность искажения или подделки передаваемых кадров притом, что это не будет замечено со стороны ТД или клиента. Это обусловлено использованием в шифровании WEP обычного алгоритма проверки CRC-32, который не является криптостойким, т.е. при подделке кадра атакующий просто перевычисляет CRC.
В алгоритме TKIP эта проблема была устранена разработкой нового криптостойкого алгоритма вычисления проверочной суммы. Новый алгоритм назвали «Michael» или просто MIC.
Основным нововведением алгоритма MIC стало то, что алгоритм использует часть ключа TK (неизвестного злоумышленнику) для вычисления проверочной суммы. Кроме того, проверочная сумма теперь включает проверку MAC-адреса отправителя и получателя, а так же метку QoS, т.е. по сути проверку важных полей заголовка.
Если ТД обнаружит два неправильно вычисленных MIC в течении одной минуты, это будет расцениваться как атака и устройство, которое было источником ошибки будет заблокировано на 1 минуту. Кроме того, после разблокировки устройству будет необходимо снова пройти аутентификацию и обновить ключи.
Несмотря на небольшую вычислительную сложность алгоритм MIC является самой вычислительно- трудозатратной частью алгоритма TKIP. На ТД, использующих процессоры ARM7 и i486, пользователи чувствуют снижение скорости передачи данных даже на стандарте 802.11b (до 11 Мбит/с). Однако не существует другой альтернативы для эффективного обеспечения безопасности на канальном уровне, которая могла бы быть внедрена в старые устройства.
Счетчик кадров
Для предотвращения атак типа «повторение» в алгоритм TKIP было внедрено использование счетчика кадров (англ. TKIP Sequence Number – TSC), чтобы и клиент и ТД вели строгий счет всем шифруемым кадрам. Такая строгость необходима для того, чтобы атакующий не смог вставить лишний кадр в процессе обмена.
Счетчик TSC используется в алгоритме «смеси ключей», т.е. по сути, счетчик является частью ключа, который будет использоваться для шифрования. Если ТД или клиент «сбиваются» со счета, то это расценивается как результат атаки извне.
Алгоритм «смеси ключей»
Самая большая проблема старого алгоритма WEP – это использование пароля к сети Wi-Fi в качестве ключа для алгоритма шифрования RC4. В старом алгоритме к паролю просто присоединялся случайно сгенерированный вектор (т.н. вектор инициализации, англ. Initialization Vector, IV), после чего, получившаяся последовательность передавалась генератору псевдослучайных чисел RC4 в качестве «сида», т.е. исходной вычислительной точки. При этом IV передавался без всякого шифрования в явном открытом виде. Таким образом, как только IV повторялся, генератор выдавал один и тот же потоковый ключ. После этого атакующий мог математически подобрать недостающую часть «сида», в данном случае это и было паролем к сети. Так как для обеспечения обратной совместимости в режиме TKIP было решено использовать все тот же RC4, разработчики решили уделить известной проблеме максимальное внимание и разработали алгоритм «смеси ключей», изображенный на общей схеме шифрования (рис. 4.39).
Первая фаза смеси ключей использует 128-битный временный ключ (часть ключа PTK), MAC-адрес передающего устройства и 32 старших бита счетчика кадров TSC. В результате хеш-операции получается 80 битный вектор, называемый «TKIP-mixed Transmit Address and Key» (TTAK). Так как счетчик TSC записывается в 48 битную переменную, а 32 старших бита используется для генерации TTAK, это значит, что изменение оставшихся 16 бит в счетчике TSC никак не влияет на значение TTAK. Это в свою очередь означает, что TTAK нужно вычислять один раз на каждые 216 = 65536 кадров.
Задача второй фазы смеси ключей - это генерация 128-битного сида, который будет использоваться RC4 как исходная точка для генерации потокового ключа. На входе этой хеш-операции будет TTAK, младшие 16 бит счетчика кадров и опять временный ключ.
Так как в алгоритме смеси ключей используется счетчик кадров, это позволяет создавать новый «сид» для каждого кадра. Такой подход позволяет устранить главную уязвимость старого алгоритма WEP.
Общая схема шифрования TKIP приведена на рис. 4.39.
Рисунок 4.39 – Алгоритм шифрования в режиме TKIP.
Процесс дешифрования представляет собой обратные операции с дополнительными проверками.
1. После приема MPDU устройство реконструирует значение TSC из полей кадра IV и Extended IV. После чего производит «смесь ключей», получая нужный для RC4 сид.
2. MPDU дешифруется и проверяется его CRC. Если чек-сумма не сходится, то кадр просто отбрасывается. Если чек-сумма сходится, то MPDU принимается. Для полной дешифровки необходимо принять все MPDU, на которые был разделен MSDU в случае фрагментации.
3. После приема всего MSDU (т.е. фрагмента данных, обычно IP-пакета), производится проверка его проверочной суммы MIC. Если приложенный MIC верный, то данные принимаются. Если MIC неверный, считается, что данные были подделаны, и они просто отбрасываются.
4. Далее принятое значение счетчика кадров TSC сверяется с тем, что хранится в устройстве. Если принятое значение больше записанного, то кадр принимается. Если меньше, то кадр отбрасывается.
Контрольные вопросы
1. Почему схема WPA-TKIP использует старый алгоритм шифрования RC4?
2. Расшифруйте аббревиатуру MIC? В чем принципиальное отличие MIC от CRC?
3. Зачем счетчик TSC разделен на две части?
4. Для чего используется «алгоритм смеси ключей»?
4.9 Схема шифрования и дешифрования WPA-AES
Схема шифрования WPA-AES, оно же Counter mode with cipher-block chaining message authentication code (CCMP) обеспечивает наивысший уровень безопасности, конфиденциальности и защиты от повторов, ктоторый может предложить стандарт 802.11. Схема шифрования основана на стандарте шифрования AES (advanced encryption standard), использующем ключ длиной 128 бит и шифрующий данные блоками по 128 бит. На сегодняшний день не существует известных методов атаки на шифрование CCMP, кроме простого перебора пароля в случае с PSK.
Шифрование CCMP использует стандарт под названием Counter with CBC-MAC (CCM), который описан в RFC 3610. В соответствии с этим стандартом может использоваться любой 128 битный метод шифрования, но схема CCMP использует именно AES.
Nonce
Одно из требований к схеме шифрования CCMP – это число, которое будет уникально для каждого кадра, т.н. Nonce. В схеме CCMP для получения Nonce используется обычный счетчик кадров 48бит длиной, который называется packet number (PN). Далее PN комбинируется с MAC-адресом отправителя и меткой приоритета QoS, в результате чего получается 104-битный Nonce. Получившийся Nonce отправляется на вход алгоритма шифрования AES вместе со 128 битным ключом и данными, которые нужно зашифровать. В зависимости от режима, Nonce может быть дополнен нулями, если это необходимо.
Стандарт Advanced Encryption Standard (AES)
AES – это стандарт и одновременно алгоритм блочного шифрования, стандартизованный американским Национальным Институтом Стандартов и Технологий в 2001 году. Институт в течении пяти лет проводил конкурсы и тестировал лучшие алгоритмы шифрования, для того чтобы отобрать лучший из лучших. В итоге стандартом AES стал алгоритм Rijndael, победивший в конкурсе.
AES шифрует блоки данных длиной 128 бит, используя при этом ключ длиной 128, 192 или 256 бит.
Режимы работы шифрования CCMP
Режимы работы CCMP различаются способом ввода исходных данных в алгоритм AES. Алгоритм AES требует разбивки шифруемых данных на блоки по 128 бит и их последующее шифрование. Существует несколько методов, как это можно сделать и, каждый из методов в результате даст разные выходные данные.
Самый прямой метод называется «электронная кодовая книга» (electronic codebook – ECB). ECB напрямую шифрует блок данных, используя ключ. Проблема такого подхода в том, что одни и те же данные на входе дадут то же самое на выходе AES. В итоге шифруемые данные за счет незначительной длины каждого блока будут недостаточно видоизменены, поэтому данный подход не должен использоваться при шифровании.
В схеме шифрования CCMP предусмотрено два режима:
Режим шифрования блоками в цепочку – англ. Cipher-Block Chaining
Режим счетчика – англ. counter mode
Оба режима требуют подобия вектора инициализации в дополнение к ключу, поэтому в CCMP в качестве вектора инициализации используется Nonce.
Оба режима схемы CCMP представлены на рис. 4.40. Ниже рассмотрим подробнее каждый из режимов.
Рисунок 4.40 – Режимы шифрования CCMP.
Режим шифрования блоками в цепочку – Cipher-Block Chaining
При шифровании в цепочку получившийся ранее 104 битный Nonce добивается 24 нулями для получения 128 битного вектора. Получившийся 128 битный nonce и 128 битный ключ TK (часть PTK) используется для шифрования по следующему алгоритму:
1. Первый 128-битный блок шифруемых данных складывается по модулю 2 (XOR) со 128-битным nonce.
2. Получившийся 128-битный вектор шифруется алгоритмом AES с помощью ключа TK, в результате получаем первые 128-бит зашифрованных данных.
3. Следующий 128-битный блок данных складывается по модулю 2 (XOR) с зашифрованным предыдущим блоком вместо Nonce.
4. Результат снова шифруется тем же ключом, тем самым получаем вторые 128-бит зашифрованных данных
5. Шаги 3 и 4 повторяются до тех пор, пока весь кадр не будет зашифрован.
Таким образом, каждый шифруемый 128-битный блок данных использует предыдущий зашифрованный блок, образуя цепочку.
Режим счетчика – counter mode
В режиме счетчика 104-битный nonce дополняется 24-битным счетчиком. В самом начале шифрования счетчик обнуляется. Данные шифруются следующим образом:
1. Nonce+счетчик шифруются алгоритмом AES с помощью ключа TK.
2. Результат шифрования складывается по модулю 2 (XOR) с первыми 128-битами данных, образуя при этом первый зашифрованный блок.
3. Далее счетчик увеличивается на единицу.
4. Шаги 1-3 повторяются до тех пор, пока весь кадр не будет зашифрован.
По сравнению с предыдущим режимом, каждый 128-битный блок данных шифруется независимо от другого, что делает режим счетчика проще с точки зрения вычислительных затрат. Кроме того, в режиме счетчика существует возможность распараллелить вычисления, тем самым увеличив скорость шифрования.
Проверочная сумма
Схема CCMP предусматривает проверку передаваемых данных, совместно с некоторыми важными полями заголовка. Защищаемые поля заголовка обозначаются AAD (англ. additional authentication data – дополнительные аутентификационные данные). AAD защищает следующие поля:все поля адреса, номер фрагмента, метку QoS.
Биты AAD объединяются с данными и шифруются AES в режиме шифрования блоками в цепочку. При этом используется nonce и TK (часть ключа PTK). Результат шифрования последнего блока в цепочке из 128-бит усекается до 64-бит, которые и будут являться проверочной суммой, называемой MIC по аналогии со схемой TKIP.
Процессы шифрования и дешифрования
Процессы шифрования и дешифрования просты относительно схемы TKIP. Схема шифрования CCMP представлена на рисунке 4.41 и состоит из следующих шагов:
1. Увеличение счетчика PN и генерация Nonce.
2. Все защищаемые поля заголовка составляются воедино, образуя AAD.
3. Генерируется проверочная сумма MIC.
4. Данные вместе с MIC шифруются алгоритмом AES в режиме счетчика.
5. Генерируется заголовок CCMP, содержащий PN и идентификатор ключа (2 бита). Идентификатор ключа указывает на то, какой ключ использовался при шифровании – PTK или GTK.
6. Заголовок CCMP добавляется к зашифрованным данным и кадр отправляется.
Рисунок 4.41 – Схема шифрования CCMP.
Красные стрелки показывают вычисление проверочной суммы MIC, зеленые стрелки показывают процесс шифрования.
Алгоритм дешифрования представлен на рис. 4.42 и состоит из следующих шагов:
1. Чтение PN и идентификатора ключа из заголовка CCMP с последующим вычислением Nonce.
2. Дешифровка данных + MIC с использованием AES в режиме счетчика.
3. Отделение MIC от данных.
4. Генерация AAD на основании полей заголовка.
5. Вычисление 64-битного MIC и его сравнение с полученным MIC. Если полученный и вычисленный MIC отличаются, то сообщение было подделано и кадр нужно отбросить.
6. Проверка принятого PN. Если принятый PN больше предыдущего принятого PN, то кадр принимается. Если нет, то кадр отбрасывается.
Рисунок 4.42 – Схема дешифрования CCMP
Необходимо отметить, что в случае дешифрования MIC вычисляется уже после дешифрации. Кроме того, на представленном рисунке 4.42 не обозначено поле идентификатора ключа, однако оно конечно используется для выбора правильного ключа в процессе дешифрования.
Заключение
Схема CCMP обеспечивает наилучшую защиту, которую может предложить стандарт IEEE 802.11, что и было доказано в процессе изучения этой схемы. Самая ненадежная реализация WPA, это режим PSK. В случае PSK не стоит использовать простые пароли, так как сеть будет просто взломать методом обычного перебора по словарю.
Если использовать хороший пароль в режиме PSK или использовать EAP аутентификацию, то CCMP становится невозможно взломать, кроме как прямым перебором 2128 = 3,4*1038 ключей. Даже если перебирать ключи со скоростью 1 миллиард в секунду, потребуется 1020 веков, чтобы взломать сеть.
Контрольные вопросы
1. Какой алгоритм шифрования использует схема CCMP? Назовите альтернативное название этой схемы.
2. Из чего генерируется вектор Nonce? Какой он длины?
3. В чем отличие алгоритма генерации MIC в схемах CCMP и TKIP? Одинаковые ли исходные данные для вычисления?
4. Из каких полей состоит заголовок CCMP?
5. Каково назначение счетчика PN?
[1] SN — Serving Network
[2] USIM — Universal Subscriber Identity Module.
[3] АКА — Authentication and Key Agreement
[4] AuC - Authentication Center
[5] AMF — Authentication Management Field
[6] MAC - Message Authentication Code
[7] CFN — Connection Frame Number
[8] HFN — Hyperframe Number
наверх
назад | содержание