DNSSEC的资源记录
为了实现资源记录的签名和验证,DNSSEC 增加了四种类型的资源记录:
RRSIG(Resource Record Signature)、DNSKEY(DNS Public Key)、DS(Delegation Signer)、NSEC(Next Secure)。
前三种记录已经在上面的实例中提到了,NSEC记录是为响应某个资源记录不存在而设计的。具体的说明参见RFC 4034,本文概要介绍如下。
DNSKEY记录
DNSKEY资源记录存储的是公开密钥,下面是一个DNSKEY的资源记录的例子:example.com. 86400 IN DNSKEY 256 3 5 ( AQPSKmy…..aNvv4w== )其中256是标志字段(flag),它是一个16比特的数,如果第7位(左起为第0位。这一位是区密钥(Zone Key)标志, 记为ZK)为1,则表明它是一个区密钥,该密钥可以用于签名数据的验证,而且资源记录的所有者(example.com.)必须是区的名字。第十五称为安全入口点(Security Entry Point,SEP)标志,将在下面介绍。
下一个字段“3”是协议(protocol)字段,它的值必须是3 ,表示这是一个DNSKEY,这是为了与以前版本DNSSEC兼容而保留下来的。其他的值不能用于DNSSEC签名的验证。
下一个字段“5”是算法(Algorithm)字段,标识签名所使用的算法的种类。其中常用的几种:1:RSA/MD5; 3:DSA/SHA-1; 5 RSA/SHA-1。
最后括号中的是公开密钥(Public Key)字段,它的格式依赖于算法字段。
在实践中,权威域的管理员通常用两个密钥配合完成对区数据的签名。一个是Zone-Signing Key(ZSK),另一个是Key-Signing Key(KSK)。ZSK用于签名区数据,而KSK用于对ZSK进行签名。这样做的好处有二:
(1)KSK的密钥签名的数据量很少,被破解(即找出对应的私钥)概率很小,因此可以设置很长的生存期。这个密钥的散列值作为DS记录存储在上一级域名服务器中而且需要它的数字签名,较长的生命周期可以减少密钥更新的工作量。
(2)ZSK签名的数据量比较大,因而破解的概率较大,其生存期应该小一些。因为有了KSK的存在,ZSK可以不必放到上一级的域名服务中,减少了管理的开销。
RRSIG记录
RRSIG资源记录存储的是对资源记录集合(RRSets)的数字签名。下面是对一个A记录签名后得到的RRSIG记录:
host.example.com. 86400 IN RRSIG A 5 3 86400 20030322173103
(
20030220173103 2642 example.com.
oJB1W6WNGv+ldvQ3WDG0MQkg5IEhjRip8WTr
…
J5D6fwFm8nN+6pBzeDQfsS3Ap3o= )
从第五个字段(“A”)开始各字段的含义如下:
类型覆盖(The Type Covered Field):表示这个签名覆盖什么类型的资源记录,本例中是A。
算法:数字签名算法,同DNSKEY记录的算法字段;本例中5表示RSA/SHA-1。
标签数量(The Labels Field):被签名的资源域名记录所有者(host.example.com.)中的标签数量,如本例中为3,*.example.com.为2,“.”的标签数量为0。
接下来的几个字段分别是被签名记录的TTL、有效期结束时间、开始时间。
2642是密钥标签(Key Tag),它是用对应公钥数据简单叠加得到的一个16比特整数。如果一个域有多个密钥时(如一个KSK、一个ZSK),Key Tag可以和后面的签名者字段(example.com.)共同确定究竟使用哪个公钥来验证签名。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。