网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

什么是域名系统安全扩展(DNSSEC)?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

域名系统安全扩展通过引入各种安全措施来提升域名系统的功能。这些安全措施以签名的形式呈现。 这样可以防止用户在接收信息的过程中受到各种网络攻击的威胁,比如缓存中毒攻击以及中间人攻击等。 DNSSEC能够确保对DNS查询的响应来自正确的来源,从而让互联网成为用户和企业更加安全的环境。 通过DNSSEC技术,各组织能够提升其网站及所发送信息的可信度和可靠性。

什么是域名系统安全扩展?

DNSSEC(域名系统安全扩展)是一组旨在确保存储的DNS数据具有完整性和可靠性的协议。 它确保了从DNS查询中获得的响应不会与额外的、不必要的字符串混合在一起,也不会被伪造。这些响应来自可靠的来源,因此可以放心使用。 这是通过使用DNSSEC来实现的。DNSSEC利用的是对DNS数据的签名,而这些签名可以被解析器验证。 这种方法可以减少攻击者篡改或污染DNS响应的可能性,从而确保网络的安全性。这进一步提升了互联网基础设施的安全性。 无论如何,DNSSEC试图为DNS系统引入一种信任机制。不过,从本质上来说,DNSSEC本身并不具备安全性。

DNSSEC的特点/优势

  • 数据来源验证:DNSSEC能够确保由DNS返回的信息确实来自正确的来源,且这些信息是准确无误的。
  • 数据完整性:此外,该方法还确保DNS数据在传输过程中不会被篡改,因为采用了数字签名技术来防止这种情况的发生。
  • 经认证的“不存在性确认”:DNSSEC不再需要将证明某些特定DNS记录不存在这一挑战交给攻击者来处理,从而有效阻止了攻击者伪造不存在的域名的行为。
  • 信任链:它从根区域开始,一直延伸到所有区域的权威名称服务器,从而形成了一条信任链。这样能够提升DNS区域的安全性。
  • 防止缓存中毒的保护措施:在DNSSEC中,DNS响应会被验证,从而消除了这种可能性。DNS缓存欺骗.

DNSSEC的组成部分

DNSKEY记录

  • 描述:这些记录中包含了用于与DNS数据一起进行签名的公钥。每个区域都包含一个或多个DNSKEY记录。
  • 目的:它们被用于确认/验证某事。数字签名这些内容都包含在 RRSIG 记录中。

RRSIG记录

  • 描述:这些就是与DNS数据相关的数字签名。所有DNS记录的集合(即资源记录集)都通过私钥进行加密处理。
  • 目的:RRSIG记录用于确认所传递的数据没有被修改,且数据仍然是原始的。

DS Records

  • 描述:DS记录被用于父区域中,以验证子区域中存在的DNSKEY记录的有效性。
  • 目的:它建立了一种信任链,这一链条从父母与孩子的区域开始。

NSEC记录和NSEC3记录

  • 描述:无论是NSEC还是更先进的NSEC3,都提供了对数据存在性的确认。
  • 目的:这表明,某个特定的域名或资源记录并不存在。

信任链

  • 描述:这并非具体的记录,而是一種概念性的要素,它通过DNS区域来建立信任关系。这种信任关系从根区域开始,一直延伸到各个DNS区域中。
  • 目的:c“信任的层次结构”使得DNS层级中的其他层次也能被信任,而这一切都是基于从最高层获取到的签名数据来实现的。

