部署 DNSSec的动机、日常费用和DNSSec的未来
怎么才能激励网络管理员广泛采用DNSSec呢?有个组织机构绝对有能力影响DNSSec的采用:那就是PCI安全标准委员会,负责PCI数据安全标准和其他监管支付卡行业标准的发展。长久以来,坊间就流传该机构考虑要求网站接受支付卡的企业使用DNSSec签署其域名,以便实现PCI DSS合规性。鉴于信用卡接受度已渗透到各大主要网站,这一要求将产生巨大的影响力。
域名的推广用到了两种武器:胡萝卜和大棒,那么孰优孰劣呢?一些优异域名使用胡萝卜的方法取得了很好的成绩,而相比之下,使用OMB大棒的SIDN结果却十分惨淡。管理荷兰优异域名.nl的SIDN为注册签署域名的注册者提供优惠,几个星期后,网上就产生了大量的签署分区。
DNS管理员不情愿部署DNSSec,诱使其部署的最后一种强硬方法可能是:法律诉讼,或法律诉讼威胁。成功的缓存中毒攻击本身很难检测到(TTL过期后中毒记录通常奇迹般地从缓存中消失),而这类攻击的确会发生。我认为迟早有一天爱打官司的国家的某些人(比如美国人)会成为缓存中毒的受害者,其银行账号被榨干。届时受害者的人身事故赔偿律师会寻找财大气粗的人承担责任,然后他们非常兴奋的发现其客户访问的企业网站没有使用DNSSec签署域名,其客户的ISP也没有验证DNSSec数据。
有时DNSSec日常管理费用也是妨碍其采用的一大因素。以RRSIG记录为例可以看出,很明显签署后域名会变大。签署域名不仅会增加每个RRset(如果你从一个密钥对翻到另一对)的RRSIG记录,而且这些记录也比绝大多数“正常”(非DNSSec)记录大很多。签署域名通常会使该域名增加4-7倍。这将对该域名所需的权威域名服务器与递归域名服务器缓存数据(因为它们也会缓存签名,公共密钥等等)的内存空间产生直接影响。递归域名服务器和权威域名服务器之间产生的流量也会增加。
如果你对DNSSec有所了解,可能会认为流量增加不会影响递归域名服务器进行验证,因为它不会将查询中的DO (DNSSec OK)设置到权威域名服务器。然而,现代BIND域名服务器是默认设置DO的,因此会收到DNSSec记录,无论是否使用其进行验证。何必如此费事呢?那些域名服务器无法确定作为转发器的下游域名服务器不能验证。下游服务器需要的是DNSSec记录。因此无论怎样,你的BIND域名服务器的缓存都会随着DNSSec记录的增加而增大。
执行验证的递归域名服务器上的CPU使用率也会随着DNSSec部署的增加而增加。验证单一RRSIG记录要求加密散列操作和非对称的解密操作;该过程所需的计算远比使未签署的DNS反馈脱离有线并反排列进缓存中所需的计算多的多。更糟的是,由于处理一个查询可能包含以下多个引用,每个引用都由可能需要验证的记录组成。如果你的域名服务器无法解析DNSKEY记录,该记录包含需要执行验证的公共密钥,那么它就需要另外发送查询进行寻找,从而不得不验证DNSKEY记录了!
当然,本文讨论的是DNSSec部署缓慢的问题。至少当许多DNS管理员读到这篇文章时,你无需担心你的递归域名服务器占用太多CPU周期来验证签署数据,或者DNSSec记录占用的内存。如果你生活在荷兰,那情况就不一样了。
以上因素共同作用,DNSSec部署缓慢也就不足为奇了。但是DNSSec采用的最大障碍如标准的不断变化,使用早期工具管理签署域名的困难等已不足畏惧。运维DNSSec的日常管理费用确实存在,它会随着签署越来越多的域名而逐步被引入。
剩下的只是动机了。或许某些人所在的组织机构或者所在的国家有部署DNSSec的切实激励机制,但绝大多数人没有这样的“胡萝卜”。不加入合规制度如PCI DSS或法律诉讼的威胁都不能作为强迫部署DNSSec的理由,部署DNSSec完全取决于你自己。然而,如果你希望继续使用互联网完成任何重大交易,广泛采用DNSSec绝对是必要的。我希望你可将此看作是我给你的“胡萝卜”。