Ассоциации безопасности и SPI

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

Когда IPsec-дейтограмма, AH или ESP попадает в интерфейс, как интерфейс узнает, какой набор параметров (ключ, алгоритм и политика) использовать? Любая машина может вести много диалогов, каждый со своим набором параметров безопасности и нужен механизм управления этим процессом.

Параметры безопасности задаются SA (Security Association), которая определяет параметры и процедуры, специфические для конкретного соединения. Каждый партнер может иметь один или более SA. Когда дейтограмма приходит, для нахождения правильного SA в базе данных SADB (Security Associations Database – база данных ассоциаций безопасности) используются три значения:

· IP адрес места назначения.

· IPsec протокол (ESP или AH, содержится в заголовке).

· Индекс параметров безопасности (SPI).

Во многих отношениях эта тройка может быть уподоблена IP сокету, который однозначно определяется IP адресом удаленного партнера (IPv4 или IPv6), протоколом и номером порта. В перечень компонентов SA входят:

· Номер по порядку. 32-битовый код, используемый для формирования поля порядковый номер в заголовках АН и ESP.

· Переполнение счетчика порядкового номера. Флаг, индицирующий переполнение счетчика порядкового номера. При его установке дальнейшая посылка пакетов для заданной SA должна быть прекращена.

· Окно для подавления попыток атак воспроизведения. Используется для определения того, является ли входящий АН- или ESP-пакет воспроизведением. Задача решается путем контроля того, попадает ли номер пакета в скользящее окно номеров.

· Информация AH. алгоритм аутентификации, ключи, время жизни ключей и другие параметры.

· Информация ESP: алгоритмы шифрования и аутентификации, ключи, параметры инициализации (IV), времена жизни ключей и другие параметры.

· Окно для подавления попыток атак воспроизведения. Используется для определения того, является ли входящий АН- или ESP-пакет воспроизведением. Задача решается путем контроля того, попадает ли номер пакета в скользящее окно номеров.

· Информация AH. алгоритм аутентификации, ключи, время жизни ключей и другие параметры.

· Информация ESP: алгоритмы шифрования и аутентификации, ключи, параметры инициализации (IV), времена жизни ключей и другие параметры.

· Режим работы IPsec. Туннельный, транспортный или любой.

· MTU пути. Максимальный размер пакета, который может быть передан через виртуальный канал без фрагментации.

При создании новой SA в счетчик номера по порядку заносится нуль, далее он инкрементируется при посылке каждого пакета. Когда содержимое счетчика достигает значения 232-1, текущая SA аннулируется и должна быть согласована новая ассоциация безопасности и новый ключ.

Так как IP работает без установления соединения и доставка пакетов по порядку не гарантируется, протокол требует, чтобы получатель сформировал скользящее окно с шириной W, например, W=64 пакета. Правый край окна соответствует наибольшему номеру по порядку N для благополучно принятых пакетов. Любой пакет с номером в диапазоне от N-W+1 до N считается принятым корректно. Если полученный пакет оказался по левую границу окна, или его аутентификация потерпела неудачу, то такой пакет отбрасывается. Ниже приведен пример, где длина W=7 (реально это число может достигать 232). Первые две строки показывают состояние окна с началом в позиции 1 и концом в позиции 7, пакет с номером 9 получен, но его подлинность не подтверждена. Буквами П обозначены полученные пакеты с подтвержденной подлинностью, буквами Н – неполученные пакеты; а буквой «О», полученный пакет, подлинность которого не подтверждена. Серым цветом отмечено окно «W».

Когда подлинность полученного пакета с номером 9 оказалась подтвержденной, правая граница окна смещается на эту позицию и занимает положение, показанное на вторых строках данного примера. В этом состоянии, если придет пакет с номером 1 или 2, они будут отвергнуты. Если же придут пакеты с номерами 5 или 8 они будут подвергнуты обработке, так как находятся в пределах окна W.

Ассоциации безопасности сопрягаются с однонаправленными соединениями, так что для двунаправленной связи требуется как минимум две такие ассоциации. Кроме того, каждый протокол (ESP/AH) имеет свою собственную SA, для каждого из направлений обмена, таким образом, полномасштабная VPN AH+ESP требует наличия четырех ассоциаций безопасности. Все эти данные хранятся в базе данных SADB.

В базе данных SADB содержится:

· AH: алгоритм аутентификации.

· AH: аутентификационный секретный ключ (authentication secret).

· ESP: алгоритм шифрования.

· ESP: секретный ключ шифрования.

· ESP: разрешение аутентификации (yes/no).

· Параметры обмена ключами.

· Ограничения маршрутизации.

· IP политика фильтрации.

Некоторые реализации поддерживают SPD (Security Policy Database) со средствами работы из командной строки, другие с GUI, в то время как прочие предоставляют WEB-интерфейс для работы через сеть. Каждая запись в SPD определяется набором значений полей IP и протокола верхнего уровня, называемых селекторами. Эти селекторы используются для фильтрации исходящего трафика, для того чтобы поставить его в соответствие с определенной SA. Обработка исходящих IP-пакетов производится в следующей последовательности.

· сравниваются значения соответствующих полей в пакете (селекторные поля) с SPD и находится нуль или более SA.

· Определяется SA (если таковая имеется) для пакета и сопряженный с ней SPI.

· Выполняются необходимые операции IPsec (AH или ESP).

SPD запись определяется следующими селекторами:

· IP-адрес места назначения. Это может быть один IP-адрес (обязательно уникастный!), нумерованный список адресов или адресная маска (префикс). Последние два варианта нужны для работы группами адресов, имеющими идентичную SA (например, за firewall).

· IP-адрес отправителя. Это может быть один IP-адрес, нумерованный список адресов или адресная маска (префикс). Последние два варианта нужны для поддержки нескольких отправителей, имеющих идентичную SA, (например, за firewall).

· UserID. Идентификатор пользователя служит для идентификации политики, соответствующей имени пользователя или системы.

· Уровень чувствительности данных. Уровень чувствительности данных используется для определения характера данных (например, “Секретно” или “Unclassified”).

· Протокол транспортного уровня. Это значение извлекается из поля следующий заголовок пакета IPv4 или IPv6. Это может быть индивидуальный код протокола, список кодов протокола или диапазон таких кодов.

· Протокол IPsec (AH, ESP или AH/ESP). Извлекается (если присутствует) из поля следующий заголовок пакета IPv4 или IPv6.

· Порты отправителя и получателя. Это могут быть индивидуальные номера портов ТСР или UDP, список портов или произвольный порт.

· Класс IPv6. Значение класса получается из заголовка IPv6. Это может быть специфическое значение и код произвольного класса.

· Метка потока IPv6. Значение метки потока получается из заголовка IPv6. Это может быть специфическое значение метки потока или код произвольной метки.

· Тип сервиса IPv4. Значение ToS получается из заголовка IPv4. Это может быть специфическое значение ToS или указатель произвольного значения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: