利用Windows Server 2008 R2的DNSSEC保证DNS链接的讨论
Ruby 发表于:10年06月12日 18:00 [原创] DOIT.com.cn
DNSSEC的一个高层次概述和为什么保护DSN基础设施对整体架构是非常重要的。
前言
随着IPv6时代的到来,通过DNS名字访问计算机将变得比以前任何时候都更加重要。虽然这么多年来我们一直使用IPv4,利用IP网络电话号码,我们很容易记住IPv4数量巨大的地址。事实是,IPv6地址空间是如此巨大,六进制格式是如此复杂,这可能是只有一小部分非常专业的电脑迷才能记住这些在他们网络中的比电脑还要多的IP地址。毕竟,每一个IPv6地址有128位长,是一个IPv4地址的四倍。IPv6地址为因特网上越来越多的主机提供了更多的地址空间,但是它也使我们更难以记住各种地址。
问题:非安全性的DNS数据库
假定对DNS的信任度越来越高,我们就会需要一个方式来确保DNS数据库的入口总是准确的和安全的,同时对我们来说一个最有效的途径是确保我们的DNS数据库是安全的。知道最近,DNS还一直是一个相对的非安全系统,它还有一个向基层提供信任的假设。
由于这一非安全性特征,就有了很多高效益的实例,基本的信任就被打破了,同时DNS服务器就被劫持了,DNS就会有了欺骗性的记录,同时,DNS缓存也中毒了,这就导致用户相信他们正在与一个合法的网站取得联系,但是事实上,他们已经被引导到了一个包含恶意内容的或者是通过网站嫁接收集用户信息。网站嫁接和网络钓鱼是相似的,但是它不是在邮件里包含一个链接,而是当用户使用一个合法网站的正确的URL访问网站的时候,他们以为自己是安全的,其实DNS记录已经被改变并重新指向了一个错误的URL,也就是被嫁接的网站那里。
解决方法:Windows Server 2008 R2 DNSSEC
一个解决方案是,用户可以使用内网来确保DNS环境是使用Windows Server 2008 R2 DNSSEC的。DNSSEC是一个可以扩展的,同时可以提高DNS协议安全性的程序集合。这些扩展补充了源的权威性,数据整合,和对现有DNS的认证拒绝。该解决方案还增加了几个新的DNS记录,包括 DNSKEY, RRSIGN, NSEC和DS。
DNSSEC是如何工作的?
DNSSEC的作用是让所有的DNS数据库中的记录是被标记的。该方法类似其他的电子联络方式的数码签名,如:电子邮件的。当DNS客户端发出一个对DNS服务器的请求时,它就返回一个该记录的数码签名。拥有CA公钥的客户端就可以对一个DNS记录做标记了,这就可以解密哈希值(签名)和验证其反应。为了做到这一点,DNS客户端和服务器都配置了可以使用相同信任标志的配置。一个可信的标志是一个预先设置好的公钥,并与一个特定的DNS区域相关联。
DNS数据库的签署可以是基于文件的(没有动态目录集合)和动态目录集合区域,同时,可以复制到其他DNS服务器上,这对所涉及的区域是具有权威性的。
默认情况下,Windows 2008R2和Windows 7的DNS客户端是已经配置好了的,并作为非验证、安全意识、存根解析器。在这种情况下,DNS客户端就允许DNS服务器代替自己来履行验证职责,但是DNS客户端可以接受来自DNSSEC激活的DNS服务器返回的响应。DNS客户端本身事配置好的使用名称解决政策表(NRPT)来决定它如何和DNS服务器进行互动。例如,如果NRPT表明,DNS客户端应该保护DNS客户端和服务器的联系,那么,证书验证就会被强制在查询列表中。如果安全谈判失败了,它就是一个强烈的信号表明,在名称解决进程中有一个信任问题。同时,名称查询的尝试就会失败。默认情况下,当客户端对一个发出要求的应用程序返回到DNS查询响应的时候,它将知识返回了这个信息,如果DNS服务器已经验证了这些信息。
确保有效的结果
其实,这里有两个方法可以使用来确保DNS查询的结果是有效的。首先,用户需要确保DNS服务器 DNS客户端连接到你想要连接的DNS客户端的实际的DNS服务器,同时,它们不会攻击正在发送伪造响应的DNS服务器。IPsec是一个确保DNS服务器身份的有效的途径。DNSSEC使用SSL来确认链接是安全的。DNS服务器通过由可以信任的发行者签订的证书来进行自身的认证(比如那些私有的PKI)。
记住,如果存在IPsec强制服务器和强制的区域隔离,那就必须从政策上豁免TCP和UDP53端口。否则,IPsec政策将会被用来提到基于证书的权威认证。这将导致从DNS服务器得来的认证失效,同时,连接的安全性也将不能建立起来。
签名区
DNSSEC也是签名区,使用dnscmd.exe工具可是离线签名。这样就导致产生了签名区文件。签名区文件包括那个区的RRSIG、DNSKEY、DNS和NSEC相应记录。在这个区被签名后,它就必须使用dnscmd.exe工具和DNS管理控制台重新加载。
签名区的一个限制是动态更新是不可用的。Windows Server 2008 R2的DNSSEC只适用于静态区域。区域必须要每次都标记那些对区域做出的改变,在很多环境下,这可能会限制DNSSEC的功能。
