10. Security Considerations (安全考虑)
从数据包的基本格式和传输的角度来看, IPv6 具有与 IPv4 类似的安全属性. 这些安全问题包括:
- 窃听 (Eavesdropping), 路径上的元素可以观察每个 IPv6 数据报的整个数据包 (包括内容和元数据).
- 重放 (Replay), 攻击者从网络中记录一系列数据包并将它们回放给最初接收它们的一方.
- 数据包插入 (Packet insertion), 攻击者伪造具有某些选定属性集的数据包并将其注入网络.
- 数据包删除 (Packet deletion), 攻击者从网络中删除数据包.
- 数据包修改 (Packet modification), 攻击者从网络中删除数据包, 修改它, 然后将其重新注入网络.
- 中间人攻击 (Man-in-the-middle, MITM), 攻击者破坏通信流, 以便向接收方冒充发送方, 向发送方冒充接收方.
- 拒绝服务攻击 (Denial-of-service, DoS), 攻击者向目标发送大量合法流量以使其不堪重负.
IPv6 数据包可以通过使用"互联网协议的安全架构" [RFC4301] 来保护免受窃听、重放、数据包插入、数据包修改和中间人攻击. 此外, 可以使用传输层安全 (Transport Layer Security, TLS) 或安全外壳 (Secure Shell, SSH) 等上层协议来保护在 IPv6 之上运行的应用层流量.
没有任何机制可以保护免受 DoS 攻击. 防御这些类型的攻击超出了本规范的范围.
IPv6 地址明显大于 IPv4 地址, 这使得扫描互联网上甚至单个网络链路 (例如局域网) 上的地址空间变得更加困难. 有关更多信息, 请参见 [RFC7707].
与 IPv4 相比, 节点的 IPv6 地址预计在互联网上更加可见, 因为地址转换技术的使用减少了. 这会产生一些额外的隐私问题, 例如更容易区分端点. 有关更多信息, 请参见 [RFC7721].
IPv6 扩展头部架构的设计虽然增加了很多灵活性, 但也带来了新的安全挑战. 如下所述, 与分片扩展头部相关的问题已得到解决, 但很明显, 对于将来设计的任何新扩展头部, 都需要彻底检查安全影响, 这需要包括新扩展头部如何与现有扩展头部一起工作. 有关更多信息, 请参见 [RFC7045].
本版本的 IPv6 规范解决了在 IPv6 规范的先前版本 [RFC2460] 中发现的许多安全问题. 这些包括:
-
修订了文本以处理作为完整数据报的分片的情况 (即分片偏移量字段和 M 标志都为零). 如果接收到, 它们应该 (SHOULD) 作为重新组装的数据包处理. 任何其他匹配的分片应该 (SHOULD) 独立处理. 分片创建过程已修改为不创建完整数据报分片 (分片偏移量字段和 M 标志都为零). 有关更多信息, 请参见 [RFC6946] 和 [RFC8021].
-
删除了第 5 节中的段落, 该段落要求如果 ICMP 数据包太大消息报告的下一跳 MTU 小于 1280, 则在传出数据包中包含分片头部. 有关更多信息, 请参见 [RFC6946].
-
更改了文本以要求 IPv6 节点禁止 (MUST NOT) 创建重叠分片. 此外, 在重新组装 IPv6 数据报时, 如果确定其一个或多个组成分片是重叠分片, 则必须 (MUST) 静默丢弃整个数据报 (和任何组成分片). 包括澄清如果接收到重叠分片, 则不应该 (SHOULD NOT) 发送 ICMP 错误消息. 有关更多信息, 请参见 [RFC5722].
-
修订了文本以要求通过第一个上层头部的所有头部都在第一个分片中. 有关更多信息, 请参见 [RFC7112].
-
纳入了 [RFC5095] 和 [RFC5871] 的更新, 以删除路由头部类型 0 (RH0) 的描述, 路由头部的分配指南在 RFC 5871 中指定, 并从所需扩展头部列表中删除了 RH0.
与 IPv6 的其他部分 (包括寻址、ICMPv6、路径 MTU 发现等) 相关的安全问题在相应的规范中讨论.