Skip to main content

5. 安全考虑

5.1. Authentication and Confidentiality of ICMP Messages (ICMP消息的身份验证和机密性)

ICMP协议数据包交换可以使用IP身份验证头部 [IPv6-AUTH] 或IP封装安全有效负载头部 [IPv6-ESP] 进行身份验证。ICMP协议数据包交换的机密性可以使用IP封装安全有效负载头部 [IPv6-ESP] 实现。

[SEC-ARCH] 详细描述了IPsec对ICMP流量的处理。

5.2. ICMP Attacks (ICMP攻击)

ICMP消息可能会遭受各种攻击。在IP安全架构 [IPv6-SA] 中可以找到完整的讨论。以下是这些攻击及其预防的简要讨论:

  1. ICMP消息可能会遭受旨在使接收者相信消息来自与消息发起者不同的来源的行为。 可以通过对ICMP消息应用IPv6身份验证机制 [IPv6-AUTH] 来实现对此攻击的保护。

  2. ICMP消息可能会遭受旨在使消息或对其的回复到达与消息发起者意图不同的目的地的行为。 可以通过使用身份验证头部 [IPv6-AUTH] 或封装安全有效负载头部 [IPv6-ESP] 来实现对此攻击的保护。身份验证头部提供对IP数据包的源地址和目的地址更改的保护。封装安全有效负载头部不提供此保护, 但ICMP校验和计算包括源地址和目的地址, 并且封装安全有效负载头部保护校验和。因此, ICMP校验和和封装安全有效负载头部的组合提供了对此攻击的保护。封装安全有效负载头部提供的保护不如身份验证头部提供的保护强。

  3. ICMP消息可能会遭受消息字段或有效负载的更改。 ICMP消息的身份验证 [IPv6-AUTH] 或加密 [IPv6-ESP] 可以防止此类行为。

  4. ICMP消息可能被用于通过连续发送错误的IP数据包来尝试拒绝服务攻击。 正确遵循本规范第2.4节段落 (f) 的实现将受到ICMP错误速率限制机制的保护。

  5. 第2.4节规则e.3的例外编号2为恶意节点提供了对组播源进行拒绝服务攻击的机会。 恶意节点可以发送具有标记为强制的未知目的地选项的组播数据包, 并使用有效组播源的IPv6源地址。大量目的地节点将向组播源发送ICMPv6参数问题消息, 从而导致拒绝服务攻击。组播路由器转发组播流量的方式要求恶意节点是正确组播路径的一部分, 即靠近组播源。只能通过保护组播流量来避免此攻击。组播源在发送带有标记为强制的目的地选项的组播流量时应该小心, 因为如果大量目的地不知道该目的地选项, 它们可能会对自己造成拒绝服务攻击。

  6. 由于ICMP消息传递给上层进程, 因此可以使用ICMP [TCP-attack] 对上层协议 (例如TCP) 执行攻击。 建议上层在对ICMP消息采取行动之前执行某种形式的ICMP消息验证 (使用ICMP消息有效负载中包含的信息)。实际的验证检查特定于上层, 超出了本规范的范围。使用IPsec保护上层可以缓解这些攻击。

    ICMP错误消息指示在处理互联网数据报时遇到的网络错误条件。根据特定场景, 所报告的错误条件在短期内可能解决也可能不解决。因此, 对ICMP错误消息的反应可能不仅取决于错误类型和代码, 还取决于其他因素, 例如接收错误消息的时间、先前对所报告网络错误条件的了解以及对接收主机所在网络场景的了解。