网络层安全 | IPSec协议和服务17 Mar 2025 | 5 分钟阅读 分类 - 计算机网络 | 网络层安全 IPSec 定义了两种协议:身份验证头 (AH) 协议和封装安全载荷 (ESP) 协议,用于在 IP 级别上对数据包进行身份验证和/或加密。 身份验证头 (AH) 协议身份验证头 (AH) 协议旨在验证源主机的合法性并保护 IP 数据包内容的完整性。 该协议使用哈希函数和对称(密钥)生成消息摘要,并将其添加到身份验证头中(参见 MAC)。根据模式(传输模式或隧道模式),AH 会被放置在正确的位置。下面图片显示了传输模式下身份验证头的字段和位置。  当 IP 数据报包含身份验证头时,IP 头中的原始协议字段值将更改为 51。IP 数据报携带的负载类型(即负载的种类)的初始值存储在身份验证头内的下一个头字段中。添加身份验证头后的后续步骤如下: - 添加到负载中的身份验证头中的身份验证数据字段设置为 0。
- 为了使总长度适合特定的哈希算法,可能会应用填充。
- 整个数据包都用于哈希计算。然而,在计算消息摘要(身份验证数据)时,只考虑在传输过程中保持不变的 IP 头字段。
- 身份验证头包含身份验证数据。
- 在 IP 头之前,协议字段的值被更改为 51。
以下是每个字段的快速摘要: - 下一个头部 (Next Header) - 8 位下一个头部字段指定了 IP 数据报携带的负载类型(例如 TCP、UDP、ICMP 或 OSPF)。
- 负载长度 (Payload Length) - 这个 8 位字段的命名不准确。它不指定负载的大小,而是以 4 字节为增量提供身份验证头的大小,不包括前 8 字节。
- 安全参数索引 (Security Parameter Indexes) - 一个 32 位字段,称为安全参数索引 (SPI),作为安全关联 (Security Association) 的一部分,为所有传输的数据包充当虚拟电路标识。
- 序列号 (Sequence Number) - 32 位序列号提供有序的数据报序列。序列号可防止重放攻击。尽管发生数据包重传,但请注意序列号不会重复。序列号达到 232 后不会继续,而是需要建立新的连接。
- 身份验证数据 (Authentication Data) - 最后,IP 数据报的整体(除了在传输过程中会修改的字段外)被哈希以生成身份验证数据字段(例如,生存时间 TTL)。
封装安全载荷 (ESP) 协议AH 协议仅提供源身份验证和数据完整性;不提供保密性。封装安全载荷 (ESP) 是 IPSec 后来描述的替代协议,它提供源身份验证、完整性和保密性。 ESP 添加了一个头和一个尾。ESP 的身份验证数据插入在数据包的末尾,这简化了计算。ESP 头和尾的位置如下图所示。  当 IP 头包含 ESP 头和尾时,IP 头中的协议字段值为 50。IP 数据报使用的 TCP 或 UDP 负载格式(即负载类型)的初始值存储在 ESP 尾部的一个字段中,称为下一个头部字段。ESP 过程的步骤如下: - 负载会增加一个 ESP 尾部。
- 对负载和尾部进行加密。
- 添加 ESP 头。
- 使用 ESP 头、负载和尾部创建身份验证数据。
- 身份验证信息包含在 ESP 尾部的末尾。
- 协议值更改为 50,然后添加 IP 头。
头和尾部有以下字段: - 安全参数索引 (Security Parameter Index) - 32 位安全参数索引字段与 AH 协议中指定的字段类似。
- 序列号 (Sequence Number) - 32 位序列号字段与 AH 协议中指定的字段类似。
- 填充 (Padding) - 此填充字段长度可配置(0 到 255 字节),仅包含零。
- 填充长度 (Pad Length)- 8 位参数填充长度指定了填充字节的数量。该值的范围是 0 到 255,其中 255 是一个罕见的数值。
- 下一个头部 (Next Header) - 8 位下一个头部字段与 AH 协议中指定的字段类似。它起着与 IP 头预封装协议字段相同的功能。
- 身份验证数据 (Authentication Data) - 在对数据报的特定部分应用身份验证技术后,身份验证数据字段是最终结果。请注意 AH 和 ESP 中身份验证信息的区别。在 AH 中,计算身份验证数据时会考虑 IP 头的一部分;而在 ESP 中则不会。
AH 与 ESP 的比较ESP 协议是在 AH 协议实现之后创建的。ESP 具有添加的功能,可以执行与 AH 相同的任务(保密性)。实际上,我们不需要 AH。但是,在这些项目被淘汰之前,AH 仍将在互联网上存在,因为 AH 的实现目前存在于某些商业产品中。 IPSec 提供的服务AH 和 ESP 这两种协议可以为网络层的 IP 数据包提供多种安全特性。下表显示了每种协议提供的服务列表:  - 访问控制 (Access Control) - IPSec 通过安全关联数据库 (SAD) 以间接方式提供访问控制。当一个数据包到达目的地时,如果还没有为它创建安全关联,该数据包将被拒绝。
- 数据完整性 (Data Integrity) - AH 和 ESP 都维护消息的完整性。发送方会创建并发送数据摘要供接收方验证。
- 实体身份验证 (Entity Authentication) - AH 和 ESP 都通过安全关联来验证数据发送方,发送方会传输数据的密钥哈希摘要。
- 保密性 (Confidentiality) - ESP 通过加密提供消息的保密性。然而,AH 不提供保密性。如果需要保密性,应使用 ESP 而不是 AH。
- 防重放攻击 (Replay Attack Protection) - 两种协议都使用滑动接收窗口和序列号来防止重放攻击。在建立安全关联时,每个 IPSec 头都有一个不同的序列号。数字从零开始递增,直到达到 232 - 1。当序列号达到最大值时,旧的安全关联将被删除,并同时创建一个新的。IPSec 要求接收方使用固定大小的窗口来避免处理重复的数据包。接收方选择窗口的大小,默认值为 64。
|