DNS安全扩展的目的

  • 数据完整性:DNSSEC确保从DNS查询中获取的信息在处理过程中不会受到任何篡改。这是通过为DNS数据添加数字签名来实现的,这样接收方就可以验证这些数据是否发生了更改。
  • DNS数据的认证:另一方面,DNSSEC还被用于签署DNS数据,从而确保用户所接收到的数据具有有效性。通过这种方式,可以确认所接收到的数据确实来自该域名的权威DNS服务器,而不是来自虚假或恶意来源的数据。
  • 防御攻击措施:DNSSEC能够抵御多种针对DNS的威胁,包括DNS欺骗、缓存污染等。中间人攻击除此之外,这种攻击方式也可以通过DNSSEC得到有效遏制。因为DNSSEC只接受经过验证的DNS响应字符串,从而大大降低了这种攻击的可能性。
  • 信任链:DNSSEC建立了一条“信任路径”,从根DNS服务器开始,一直延伸到具体的域名。DNS层次结构中的每一层都经过了签名和验证处理,这意味着从根服务器到特定域名的所有数据都是安全的。
  • 防止DNS欺骗行为:DNS欺骗是指攻击者向用户提供错误的DNS记录,这些记录会将用户的请求指向攻击者的网站。而DNSSEC则通过确保DNS响应尽可能真实可靠来防止这种欺骗行为的发生。
  • 确保域名不存在:DNSSEC还提供了一种机制,可以用来表示某些域名并不存在,比如使用NSEC或NSEC3这样的表示方法。因此,这些信息不会被任何人伪造。

DNS与DNSSEC之间的区别

参数

DNS(域名系统)

DNSSEC(域名系统安全扩展)

目的

将域名转换为IP地址。

通过验证DNS数据的真实性,从而增强安全性。

安全性

缺乏内置的安全机制,容易受到DNS欺骗等攻击的威胁。

为DNS响应提供身份验证和完整性保障,从而降低诸如DNS欺骗等风险。

数据完整性

无法保证数据的完整性;数据在传输过程中可能会被篡改。

通过数字签名来确保数据的完整性,从而防止未经授权的篡改。

身份验证

无法验证DNS数据的来源。

通过验证来确认DNS数据的来源。公钥加密.

部署

广泛应用于互联网的各个领域。

正在逐步被采用;需要进一步的配置和管理工作。

信任模型

这取决于对DNS服务器和解析器的信任程度。

这种信任机制是从根DNS服务器开始,一直延伸到各个域名层面。

性能

由于需要经过较少的安全检查,因此通常来说速度会更快。

由于需要经过各种安全检查,比如签名验证等,因此速度会稍微慢一些。

资源记录

使用标准的DNS资源记录(如A记录、CNAME记录、MX记录等)。

介绍了新的资源记录,例如RRSIG、DNSKEY、DS以及NSEC等。

易受攻击性

容易受到缓存中毒、中间人攻击以及欺骗行为的影响。

显著减少脆弱性通过确保数据的真实性来应对此类攻击。

向后兼容性

完全向后兼容于较旧的系统和协议。

部分情况下,向后兼容性是可行的;具备DNSSEC功能的系统与非具备该功能的系统可以共存,但要实现全部功能的话,就需要使用DNSSEC功能。

复杂性

配置和管理起来更加简单。

由于需要处理密钥管理和签名相关的工作,因此这个过程更为复杂。

关键管理

不需要进行任何密钥管理操作。

需要管理密钥(例如,ZSK、KSK),定期更换密钥,以及确保密钥的安全处理。

实施成本

实施和运营成本更低。

由于需要额外的基础设施、培训以及管理DNSSEC相关组件,因此成本会更高。

DNSSEC是如何工作的呢?

区域标记

为了使DNSSEC能够作为DNS的安全扩展机制发挥作用,该DNS区域必须使用相应的密钥进行签名,以验证该区域的DNS记录的真实性。

步骤1:密钥生成

DNS区域的所有者(例如,管理某个域的组织)会生成两对加密密钥。

  • 区域签名密钥(Zone Signing Key, ZSK):这个密钥用于签署区域内的各个DNS记录。它通常与数字签名或密钥一起使用,以签署DNS中的特定部分。可以说,这是一种经常被使用的操作级签名密钥。
  • 密钥签名密钥(KSK):这个密钥签署了包含ZSK的DNSKEY记录。KSK则是一种更高层次的密钥,它能够为ZSK与DNSKEY记录之间提供安全的连接。

