7. 安全考量 (Security Considerations)
本节讨论引入差分服务所引发的安全问题,主要是拒绝服务攻击的可能性,以及随之而来的未授权流量窃取服务(theft of service)的可能性(第 7.1 节)。第 7.2 节讨论差分服务在存在 IPsec 情况下的运行,包括其与 IPsec 隧道模式以及其他隧道协议的交互。关于整体差分服务架构所引发的安全关注,更详尽的论述见 [ARCH]。
7.1 服务窃取与拒绝服务 (Theft and Denial of Service)
差分服务的主要目标,是在公共网络基础设施上为不同的流量流提供不同等级的服务。实现这一点可采用多种技术,但最终结果是某些数据包会获得与其他数据包不同的(例如更好的)服务。网络流量到导致不同(更好或更差)服务的特定行为的映射,主要由 DS 码点指示;因此,攻击者有可能通过将码点修改为指示增强服务所用行为的取值,或者通过注入带有此类码点值的数据包,来获取更好的服务。推到极端,当被修改或注入的流量耗尽了可用于转发它本身及其他流量流的资源时,这种服务窃取就演变为拒绝服务攻击。
针对此类服务窃取与拒绝服务攻击的防御,由 DS 域边界处的流量调节与 DS 域内部网络基础设施的安全性、完整性共同构成。DS 域边界节点必须 (MUST) 确保进入该域的所有流量都被标记有适应该流量及该域的码点值,必要时以新的码点值重新标记该流量。这些 DS 边界节点是抵御基于篡改码点的服务窃取与拒绝服务攻击的主要防线,因为任何此类攻击得手,都意味着攻击流量所使用的码点是不恰当的。边界节点的一个重要情形是:DS 域内任何产生流量的节点,都是该流量的初始边界节点。DS 域内的内部节点依赖 DS 码点将流量关联到相应的转发 PHB,且在使用码点值之前不要求 (NOT REQUIRED) 检查其取值。因此,内部节点依赖于 DS 域边界节点的正确运作,以防止携带不当码点或超出预置水平的流量到达,从而破坏该域的运作。
7.2 IPsec 与隧道交互 (IPsec and Tunnelling Interactions)
如 [ESP, AH] 所定义的 IPsec 协议,在其任何密码学计算中都不包含 IP 头部的 DS 字段(在隧道模式下,未被包含的是外层 IP 头部的 DS 字段)。因此,网络节点对 DS 字段的修改不会影响 IPsec 的端到端安全性,因为它不会导致任何 IPsec 完整性校验失败。其结果是,IPsec 对攻击者篡改 DS 字段(即中间人攻击)不提供任何防护,因为攻击者的篡改同样不会影响 IPsec 的端到端安全性。
IPsec 的隧道模式为被封装 IP 头部的 DS 字段提供保护。隧道模式的 IPsec 数据包包含两个 IP 头部:一个由隧道入口节点提供的外层头部,以及一个由数据包原始来源提供的被封装的内层头部。当 IPsec 隧道(全部或部分)承载于差分服务网络之上时,中间网络节点作用于外层头部中的 DS 字段。在隧道出口节点,IPsec 处理包括移除外层头部,并在需要时使用内层头部转发该数据包。IPsec 协议要求 (REQUIRES) 该解封装处理不得更改内层头部的 DS 字段,以确保对 DS 字段的修改无法被用于跨越 IPsec 隧道端点发起服务窃取或拒绝服务攻击。本文档不改变该要求。如果内层 IP 头部尚未由隧道出口节点所属 DS 域的某个 DS 边界节点处理过,则该隧道出口节点就是离开隧道的流量的边界节点,因此必须 (MUST) 确保所得到的流量具有恰当的 DS 码点。
当 IPsec 隧道出口的解封装处理包含对被封装数据包足够强的密码学完整性校验(其充分性由本地安全策略判定)时,隧道出口节点可以安全地假定内层头部中的 DS 字段与其在隧道入口节点处的取值相同。一个重要的推论是:DS 域内原本不安全的链路,可以借助足够强的 IPsec 隧道加以保护。本分析及其结论适用于任何执行完整性校验的隧道协议,但对内层头部 DS 字段的保证程度,取决于该隧道协议所执行完整性校验的强度。对于可能穿越当前 DS 域之外节点的隧道(或在其他方面存在脆弱性的隧道),在缺乏充分保证的情况下,被封装的数据包必须 (MUST) 被当作是从 DS 域外部的边界到达的来处理。