DNSSEC简介(1)

 

 
一、DNSSEC简介
 
DNSSEC是一组定义DNS资源记录扩展信息的规范,这些扩展信息能够让DNS客户端验正DNS服务响应报文中信息的真实性、数据完整性、以及否定响应(如域名或资源记录不存在等)的真实性等。换句话讲,如果一个攻击者试图修改原始响应报文并将其响应给支持DNSSEC功能的客户端时,客户端可以探测到报文被修改,并能察觉到响应报文与对应区域的授权DNS信息不符等。因此,DNSSEC通过数字签名能帮助客户端判断DNS响应报文数据是否被非法篡改以提高DNS服务的安全性。但DNSSEC不并保证数据的机密性,所有的DNS响应报文仍是未加密的明文;同时,其无法防范DoS攻击,也无法阻止错误的假定而仅能验正报文是否来源于其授权区域的服务器。
 
DNSSEC是通过新增多个DNS资源记录如DNSKEY、RRSIG、NSEC和DS RR, 以及新增两个报文首部位CD(Checking Disabled)和AD(Authenticated Data)实现的,而这些则依赖于EDNSO(Extended DNS mechanisms)的功能。基于DNSSEC,区域管理员可以对一个资源记录集合(RRSet)进行数字签名,而后将公钥和此签名信息发布出去。而为了验正DNS响应报文,DNSSEC客户端从报文的数字签名中获取签名信息,并使用签名制作者的公钥解密此数字签名,而后再重新计算数据的特征码并与解密的特征码相比较以验正数据完整性,接下去还需要通过在层次性签名链接中验正此公钥的可靠性。以上所有的检查完全通过后,此DNS响应报文才能够被接受。
 
、DNSSEC新引进的资源记录
 
DNSKEY
每个使用DNSSEC的DNS区域都需要一对密钥即“公钥和私钥”,它们由DNS管理员生成,私钥由管理员秘密保存,公钥则发布在区域文件中用于定义DNSKEY资源记录。下面是一个DNSKEY资源记录的例子:
magedu.com. 86400 IN DNSKEY 256 3 5 ( AQPSKmynfzW4kyBv015MUG2DeIQ3
          Cbl+BBZH4b/0PY1kxkmvHjcZc8no
          kfzj31GajIQKY+5CptLr3buXA10h
          WqTkF7H6RfoRqXQeogmMHfpftf6z
          Mv1LyBUgia7za6ZEzOJBOztyvhjL
          742iU/TpPSEDhm2SNKLijfUppn1U
          aNvv4w== )
 
其中“86400”是此记录的TTL;“256”为标志符,用于说明这是一个区域密钥(Zone Key);“3”是定义协议的代码;“5”是用于指明公钥算法,它表示RSA/SHA1;最后是Base64编码的公钥。
 
RRSIG
资源记录集合(RRset)是某DNS区域内共享通用名称(common name)、类别(class)和类型(type)的所有资源记录。DNSSEC中的RRsets将由管理员对其进行数字签名,方法是先对计算此RRsets的hash值,然后使用私钥加密此hash值。举例来说,如果一个区域中具有SOA、NS、A、MX和DNSKEY这5类资源记录,那就意味着其需要至少5个不同的RRsets,且每个RRSET都需要各自的RRSIG资源记录。因此,DNSSEC进行签名的单位不是某区域,而是区域中相同类别的DNS查询响应报文。比如:
www.magedu.com. 86400 IN RRSIG A 5 3 86400 20121118152113 (
            20121018152113 2642 magedu.com.
            oJB1W6WNGv+ldvQ3WDG0MQkg5IEhjRip8WTr
            PYGv07h108dUKGMeDPKijVCHX3DDKdfb+v6o
            B9wfuh3DTJXUAfI/M0zmO/zz8bW0Rznl8O3t
            GNazPwQKkRN20XPXV6nwwfoXmJQbsLNrLfkG
            J5D6fwFm8nN+6pBzeDQfsS3Ap3o= )
上面第一行中前四个字段分别表示名称(name)、TTL(86400)、类别(IN)和资源记录类型(A);接下来的一个是类型覆盖(Type Covered)字段(RRSIG A),其值“A”意味着这是一个名称为www.magedu.com的且进行了数字签名的A记录;下一个字段用于定义签名算法,“5”表示使用RSA/SHA1算法;而后字段中的“3”代表记录中对应名称(如这里的www.magedu.com)的数值标签;后面的“86400”表示覆盖A记录RRset的原始的TTL;而20121118152113和20121018152113分别表示“过期时间”和“起始时间”,这用于表明签名的创建时间为2012年10月18号15点21分13秒,过期时间为2012年11月18号15点21分13秒;而“2642”为签名标记,magedu.com为签名者的名称,余下的部分则为RRset的加密资源记录值。
待续……

 

你可能感兴趣的:(bind,dns,DNSSEC,马哥教育)