DNS(域名系统)类似于Internet的电话簿:它告诉计算机在哪里发送信息,在什么地方搜索信息。遗憾的是,它也接受因特网提供给它的任何地址,这并不成问题。
域名系统安全扩展是因特网工程任务小组(IETF)为应对域名解析过程中的威胁(例如缓存中毒攻击和DNS欺骗),确保域名系统(DNS)为因特网协议网络提供一套特定类型的信息规范。通过域名服务器向DNS客户机(解析器)提供的DNS数据源的认证,验证其无存在性,验证数据的完整性。DNSEC利用基于公钥加密的数字签名技术来提高DNS数据验证的强度。
为什么要用DNSSEC?
在1980年代,DNS设计的互联网规模较小,而安全性并不是设计的首要考虑。因此,当递归解析器将查询发送到权威域名服务器时,解析器不能验证响应的真实性。解析器只能检查发出响应的IP地址是否与发出初始查询的IP地址相同。但是,DNS响应包的源IP地址很容易被伪造或篡改,依赖于响应对应的源IP地址不是一种强大的验证机制。
考虑到DNS的最初设计,分析器不能很容易地识别查询的假反应。攻击方很容易以权威服务器为回应对象,然后以解析器为初始查询对象。换言之,攻击者可以悄悄的将用户重定向到潜在的恶意网站。
例如,2014年9月,CMU的研究人员发现可以通过Yahoo!由Hotmail和Gmail服务器通过流氓邮件服务器传送的电子邮件。因为攻击者利用域名系统(DNS)进行攻击已有数十年之久,而且由于此漏洞的存在,DNS将接受未经检查证书的回应。
DNSSEC协议是解决这个问题的一个方法。DNS的信赖层通过提供身份验证而增加。
在DNS解析器查找www.dnspod.cn时,.cn名称Server帮助解析器验明由dnspod.cn返回的记录,而dnspod.cn则帮助验明由www.dnspod.cn返回的记录。rootDNS名称服务器有助于验证.cn,并且root发布的信息会被完整的安全程序审查(包括root签名仪式)。
概述DNSEC运行模式。
DNSSEC利用私有密钥加密技术对授权区域数据进行数字签名,有效地防止了互联网社区伪造DNS数据的行为。通过DNSEC验证,可以确保数据来自指定的源,且不会在传输期间修改。DNSEC还能证明域名不存在。简言之,DNSEC依靠数字签名来保证DNS应答件的真实性和完整性。
所有来自DNSSEC保护区的回答都是数字签名。DNS分析器可以通过检查数字签名来检查信息是否与区域所有者发布的信息相同(没有被修改或完全),并确保信息是由实际负责的DNS服务器提供的。
验证数据的合法性(数据未被篡改):当用户最终想要访问网站时,他们会首先要求返回服务器,以解析域名。在将记录请求给授权服务器之后,返回服务器,并要求提供与该区域对应的DNSSEC密钥。利用密钥,服务器可以验证接收到的地址记录是否与AuthorizationName服务器上的记录一致。
如果递归服务器确认地址记录是由授权名称服务器发送的,并且在传输期间没有发生任何修改,递归服务器就会解析该域名,然后用户就可以访问该网站。上述程序称为验证。如果地址记录改变,或者没有来自指定的来源,递归服务器将不允许用户访问欺诈地址。DNSSEC还可以证明域名不存在。
这样,DNS查询和响应就可以避免来自中间商(MITM)的攻击,还可以将因特网用户重定向到钓鱼和嫁接网站的欺诈行为。
如何添加DNSEC的DS记录?
DNSPod控制台打开DNSEC服务
[控制台]-DNS分析-域名-域名设置-DNSEC,点击打开,查看域名DS记录。
向域名注册商控制台添加DS记录
还需要将以前获得的DS记录添加到域名注册人的控制台中。若你的域名也是在腾讯云(DNSPod)上注册的,那么这一步将自动完成。
注意:DNSSEC目前只有几个注册商支持,如果您的域名所在注册商不支持,可以先将域名转到腾讯云,转到方便管理的一个站点,更可以一键打开(转到链接)
目前只有收费版可以打开此功能,免费版分析不支持此功能。