3.2. IPsec 的工作原理 (How IPsec Works)
IPsec 使用两个协议来提供流量安全服务 -- 认证头 (Authentication Header, AH) 和封装安全载荷 (Encapsulating Security Payload, ESP)。这两个协议在各自的 RFC [Ken05b, Ken05a] 中有详细描述。IPsec 实现必须 (MUST) 支持 ESP,可以 (MAY) 支持 AH。(对 AH 的支持已降级为可以 (MAY),因为经验表明,在很少的情况下 ESP 不能提供必要的安全服务。请注意,ESP 可以仅用于提供完整性而不提供机密性,使其在大多数情况下与 AH 相当。)
-
IP 认证头 (AH) [Ken05b] 提供完整性和数据源认证,并可选地(由接收方决定)提供防重放功能。
-
封装安全载荷 (ESP) 协议 [Ken05a] 提供相同的服务集,并且还提供机密性。不推荐 (NOT RECOMMENDED) 使用 ESP 在没有完整性的情况下提供机密性。当启用机密性使用 ESP 时,有提供有限流量流机密性的规定,即,隐藏数据包长度的规定,以及促进有效生成和丢弃虚拟数据包的规定。这种能力可能主要在虚拟专用网络 (VPN) 和覆盖网络环境中有效。
-
AH 和 ESP 都提供访问控制,通过密码密钥的分发和由安全策略数据库 (SPD, 第 4.4.1 节) 指定的流量流管理来实施。
这些协议可以单独应用或相互组合以提供 IPv4 和 IPv6 安全服务。然而,大多数安全要求可以仅通过使用 ESP 本身来满足。每个协议支持两种使用模式:传输模式 (transport mode) 和隧道模式 (tunnel mode)。在传输模式下,AH 和 ESP 主要为下一层协议提供保护; 在隧道模式下,AH 和 ESP 应用于隧道化的 IP 数据包。这两种模式之间的差异在第 4.1 节中讨论。
IPsec 允许用户(或系统管理员)控制提供安全服务的粒度 (granularity)。例如,可以创建单个加密隧道来承载两个安全网关之间的所有流量,或者可以为通过这些网关通信的每对主机之间的每个 TCP 连接创建单独的加密隧道。IPsec 通过 SPD 管理范式,包含用于指定以下内容的设施:
-
采用哪种安全协议 (AH 或 ESP)、模式(传输或隧道)、安全服务选项、使用什么密码算法,以及以什么组合使用指定的协议和服务,以及
-
应以什么粒度应用保护。
由于 IPsec 提供的大多数安全服务需要使用密码密钥,IPsec 依赖于一组单独的机制来放置这些密钥。本文档要求支持手动和自动密钥分发。它为自动密钥管理指定了一种特定的基于公钥的方法 (IKEv2 [Kau05]),但也可以 (MAY) 使用其他自动密钥分发技术。
注意: 本文档强制要求支持几个功能,这些功能在 IKEv2 中可用但在 IKEv1 中不可用,例如,协商代表本地和远程端口范围的 SA 或协商具有相同选择器的多个 SA。因此,本文档假设使用 IKEv2 或具有可比功能的密钥和安全关联管理系统。