步骤2:使用ZSK记录签名过程

  • 对于该区域中的DNS记录,需要使用ZSK来生成每个记录的数字化签名。这些签名以RRSIG(资源记录签名)的形式被纳入DNS记录中。例如,如果该区域包含A、MX和CNAME等记录,那么每个记录都会拥有自己的RRSIG作为签名。

步骤3:KSK与DNSKEY的映射关系

  • 为了实现这一点,KSK被纳入到DNSKEY记录的构成中,而这部分信息来自ZSK的公共部分。这一点非常重要,因为它建立了KSK与ZSK之间的关联,从而确保了它们之间的信任关系。这种DNSKEY记录会被发布出来,并由解析器用来验证ZSK的真实性。

2. 出版记录

在签署DNS区域时,该区域的相关信息以及安全记录都需要被公开,并置于DNS解析器的可访问范围内。

步骤4:发布DNSSEC记录

在DNS区域被签名之后,必须发布一些关键的记录。在DNS区域被签名之后,确实需要发布一些关键的记录。

  • DNSKEY:KSK和ZSK都包含可以被公众查看的公开信息。
  • RRSIG:所有的DNS记录都已经配备了数字签名。
  • DS(代表团签署人):如果该区域位于一个更大的域名树结构中(例如,该区域是.com域下的子域名),那么DS记录会被放置在上级区域中(在这种情况下就是.com域)。这样做是为了实现权威委托。DS记录中包含了KSK的哈希值,这意味着可以信任KSK的可靠性。

这个出版流程会形成一个信任链,从根DNS区域(例如.com)开始,一直延伸到各个具体的DNS区域(例如example.com)。

3. DNS查询

在发布了DNSSEC记录之后,DNS解析器就可以开始对DNSSEC区域进行查询了。在查询过程中,还需要进行一些额外的操作来验证DNS数据,以确保数据的安全性。

步骤5:DNS解析器请求

  • 例如,当DNS解析器(如浏览器或其他工具)发起对A记录或任何其他记录的查询时,它不仅会收到相关的DNS记录,还会收到RRSIG记录。而RRSIG记录则用于验证该DNS记录的真实性。

步骤6:提取DNSKEY数据以进行验证

  • 为了验证RRSIG,DNS解析器会查找与所涉及的区域相关的DNSKEY记录。这个DNSKEY记录包含了所有用于验证的公钥,即KSK和ZSK。

4. 验证/确认

一旦DNS解析器获得了所请求的DNS记录、RRSIG以及DNSKEY数据,那么解析器就可以继续对这些数据进行验证,以确认其真实性。

步骤7:签名验证

  • 大多数DNS解析器在解密RRSIG记录时,都会使用ZSK这一技术。这个过程会生成一个哈希值,然后解析器会将该哈希值与DNS记录中的哈希值进行比对。如果这两个哈希值相同,那么就可以认为该数据是真实的,没有被篡改过。

步骤8:信任链的有效性验证

  • 为了验证信任关系,DNS解析器会检查父域中的DS记录。例如: 将其与所查询域的DNSKEY记录进行匹配。 如果确认上述DS记录与DNSKEY记录一致,那么就可以证明KSK是有效的。同时,KSK与父区域所建立的信任链中的子区域之间存在着正相关关系。 这个整体验证过程旨在确保从最高层(根节点)到被查询的域,整个信任体系都能得到维护,不会受到破坏。

5. 经认证的否定存在性

DNSSEC还能处理那种被查询的DNS记录不存在的情况,从而能够安全地证明该域名或记录确实不存在。

步骤9:否定证明

  • 当DNS解析器试图通过权威DNS服务器获取某个域名所对应的不存在的记录时,后者会返回NSEC或NSEC3记录。这些记录提供了加密验证后的证据,证明在DNS区域中不存在该域名或记录。使用NSEC记录可以列出多个当前的DNS名称,从而表明被查询的域名并不存在于这些列表中,从而确认该域名确实不存在。

