跳到主要内容

7. 存根解析器考虑事项 (Stub Resolver Considerations)

虽然协议并未严格要求如此, 但大多数 DNS 查询都源自存根解析器. 按定义, 存根解析器是最小化的 DNS 解析器, 它们使用递归查询模式, 将 DNS 解析的大部分工作卸载给递归名称服务器. 鉴于存根解析器被广泛使用, DNSSEC 架构必须将存根解析器纳入考虑; 但存根解析器所需的安全功能在某些方面不同于安全感知迭代解析器所需的功能.

如果安全无感知存根解析器使用的递归名称服务器是安全感知的, 它也可能从 DNSSEC 中受益. 但若存根解析器要真正依赖 DNSSEC 服务, 它必须同时信任相关递归名称服务器以及自身与这些名称服务器之间的通信信道. 第一个问题是本地策略问题: 本质上, 安全无感知存根解析器只能任由其所使用的递归名称服务器摆布, 因为它自身不执行 DNSSEC 有效性检查. 第二个问题需要某种信道安全机制; 正确使用 SIG(0) ([RFC2931]) 或 TSIG ([RFC2845]) 等 DNS 事务认证机制即可满足要求, 适当使用 IPsec 也可以. 特定实现可能还可使用其他选择, 例如操作系统特定的进程间通信机制. 该信道不需要机密性, 但需要数据完整性和消息认证.

如果安全感知存根解析器确实信任其递归名称服务器以及通向这些服务器的通信信道, 它可以选择检查所接收响应消息的消息头中已认证数据 (Authenticated Data, AD) bit 的设置. 存根解析器可以将此标志 bit 用作提示, 以了解递归名称服务器是否能够验证响应中 Answer 和 Authority 节内所有数据的签名.

如果安全感知存根解析器出于任何原因无法与其所使用的递归名称服务器建立有用的信任关系, 它还可以采取另一个步骤: 在查询消息中设置检查禁用 (Checking Disabled, CD) bit, 从而自行执行签名验证. 因此, 验证存根解析器能够将 DNSSEC 签名视为区域管理员与该存根解析器自身之间的信任关系.