9.2 IPsec 隧道
9.2 IPsec 隧道
IPsec 通过潜在不安全的网络组件 (例如中间路由器) 支持安全通信. IPsec 协议支持两种操作模式, transport mode 和 tunnel mode, 覆盖广泛的安全需求和运行环境. Transport mode 安全协议头部插入在 IP (IPv4 或 IPv6) 头部与更高层协议头部 (例如 TCP) 之间, 因此 transport mode 只能用于连接上的端到端安全. IPsec tunnel mode 基于添加新的 "outer" IP header, 该头部封装原始或 "inner" IP header 及其关联数据包. Tunnel mode 安全头部插入在这两个 IP 头部之间. 与 transport mode 相比, 新的 "outer" IP header 和 tunnel mode 安全头部可以在连接沿途的中间点添加和移除, 从而允许安全网关保护连接中的脆弱部分, 而不要求端点参与安全协议. Tunnel mode 安全的一个重要方面是, 在原始规范中, 外层头部会在隧道出口被丢弃, 从而确保基于修改 IP 头部的安全威胁不会传播到该隧道端点之外. 关于 IPsec 的进一步讨论见 [RFC2401].
[ESP, AH] 中最初定义的 IPsec 协议要求隧道出口节点处的 IPsec 解封装处理不得改变内层头部的 ECN 字段; 这会排除 ECN full-functionality mode 的可能性. 同时, 这也会确保对手对 ECN 字段的修改不能被用于跨 IPsec 隧道端点发起盗窃或拒绝服务攻击, 因为任何这类修改都会在隧道端点被丢弃.
原则上, 允许在 IPsec 隧道外层头部中使用 ECN 功能会引发安全担忧, 因为对手可能篡改会传播到隧道端点之外的信息. 基于对这些问题及相关风险的分析 (见第 18 和第 19 节), 我们的总体方法是为 IPsec 变更提供配置支持, 以消除与 ECN 的冲突.
特别是, 在 tunnel mode 中, IPsec 隧道 MUST 支持第 9.1.1 节概述的 limited-functionality option, 并且 SHOULD 支持第 9.1.1 节概述的 full-functionality option.
这使得在 IPsec 隧道外层头部中使用 ECN 功能的许可成为相应 IPsec Security Association (SA) 的一个可配置部分, 因而当认为风险超过收益时可以禁用它. 因此, IPsec 安全管理员可以为 IPsec 隧道内 ECN-capable 连接的行为提供两个替代方案, 即前文描述的 limited-functionality alternative 和 full-functionality alternative.
此外, 本文档规定 IPsec 隧道端点如何能够基于安全策略协商在该隧道外层头部中启用 ECN 功能. 在隧道端点之间协商 ECN 使用的能力, 将使安全管理员能够在她认为风险 (例如丢失拥塞通知的风险) 超过 ECN 收益时禁用 ECN.
[ESP, AH] 中定义的 IPsec 协议不在其任何密码学计算中包含 IP 头部的 ECN 字段 (在 tunnel mode 情况下, 外层 IP 头部的 ECN 字段不包含在内). 因此, 网络节点对 ECN 字段的修改不会影响 IPsec 的端到端安全, 因为它们不会导致任何 IPsec 完整性检查失败. 因而, IPsec 不提供任何防御对手修改 ECN 字段 (即 man-in-the-middle attacks) 的能力, 因为对手修改也不会影响 IPsec 的端到端安全. 在某些环境中, 能够在不影响 IPsec 完整性检查的情况下修改 ECN 字段可能构成隐蔽信道; 如果需要消除这类信道或降低其带宽, IPsec 隧道应在 limited-functionality mode 下运行.