DNSSEC的好处

增强的安全性

  • 防止DNS欺骗的保护措施:DNSSEC在防止攻击者将用户引导至错误的网站方面发挥了重要作用。因为DNSSEC可以确保DNS响应不会被伪造。
  • 缓解缓存中毒问题:DNSSEC确保,只有借助“过时的”DNS响应信息,才能伪造DNS数据。这样一来,就可以有效防止DNS受到缓存欺骗的影响。

数据完整性

  • 数据完整性的保证:该代表团的签署方设置了DNSSEC机制,以确保在信息传输到客户端的过程中,相关的DN信息不会发生任何修改。这样,就能为用户提供准确的信息了。

身份验证

  • 已验证的数据来源:DNSSEC使得用户能够确认他们收到的响应确实来自可靠的来源,从而提升了系统的效率。

对安全协议的支持

  • 促进安全服务的提供:DNSSEC是其他安全协议和服务的基础。例如,DANE(基于DNS的身份验证机制)有助于确保电子邮件的安全性,因为它提供了一种数字证书验证的方法。

增强的用户信任度

  • 建立对互联网的信任:EDNSSEC能够提升DNS系统的安全性和稳定性,从而让人们更加信任互联网上的连接与交易过程。这样一来,整个网络环境就会变得更加安全。

对安全密钥管理的支持

  • 关键要点:DNSSEC解决了密钥轮换的问题。在DNS区域管理中,管理员可以定期更换密钥(ZSK和KSK),而不会影响DNS数据的完整性。这意味着安全性得到了持续保障,因为密钥丢失或被滥用的风险被大大降低了。

防止降级攻击

  • 确保安全级别:DNSSEC有助于防止降级攻击,因为攻击者无法强制使用更安全的协议版本。DNSSEC通过确保DNS客户端不会接受未经签名的响应来保障其安全性,从而始终保持较高的安全水平。

DNSSEC面临的挑战

实施的复杂性

  • 配置与管理:DNSSEC涉及到对以下内容的管理:加密密钥而这需要额外的工作,而且很容易出现各种错误,尤其是在那些拥有大量DNS区域的大型组织中。

运营成本

  • 延迟增加:这些额外的记录包括DNSSEC,其中包含了DNSKEY、RRSIG、DS、NSEC/NSEC3等字段。此外,还有签名验证这一步骤,这涉及到额外的计算工作。经过DNSSEC签名的响应消息中,除了原始数据之外,还会包含额外的数据信息。这无形中增加了对硬件资源的需求,同时也导致了响应时间的延长。

兼容性问题

  • 较旧的系统有一些旧有的系统和应用程序可能无法完全支持DNSSEC。这种情况可能会导致不兼容的问题,在某些情况下,就需要对这些系统进行修改,才能使其能够支持DNSSEC。

关键管理

  • 常规按键操作:为了维持加密密钥的循环更新过程(包括ZSK和KSK),必须做好充分的规划,并采用高效的机制来确保服务不会受到任何影响,同时保证安全性不受影响。

区域签约要求

  • 定期签署:DNS区域需要定期重新签名,以确保其有效性。这一过程相当耗时,对于大型的Black Widow DNS系统来说,需要使用自动化工具来完成这一任务。

配置错误的风险

  • 存在出错的可能性:在 DNSSEC 中,即使是微小的错误也可能导致 DNS 解析失败。因此,故障排查和监控工作非常重要。

信任锚管理

  • 根密钥信任:作为如此可靠的信任锚点,需要注意的是,需要设置两个基本且重要的元素。这两个元素就是用于支撑DNSSEC验证的根密钥。之所以这么说,是因为信任锚点必须得到充分的保障和管理,否则就可能会被黑客攻击。

