9. Security Considerations (安全注意事项)
9. Security Considerations (安全注意事项)
如果 BFD 会话受到攻击, 攻击者有三种主要手段可供选择: 1) 攻击者可以拦截 BFD 数据包并阻止它们到达目的地, 从而导致 BFD 会话失败, 这将导致数据流量停止; 2) 攻击者可以注入欺骗的 BFD 数据包, 从潜在地导致虚假的会话故障 (或防止会话建立); 3) 攻击者可以注入欺骗的 BFD Echo 数据包, 从潜在地导致虚假的会话故障。
BFD 协议旨在提供检测机制, 而其他协议则提供其他功能 (例如路由协议), 因此 BFD 的安全考虑包括 BFD 本身被攻击和使用 BFD 的应用被攻击的影响。拦截数据包和欺骗 Echo 数据包的攻击在某种意义上类似于简单地破坏路径, 并导致 BFD 会话失败 (以及使用 BFD 作为活性检测机制的任何应用失败)。防止数据包拦截最好在适当的情况下通过物理安全性以及链路层安全性来完成。
BFD Echo 数据包的欺骗可能导致虚假的会话故障, 即使会话已经被认证。Echo 数据包的主体需要被认证, 尽管如何做到这一点超出了本规范的范围 (因为 Echo 数据包的内容由发送系统选择, 并且对接收系统不透明)。
欺骗 BFD 控制包的影响包括阻止会话进入 Up 状态, 以及导致会话在已经 Up 时失败。防止欺骗的最好方法是对 BFD 控制包进行认证。
BFD 包括可选的认证机制, 可用于检测 BFD 控制包的欺骗。当认证被使用时, 可以针对重放攻击提供一些保护。
强烈建议不要使用简单密码认证, 因为该形式的认证容易受到拦截攻击。如果使用简单密码认证, 密码应该非常频繁地更改, 最好是带外更改。强烈不建议使用基于 MD5 的认证, 因为 MD5 存在已知的漏洞。但是, 为了与早期系统的兼容性, 在此记录基于 MD5 的认证。支持认证的实现必须支持基于 SHA1 的认证 (密钥 SHA1 或严格密钥 SHA1)。
BFD 实际上可以用于针对任何使用它的应用的攻击媒介。例如, 对等方可能通过导致 BFD 会话失败, 然后立即重新启动它们来试图导致使用 BFD 的路由协议振荡。同样, 请注意, 如果使用非严格形式的密钥 MD5 或 SHA1 认证, 则此形式的攻击可能相当有效。强烈建议使用严格形式, 因为序列号在每个数据包上递增, 从而限制了攻击者通过重放旧数据包进行攻击的窗口。
对 BFD 的第二种攻击形式是简单地发送大量伪造的数据包到设备, 以期耗尽处理资源并导致 BFD 会话失败。这在某种程度上可以通过严格限制可用于处理不可识别 BFD 数据包的资源来缓解。
BFD 数据包通过底层媒体发送, 因此任何保护该媒体的机制都可以保护 BFD, 例如 IPsec [IPsec]。特定的应用文档可能会定义其使用安全机制。
协议定义对检测到的攻击的响应不包括在本文档中, 并且是特定于应用程序的。
BFD 可以与如 IP 这样的基础设施一起使用, 该基础设施历史上易受欺骗攻击。此类攻击可能针对 BFD 本身。对于基于 IP 的 BFD 会话, 源地址的验证可能对提供针对某些此类攻击的额外保护有用。当 BFD 控制包在路由协议之前到达时, 可以使用入口过滤 [BCP38] 来帮助验证数据包来源和抵抗某些欺骗攻击。反向路径转发 (RPF, Reverse Path Forwarding) 检查也可能帮助检测和防御针对 BFD 的地址欺骗攻击。