跳到主要内容

23. 安全考虑

  1. 安全考虑

对 DHCP 的威胁本质上是一种内部威胁 (假设一个配置正确的网络, 在企业边界网关上已阻止 DHCPv6 端口). 然而, 无论网关如何配置, 内部人员和外部人员所可能发起的攻击都是相同的.

在中继代理与服务器之间使用手动配置的预共享密钥 (preshared keys) 进行 IPsec, 并不能防御重放 (replayed) 的 DHCP 消息. 重放的消息可以表示一种通过耗尽处理资源而实施的拒绝服务 (DOS) 攻击, 但不能通过错误配置 或耗尽其他资源 (如可分配的地址) 来实施.

一种特定于 DHCP 客户端的攻击, 是建立一个恶意服务器, 意图向客户端提供不正确的配置信息. 这样做动机可能 是为了发起 "中间人 (man in the middle)" 攻击, 使客户端与某恶意服务器 (而非如 DNS 或 NTP 等服务的合法 服务器) 通信. 该恶意服务器也可能通过错误地配置客户端, 使客户端的所有网络通信均告失败, 从而发起拒绝 服务攻击.

对 DHCP 客户端还存在另一种威胁, 即由于误操作或意外配置的 DHCP 服务器, 会用非有意的错误配置参数来应答 DHCP 客户端的请求.

DHCP 客户端也可能因收到来自恶意服务器的 Reconfigure 消息而遭受攻击, 该消息会使客户端从该服务器获取错误 的配置信息. 注意, 尽管客户端通过其响应 (Renew 或 Information-request 消息) 经由中继代理发送, 因此该 响应只会被中继到 DHCP 消息所发往的服务器, 但一个恶意服务器仍可能向客户端发送一条 Reconfigure 消息, 随后 (在适当的延迟之后) 再发送一条会被客户端接受的 Reply 消息. 因此, 一个不在客户端与服务器之间的网络 路径上的恶意服务器, 仍有可能对客户端发起 Reconfigure 攻击. 使用密码学上可靠且不易被预测的 transaction ID, 也将降低此类攻击成功的概率.

特定于 DHCP 服务器的威胁, 是一个无效客户端伪装成有效客户端. 其动机可能是为了盗用服务, 或为了规避审计以 达到任何数量的恶意目的.

客户端和服务器共同面临的威胁是资源 "拒绝服务 (denial of service, DoS)" 攻击. 这些攻击通常涉及可用地址 的耗尽, 或 CPU 或网络带宽的耗尽, 并且只要存在共享资源就会出现.

在由中继代理向 Relay Forward 消息添加额外选项的情况下, 中继代理与服务器之间交换的消息可能被用于发起 "中间人" 或拒绝服务攻击.

该威胁模型不认为 DHCP 消息内容的保密性很重要. DHCP 不用于交换必须对其他网络节点保密的认证或配置信息.

DHCP 认证提供了对 DHCP 客户端和服务器身份的认证, 以及 DHCP 客户端与服务器之间所传递消息的完整性的认证. DHCP 认证不为 DHCP 消息的内容提供任何保密性.

第 21.4 节所述的延迟认证 (Delayed Authentication) 协议使用了在客户端与服务器之间共享的密钥. 在共享密钥 中使用 "DHCP realm" 可以标识管理域, 使得客户端在不同管理域之间漫游时能够选择合适的密钥. 然而, 延迟认证 协议未定义任何共享密钥的机制, 因此客户端可能需要在它所遇到的每个管理域中使用单独的密钥. 共享密钥的使用 可能无法良好扩展, 并且不提供对受损密钥的否认 (repudiation). 该协议侧重于解决域间 (intradomain) 问题, 在此情形下, 通过带外 (out-of-band) 方式交换共享密钥是可行的.

由于存在通过 Reconfigure 消息发起攻击的可能性, DHCP 客户端必须 (MUST) 丢弃任何不包含认证、或未通过认证 协议验证过程的 Reconfigure 消息.

第 21.5 节所述的重配置密钥 (Reconfigure Key) 协议, 提供了针对恶意 DHCP 服务器利用 Reconfigure 消息对 客户端发起拒绝服务或中间人攻击的保护. 该协议可能被能够截获 DHCP 服务器向客户端发送密钥的那条初始消息的 攻击者所攻破.

服务器与中继代理之间、以及中继代理与中继代理之间的通信, 可以通过使用 IPsec 来保障安全, 如第 21.1 节所 述. 在此情形下, 使用手动配置和安装静态密钥是可接受的, 因为中继代理和服务器将属于同一管理域, 且中继代理 还需要其他特定的配置 (例如 DHCP 服务器地址的配置) 以及 IPsec 配置.