域名系统安全扩展

域名系统安全扩展（Domain Name System Security Extensions，缩写为DNSSEC）是Internet工程任务组 （IETF）的对确保由域名系统 （DNS）中提供的关于互联网协议（IP）网络使用特定类型的信息规格套件。它是对DNS提供给DNS客户端（解析器）的DNS数据来源进行认证，并验证不存在性和校验数据完整性验证，但不提供机密性和可用性。

**概述**
域名系统（DNS）的原始设计不包含任何安全细节；相反的，它被设计成一个可扩增的分散式系统(Distributed system)。域名系统安全扩展（DNSSEC）尝试在其中添加安全性，同时仍保持向后兼容性。 RFC 3833记录了DNS的一些已知威胁以及DNSSEC如何应对这些威胁。
DNSSEC旨在保护应用程式（以及服务这些应用程式的缓存解析器）免受伪造或不当操纵的DNS数据所造成的影响（例如域名服务器缓存污染的数据）。来自DNSSEC保护区的所有答案都经过数位签章。通过检验数位签章，DNS解析器可以核查信息是否与区域所有者发布的信息相同（未修改和完整），并确系实际负责的DNS服务器所提供。虽然保护IP地址的正确性是许多用户关注DNSSEC的直接课题，DNSSEC还可以保护DNS中发布的其他任何数据：包括文本记录（TXT）和邮件交换记录（MX），并可用于引导发布参照存储在DNS中的加密证书的其他安全系统：例如证书记录（CERT记录，RFC 4398），SSH指纹（SSHFP，RFC 4255），IPSec公钥（IPSECKEY，RFC 4025）和TLS信任锚（TLSA，RFC 6698）。

**DNSSEC 新增的资源记录**
DNSSEC新增的记录如下

**RRSIG**
即资源记录签名（Resource Record Signature），资源记录除了A和AAAA之外，也包括DNSKEY、DS、NSEC等记录，RRSIG用于存放各个资源记录的签名，包括- 算法类型 - 标签 (泛解析中原先 RRSIG 记录的名称)- 原 TTL 大小- 签名失效时间- 签名签署时间- Key 标签 (用来迅速判断应该用那个 DNSKEY 记录来验证的一个数值)- 签名名称 (用于验证该签名的 DNSKEY 名称)- 签名

**DNSKEY**
该记录用于存放用于检查 RRSIG 的公钥。其包括- 标识符 (Zone Key (DNSSEC密钥集) 以及 Secure Entry Point (KSK和简单密钥集))- 协议 (固定值3 向下兼容)- 算法类型 - 公钥内容

**DS**
即委派签名者（Deligated Signer），该记录用于存放 DNSKEY 中公钥的散列值 ，包括- Key 标签：用来判断应该用哪个 DNSKEY 记录进行验证的一个数值- 算法类型：常见的有RSASHA1、RSASHA256、ECDSAP256SHA256，具体可参考附录「算法类型列表」- 摘要类型：创建摘要值的加密散列算法，主要使用SHA256，具体可参考附录「摘要类型列表」- 摘要内容: 一串散列数据，由DNSKEY经由摘要类型算法得出 

**NSEC和NSEC3**
即下一个安全（Next Secure）记录，用于明确表示特定域名的记录不存在。

**CDNSKEY和CDS**
用于请求对父区域中的 DS 记录进行更新的子区域。

**部署**
2010年7月18日，根域名服务器（root-servers.net）已经完成DNSSEC签名。
目前已部署在.com、.net、.org、.int、.edu、.mil和.gov等顶级域(gTLD)，以及部分国家和地区顶级域（ccTLD）。

**参见**
DNSCrypt
*DNSCurve
*EDNS
*TSIG
*RPKI

**外部链接**

**组织和网站**
  DNSSECdate=20171223091550  - DNSSEC information site: DNSSEC.net-  DNSEXT DNS Extensions IETF Working Group-  CircleID - News and Opinions on all DNSSEC related issues date=20201211183947 -  DNSSEC-Tools Projectdate=20090918102710 -  DNSSEC Deployment Coordination Initiativedate=20180404190819 -  DNSSEC Deployment Teamdate=20170910160611 -  ICANN DNS Operations Teamdate=20140718043746 

**标准文档**
 RFC 2535 Domain Name System Security Extensions- RFC 3833 A Threat Analysis of the Domain Name System- RFC 4033 DNS Security Introduction and Requirements (DNSSEC-bis)- RFC 4034 Resource Records for the DNS Security Extensions (DNSSEC-bis)- RFC 4035 Protocol Modifications for the DNS Security Extensions (DNSSEC-bis)- RFC 4398 Storing Certificates in the Domain Name System (DNS)- RFC 4470 Minimally Covering NSEC Records and DNSSEC On-line Signing- RFC 4509 Use of SHA-256 in DNSSEC Delegation Signer (DS) Resource Records (RRs)- RFC 5155 DNSSEC Hashed Authenticated Denial of Existence- RFC 6781 DNSSEC Operational Practices, Version 2

**其他文档**
  A Fundamental Look at DNSSEC, Deployment, and DNS Security Extensions date=20201128074921  by Geoff Huston-  A short timeline of DNSSEC by Miek Gieben-  Enabling secure name resolution using DNSSEC for various applications date=20201021214845 -  DNSSEC Howto by Olaf Kolkman (RIPE NCC/NLnet Labs)-  Howto secure your (reverse) Zone date=20200924005124  by Holger Zuleger-  Easier Email Security is on the Way? date=20201005041524 -  "DNSSEC and the Zone Enumeration" by Marcos Sanzfix-attempted=yes -  DNSSEC BRIEFING and Root Zone Signing (Part I) date=20160303171050 , ccTLD paper on DNSSEC by ccNSO, February 2008-  DNSSEC in 6 Minutes  by Alan Clegg, Internet Systems Consortium (PDF-Datei; 315 kB)- Implementing DNSSEC date=20150427140701  Cisco Internet Protocol Journal- ICANN's TLD DNSSEC Reportdate=20190325014841  (generated daily)-  DNSSEC is unnecessary - Against DNSSECdate=20180202170513 -  DNSSEC is necessary - For DNSSECdate=20170111181003