云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云服务器_数据库兼职_企业0元试用

小七 141 0

DNSSEC做得对

这篇博文可能比这里通常的帖子更具个人色彩。这是我加入CloudFlare的原因。我作为实施者、IETF工作组主席、协议实验者、DNS运营商、顾问和福音传道者,一直致力于DNSSEC的演进。这些不同的观点使我能够以一种整体的方式来看待协议。首先,重要的是要认识到DNSSEC的确切作用。DNSSEC实际上是一个用词不当的时代:它所处的时代,人们对不同的安全技术以及每种技术所起的作用的理解都不如今天。今天,这个协议被称为DNSAUTH。这是因为它所做的就是为来自权威服务器的答案提供完整性保护。多年来,DNSSEC的设计发生了变化。许多从事DNSSEC早期版本工作的人(包括我自己)并不十分了解DNS。类似地,当时许多DNS的人并不了解安全性,尤其是加密技术。为了使事情变得更复杂,在某些领域对DNS协议缺乏一般性的理解,需要澄清以便正确地进行DNSSEC。这导致了议定书的三个主要版本。前两个由于各种原因无法部署。事后看来,有些决定是次优的。它们是DNS协议本身对设计的约束、对DNS的理解以及各种操作现实的产物。然而,DNSSECv3[RFC403x]是可部署的。今天,我们广泛部署了DNSSEC的关键构件:根和TLD:超过2/3'的TLD已签名大多数DNS软件都启用了DNSSEC许多注册者通过签署客户区域或将DS记录添加到父区域来为客户提供DNSSEC支持。缺少的是签署企业区域,并在解析器和客户端中启用验证。据估计,目前超过10%的用户DNS答案是经过验证的,但有多少在数据中心被验证是未知的。DNSSEC部署就是我所谓的"借口消除"游戏。首先是"com永远不会被签名",然后是"根永远不会被签名",然后是"答案会太大",等等。现在,主要的借口是,"这个重要的领域没有签署"。让cdn签署是朝着签署重要域迈出的一大步。这是因为cdn经常充当此类域的DNS操作员。那么这一切与我加入CloudFlare有什么关系?当一个朋友告诉我CloudFlare正在找一个DNS人员,我查了他们。CloudFlare让我印象深刻,从一开始就想正确地做事情,这里的人不怕做得更好。CloudFlare一直在考虑做DNSSEC,希望我帮助他们实现和部署它。这是一个有趣的项目,不仅仅是因为它的规模,还因为它能够以全新的视角和质疑所有先前的假设。CloudFlare的DNS服务器提供来自全球30多个任意广播数据中心的答案。我们运营着大量的DNS服务器,授权给数百万个区域。由于策略和位置的原因,并非所有服务器都向所有客户端返回相同的答案。此外,我们提供的大部分DNS数据都有地理偏差。因此,一些数据中心永远看不到该数据的查询。在这种环境下,回答这个问题的唯一现实方法是在边缘按需生成签名。这与大多数DNSSEC实现完全不同,但是很少有像PowerDNS这样的实现具有此功能。在线签名的作用是显著减少必须传输到边缘的数据量。我们设计的系统只能将签名的DNSKEY(和CDS)记录传送到边缘,而其他的都在边缘签名。这需要将区域签名密钥传输到边缘。CloudFlare经常成为DNS攻击的目标,既针对我们的客户,也作为反射/放大器。出于这个原因,我们热衷于将DNS的答案尽可能的小,以将我们的系统用作反射器时对其他系统造成的损害降到最低。这就指导了我们如何进行DNSSEC的许多选择。首先,我们使用椭圆曲线算法ECDSA P-256。ECDSA密钥比现在使用的大多数RSA密钥更强大,签名也更小。而且,与RSA相比,生成签名所需的CPU周期更少,这对我们来说是双赢的。当我们开始这个项目时,我们发现只有一个验证解析器实现不支持ECDSA。我们联系了他们,现在谷歌公共域名系统正确验证了ECDSA!第二,我们用一种特殊的方式做否定回答。DNSSEC中的否定答案可能会很大。对于与NSEC签署的区域,否定答案中出现SOA+RRSIG(SOA)+2个NSEC记录+2个RRSIG(NSEC)记录的情况并不少见。即使对于允许的最弱的RSA密钥,这也会导致至少635个字节的答案。在大多数情况下,NSEC3签名的答案需要3个NSEC3和3个RRSIG(NSEC3)记录来否认请求的至少1000个字节的项的存在。所以我们选择NSEC作为否定答案,并使用ECC密钥。但最大的节省来自于不必证明覆盖通配符的存在,这是第二个NSEC记录的作用。我们返回的答案是:"当然,名称存在,但您要求的类型不存在"。这允许我们只返回一个否定答案的NSEC记录!过去,NSEC的记录因泄露区域内容而受到批评。我们对否定答案的实现允许我们提供否定答案,对区域漫游者来说没有任何价值。因此,我们的客户将获得最好的防御区步行。我们仔细设计DNS答案的最终结果是,我们能够将大多数签名的答案保持在512字节以下。不过,也有例外,比如客户有大答案或长名字,但这是不可避免的。今天发布的关于CloudFlare的alpha DNSSEC支持是向我们的客户提供全面DNSSEC产品的第一步。我们计划尽快向所有客户提供DNSSEC。