DNSSEC 原理、配置与布署简介( 四 )


. 10800 IN A 192.168.1.100
NSEC . A RRSIG NSEC
RRSIG NSEC 5 5216 (
216 5271 .
Ujw/aq….= )
. 10800 IN A 192.168.1.200
其中NSEC记录包括两项内容:排序后的下一个资源记录的名称(.)、以及.这一名称所有的资源记录类型(A、RRSIG、NSEC) , 后面的RRSIG记录是对这个NSEC记录的数字签名 。
在用户请求的某个域名在vpn和xyz之间时 , 如 , 服务器会返回域名不存在 , 并同时包括 的NSEC记录 。
2.2 对现有DNS协议的修改
由于新增DNS资源记录的尺寸问题 , 支持的域名服务器必须支持EDNS0() , 即允许DNS报文大小必须达到1220字节(而不是最初的512字节) , 甚至可以是4096字节 。
在报文头中增加了三个标志位:
(1)DO( OK, 参见):支持的解析服务器在它的DNS查询报文中 , 必须把DO标志位置1 , 否则权威域服务器认为解析器不支持就不会返回RRSIG等记录 。
(2)AD ( Data):AD是认证数据标志 , 如果服务器验证了相关的数字签名 , 则置AD位为1 , 否则为0 。这一标志位一般用于自己不做验证的解析器(non- -aware )和它所信任的递归解析服务器(-awarename )之间 , 用户计算机上的解析器自己不去验证数字签名 , 递归服务器给它一个AD标志为1的响应 , 它就接受验证结果 。这种场景只有在它们之间的通信链路比较安全的情况下才安全 , 比如使用了IPSEC和TSIG[] 。
(3)CD ( ): 关闭检查标志位用于支持验证功能的解析器( -aware )和递归域名服务器之间 , 解析器在发送请求时把CD位置1 , 服务器就不再进行数字签名的验证而把递归查询得到的结果直接交给解析器 , 由解析器自己验证签名的合法性 。
最后 , 支持验证的 解析器对它所收到的资源记录的签名(RRSIG) , 必须能够区分区分以下四种结果:
(1)安全的():解析器能够建立到达资源记录签名者的信任链 , 并且可以验证数字签名的结果是正确的 。
(2)不安全的():解析器收到了一个资源记录和它的签名 , 但是它没有到达签名者的信任链 , 因而无法验证 。
(3)伪造的(Bogus):解析器有一个到资源记录签名者的信任链 , 但是签名验证是错的 。可能是因为受到攻击了 , 也可能是管理员配置错误 。
(4)不确定():解析器无法获得足够的 资源记录 , 因而不能确定用户所请求的资源记录是否应该签名 。
3 的配置
尽管的工作原理看起来让人气馁 , 实际的配置操作却并不复杂 。本节以BIND 9为例介绍的基本配置 。尽管BIND 9.3以上就开始支持 , 仍然建议使用当前最高版本的BIND(当前最新的版本是9.8) 。
配置或布署有两种场景:
(1)配置安全的域名解析服务器() , 该服务器可以保护使用它的用户 , 防止被DNS 欺骗攻击 。这里只涉及数字签名的验证工作 。
(2)配置安全的权威域名服务器(Name ) , 对权威域的资源记录进行签名 , 保护服务器不被域名欺骗攻击 。
3.1 配置安全解析服务器 3.1.1 激活
首先 , 在BIND的配置文件(一般是/etc/named.conf)中打开选项 , 比如:
{
“/var/named”;
- yes;
….
};
3.1.2 配置Trust
其次 , 要给解析服务器配置可信锚(Trust ) , 也就是你所信任的权威域的 。理想情况下我们可以配置一个根的密钥就够了 , 但是目前还没有完全布署的情况下 , 我们需要配置很多安全岛( )的密钥 。可以从很多公开的网站下载这些可信域的文件 , 包括: