DNSSEC是域名DNS的安全扩展功能,用于验证对域名查找的响应。它不会为这些查找提供隐私保护,但会阻止攻击者操控对 DNS 请求的响应或在该响应中投毒。它并不是域名DNS解析的必选功能,那它是如何保护解析安全的?是否需要开启?
一、DNSSEC 是做什么的?
互联网的正常运转离不开 DNS。访问的每一个网页、发送的每一封电子邮件,以及从社交媒体中检索到的每一张图片:所有这些交互都要通过 DNS 将易于使用的域名(如 moneyslow.com)转换为 IP 地址(如:233.122.122.122),服务器、路由器和其他网络设备需要根据 IP 地址将流量路由到互联网上的适当目的地。
如果有人在DNS解析的中间层做了手脚,在缓存记录过期之前,该名称服务器将把虚假的 DNS 记录返回给发出查询的所有人。那么用户最终看到的是虚假网站、不请自来的广告、甚至是恶意的钓鱼网页或其它攻击,这种情况被称为欺骗攻击和投毒攻击。
简单来说 DNSSEC 提供了额外的安全级别,Web 浏览器可以检查以确保 DNS 信息正确且未被修改。
DNSSEC不是不仅适用于 Web,还可以被任何其他 Internet 服务或协议使用。只要是需要域名解析的,那么都可以使用DNSSEC安全扩展。
二、DNSSEC的工作原理
DNSSEC 通过向现有 DNS 记录添加加密签名,确保域名系统的安全性。这些数字签名与 A、AAAA、MX、CNAME 等常见记录类型一起存储在 DNS 名称服务器中。通过提供身份验证,这种协议在 DNS 之上增加了一个信任层。在某个 DNS 解析器查找 www.moneyslow.com 时,.com 域名服务器帮助解析器验证针对 moneyslow.com 返回的记录,而 moneyslow.com 帮助验证针对 www 返回的记录。根 DNS 服务器帮助验证 .com,而根服务器发布的信息将通过彻底的安全程序(包括“根签名仪式”)进行审核。通俗来讲,经过层层验证,让域名在解析过程中不受到其它干扰,确保客户端最终得到的是正确的解析结果。除非域名根服务器被攻破,否则解析结果无法被伪造。
为了促进签名验证,DNSSEC 添加了一些新的 DNS 记录类型:
RRSIG – 包含加密签名
DNSKEY – 包含公共签名密钥
DS – 包含 DNSKEY 记录的哈希
NSEC和NSEC3 – 用于明确否认 DNS 记录的存在
CDNSKEY和CDS – 用于请求对父区域中的 DS 记录进行更新的子区域。
RRSIG、DNSKEY 和 DS 记录之间的交互,以及它们如何在 DNS 之上添加信任层,就是我们在本文中要讨论的内容。
三、如何开启DNSSEC安全扩展功能
如果是国内域名服务机构,推荐使用腾讯云的DNSPOD云解析或阿里云的DNS解析,它们都支持一键开启功能,无需复杂的设置。
DNSPOD开启DNSSEC示例
提示:DNSSEC 功能不允许添加主机记录 @ 的 CNAME、显性 URL 或者隐性 URL 记录。
四、如何验证DNSSEC扩展是否生效?
http://dnssec-debugger.verisignlabs.com