跳到主要内容

1. 引言 (Introduction)

[RFC 2460] 定义了一个名为 "Routing Header" 的 IPv6 extension header, 它由紧邻前一个 header 中值为 43 的 Next Header 标识. 其中还定义了一个表示为 "Type 0" 的特定 Routing Header subtype. 本文档将 Type 0 Routing Headers 称为 "RH0".

单个 RH0 可以包含多个 intermediate node addresses, 并且同一地址可以在同一个 RH0 中出现多次. 这允许构造一个 packet, 使其在两个处理 RH0 的 hosts 或 routers 之间多次振荡. 这使远程攻击者能够利用 IPv6 source routing 机制, 使流量在远程路径上被放大, 可能产生大量 denial-of-service traffic. 使用这种技术已经演示出高达 88 倍的放大效果 [CanSecWest07].

这种攻击尤其严重, 因为它影响两个 nodes 之间的整条路径, 而不仅仅是这两个 nodes 本身或它们的本地网络. IPv4 的 source route 选项中有类似的功能, 但 RH0 由于能够在每个 packet 中指定更多的 intermediate node addresses, 其被滥用的机会更大.

由于该攻击的严重性及其易于实施的特性, 完全废弃 RH0 成为必要. 一个副作用是, 这也消除了 RH0 的良性用例; 然而, 此类应用可以由未来的 Routing Header 规范来促成.

RH0 的潜在问题早在 2001 年就被指出 [Security]. 2002 年有人提出一项提案, 用于限制 host 对 Routing Header 的处理 [Hosts]. 这些努力促使 Mobile IPv6 规范被修改为使用 Type 2 Routing Header 而非 RH0 [RFC3775]. Vishwas Manral 在 2006 年指出了与 RH0 相关的各种风险, 包括放大攻击; 其中若干漏洞 (以及其他问题) 随后被记录在 [RFC4942] 中.

Philippe Biondi 和 Arnaud Ebalard 在 2007 年于温哥华举行的 CanSecWest 会议上介绍了 RH0 的运行安全影响 [CanSecWest07]. 该演讲使与 RH0 相关的风险得到了广泛宣传.

本文档据此更新 [RFC 2460]、[RFC 4294] 和 [RFC 3775].