首页 > 通信行业标准(YD) > YD/T 2586-2013 域名服务系统安全扩展(DNSSEC)协议和实现要求
YD/T 2586-2013

基本信息

标准号: YD/T 2586-2013

中文名称:域名服务系统安全扩展(DNSSEC)协议和实现要求

标准类别:通信行业标准(YD)

标准状态:现行

出版语种:简体中文

下载格式:.zip .pdf

相关标签: 系统安全 扩展 协议 实现

标准分类号

关联标准

出版信息

相关单位信息

标准简介

YD/T 2586-2013.Security extensions of DNS and implementation requirement.
1范围
YD/T 2586针对域名服务系统安全扩展的功能、协议和工作原理进行了详细的规定,并提出了DNSSEC部署实施的要求。
YD/T 2586适用于域名服务系统的安全扩展。
2规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
YD/T 2140 2010域名服务系统安全框架技术要求
3术语、定义和缩略语
3.1 术语和定义
下列术语和定义适用于本文件。
3.1.1
区签名密钥 Zone Signing Key
对权威域数据进行DNSSEC签名或验证的密钥对。通常,相对于密钥签名密钥,区签名密钥比较短,具有较短的有效期,但是具有较高的签名效率。
3.1.2
密钥签名密钥 Key Signing Key
对区签名密钥对中的公钥进行数字签名或验证的密钥对。通常,相对于区签名密钥,密钥签名密钥比较长,具有较长的生存期,但签名效率较低。
3.1.3
DNS公钥 (DNSKEY) DNS Public Key
DNSKEY资源记录存储的是权威域的公钥。权威域使用私钥对DNS资源记录集进行数字签名,并且将公钥保存在DNSKEY资源记录中,用于稍后对数字签名的验证。

标准图片预览






标准内容

