跳到主要内容

10. 安全考虑

从数据包基本格式和传输的角度看, IPv6 具有与 IPv4 类似的安全属性. 这些安全问题包括:

  • 窃听, 即路径上的元素能够观察每个 IPv6 数据报的整个数据包, 包括内容和元数据.
  • 重放, 即攻击者从线路上记录一系列数据包, 然后向最初接收它们的一方重新播放.
  • 数据包插入, 即攻击者伪造具有某些所选属性的数据包并将其注入网络.
  • 数据包删除, 即攻击者从线路上移除数据包.
  • 数据包修改, 即攻击者从线路上移除数据包, 修改它, 然后重新注入网络.
  • 中间人 (Man-in-the-middle, MITM) 攻击, 即攻击者颠覆通信流, 以便对接收者冒充发送者, 并对发送者冒充接收者.
  • 拒绝服务 (Denial-of-service, DoS) 攻击, 即攻击者向目的地发送大量合法流量以压垮它.

通过使用 "Security Architecture for the Internet Protocol" [RFC4301], 可以保护 IPv6 数据包免受窃听, 重放, 数据包插入, 数据包修改和 MITM 攻击. 此外, Transport Layer Security (TLS) 或 Secure Shell (SSH) 等上层协议也可用于保护运行在 IPv6 之上的应用层流量.

没有任何机制可以防御 DoS 攻击. 防御这类攻击超出本规范范围.

IPv6 地址明显大于 IPv4 地址, 这使得在整个 Internet 甚至单条网络链路 (例如 Local Area Network) 上扫描地址空间都困难得多. 更多信息见 [RFC7707].

与 IPv4 相比, 节点的 IPv6 地址预计会在 Internet 上更加可见, 因为地址转换技术的使用减少了. 这会产生一些额外隐私问题, 例如更容易区分端点. 更多信息见 [RFC7721].

IPv6 扩展头部架构的设计虽然增加了大量灵活性, 但也带来了新的安全挑战. 如下所述, 与 Fragment extension header 相关的问题已经解决, 但很明显, 对未来设计的任何新扩展头部, 都需要彻底检查其安全影响, 并且这需要包括该新扩展头部如何与现有扩展头部协同工作. 更多信息见 [RFC7045].

此版本 IPv6 规范解决了先前版本 IPv6 规范 [RFC2460] 中发现的一些安全问题. 这些问题包括:

  • 修订文本以处理片段本身就是完整数据报的情况, 即 Fragment Offset 字段和 M 标志均为零. 如果收到这类片段, 应将其作为已重组数据包处理. 任何其他匹配片段应独立处理. Fragment 创建过程被修改为不会创建完整数据报片段 (Fragment Offset 字段和 M 标志均为零). 更多信息见 [RFC6946] 和 [RFC8021].

  • 删除第 5 节中一段要求: 如果 ICMP Packet Too Big 消息报告的 Next-Hop MTU 小于 1280, 则外发数据包必须包含 Fragment header. 更多信息见 [RFC6946].

  • 修改文本, 要求 IPv6 节点不得创建重叠片段. 此外, 在重组 IPv6 数据报时, 如果其一个或多个组成片段被确定为重叠片段, 则整个数据报及其任何组成片段都必须被静默丢弃. 同时澄清如果收到重叠片段, 不应发送 ICMP 错误消息. 更多信息见 [RFC5722].

  • 修订文本, 要求直到第一个 upper-layer header 为止的所有头部都位于第一个片段中. 更多信息见 [RFC7112].

  • 纳入 [RFC5095] 和 [RFC5871] 的更新, 删除 Routing Header type 0 (RH0) 的描述, 说明 Routing header 的分配指南在 RFC 5871 中规定, 并从必需扩展头部列表中删除 RH0.

与 IPv6 其他部分相关的安全问题, 包括寻址, ICMPv6, Path MTU Discovery 等, 在相应规范中讨论.