3. Обработка ESP
3.1. Расположение заголовка ESP
ESP может работать в двух режимах — транспортном и туннельном.
3.1.1. Транспортный режим
В транспортном режиме ESP помещается после заголовка IP и перед заголовком следующего уровня (например, TCP, UDP, ICMP и т.п.). В контексте IPv4 это означает размещение ESP после заголовка IP (и всех опций), но перед протоколом следующего уровня (если для пакета используется также AH, заголовок идентификации применяется к заголовку ESP, полю Payload, трейлеру ESP и ICV). На рисунке показано расположение ESP в типичном заголовке IPv4 (на этом и следующих рисунках данного параграфа показано поле ICV, реальное наличие которого связано с функциями защиты и выбранными алгоритмом и режимом).
До применения ESP ------------------------------- IPv4 |исх. загол. IP| | | | (любые опции)| TCP | Данные | ------------------------------- После применения ESP ----------------------------------------------------- IPv4 |исх. загол. IP| заг. | | | ESP | ESP| | (любые опции)| ESP | TCP | Данные | Трейлер | ICV| ----------------------------------------------------- |<---- шифрование ---->| |<------- целостность ------>|
В контексте IPv6 заголовок ESP представляется как передаваемые «насквозь» данные и ему, таким образом, следует размещаться после заголовков расширения hop-by-hop, routing и fragmentation. Заголовки расширения опций адресата могут размещаться до, после и по обе стороны от заголовка ESP, в зависимости от требуемой семантики. Однако, поскольку ESP защищает только поля, расположенные после заголовка ESP, в общем случае желательно помещать опции адресата после заголовка ESP. На рисунке показан заголовок ESP для типичного пакета IPv6 при использовании транспортного режима.
До применения ESP --------------------------------------- IPv6 | Исходный |расш. заг.| | | | заголовок IP|если есть | TCP |Данные| --------------------------------------- После применения ESP ----------------------------------------------------------- IPv6 | исход|hop-by-hop,dest*,| |dest| | | ESP | ESP| |заг IP|routing,fragment.|ESP|opt*|TCP|Данные| Трейлер| ICV| ----------------------------------------------------------- ||<---- шифрование ----->| ||<------ целостность ------>| * - при наличии может размещаться до или после ESP или в обоих местах
Отметим, что в транспортном режиме для реализаций «bump-in-the-stack» и «bump-in-the-wire», как указано в описании архитектуры защиты, входящие и исходящие фрагменты IP могут требовать от реализации IPsec выполнения дополнительных операций сборки/фрагментации в соответствии с данной спецификацией и для обеспечения прозрачной поддержки IPsec. При выполнении таких операций требуются особые меры осторожности в тех случаях, когда используется множество интерфейсов.
3.1.2. Туннельный режим
В туннельном режиме «внутренний» заголовок IP указывает исходные (IP) адреса отправителя и получателя, а «внешний» заголовок IP содержит адреса «партнеров» IPsec (защитных шлюзов). Допускается различие версий внутреннего и внешнего заголовков IP (т. е., возможна передача IPv6 по протоколу IPv4 и IPv4 по IPv6).IPv6).IPv6). В туннельном режиме ESP защищает вложенный пакет IP целиком, включая внутренний заголовок IP. Положение ESP в туннельном режиме относительно внешнего заголовка IP совпадает с положением ESP в транспортном режиме. На рисунке показано положение ESP для туннельного режима в заголовках типичных пакетов IPv4 и IPv6.
До применения ESP ---------------------------- IPv4 | Исходный | | | |заголовок IP | TCP |Данные| ---------------------------- После применения ESP ------------------------------------------------------------- IPv4 | Новый | | Исходный | | | ESP | ESP| | заголвок IP* | ESP | заголовок IP |TCP|Данные|Трейлер | ICV| ------------------------------------------------------------- |<---------- Шифрование ---------->| |<------------- Целостность ------------>| До применения ESP --------------------------------------- IPv6 | Исходный |расш загол| | | | заголовок IP|если есть | TCP |Данные| --------------------------------------- После применения ESP --------------------------------------------------------------- IPv6 |новый*|нов загол| |исход*|исх загол| | | ESP | ESP| |заг IP|расшир* |ESP|заг IP| расшир* |TCP|Данные|Трейлер | ICV| --------------------------------------------------------------- |<---------- Шифрование ----------->| |<------------ Целостность ------------>| * Конструкция внешнего заголовка/расширения и изменение внутреннего обсуждаются в документе по архитектуре защиты. Эти элементы не обязательны.