Loading AI tools
来自维基百科,自由的百科全书
DNSCurve是Daniel J. Bernstein设计的一种域名系统(DNS)的新安全协议。
DNSCurve使用Curve25519[1]椭圆曲线加密算法建立Salsa20使用的密钥,配以MAC函数Poly1305,用来加密和验证解析器与身份验证服务器之间的DNS網路封包。远端验证服务器的公钥放在NS记录中,以便递归解析器了解服务器是否支持DNSCurve。键值以魔术字符串uz5
开头,后随51字节的Base32编码的服务器的255位公钥。例如,以BIND格式来看:
example.com. IN NS uz5bcx1nh80x1r17q653jf3guywz7cmyh5jv0qjz0unm56lq7rpj8l.example.com.
解析器然后向服务器发送一个包含DNSCurve公钥、96位nonce和一个包含查询的加密箱的数据包。加密箱为采用解析器的私钥、服务器的公钥和nonce创建。服务器的响应包含不同的96位nonce及其自身的加密箱,其中包含查询的答案。
DNSCurve中使用的加密工具也在CurveCP中使用,它是基于UDP而非TCP协议,使用椭圆曲线加密算法来加密和认证数据。一个类比是,DNSSEC像使用PGP加密一个网页,而CurveCP和DNSCurve像是使用SSL来加密和身份验证信道。正如PGP签名的网页可以通过SSL加密的信道发送,DNSSEC的数据也可通过DNSCurve保护。
DNSCurve声称优于以前的DNS服务:[2]
DNSCurve使用256位椭圆曲线加密算法,NIST估计大致相当于3072比特RSA。[3]ECRYPT报告了类似的估计。[4]它为每个查询都使用公钥加密(类似SSH和SSL),以及96比特nonces以防止重放攻击。Google安全官Adam Langley称:“很大概率上,没有人能在不使用一台大型的量子计算机的情况下解决curve25519的单个实例。”[5]
Adam Langley在他的个人网站上展示了DNSCurve所使用的curve25519的速度测试,它是测试中最快的椭圆曲线加密法。[6]根据NSA所说,椭圆曲线加密法在增加密钥大小的同时,几何速率方面的性能优于RSA和Diffie-Hellman。[7]
DNSCurve通过[8]Matthew Dempsky为dnscache的一个补丁取得了首个递归支持。Dempsky也有一个GitHub代码库,里面包括Python DNS查询工具和一个C语言编写的转发器。[9]Adam Langley同样有一个GitHub代码库。[10]有一个权威转发器名为CurveDNS[11],它允许DNS管理员保护现有的安装而无须打补丁。OpenDNS已发布DNSCrypt[12]来保护OpenDNS用户与其递归解析器之间的信道。Jan Mojžíš发布了curveprotect[13],这是一个实现DNSCurve和CurveCP的套件,保护DNS、SSH、HTTP和SMTP等常见服务。
OpenDNS 服务超过5000万用户的于2010年2月23日宣布其递归解析器支持DNSCurve。[14]2011年12月6日,OpenDNS宣布名为DNSCrypt的新工具[15]该工具能保护OpenDNS与其用户之间的信道。[16]尚无其他类似的权威DNS提供商部署DNSCurve。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.