ICS33.040.40
L78
中华人民共和国通信行业标准
YD/T2586-2013
域名服务系统安全扩展
(DNSSEC)协议和实现要求
Securityextensionsof DNS andimplementation requirement2013-07-22发布
2013-10-01实施
中华人民共和国工业和信息化部发布前言
1范围
2规范性引用文件
3术语、定义和缩略语·
4域名系统安全扩展(DNSSEC)
5DNSSEC新增的资源记录类型…
6DNSSEC对DNS协议的修改
7DNSSEC的部署实施要求
附录A(资料性附录)DNSSEC原理举例说明附录B(资料性附录)DNSSEC国际部署情况附录C(资料性附录)DNSSEC实例附录D(资料性附录)密钥标签字段计算方法参考文献
YD/T2586-2013
YD/T2586-2013
本标准按照GB/T1.1-2009给出的规则起草。本标准由中国通信标准化协会提出并归口。本标准起草单位:工业和信息化部电信研究院、中国互联网络信息中心、国家计算机网络应急技术处理协调中心。
本标准主要起草人:陈、田慧蓉、姚健康、沈烁
1范围
YD/T2586-2013
域名服务系统安全扩展(DNSSEC)协议和实现要求本标准针对域名服务系统安全扩展的功能、协议和工作原理进行了详细的规定,并提出了DNSSEC部署实施的要求。
本标准适用于域名服务系统的安全扩展。2规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。YD/T2140-2010
3术语、定义和缩略语
3.1术语和定义
域名服务系统安全框架技术要求下列术语和定义适用于本文件。3.1.1
区签名密钥ZoneSigningKey
对权威域数据进行DNSSEC签名或验证的密钥对。通常,相对于密钥签名密钥,区签名密钥比较短,具有较短的有效期,但是具有较高的签名效率。3.1.2
密钥签名密钥KeySigningKey
对区签名密钥对中的公钥进行数字签名或验证的密钥对。通常,相对于区签名密钥,密钥签名密钥比较长,具有较长的生存期,但签名效率较低。3.1.3
DNS公钥(DNSKEY)
DNSPublicKey
DNSKEY资源记录存储的是权威域的公钥。权威域使用私钥对DNS资源记录集进行数字签名,并且将公钥保存在DNSKEY资源记录中,用于稍后对数字签名的验证3.1.4
资源记录签名(RRSIG)
Resource Record Signature
RRSIG资源记录存储的是DNS资源记录集的数字签名。3.1.5
授权签名者(DS)
Delegation Signer
DS资源记录存储了DNSKEY资源记录的散列值,用于建立解析服务器验证DNS应答报文时所需的信任链,它可以验证与之对应的DNSKEY资源记录。3.1.6
YD/T2586-2013
信任锚TrustAnchor
一个预先配置的DNSKEY资源记录或者DNSKEY资源记录的散列值(DS资源记录)。一个支持DNSSEC的解析服务器可以使用这个公钥或者散列值作为信任链的起始点。此外,解析服务器应该通过DNS协议之外的安全可信的方法获得信任锚的初始值。3.1.7
信任链AuthenticationChain
一个由DNSKEY和DS资源记录交替组成的序列,DNSKEY用于验证包含DS的资源记录集签名,使得DS得到验证。DS包含了另一个DNSKEY的散列值,新的DNSKEY如果与DS的散列值匹配,也可以得到验证。这个新的DNSKEY反过来又可以验证另一个DS,这样延续下去直到获得需要验证的DNS数据签名的公钥为止。
3.1.8
支持DNSSEC的权威域名服务器Security-AwareNameServer一个具有权威域名服务器功能的实体,并能够支持本标准定义的域名服务系统安全扩展(DNSSEC)。个支持DNSSEC的权威域名服务器可以接受DNS查询报文,发送DNS应答报文,支持本标准定义的DNSSEC资源记录类型,支持DNS扩展机制等。3.1.9
支持DNSSEC的递归域名服务器Security-AwareRecursiveNameServer具有递归功能的支持DNSSEC的权威域名服务器,既可以充当权威域名服务器,又可以充当解析服务器。
3.1.10
支持DNSSEC的解析服务器Security-AwareResolver一个具有DNS解析服务器功能的实体,并能够支持本标准定义的域名服务系统安全扩展(DNSSEC)。一个支持DNSSEC的解析服务器可以接受DNS查询报文,发送DNS应答报文,支持本标准定义的DNSSEC资源记录类型,支持DNS扩展机制等。3.2缩略语
下列缩略语适用于本文件。此内容来自标准下载网
DNS
DNSSEC
DNSKEY
EDNSO
IPSEC.
KSK
NSEC
Authenticated Data
CheckingDisabled
已验证数据
关闭检查
DomainNameSystemx“域名服务系统DNS Security Extension
域名服务系统安全扩展
DNS PublicKey
DNSSECOK
Delegation Signer
.DNS公钥
ExtensionMechanismsforDNS
..Intermet Protocol SecurityKey Signing Key
Next Secure
城名服务系统安全扩展开启
授权签名者
DNS扩展机制
学因特网协议安全
密钥签名密钥
下一个安全记录
NSEC3
RRSIG
SOA
TSIG
ZSK
Next Secureversion3
Resource Record Signature
StartOf Authority
Transaction Signatures
ZoneSigningKey
4域名系统安全扩展(DNSSEC)
下一个安全记录第三版
资源记录签名
初始授权机构
事务签名
区签名密钥
YD/T2586-2013
域名系统安全扩展(DNSSEC)可以提供DNS数据源鉴别和完整性保护,以及DNS数据的否定存在验证机制。本章的重点是DNSSEC的原理、提供的安全服务和它的局限性。引入DNSSEC需要改变现有的DNS协议。DNSSEC增加了4种新的资源记录类型,它们是资源记录签名(RRSIG)、DNS公钥(DNSKEY)、授权签名者(DS)和下一个安全记录(NSEC)。但是根据IETFRFC5155《散列的DNSSEC否定存在验证》,NSEC已经被证明是不安全的,攻击者可以通过NSEC获得权威域中存在的所有域名记录。因此,本标准将使用下一个安全记录第三版(NSEC3)。此外,DNSSEC在报文头增加了2个标志位一CD标志位和AD标志位。为了支持增加了DNSSEC资源记录而变得更长的DNS报文,DNSSEC需要DNS扩展机制(EDNSO)的支持。最后,DNSSEC还需要使用报文头的DO标志位,使得支持DNSSEC的解析服务器能够在其请求中指明它希望接收到的DNSSEC资源记录类型。DNSSEC原理举例说明、DNSSEC国际部署情况以及DNSSEC实例参见附录A、B、C。4.1DNSSEC的基本原理
DNSSEC协议是一个针对DNS协议的安全扩展,它通过给DNS的应答消息添加基于非对称加密算法的数字签名来保证数据未经篡改且来源正确:再通过域名体系自下而上逐级向父域提交自已公共密钥来实现整个域名体系的逐级安全认证。DNSSEC本质上是在域名系统树型授权体系的基础上,再建立一套基于密码学手段的签名/验证体系,也就是信任链体系,通过信任链上的逐级安全验证来确保DNS查询结果的真实可靠性(数据完整性和数据源鉴别)。DNNSEC的基本原理是权威域名服务器用区签名密钥对中的私钥(以下简称私钥)对应答报文中的资源记录集进行签名,并将资源记录集和数字签名放入同一个应答报文中,发送给解析服务器。解析服务器用权威域的区签名密钥对中的公钥(以下简称公钥)对收到的应答报文进行验证。如果验证失败,表明这一报文可能是假冒的,或者在传输过程、缓存过程中被篡改。4.2DNSSEC提供的安全服务
4.2.1数据源鉴别和完整性保护
DNSSEC通过对DNS资源记录集进行数字签名实现数据源鉴别。这个数字签名保存在一个新的资源记录类型中一RRSIG。通常情况下,只有一个私钥对一个权威域的数据进行签名,但也不排除使用多个密钥的可能。例如,每一种数字签名算法都有一个密钥。如果一个支持DNSSEC的解析服务器获得了一个权威域的公钥,那么它就可以验证这个权威域的签名。支持DNSSEC的解析服务器可以有两种方式获得一个权威域的公钥,一种方式是通过预先配置在解析服务器中的信任锚,另一种是通过正常的DNS解析方式。在后一种方式中,公钥被保存在DNSKEY中。为了保证通过DNS解析方式获得公钥的真实性,该公钥还需要由个经过认证的、预先配置的密钥签名,即密钥签名密钥(KSK)。因此,支持DNSSEC的解析服务器为了验证签名,需要形成一个信任链,从新获得的权威域公钥到密钥签名密钥(预先配置或者提前取得),所以,解析服务器至少需要配置3
YD/T2586-2013
一个信任锚。
如果配置的信任锚是一个权威域的区签名密钥(ZSK),那么解析服务器就可以鉴别权威域数据的真实性和完整性。如果配置的信任锚是密钥签名密钥(KSK),那么解析服务器就可以验证权威域公钥的真实性和完整性。
如果可能,权威域的私钥应该离线保存,但是对于动态更新的权威域是不可能做到的。在动态更新的情况下,权威域的主服务器需要在更新之后重新签名DNS资源记录集,那么区签名密钥(ZSK)就不得不保存在线上。在这种情况下,使用密钥签名密钥(KSK)作为权威域的信任锚是有必要的。将密钥签名密钥(KSK)离线保存,并对区签名密钥(ZSK)签名,即使区签名密钥(ZSK)应保存在线上,也能保护它的真实性和完整性。离线保存的密钥签名密钥(KSK)可以使用更长时间,解决了频繁更换密钥带来的密钥分发问题。
4.2.2否定存在验证
4.2.1描述的安全机制只能对权威域中存在的资源记录集进行数字签名,为了能够提供DNS数据否定存在验证服务,DNSSEC还需要一个新的资源记录类型一一NSEC3。NSEC3可以使支持DNSSEC的解析服务器能够验证某个域名或某个资源记录类型不存在的应答报文,其认证机制和解析服务器认证其他应答报文的机制一样。使用NSEC3需要权威域内的域名按照规范排序,NSEC3链可以清晰地描述权威域内存在的域名,以及这些域名中有哪些资源记录类型。每一个NSEC3资源记录都会被签名,并有对应的RRSIG资源记录。
4.3DNSSEC不提供的安全服务
DNS在最初设计的时候假设:不论是谁发送的特定查询请求,DNS都将返回相同的应答,而且DNS保存的所有数据都是可见的。所以,DNSSEC不提供机密性、访问控制列表或者其他区别查询者的服务。同时,DNSSEC不能抵抗对域名服务系统的拒绝服务攻击。5DNSSEC新增的资源记录类型
本章将详细规定DNSSEC的4种资源记录类型:DNSKEY、RRSIG、NSEC3和DS,包括定义、功能以及资源记录的报文格式。其中的密钥标签字段计算方法参见附录D。5.1DNSKEY资源记录
DNSKEY资源记录存储的是权威域的公钥。权威域使用私钥对DNS资源记录集进行数字签名,并且将公钥保存在DNSKEY资源记录中,用于稍后对数字签名的验证。DNSKEY资源记录的类型值是48。DNSKEY没有特殊的生命周期要求。DNSKEY资源记录的报文格式如图1所示,包括16比特的标志位(Flags),8比特的协议字段(Protocol),8比特的算法字段(Algorithm)和公钥字段(PublicKey)。·标志位
标志位的第7位是区密钥位,如果第7位为“1”,则DNSKEY资源记录保存的是一个权威域的公钥,该密钥可以用于签名数据的验证,而且签名数据的所有者应是该权威域。如果第7位为“0”,则DNSKEY资源记录中保存是其他类型的DNS密钥,不能用于对签名数据的验证。标志位的第15位是安全入口点,如果第15位为“1”,DNSKEY资源记录保存的密钥将作为一个安全入口点。
Flags
Protocol
Public Key
图1DNSKEY的报文格式
标志位第0~6bit和第8~14bit保留,使用时应置为“0”。·协议字段
Algon
YD/T2586-2013
协议字段的值应是“3”,表示这是一个DNSKEY,这是为了与以前版本DNSSEC兼容而保留下来的。其他的值不能用于DNSSEC签名的验证。·算法字段
算法字段表明签名所使用的算法种类,同时决定公钥字段的格式。·公钥字段
该字段保存的是权威域的公钥,其格式由所选取的算法决定。5.2RRSIG资源记录
RRSIG资源记录存储的是DNS资源记录集的数字签名。RRSIG资源记录的类型值是“46”。RRSIG资源记录的生命周期应和其覆盖的DNS资源记录集保持一致。RRSIG资源记录的报文格式如图2所示,包括16比特的类型覆盖字段(Typecovered)、8比特的算法字段(Algorithm)、8比特的域名字段字段(Labels)、32比特的原始生命周期字段(OriginalTTL)、32比特的签名过期时间字段(SignatureExpiration)、32比特的签名开始时间字段(SignatureInception)、16比特的密钥标签字段(KeyTag)、签名者字段(Signer'sName)和签名字段(Signature)。2222222233
78901
456
TYPe
Covered
Key Tag
·类型覆盖字段
Original
Algorithm
signature
Bxpiration
signature
Inception
Labels
Signer's Name
signature
图2RRSIG的报文格式
YD/T2586-2013
类型覆盖字段指明该签名覆盖的资源记录的类型。·算法学段
算法字段指明该签名使用的是哪种数字签名算法。·域名字段字段
域名字段字段指明被签名的资源记录所有者中域名字段的数量,例如host.example.com.为“3”,*.example.com.为2,“\的域名字段数量为“o”。·原始生命周期字段
原始生命周期字段指明该签名覆盖的资源记录集的生命周期。·签名过期时间字段和签名开始时间字段签名过期时间字段和签名开始时间字段划定了签名的有效期。RRSIG资源记录不能在签名开始时间之前使用,也不能在签名过期时间之后使用。●密钥标签字段
密钥标签字段是用对应的公钥数据简单叠加得到的一个16比特整数。如果一个权威域有多个密钥时,密钥标签可以和后面的签名者字段、算法字段共同帮助确定使用哪个公钥来验证签名(附录D给出了密钥标签字段计算方法的参考实例)。·签名者字段
签名者字段指明了签名覆盖的资源记录集的所有者。●签名字段
签名字段存储了资源记录集的数字签名,它的格式由所使用的签名算法决定。5.3NSEC3资源记录
NSEC3资源记录是为了应答那些不存在的资源记录而设计的。一个权威域的完整NSEC3资源记录链可以指明该权威域所有存在的资源记录类型及它们的所有者。NSEC3与NSEC的区别在于:NSEC中保存的是域名排序后的下一个域名的原始名称,而NSEC3保存的是域名的散列值。NSEC所带来的安全问题是攻击者可以根据NSEC资源记录返回的内容推导出权威域中所有域名记录,而NSEC3中保存的是散列值,因此可以避免了这种安全问题。NSEC3资源记录的类型值是50。
NSEC3资源记录的生命周期与SOA资源记录的最小生命周期值相同。NSEC3资源记录的报文格式如图3所示,包括8比特的散列算法字段(HashAlg.)、8比特的标志位(Flags)、16比特的重复字段(Iterations)、8比特的Salt长度字段(SaltLength)、Salt字段(Salt)、8比特的散列值长度字段(HashLength)、下一个域名散列值字段(NextHashedOwnerName)和类型位图字段(TypeBitMaps)。
·散列算法字段
散列算法字段指明采用的哪种散列函数计算域名散列值。●标志位
除了最小的比特之外,标志位中其他比特均未定义,使用时需置零。重复字段
重复字段表明散列函数重复使用的次数,即一个域名被散列函数重复计算的次数。它的值等于重复6
计算的次数减一
0123
Hash Alg
Salt Length
ength
●Salt长度字段
Flage
Salt
Next Hashed Owner Name
Type Bit Mapa
图3NSEC3的报文格式
Salt长度字段的值是Salt字段长度的十进制值,范围是0~255。·Salt字段
Salt字段用于计算域名的散列值。·散列值长度字段
YD/T2586-2013
890
散列值长度字段的值是下一个域名散列值字段长度的八进制值,范围是1~255。·下一个域名散列值字段
下一个域名散列值字段指明权威域内的域名按照其散列值排序之后,下一个域名的散列值。·类型位图字段
类型位图字段指明NSEC3资源记录所有者拥有的全部资源记录类型。5.4DS资源记录
DS资源记录存储了DNSKEY资源记录的散列值,用于建立解析服务器验证DNS应答报文时所需的信任链,它可以验证与之对应的DNSKEY资源记录。DS资源记录不像DNSKEY存储在资源记录所有者所在的权威域中,而是存储在上一级权威域中。DS资源记录的类型值是“43”。DS资源记录没有特殊的生命周期要求。DS资源记录的报文格式如图4所示,包括16比特的密钥标签字段(KeyTag)、8比特的算法字段(Algorithm)、8比特的散列类型字段(DigestType)和散列值字段(Digest)。01234565
KeyTag
密钥标签字段
113
0123456
Algorithm
Digest
图4DS的报文格式
233
7890
Digaat Type
DS资源记录的密钥标签字段应和对应的RRSIG资源记录的密钥标签字段一致。YD/T2586-2013
·算法字段
算法字段和DS对应的DNSKEY资源记录的算法字段一致,表明签名所使用的算法种类。·散列类型字段
散列类型字段指明采用何种算法生成DNSKEY的散列值。●散列值字段
散列值字段存储DNSKEY的散列值。6DNSSEC对DNS协议的修改
6.1DNSSEC对DNS报文的修改
由于新增的DNSSEC资源记录增加了DNS应答报文的长度,所以支持DNSSEC的权威域名服务器和解析服务器应支持EDNS0,即DNS报文长度应最小支持1220字节,建议支持4000字节的报文。此外,DNSSEC在报文头中增加了三个标志位:(1)DO(DNSSECOK):支持DNSSEC的解析服务器在它的DNS查询报文中,应把DO标志位置“1”,否则权威域名服务器将认为解析服务器不支持DNSSEC就不会返回RRSIG等资源记录。(2)AD(AuthenticatedData):AD是已验证数据标志,如果解析服务器验证了DNSSEC应答报文中的数字签名,则置AD位为“1”,否则为“0”。这个标志位一般用于自已不做验证的解析服务器和它所信任的递归域名服务器之间,用户计算机上的解析服务器不验证数字签名,递归服务器给它一个AD标志为“1”的响应,它就接受验证结果。但是,这种场景应保证它们之间的通信链路安全,必要时需使用IPSEC和TSIG。
(3)CD(CheckingDisabled):CD是关闭检查标志,用于支持DNSSEC的解析服务器和递归域名服务器之间,解析服务器在发送请求时把CD位置“1”,递归域名服务器就不再进行数字签名的验证而把递归查询结果直接交给解析服务器,由解析服务器验证签名的合法性。6.2对DNS权威域名服务器的修改支持DNSSEC的权威域名服务器应在给解析服务器的应答报文中包含适当的DNSSEC资源记录(RRSIG、DNSKEY、DS和NSEC),解析服务器通过查询报文中的DO标志位告知权威域名服务器自已希望接收哪些资源记录。但是新增的DNSSEC资源记录很容易导致应答报文超长,所以支持DNSSEC的权威域名服务器应支持EDNSO。支持DNSSEC的权威域名服务器应尽力将RRSIG资源记录和它覆盖的资源记录集放在同一个应答报文中发送。
支持DNSSEC的权威域名服务器在发送DNSKEY、DS、NSEC资源记录时应同时发送相应的RRSIG资源记录。
DNSSEC资源记录应采用Base64编码方式。DNSSEC没有改变DNS的报文传输协议。6.3对DNS解析服务器的修改
支持DNSSEC的解析服务器应支持必要的加解密功能,以保证至少可以对使用某一种签名算法的数字签名进行认证。
支持DNSSEC的解析服务器应能够建立一个信任链,而且至少配置一个信任锚,作为信任链的起点。8
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。