跳到主要内容

11. 安全考虑 (Security Considerations)

本文档的重点是安全, 因此安全考虑贯穿整个规范.

IPsec 对跨越 IPsec 边界时双向绕过 IP header 数据施加严格约束, 在使用 tunnel mode SA 时尤其如此. 有些约束是绝对的, 有些则受本地管理控制, 通常按每个 SA 分别控制. 对 outbound traffic 而言, 这些约束旨在限制 covert channel 带宽. 对 inbound traffic 而言, 这些约束旨在防止攻击者在能够篡改一个数据流 (位于 IPsec 边界未受保护一侧) 时, 对其他数据流 (位于边界受保护一侧) 造成不利影响. Section 5 中关于 tunnel mode SA 的 DSCP 值处理讨论说明了这一关注点.

如果某个 IPsec 实现被配置为仅依据 ICMP header 值, 就允许 ICMP error message 通过 SA, 而不检查 ICMP message payload 中的 header 信息, 则可能产生严重漏洞. 考虑这样一种场景: 若干站点 (A, B, C) 通过 ESP 保护的 tunnel 相互连接: A-B, A-C, B-C. 另假定每个 tunnel 的 traffic selector 对 protocol 和 port 字段都指定 ANY, 并指定涵盖各站点安全网关后方系统地址范围的 IP 源/目的地址范围. 这会允许站点 B 的某台主机向站点 A 的任意主机发送 ICMP Destination Unreachable 消息, 声称站点 C 网络上的所有主机均不可达. 这是一种非常高效的 DoS 攻击. 如果 SPD 按 Section 6.2 所述进行了适当配置, 并让 ICMP error message 接受 IPsec 提供的检查, 这种攻击本可以被阻止.


Related Sections: