Пофреймовое изменение ключей шифрования
Атаки, применяемые в WEP, использующие уязвимость слабых IV (Initialization Vectors), таких, которые применяются в приложении AirSnort, основаны на накоплении нескольких фреймов данных, содержащих информацию, зашифрованную с использованием слабых IV. Простейшим способом сдерживания таких атак является изменение WEP-ключа, используемого при обмене фреймами между клиентом и точкой доступа, до того как атакующий успеет накопить фреймы в количестве, достаточном для вывода битов ключа.
IEEE адаптировала схему, известную как пофреймовое изменение ключа (per-frame keying). Основной принцип, на котором основано пофреймовое изменение ключа, состоит в том, что IV, MAC-адрес передатчика и WEP-ключ обрабатываются вместе с помощью двухступенчатой функции перемешивания. Результат применения этой функции соответствует стандартному 104-разрядному WEP-ключу и 24-разрядному IV.
IEEE предложила также увеличить 24-разрядный вектор инициализации до 48-разрядного IV.
На рис. 7 представлен образец 48-разрядного IV и показано, как он разбивается на части для использования при пофреймовом изменении ключа.
Рис. 7. Разбиение 48-разрядного IV
Процесс пофреймового изменения ключа можно разбить на следующие этапы (рис. 8):
1. Базовый WEP-ключ перемешивается со старшими 32 разрядами 48-разрядного IV (32-разрядные числа могут принимать значения 0-4 294 967 295) и MAC-адресом передатчика. Результат этого действия называется ключ 1-й фазы. Этот процесс позволяет занести ключ 1-й фазы в кэш и также напрямую поместить в ключ.
2. Ключ 1-й фазы снова перемешивается с IV и MAC-адресом передатчика для выработки значения пофреймового ключа.
3. Вектор инициализации (IV), используемый для передачи фрейма, имеет размер только 16 бит (16-разрядные числа могут принимать значения 0-65 535). Оставшиеся 8 бит (в стандартном 24-битовом IV) представляют собой фиксированное значение, используемое как заполнитель.
4. Пофреймовый ключ применяется для WEP-шифрования фрейма данных.
5. Когда 16-битовое пространство IV оказывается исчерпанным, ключ 1-й фазы отбрасывается и 32 старших разряда увеличиваются на 1.
6. Значение пофреймового ключа вычисляется заново, как на этапе 2.
Рис. 8. Процесс создания шифрованного сообщения в WPA
Процесс пофреймового изменения ключа можно разбить на следующие этапы.
Устройство инициализирует IV, присваивая ему значение 0. В двоичном представлении это будет значение 000000000000000000000000000000 000000000000000000.
Первые 32 разряда IV (в рассматриваемом случае - первые 32 нуля) перемешиваются с WEP-ключом (например, имеющим 128-разрядное значение) и MAC-адресом передатчика (имеющим 48-разрядное значение) для получения значения ключа 1-й фазы (80-разрядное значение).
Ключ 1-й фазы вновь перемешивается с первыми (старшими) 32 разрядами IV и MAC-адресом передатчика, чтобы получить 128-разрядный пофреймовый ключ, первые 16 разрядов которого представляют собой значение IV (16 нулей).
Вектор инициализации пофреймового ключа увеличивается на 1. После того как пофреймовые возможности IV будут исчерпаны, IV 1-й фазы (32 бита) увеличивается на 1 (он теперь будет состоять из 31 нуля и одной единицы, 00000000000000000000000000000001) и т. д.
Этот алгоритм усиливает WEP до такой степени, что почти все известные сейчас возможности атак устраняются без замены существующего оборудования. Следует отметить, что этот алгоритм (и TKIP в целом) разработан с целью устранить уязвимые места в системе аутентификации WEP и стандарта 802.11. Он жертвует слабыми алгоритмами, вместо того чтобы заменять оборудование.
Контроль целостности сообщения
Для усиления малоэффективного механизма, основанного на использовании контрольного признака целостности (ICV) стандарта 802.11, будет применяться контроль целостности сообщения (MIC). Благодаря MIC могут быть ликвидированы слабые места защиты, способствующие проведению атак с использованием поддельных фреймов и манипуляции битами. IEEE предложила специальный алгоритм, получивший название Michael (Майкл), чтобы усилить роль ICV в шифровании фреймов данных стандарта 802.11.
MIC имеет уникальный ключ, который отличается от ключа, используемого для шифрования фреймов данных. Этот уникальный ключ перемешивается с назначенным MAC-адресом и исходным MAC-адресом фрейма, а также со всей незашифрованной частью фрейма. На рис. 2.26 показана работа алгоритма Michael MIC.
Рис. 9.
Механизм шифрования TKIP в целом осуществляется следующим образом:
1. С помощью алгоритма пофреймового назначения ключей генерируется пофреймовый ключ (рис. 9).
2. Алгоритм MIC генерирует MIC для фрейма в целом.
3. Фрейм фрагментируется в соответствии с установками MAC относительно фрагментации.
4. Фрагменты фрейма шифруются с помощью пофреймового ключа.
5. Осуществляется передача зашифрованных фрагментов.
Рис. 10. Механизм шифрования TKIP
Аналогично процессу шифрования по алгоритму TKIP, процесс дешифрования по этому алгоритму выполняется следующим образом (рис. 10):
1. Предварительно вычисляется ключ 1-й фазы.
2. На основании IV, полученного из входящего фрагмента фрейма WEP, вычисляется пофреймовый ключ 2-й фазы.
3. Если полученный IV не тот, какой нужно, фрейм отбрасывается.
4. Фрагмент фрейма расшифровывается, и осуществляется проверка признака целостности (ICV).
5. Если контроль признака целостности дает отрицательный результат, такой фрейм отбрасывается.
6. Расшифрованные фрагменты фрейма собираются, чтобы получить исходный фрейм данных.
7. Приемник вычисляет значение MIC и сравнивает его со значением, находящимся в поле MIC фрейма.
8. Если эти значения совпадают, фрейм обрабатывается приемником.
9. Если эти значения не совпадают, значит, фрейм имеет ошибку MIC, и приемник принимает меры противодействия MIC.
Рис. 11. Механизм дешифровки TKIP
Меры противодействия MIC состоят в выполнении приемником следующих задач:
1. Приемник удаляет существующий ключ на ассоциирование.
2. Приемник регистрирует проблему как относящуюся к безопасности сети.
3. Ассоциированный клиент, от которого был получен ложный фрейм, не может быть ассоциирован и аутентифицирован в течение 60 секунд, чтобы замедлить атаку.
4. Клиент запрашивает новый ключ.
WPA может работать в двух режимах: Enterprise (корпоративный) и Pre-Shared Key (персональный).
В первом случае хранение базы данных и проверка аутентичности по стандарту 802.1x в больших сетях обычно осуществляются специальным сервером, чаще всего RADIUS (Remote Authentication Dial-In User Service). Enterprise-режим мы рассмотрим далее.
Во втором случае подразумевается применение WPA всеми категориями пользователей беспроводных сетей, т.е. имеет место упрощенный режим, не требующий сложных механизмов. Этот режим называется WPA-PSK и предполагает введение одного пароля на каждый узел беспроводной сети (точку доступа, беспроводной маршрутизатор, клиентский адаптер, мост). До тех пор, пока пароли совпадают, клиенту будет разрешен доступ в сеть. Можно заметить, что подход с использованием пароля делает WPA-PSK уязвимым для атаки методом подбора, однако этот режим избавляет от путаницы с ключами WEP, заменяя их целостной и четкой системой на основе цифро-буквенного пароля.
Таким образом, WPA/TKIP - это решение, предоставляющее больший по сравнению с WEP уровень безопасности, направленное на устранение слабостей предшественника и обеспечивающее совместимость с более старым оборудованием сетей 802.11 без внесения аппаратных изменений в устройства.
Рассмотрение пофреймового назначения ключей и MIC касалось в основном ключа шифрования и ключа MIC. Но ничего не было сказано о том, как ключи генерируются и пересылаются от клиента к точке доступа и наоборот. В разделе, посвященном Enterprise-режиму мы рассмотрим предлагаемый стандартом 802.11i механизм управления ключами.