一、基本概览
1.什么是DNSSEC
DNSSEC(Domain Name System Security Extensions,域名系统安全扩展)是一组基于密码学的安全扩展协议,用于增强传统 DNS(域名系统)的安全性。它通过数字签名、验证机制和密钥管理,确保 DNS 查询和响应的完整性、真实性和抗篡改性,有效防范中间人攻击、DNS 欺骗(DNS spoofing)等安全威胁。
2.为什么要开启DNSSEC
(1). 传统 DNS 的安全缺陷
缺乏认证机制:传统 DNS 协议不验证响应的来源,攻击者可伪造 DNS 服务器返回的 IP 地址,将用户引导至钓鱼网站或恶意服务器(如 “域名劫持”)。
数据易被篡改:DNS 查询和响应在传输过程中可能被中间人攻击篡改,导致用户访问错误的服务。
(2). DNSSEC 的核心优势
数据完整性验证:通过数字签名(如 RSA、ECDSA)确保 DNS 记录在传输过程中未被篡改。当用户查询域名时,递归解析器会验证签名是否有效,若无效则拒绝该响应。
身份真实性验证:利用公钥基础设施(PKI)为域名记录颁发签名,确保响应来自真实的域名所有者。例如,域名所有者通过私钥对 DNS 记录签名,用户通过公钥验证签名合法性。
防止缓存投毒:攻击者难以伪造有效签名的 DNS 记录,从而避免恶意记录被缓存到 DNS 服务器中,长期危害用户。
3.可能存在的问题
(1).解析失败
部分老旧的DNS解析服务器可能并不支持DNSSEC,部分运营商 DNS(如传统宽带服务商)未启用 DNSSEC 验证,可能返回未经验证的记录或解析失败。APNIC 2024 年报告显示,全球仍有 28% 的递归解析器未开启 DNSSEC 验证。开启DNSSEC不能支持子域名托管。
(2).解析延迟增加,影响用户体验
DNSSEC 验证需多次查询签名记录(如 DS、RRSIG、DNSKEY),可能使解析延迟增加 10-50ms,对时延敏感的场景(如实时游戏、金融交易)影响更明显。为确保签名有效性,缓存时间(TTL)可能被迫缩短,导致递归解析器频繁发起验证请求,增加网络负载。
(3).部分DNS服务商,不支持免费开启DNSSEC
具体是哪些就不说了,百度一下你就知道了。
二、开启方法(踩坑过程)
1.在你的域名DNS托管服务商开启DNSSEC
我这里是在spaceship购买的域名,然后修改DNS服务器到了华为云(我现在觉得华为DNS解析是国内目前最良心的,CDN也是这个以后讲),然后需要在华为云的云解析控制台 DNS处找到对应的域名,然后打开,然后选择DNSSEC。
然后你会得到一些信息。
这些信息,是需要你在域名注册商那里添加的DS记录。
2.注册商处添加DS记录
我这里是在spaceship购买的,因此,进入spaceship的域名管理后台,选择对应的域名-名称服务器和DNS
然后选择高级DNS
选择DNSSEC,然后,不出意外地出意外了,im域名不支持DNSSEC!!!
天塌了,然后我开启的另外一个域名的。
一定要注意,选正确!!记录值要对,我这里不一样是因为我换域名了!
一般到此你就应该是开启完成了,但是建议检查一次!
3.检查是否开启成功
访问网站:dnsviz然后输入你的域名
第一次使用的话需要先分析网站,点击Analyze
等待分析完成后,点击Continue
如果,你发现,左边框里没有红色的错误,说明开启成功了。
但是、但是如果你有红色的错误,说明就存在问题。
三、踩坑与提醒
没错,我第一次布置不是这个结果!我第一次布置,一片红。中间又有个红色的区域
检查了所有配置,但是都是正确的,而且通过itdog测试,发现国内可以解析,国外解析失败?!
在华为云上提交了一个工单,最后排查了一天,最后发现可能是这个域名在我注册之前,可能开启过DNSSEC,并且DS记录没有删除导致的(猜测)。
最后,先在注册商删除DS记录,DNS解析商处关闭DNSSEC,再重新开通,哎?好了!
注意:关闭DNSSEC一定要按顺序,先删除DS记录,再关闭DNSSEC,否则可能导致解析失败!
评论区