什么是封装安全负载(ESP)?

封装安全有效负载 (ESP) 在 IPSec 中提供所有加密服务,基于有效负载的完整性而不是 IP 标头、机密性和身份验证,强烈建议不要使用加密,不进行身份验证,因为它不安全。

任何以可读消息格式转换为不可读格式的翻译都会被加密并用于隐藏消息内容以防止数据篡改。

IPSec 提供了一个开放的框架,例如 SHA 和 MD5,用于实现行业标准算法。

加密/解密只允许发送者和授权接收者以可读的形式接收数据,并且只有在完整性验证过程完成后,才能解密数据包中的数据有效负载。

IPSec 为每个数据包使用一个唯一标识符,该标识符相当于指纹的数据,并检查是否已授权的数据包。它不会对整个数据包进行签名,除非它正在被隧道传输——通常,因为这个 IP 数据有效负载受到保护,而不是 IP 标头。在隧道模式下,整个原始 IP 数据包被封装并添加了新的数据包头。

传输模式中的 ESP 不为整个 IP 数据包提供完整性和身份验证。

ESP 格式

ESP 格式用图表表示如下 -

解释

安全参数索引(32 位) - 标识安全关联。此字段是必填字段。零值保留用于本地、特定于实现的用途,不得在线发送。

序列号(32 位) - 单调递增的计数器值;这提供了反重放功能,如 AH 所述。使用给定 SA 发送的第一个数据包的序列号为 1。

有效负载数据(变量) - 这是受加密保护的传输级段(传输模式)或 IP 数据包(隧道模式)。受保护的内容类型由 Next Header 字段指示。

填充(0-255 字节) - 加密填充,将有效负载数据扩展到适合加密密码块大小的大小,并对齐下一个字段。

填充长度(8 位) - 指示紧接在该字段之前的填充字节数。

Next Header (8 bits) - 通过识别有效载荷中的第一个标头来识别有效载荷数据字段中包含的数据类型。

Authentication Data (variable) - 包含完整性的可变长度字段(必须是整数个 32 位字)。通过 ESP 数据包计算的检查值减去验证数据字段。此字段是可选的,仅当已为相关 SA 选择了身份验证服务时才包含此字段。