5. 安全考虑事项
本节指出 LDP 可能易受其影响的威胁, 并讨论可以缓解这些威胁的手段。
5.1. 欺骗
有两类 LDP 通信可能成为欺骗 (spoofing) 攻击的目标。
-
由 UDP 承载的发现交换
LSR 通过周期性地发送 Hello 消息来表明其建立和维护 LDP 会话的意愿。收到 Hello 消息会创建一个新的 "Hello 邻接 (Hello adjacency)" (如果尚不存在), 或刷新一个已有的 Hello 邻接。为已存在的邻接伪造 (spoof) 一个 Hello 分组可能导致该邻接超时, 并可能导致关联的会话被终止。当被伪造的 Hello 指定了一个很小的 Hold Time, 使接收方期望在该时间间隔内收到 Hello, 而真正的邻居仍以先前协商好的较低频率继续发送 Hello 时, 就可能发生这种情况。
在链路层直接相连的 LSR 通过该链路交换基本 Hello (Basic Hello) 消息。伪造基本 Hello 的威胁可以通过以下方式降低:
-
仅在可信 LSR 直接相连的接口上接受基本 Hello。
-
忽略不是发送到 "All Routers on this Subnet" 组播组的基本 Hello。
在链路层不直接相连的 LSR 可以使用扩展 Hello (Extended Hello) 消息来表明建立 LDP 会话的意愿。LSR 可以通过过滤扩展 Hello, 只接受来自访问列表所允许的源的扩展 Hello, 来降低其威胁。
-
-
由 TCP 承载的会话通信
LDP 规定使用 TCP MD5 Signature Option 来提供会话消息的真实性和完整性。
[RFC2385] 指出, MD5 认证现在被一些人认为对于此应用来说过弱。它还指出可以部署一种具有更强散列算法的类似 TCP 选项 (它以 SHA-1 为例)。据我们所知, 尚未定义和部署这样的 TCP 选项。不过, 我们注意到 LDP 可以使用任何可用的 TCP 报文摘要技术, 而当指定并实现了一种强于 MD5 的技术时, 将 LDP 升级为使用它会相对简单。
5.2. 隐私
LDP 不提供任何保护标签分发隐私的机制。
标签分发协议的安全要求与分发路由信息的协议的安全要求基本相同。通过提供确保其消息真实性和完整性的机制, LDP 提供了至少与路由协议本身所能提供的同等 (但不会更好) 的安全水平。关于路由协议是否应当要求隐私这一更一般的问题超出了本文档的范围。
有人可能会认为标签分发需要隐私来应对标签欺骗 (label spoofing) 的威胁。然而, 由于数据分组以明文携带标签, 这种隐私并不能防范标签欺骗攻击。此外, 标签欺骗攻击可以在不知晓某个标签所绑定的 FEC 的情况下进行。
为避免标签欺骗攻击, 必须确保带标签数据分组是由可信的 LSR 打上标签的, 并确保打在分组上的标签已由打标签的 LSR 正确获知。
5.3. 拒绝服务
LDP 为拒绝服务 (Denial of Service, DoS) 攻击提供了两个潜在目标:
-
用于 LDP 发现的周知 UDP 端口
LSR 管理员可以通过确保该 LSR 只与可信不会发起此类攻击的对等体直接相连, 来应对经由基本 Hello 的 DoS 攻击威胁。与管理域内部对等体相连的接口不构成威胁, 因为内部对等体处于管理员控制之下。与管理域外部对等体相连的接口构成潜在威胁, 因为外部对等体不受管理员控制。管理员可以通过只将该 LSR 连接到可信不会发起基本 Hello 攻击的外部对等体来降低该威胁。
经由扩展 Hello 的 DoS 攻击可能是更严重的威胁。该威胁可以通过使用访问列表 (定义允许进行扩展发现的地址) 过滤扩展 Hello 来应对。然而, 执行过滤需要消耗 LSR 资源。
在可以标识出可信 MPLS 云 (trusted MPLS cloud) 的环境中, 可以用位于云边缘的 LSR 来保护内部 LSR 免受经由扩展 Hello 的 DoS 攻击: 过滤掉源自可信 MPLS 云之外的扩展 Hello, 只接受来自访问列表所允许地址的那些扩展 Hello。这种过滤保护了云内部的 LSR, 但会消耗边缘处的资源。
-
用于 LDP 会话建立的周知 TCP 端口
与使用 TCP 的其他控制平面协议一样, LDP 可能成为 DoS 攻击 (例如 SYN 攻击) 的目标。LDP 对这类攻击的脆弱程度并不高于或低于其他使用 TCP 的控制平面协议。
这类攻击的威胁可以通过以下方式在一定程度上减轻:
-
LSR 应当 (SHOULD) 避免为建立 LDP 会话而进行混杂 (promiscuous) TCP 监听。它 应当 (SHOULD) 只使用针对已发现对等体的监听。这样它就能在处理早期丢弃攻击分组, 因为这些分组不太可能匹配已有或正在建立的连接。
-
使用 MD5 选项会有所帮助, 因为它使一个 SYN 只有在 MD5 段校验和有效时才会被接受。然而, 接收方必须先计算校验和, 才能决定丢弃一个在其他方面可接受的 SYN 段。
-
在 MPLS 云边界处, 以类似于上文针对扩展 Hello 所建议的方式使用访问列表机制, 可以保护内部免受源自云外的攻击。
-