可扩展性问题

  • 处理大面积区域:与普通的DNS相比,DNSSEC还有另一个问题:随着DNS区域的规模扩大,与DNSSEC相关的记录的数量和大小也会相应增加。这意味着在存储、处理和传输方面存在可扩展性方面的问题。

案例研究与示例

瑞典(.se顶级域名)

  • 概述:瑞典是首批在其国家域名.se上部署DNSSEC的国家之一。瑞典互联网基金会于2005年开始对.se域名进行注册工作。
  • 影响:在他们的案例中,这种实施方式成功地提升了瑞典域名所享有的保护程度,同时降低了相关风险。DNS欺骗或者,这种攻击方式属于缓存中毒攻击的一种。因此,这个项目的成功表明,DNSSEC确实具有实用性,而且可以应用到其他顶级域名中。

美国联邦政府(OMB指令)

  • 概述:在2008年10月,白宫办公室要求美国的所有联邦机构都必须实施DNSSEC技术。这一要求旨在加强官方网站的防护能力,同时提升联邦机构与公民之间的沟通效率。
  • 影响:这一要求使得DNSSEC变得非常受欢迎,几乎所有政府领域的域名都采用了DNSSEC技术(如.gov域名)。DNSSEC在促进政府之间的沟通方面发挥了重要作用,同时也有助于防止针对敏感信息的各种DNS攻击。

VeriSign(.com顶级域名)

  • 概述:VeriSign是.com和.net顶级域的注册机构。自2010年起,VeriSign就开始在.com域名区域中实施DNSSEC技术。考虑到目前有大量的.com域名存在,这对VeriSign来说是一项非常重要的任务。
  • 影响/后果:DNSSEC的实施for.com曾经是这样的一个网站。它属于最受欢迎的顶级域名之一,能够有效抵御DNS攻击,从而确保数百万个域名免受攻击。此外,它还为其他主要顶级域名树立了榜样。

荷兰政府(.nl TLD)

  • 概述:DNSSEC已被用于保护国家域名空间的安全,例如,荷兰就使用了“.nl”顶级域名来实施这一措施。这项计划是由荷兰政府和SIDN共同发起的,而SIDN则负责管理“.nl”域名的注册工作。
  • 影响/后果:.nl域的采用提升了该国的DNSSEC认知度,同时也有助于提高DNSSEC的整体应用率。此外,这也表明,政府和私营部门的共同努力能够提升互联网的安全状况。

RIPE NCC(反向DNS服务)

  • 概述:RIPE NCC——欧洲、中东以及部分CIS地区的区域互联网注册机构,已在其委托管理的DNS域中启用了反向DNS功能。反向DNS的工作原理与正向DNS类似,即通过将IP地址与域名进行匹配来实现域名解析。
  • 影响:通过实施DNSSEC以及反向DNS功能,能够更精确地确定域名与IP地址之间的对应关系。IP地址对于用于诊断或处理与安全相关问题的域名来说,这种命名方式非常有用。

Facebook

  • 概述:Facebook决定在其域名上启用DNSSEC功能,以确保其网站免受DNS攻击的威胁,同时提升网站的安全性。
  • 影响:在DNSSEC的帮助下,Facebook为许多其他大型互联网企业树立了榜样。此外,这种方法还有助于防止用户在使用Facebook页面时受到DNS欺骗的影响。

结论

总的来说,DNSSEC是标准DNS系统的一个有益补充。它能够保护DNS服务器以及互联网用户免受DNS欺骗、缓存污染等类似威胁的侵害。 DNSSEC是一种基于加密签名和信任链的技术。它能够为DNS数据添加数据完整性和身份验证功能,从而提升整个互联网通信的安全性。 尽管数字风险的管理仍然是一个相当复杂的过程,实践中也面临着各种障碍,但来自不同地区和组织的众多案例研究都证明了,为在线用户创造更安全的环境是必要且有效的。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料