封装安全载荷(ESP)定义在RFC2406中,用于为IP提供保密性和抗重播服务,包括数据包内容的保密性和有限的流量保密性。
基本介绍
- 中文名:封装安全载荷
- 外文名:Encapsulate Security Payload
- 简称:ESP
- 属于:IPSec的一种协定
简介
封装安全载荷(ESP)定义在RFC2406中,用于为IP提供保密性和抗重播服务,包括数据包内容的保密性和有限的流量保密性。作为可选的功能,ESP也提供和AH鉴别头部同样的数据完整性和兼备服务。由于ESP要对数据进行加密处理,因而它比AH需要更多的处理时间。
格式
基本的ESP协定定义和实际提供安全服务(保密性和鉴别服务)的算法的定义是分开的。ESP是一个通用的、易于拓展的安全机制,其组成格式如图:

(1)安全参数索引(32 bit):标识一个安全关联,同AH中的SPI。需要指出的是,SPI本身可以被鉴别,但不会被加密,否则无法处理。
(2)序列号(32 bit):一个单调递增的计数器的值,同AH中讨论的一样,主要为了抵抗重放攻击。同样序列号也不会被加密。
(3)载荷数据(变长):为通过加密保护的传输级数据段(传输模式)或IP数据报(隧道模式)。
(4)填充:栏位长範围为0到255位元组,用于将明文扩充到所需要的长度,保证边界的正确,同时隐藏载荷数据的实际长度。
(5)填充长度(8 bit):表示千亿栏位填充的位元组的数目。
(6)下一头部(8 bit):标识下一个头部的类型,从而表示负载数据的数据类型。同AH一样,在传输模式下,将是处于保护中的IP上层协定的值,如UDP或TCP的协定类型值。在隧道模式中,值为4。
(7)鉴别数据(可变长):必须是32bit的整数倍,是在前面个栏位基础上计算的出来的完整性校验值ICV。
其中,“安全参数索引”和“序列号”栏位构成了ESP的头部,“填充”,“填充长度”和“下一个头部”3个栏位构成了ESP的尾部。 保密性服务通过加密来提供,其中加密涉及的栏位:载荷数据、填充、填充长度和下一个头部通常被称为明文。数据完整性和鉴别服务通过鉴别数据栏位来实现,其覆盖範围包括ESP头部、载荷数据和ESP尾部。
工作模式
ESP支持两种工作模式:传输模式和隧道模式。这两种工作模式下ESP载数据包中的位置如图
