Россия, Санкт-Петербург, Северо-Западный заочный технический университет, 2007 |
Семейство протоколов IPSec
Протокол ESP
Обзор
Протокол ESP разработан для обеспечения возможности использования нескольких сервисов безопасности в IPv4 и IPv6.
ESP-заголовок вставляется после IP-заголовка и перед заголовком протокола более высокого уровня (транспортный режим) или перед инкапсулированным IP-заголовком (туннельный режим).
ESP используется для обеспечения конфиденциальности, аутентификации данных, целостности соединения и анти-replay сервиса (обеспечение целостности некоторой последовательности дейтаграмм).
Формат пакета ESP
Заголовок протокола (IPv4, IPv6 или Extension), непосредственно предшествующий ESP, содержит значение 50 в поле Protocol (IPv4) или Next Header (IPv6, Extension).
Данные (Payload Data)
Payload Data является полем переменной длины, содержащим данные протокола, расположенного выше в стеке, который указан в поле Next Header. Длина данного поля равна целому числу байтов. Если алгоритм, используемый для шифрования, требует криптографически синхронизованных данных, например инициализационный вектор IV, то эти данные также содержатся в этом поле.
Добавление (Padding)
Использование поля Padding объясняется несколькими факторами.
- Если используемый алгоритм шифрования требует, чтобы незашифрованный текст был кратен определенному количеству байтов, например, размеру блока для блочных алгоритмов, то поле Padding используется для дополнения незашифрованных данных (состоящих из полей Payload Data, Pad Length и Next Header) до размера, требуемого алгоритмом.
- Добавление может также требоваться независимо от алгоритма шифрования для гарантирования того, что полученные зашифрованные данные завершаются на 4-байтой границе. Поля Pad Length и Next Header должны быть таким образом расположены в 4-байтном слове, чтобы гарантировать, что поле Authentication Data привязано к 4-байтной границе.
- Добавление может быть использовано для маскирования реальной длины содержимого для обеспечения конфиденциальности потока трафика. Однако следует понимать, что использование такого добавления увеличивает трафик.
Длина добавления (Pad Length)
Поле Pad Length указывает число байтов добавления, которые непосредственно следуют за ним.
Следующий заголовок (Next Header)
Next Header является 8-битовым полем, которое указывает тип данных, содержащихся в поле Payload Data, например, заголовок Extension в IPv6 или идентификатор протокола более высокого уровня. Значение данного поля выбирается из множества IP Protocol Number, определяемого IANA.
Аутентификационные данные (Authentication Data)
Authentication Data является полем переменной длины, содержащим значение проверки целостности (Integrity Check Value – ICV), вычисленное для ESP-пакета, за исключением самого поля Authentication Data. Длина поля определяется выбранным алгоритмом аутентификации. Поле Authentication Data является необязательным и включается в том случае, если используется сервис аутентификации.
Обработка трафика, выполняемая ESP
Рассмотрим расположение заголовка ESP относительно заголовков других протоколов.
Протокол ESP может использоваться в двух режимах: в транспортном режиме и туннельном. Первый режим применяется в основном для создания VPN между двумя хостами и обеспечивает защиту для протоколов более высокого уровня, но не для заголовка IP. Заметим, что в данном режиме для "bump-in-the-stack" и "bump-in-the-wire" реализаций может потребоваться реассемблирование входящих и исходящих IP-фрагментов.
В транспортном режиме ESP-заголовок расположен после IP-заголовка и перед заголовком протокола более высокого уровня, например, ТСР, UDP, ICMP и т.д. Следующие рисунки показывают добавление заголовков в транспортном режиме ESP для типичного IPv4 пакета.
В протоколе IPv6 ESP рассматривается как end-to-end содержимое, и таким образом оно должно появляться после hop-by-hop, routing и fragmentation заголовков расширения. Заголовки параметров назначе-ния могут появляться как до, так и после ESP заголовка, в зависимости от требуемой семантики. Однако, так как ESP защищает только поля после ESP-заголовка, обычно требуется размещение заголовков опций назначения после ESP-заголовка. Следующие рисунки иллюстрируют добавление заголовков в транспортном режиме ESP для типичного IPv6-пакета.
* - если присутствует, то может быть до ESP, после ESP или и так, и так.
Туннельный режим ESP может быть реализован как на хостах, так и на шлюзах безопасности. При использовании ESP на шлюзе безопасности для защиты транзитного трафика должен применяться туннельный режим. В туннельном режиме внутренний IP-заголовок содержит конечные адреса источника и получателя, а внешний IP-заголовок содержит IP-адреса шлю-зов безопасности. В туннельном режиме ESP защищает весь внутренний IP-пакет, включая весь внутренний IP-заголовок. Расположение ESP в тун-нельном режиме относительно внешнего IP-заголовка является тем же са-мым, что и для транспортного режима. Следующие рисунки иллюстрируют добавление заголовков в туннельном режиме ESP для типичных IPv4- и IPv6-пакетов.