摘要
- 执行验证的递归解析器只有在认为 Answer 与 Authority 部分的相关 RRset 都真实可信时,才设置 DNSSEC
AD位;这个位报告的是该解析器的结论,并非数据包自证。 - 不自行验证的 stub 只有同时信任递归解析器,并对通往它的信道实施保护或认证,才可依赖这个结论;具备验证能力的 stub 应当自行验证。
- DNSSEC 验证、解析器结论的安全交付和应用最终决策分属三道证据边界;没有
AD位,不能单独证明数据属于 Bogus。
大量验证工作最后压缩成一个比特
一台终端向配置好的递归解析器询问域名。解析器在给出答案前,可能已经逐级跟随委派,取得 DNSKEY 和 DS 记录,沿信任锚构造验证链,核验签名,并处理经过认证的不存在证明。返回终端的 DNS 报文装不下这段过程,只能在头部带回一个 Authenticated Data 标志,也就是 AD。
这种压缩有实际价值。轻量客户端不一定要重复能力完善的解析器已经做过的工作。但上下文也会随压缩消失。界面若把 AD=1 直接画成“安全”,读者很容易以为网络路径、目标系统乃至请求动作都已得到认证。RFC 实际给出的结论要窄得多。
RFC 4035 规定,具备安全能力的递归域名服务器,只有在它认为响应 Answer 与 Authority 部分的全部 RRset 均为真实数据时,才设置 AD。句子的判断主体是解析器。它按照自身的信任锚、验证政策和当时看到的响应得出结论。这个位是计算结果的摘要,既不是覆盖 DNS 头部的签名,也没有携带足以让陌生客户端独立复算的完整证据。
Scott Rose 与 Roy Arends、Rob Austein、Matt Larson、Dan Massey 共同署名 RFC 4033、4034 和 4035。五位作者及标准化共同体没有要求一个小字段承担普遍证明的角色,而是分别界定验证在哪里发生、结果怎样交给下一方,以及下一方仍需具备什么信任条件。
四种验证状态无法塞进一个开关
RFC 4033 将安全感知解析的总体结果分为 Secure、Insecure、Bogus 与 Indeterminate。Secure 意味着数据能沿有效链路连接到接受的信任锚;Insecure 是可被证明未签名的状态;Bogus 指本应通过验证却未能通过检查的数据;Indeterminate 则是现有信息或政策无法归入前三者。
AD 并没有编码这四个值。它被设置时,传递的是解析器规则要求的正面认证结果;它未被设置时,原因可能不止一个。数据可能正确地处于 Insecure,解析器可能根本不验证,查询也可能没有以要求返回该标志的方式发送,还可能存在其他状态或本地政策。把 AD=0 一律翻译成“DNSSEC 失败”,反而抹掉了协议刻意保留的分类。
RFC 6840 又补充了查询端的语义。请求方可以在查询中设置 AD,表明自己理解并希望获得这一标志,即使它没有通过 DO 位要求同时返回 DNSSEC 记录。验证解析器应当只在验证条件满足、且查询带有 DO 或 AD 时,于响应中设置 AD。因此,同一份已经验证的数据,对没有声明这两种能力的客户端可能不带该位。缺失本身不能还原解析器内部的状态。
正面的 AD 也不表示所有解析器一定得出相同答案。信任锚和本地政策可能不同,时间、缓存以及所见响应也会变化。DNSSEC 提供验证机制;这个位只报告某一解析器如何把机制应用于这一次响应。
这个位保护不了承载它的数据包
假设攻击者能够修改 stub 与递归解析器之间的流量。要欺骗盲信 AD 的客户端,攻击者不必伪造任何 DNSSEC 签名,只要改动没有签名保护的头部位、替换响应或干预传输信道即可。客户端随后信任的,是一项从未验证过传输来源和完整性的声明。
RFC 3655 在 DNSSEC 核心规范完成前就指出了这条边界:不理解安全机制的 stub 不得盲目信任 AD,除非它与可信、具备安全能力的递归解析器通过安全传输通信,或者采用消息认证。RFC 4033 延续了相同架构。把验证委托出去,意味着既要信任递归服务器,也要信任两者之间的信道。对于这一属性,关键是完整性和认证;保密并不是让结论可信的必要条件。
这两项要求不能互相替代。通往不可信解析器的认证信道,只能证明可疑答案确实出自那台解析器;一台值得信赖的解析器若经由可篡改信道抵达终端,也无法担保终端最终看到的内容。只有两者组合,委托验证才成立。
会自行验证的 stub 走的是另一条路。RFC 4035 要求它忽略收到的 AD,执行自身验证。它可以利用响应中的 DNSSEC 记录,但结论来自按自己的信任配置核验整条链。外部的 AD 可以作为观察值,却不能成为判定权威。
“可信解析器”是一种可核查的运营关系
这个词不应只是产品标签。客户端需要知道自己意图连接哪一台解析服务,用合适机制认证交换过程,并确认该解析器采用的是自己可接受的验证政策。仅仅配置了一个地址,不足以证明中途各环节完整保存了结论。
因此,把验证集中到递归服务不只是转移计算,也是在转移治理。解析器运营方决定信任锚、软件版本、例外处置、失败策略与缓存时限。客户端只消费摘要时,也继承了这些决定。集中式验证完全可能是合理架构,但 AD 不会消除依赖,只会把依赖压缩得更小。
Rose 的职业脉络说明这条边界为何仍然重要。NIST 个人资料将他的工作定位于互联网基础设施保护和安全协议。2026 年 3 月,NIST 发布新版《安全域名系统部署指南》,作者为 Scott Rose、Cricket Liu 与 Ross Gibson。这里的 DNSSEC 是一个需要持续运营的系统:区域签名只是起点,解析器配置、验证结论的安全使用和监测共同决定证据能否完整进入业务判断。
人物归因也需守住边界。Rose 是三份核心 RFC 的五位共同作者之一,不是 DNSSEC 的唯一发明者,也不控制各家实现。RFC 3655 和 RFC 6840 的作者群体另有其人。他在本文中的意义,是参与确立了一套长期有效的结构:认证有明确作用域,消费者必须知道自己收到的是谁的结论。
DNS 结论不是应用结论
即便 AD 计算正确,又经认证信道完整送达,它仍只抵达 DNS 数据边界。它能够支持“这些 RRset 在该解析器的 DNSSEC 信任链下得到认证”这一判断,却不证明 Web 服务器没有失陷、IP 地址没有恶意、证书符合政策、邮件收件人获得授权,更不批准某笔交易。
应用还会组合 TLS 身份认证、证书与名称核验、账户授权、时效要求、内容政策、业务规则和用户意图。有些协议刻意把 DNSSEC 认证记录作为更大决策的一部分,这是有价值的组合,但不能把证据边界合并。应用应能说明使用了哪项记录、哪个解析器结论、什么信道属性和哪一道后续检查。
审计日志若只保存 AD=true,就会把所有依赖抹平。更好的记录至少分三项:解析器的验证状态与政策、该状态向客户端的认证交付,以及应用如何采用或拒绝返回数据。最终动作出错时,调查者才能分辨是验证本身错误、结论在传输中被改动,还是应用给了 DNS 结果超出其范围的权力。
所以,Authenticated Data 位既不是装饰,也不是魔法。它是特定验证方针对特定 DNS 数据作出的一条紧凑陈述。严谨使用它,可以保留解析器已经完成的工作,而不把借来的信任伪装成端到端证明。
资料来源
- Scott Rose — IETF Datatracker
- Scott Rose — NIST
- NIST《安全域名系统部署指南》
- RFC 3655 — Redefinition of DNS Authenticated Data Bit
- RFC 4033 — DNS Security Introduction and Requirements
- RFC 4035 — Protocol Modifications for DNS Security Extensions
- RFC 6840 — Clarifications and Implementation Notes for DNS Security
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
