跳到主要内容

3.2. IPsec 如何工作

IPsec 使用两个协议来提供流量安全服务——认证头(AH)和封装安全载荷(ESP)。这两个协议分别在各自的 RFC [Ken05b, Ken05a] 中详细描述。IPsec 实现必须(MUST)支持 ESP,可以(MAY)支持 AH。(对 AH 的支持已降级为 MAY,因为经验表明,极少有 ESP 无法提供所需安全服务的场景。注意,ESP 可以只提供完整性而不提供机密性,因而在大多数场景下可与 AH 相媲美。)

  • IP 认证头(AH) [Ken05b] 提供完整性和数据源认证,并可选(由接收方自行决定)提供防重放功能。

  • 封装安全载荷(ESP)协议 [Ken05a] 提供同一组服务,并且还提供机密性。不推荐使用 ESP 仅提供机密性而不提供完整性。当 ESP 启用机密性时,还提供了有限的流量机密性机制,即隐藏包长度的机制,以及便于高效生成和丢弃伪包(dummy packet)的机制。这种能力可能主要在虚拟专用网络(VPN)和覆盖网络(overlay network)场景中有效。

  • AH 和 ESP 都提供访问控制,通过密码密钥的分发,以及按安全策略数据库(SPD,第 4.4.1 节)指示对流量进行管控来强制执行。

这些协议可以单独应用,也可以相互组合应用,以提供 IPv4 和 IPv6 的安全服务。然而,大多数安全要求都可以通过单独使用 ESP 来满足。每个协议都支持两种使用模式:传输模式和隧道模式。在传输模式下,AH 和 ESP 主要保护下一层协议;在隧道模式下,AH 和 ESP 应用于被隧道封装的 IP 包。两种模式之间的差异在第 4.1 节讨论。

IPsec 允许用户(或系统管理员)控制提供安全服务的粒度。例如,可以创建一条加密隧道来承载两个安全网关之间的全部流量,也可以为跨这些网关通信的每对主机之间的每个 TCP 连接创建单独的加密隧道。IPsec 通过 SPD 管理范式,纳入了用于指定以下内容的设施:

  • 采用哪种安全协议(AH 或 ESP)、哪种模式(传输或隧道)、哪些安全服务选项、使用哪些密码算法,以及以何种组合使用指定的协议和服务;以及
  • 应用保护的粒度。

由于 IPsec 提供的大多数安全服务都要求使用密码密钥,因此 IPsec 依赖一组独立的机制来部署这些密钥。本文档要求同时支持手动和自动的密钥分发。它为自动密钥管理规定了一种特定的基于公钥的方法(IKEv2 [Kau05]),但也可以(MAY)使用其他自动密钥分发技术。

注意: 本文档强制要求支持若干 IKEv2 支持但 IKEv1 不支持的功能,例如协商表示本地和远端端口范围的 SA,或协商具有相同选择器的多个 SA。因此,本文档假定使用 IKEv2,或使用具备类似功能的密钥与安全关联管理系统。