签名保护的是记录集
同一个名称和记录类型下的数据组成记录集,DNSSEC通过RRSIG保存相关数字签名,并在DNSKEY中发布用于验证的公钥。签名与区域数据相关,而不是为每次查询临时生成一个仅属于某台服务器的加密通道。
RRSIG还规定签名生效与到期时间,验证不能只检查数学上签名是否匹配。记录缓存期限、签名有效期和密钥状态都参与处理;一份以前通过验证的数据,不能因此无限期保留为当前可信答案。
从信任锚连接到子区域
收到一把公钥本身还不够,验证者需要从本地信任锚建立认证链。父区域的DS记录通过摘要等信息指向子区域的DNSKEY,帮助把委托边界两侧的密钥关系接起来;DS和相应DNSKEY位于不同区域,不能随意互换。
名称或所查类型不存在也需要证据,不能把没有回复当成已认证的否定答案。NSEC、NSEC3及后续机制为相应否定回答提供验证材料;采用哪种形式、怎样缓存和如何处理验证失败,必须遵守适用规范与策略。
数据认证不等于传输保密
DNSSEC不隐藏查询名称或回答数据,观察者仍可能看到通信内容;需要保密查询时,要采用承担这种职责的传输机制。反过来,查询通道已经加密,也不能自动替代DNSSEC对区域数据和委托链的认证。
验证通过说明数据符合相应DNSSEC信任链和规则,不保证网站没有欺骗内容、地址服务永远可用或解析系统免受资源耗尽。HTTPS的服务标识校验仍是另一层。算法与否定回答等规则也持续更新,部署不能只照用最初规范的全部历史选择。