Существует множество технологий безопасности, и все они предлагают решения для важнейших компонентов политики в области защиты данных: аутентификации, поддержания целостности данных и активной проверки. Мы определяем аутентификацию как аутентификацию пользователя или конечного устройства (клиента, сервера, коммутатора, маршрутизатора, межсетевого экрана и т. д.) и его местоположения с последующей авторизацией пользователей и конечных устройств.
Целостность данных включает такие области, как безопасность сетевой инфраструктуры, безопасность периметра и конфиденциальность данных. Активная проверка помогает удостовериться в том, что установленная политика в области безопасности соблюдается, и отследить все аномальные случаи и попытки несанкционированного доступа.
Шифрование WEP (Wired Equivalent Privacy - секретность на уровне проводной связи) основано на алгоритме RC4 (Rivest's Cipher v.4 - код Ривеста), который представляет собой симметричное потоковое шифрование. Как было отмечено ранее, для нормального обмена пользовательскими данными ключи шифрования у абонента и точки радиодоступа должны быть идентичными.
Ядро алгоритма состоит из функции генерации ключевого потока. Эта функция генерирует последовательность битов, которая затем объединяется с открытым текстом посредством суммирования по модулю два. Дешифрация состоит из регенерации этого ключевого потока и суммирования его с шифрограммой по модулю два для восстановления исходного текста. Другая главная часть алгоритма - функция инициализации, которая использует ключ переменной длины для создания начального состояния генератора ключевого потока.
RC4 - фактически класс алгоритмов, определяемых размером его блока. Этот параметр n является размером слова для алгоритма. Обычно, n = 8, но в целях анализа можно уменьшить его. Однако для повышения уровня безопасности необходимо задать большее значение этой величины. Внутреннее состояние RC4 состоит из массива размером 2n слов и двух счетчиков, каждый размером в одно слово. Массив известен как S-бокс, и далее он будет обозначаться как S. Он всегда содержит перестановку 2n возможных значений слова. Два счетчика обозначены через i и j.
Алгоритм инициализации RC4 приведен ниже.
Этот алгоритм использует ключ, сохраненный в Key и имеющий длину l байт. Инициализация начинается с заполнения массива S, далее этот массив перемешивается путем перестановок, определяемых ключом. Так как над S выполняется только одно действие, должно выполняться утверждение, что S всегда содержит все значения кодового слова.
for i = 0 to 2n – 1 { S[i] = i }
j = 0; for i = 0 to 2n – 1 { j = (j + S[i] + Key[i mod l]) mod 2n Перестановка (S[i], S[j]) }
Генератор ключевого потока RC4 переставляет значения, хранящиеся в S, и каждый раз выбирает новое значение из S в качестве результата. В одном цикле RC4 определяется одно n-битное слово K из ключевого потока, которое в дальнейшем суммируется с исходным текстом для получения зашифрованного текста.
i = 0 j = 0
i = (i + 1) mod 2n j = (j + S[i]) mod 2n Перестановка (S[i], S[j]) Результат: K = S[(S[i] + S[j]) mod 2n]
Для непрерывного шифрования потока данных используется потоковое и блочное шифрование.
При потоковом шифровании выполняется побитовое сложение по модулю 2 (функция "исключающее ИЛИ", XOR ) ключевой последовательности, генерируемой алгоритмом шифрования на основе заранее заданного ключа, и исходного сообщения. Ключевая последовательность имеет длину, соответствующую длине исходного сообщения, подлежащего шифрованию ( рис. 8.1).