9. DNSSEC 状态 (DNSSEC States)
Validating resolver 可以确定某个响应处于四种状态之一: secure, insecure, bogus 或 indeterminate. 这些状态定义在 [RFC4033] 和 [RFC4035] 中, 虽然两个定义略有不同. 本文档不试图调和这两个定义, 也不对它们是否需要调和表明立场.
[RFC4033] 第 5 节说:
Validating resolver 可以确定以下 4 种状态:
Secure: Validating resolver 拥有 trust anchor, 拥有 chain of trust, 并且能够验证响应中的所有签名.
Insecure: Validating resolver 拥有 trust anchor, chain of trust, 并且在某个 delegation point 处拥有 DS 记录不存在的签名证明. 这表明树中的后续分支可证明为 insecure. Validating resolver 可以有本地策略, 将域名空间的部分区域标记为 insecure.
Bogus: Validating resolver 拥有 trust anchor 和 secure delegation, 表明下级数据已签名, 但响应因某种原因验证失败: 缺少签名, 签名过期, 签名使用不支持的算法, 相关 NSEC RR 表示应存在的数据缺失, 等等.
Indeterminate: 没有 trust anchor 可表明树中的特定部分是 secure. 这是默认运行模式.
[RFC4035] 第 4.3 节说:
Security-aware resolver 必须能够区分以下四种情况:
Secure: 对于某个 RRset, resolver 能够从 trusted security anchor 到该 RRset 构建由已签名 DNSKEY 和 DS RR 组成的链. 在这种情况下, 如上所述, 该 RRset 应被签名并接受签名验证.
Insecure: 对于某个 RRset, resolver 知道不存在从任何 trusted starting point 到该 RRset 的已签名 DNSKEY 和 DS RR 链. 当目标 RRset 位于 unsigned zone 或 unsigned zone 的后代 [sic] 中时可能出现这种情况. 在这种情况下, RRset 可能已签名也可能未签名, 但 resolver 无法验证签名.
Bogus: 对于某个 RRset, resolver 认为它应能建立 chain of trust, 但由于签名因某种原因验证失败, 或相关 DNSSEC RR 指示应存在的数据缺失, 因而无法建立. 这种情况可能表示攻击, 也可能表示配置错误或某种形式的数据损坏.
Indeterminate: 对于某个 RRset, resolver 无法确定它是否应被签名, 因为 resolver 无法获取必要的 DNSSEC RR. 当 security-aware resolver 无法联系相关区域的 security-aware name server 时, 可能出现这种情况.