什么是封装安全载荷 (ESP)?
封装安全载荷 (ESP) 在基于 IPSec 的所有加密服务中提供有效载荷的完整性(而不是 IP 标头),以及使用加密的机密性和身份验证。强烈建议不要使用未经身份验证的加密,因为它不安全。
任何将可读消息格式转换为不可读格式的转换都称为加密,并用于隐藏消息内容以防止数据篡改。
IPSec 提供了一个开放框架,例如 SHA 和 MD5,用于实现行业标准算法。
加密/解密仅允许发送方和授权接收方以可读格式接收数据,并且只有在完整性验证过程完成后,才会对数据包中的数据有效载荷进行解密。
IPSec 为每个数据包使用唯一的标识符,该标识符相当于指纹数据,并检查数据包是否已获得授权。除非正在进行隧道传输,否则它不会对整个数据包进行签名——通常,对于此 IP 数据有效载荷受到保护,而不是 IP 标头。在隧道模式下,整个原始 IP 数据包都封装在一个新的数据包标头中。
传输模式下的 ESP 不会为整个 IP 数据包提供完整性和身份验证。
ESP 格式
ESP 格式的图表表示如下:
解释
**安全参数索引 (32 位)** - 标识安全关联。此字段是必需的。值为零保留用于本地实现特定的用途,并且**不得**在网络上传输。
**序列号 (32 位)** - 单调递增的计数器值;这提供了一个防重放功能,如 AH 中所述。使用给定 SA 发送的第一个数据包的序列号为 1。
**有效载荷数据 (可变)** - 这是由加密保护的传输级段 (传输模式) 或 IP 数据包 (隧道模式)。受保护的内容类型由“下一跳标头”字段指示。
**填充 (0-255 字节)** - 用于加密的填充,将有效载荷数据扩展到适合加密的密码块大小,并对齐下一个字段。
**填充长度 (8 位)** - 指示此字段前面紧邻的填充字节数。
**下一跳标头 (8 位)** - 通过识别有效载荷数据字段中的第一个标头来识别有效载荷数据字段中包含的数据类型。
**身份验证数据 (可变)** - 可变长度字段(必须是 32 位字的整数倍),包含在 ESP 数据包(减去身份验证数据字段)上计算的完整性校验值。此字段是可选的,仅当为相关 SA 选择了身份验证服务时才包含。