什么是 DNSSEC?
DNSSEC(DNS 安全扩展,DNS Security Extensions)用密码学对 DNS 记录进行签名,使解析器能验证它们未被篡改,从而抵御缓存投毒和欺骗。它在普通 DNS 之上叠加了一条信任链,而不改变记录的含义。IPeek 查询一个进行验证的 DNS-over-HTTPS 解析器,并报告该域名是否已签名及是否通过认证。
DNSSEC 如何构建信任链
DNSSEC 的工作方式是用私钥为每个区域签名,并在 DNS 中发布配对的公钥。记录被签名(RRSIG),密钥被发布(DNSKEY),而区域密钥的指纹(DS 记录)被放入父区域。这将你的区域与其父区域相连,父区域又与其父区域相连,一路上溯到根——一条连续的信任链。进行验证的解析器从根向下沿这条链逐级检查每个签名,只信任签名验证通过的应答。
如何解读你的 DNSSEC 检查结果
IPeek 报告该域名是否已 DNSSEC 签名,以及进行验证的解析器是否对其通过认证。已认证的结果(常以 AD,即 Authenticated Data 标志呈现)意味着信任链完整、记录已被验证。如果该域名未签名,则只是没有启用 DNSSEC——这很常见,并非错误,但意味着记录未受保护。一个已签名却验证失败的域名则更严重:它指向一条断裂的信任链,通常是注册商处缺失或不匹配的 DS 记录。
常见 DNSSEC 问题及修复方法
最常见的故障是信任链断裂,即区域已签名,但父区域中的 DS 记录缺失、陈旧或与当前密钥不匹配。这会使进行验证的解析器返回 SERVFAIL,可能让该域名对处于验证型解析器之后的用户彻底无法访问。它通常发生在密钥轮换期间,或在启用 DNSSEC 却未将 DS 记录上传至注册商时。修复方法是确保注册商处的 DS 记录与你区域的活动密钥匹配,并且在 DS 更新传播之前绝不移除旧密钥。