跳到主要内容

8. 安全考虑 (Security Considerations)

本文档是对 RFC 1034 和 RFC 1035 中概述机制的澄清, 因此不增加新的安全考虑. RFC 3833 [RFC3833] 完全专门讨论 DNS 的安全考虑; 其第 4.3 节将区域传输安全方面与 DNSSEC 所处理的安全威胁区分开来.

关于授权, traffic flooding, 和消息完整性的关注点分别在 "Authorization" (第 5 节), "TCP" (第 4.1 节), 和 "Zone Integrity" (第 6 节) 中提及.

主要安全关注点 (Primary Security Concerns)

  1. 未授权区域披露: Zone files 可能包含网络基础设施的敏感信息, 包括内部主机的名称和 IP 地址. 未授权区域传输可能帮助攻击者进行侦察. AXFR servers 必须实现授权机制 (第 5 节), 以将区域传输限制给受信任 clients.

  2. 中间人攻击 (Man-in-the-middle attacks): 如果没有完整性保护, 位于 AXFR client 和 server 之间的攻击者可能拦截并修改传输中的区域数据. 实现应该使用 TSIG [RFC2845] 或 SIG(0) [RFC2931] 防范此类攻击 (第 6 节).

  3. 拒绝服务 (Denial of Service, DoS): 区域传输可能消耗大量网络带宽和服务器资源. 攻击者可能试图通过发起许多并发区域传输请求来耗尽服务器资源. AXFR servers 应该实现速率限制和连接限制, 以缓解 DoS attacks.

  4. 数据完整性: 必须保护所传输区域数据免受未授权修改. AXFR clients 应该使用 TSIG, SIG(0), 或 DNSSEC validation 验证收到数据的完整性 (第 6 节).

  5. 重放攻击 (Replay attacks): 攻击者可能捕获一次合法区域传输并在之后重放, 从而可能导致 client 回退到过时区域数据. TSIG 和 SIG(0) 通过使用 timestamps 和 nonces 提供针对 replay attacks 的保护.

建议 (Recommendations)

  1. 使用认证: 区域传输应该使用 TSIG 或 SIG(0) 认证. 未认证区域传输易受 spoofing 和 man-in-the-middle attacks 影响.

  2. 实现访问控制: AXFR servers 必须实现访问控制策略, 限制允许哪些 clients 请求区域传输. 基于 IP 的 ACLs, TSIG, 和 SIG(0) 都是可行的授权机制.

  3. 保护机密区域: 对包含敏感信息的区域, operators 应该考虑除应用层认证外, 使用网络层加密 (例如 VPNs, IPsec).

  4. 监控传输: Operators 应该监控区域传输活动中的异常, 例如意外传输请求或认证尝试失败.

  5. 限制资源使用: AXFR servers 应该实现限制资源消耗的机制, 例如:

    • 限制并发区域传输数量.
    • 实现按 client 的速率限制.
    • 对空闲连接设置超时.
  6. 保持软件更新: Operators 应该确保 DNS software 保持最新, 以获得安全修复和改进.

DNSSEC 考虑 (DNSSEC Considerations)

对于 DNSSEC-signed zones, AXFR protocol 会传输所有 DNSSEC-related records (DNSKEY, RRSIG, NSEC, NSEC3, DS). 接收 DNSSEC-signed zones 的 AXFR clients 应该验证所传输数据上的 DNSSEC signatures, 以确保完整性.

但是, DNSSEC 不提供机密性, 也不保护 AXFR protocol 本身. 仍然应该使用 TSIG 或 SIG(0) 认证区域传输请求, 并防范未授权传输.

威胁分析 (Threat Analysis)

关于 DNS 安全威胁的全面分析, 包括与区域传输相关的威胁, 操作员和实现者应参阅 RFC 3833 [RFC3833], "Threat Analysis of the Domain Name System (DNS)".