fbpx
Wikipedia

DNSCurve

DNSCurve is a proposed secure protocol for the Domain Name System (DNS), designed by Daniel J. Bernstein. It encrypts and authenticates DNS packets between resolvers and authoritative servers.

DNS over HTTPS
Communication protocol
Developer(s)Daniel J. Bernstein
Introduction2009; 15 years ago (2009)[1]
OSI layerApplication layer
Websitednscurve.org

DNSCurve claims advantages over previous DNS services of:[1]

  • Confidentiality—usual DNS requests and responses are not encrypted, and broadcast to any attacker.
  • Integrity—usual DNS has some protection, but with patience and sniffing attackers can forge DNS records; this is prevented by DNSCurve cryptographic authentication.
  • Availability—usual DNS has no protection against denial of service (DoS) by a sniffing attacker sending a few forged packets per second. DNSCurve recognizes and discards forged DNS packets, providing some protection, though SMTP, HTTP, HTTPS, are also vulnerable to DoS.

Structure edit

DNSCurve uses Curve25519 elliptic curve cryptography to establish the identity of authoritative servers.[2] Public keys for remote authoritative servers are placed in NS records, so recursive resolvers know whether the server supports DNSCurve. Keys begin with the magic string uz5 and are followed by a 51-byte Base32 encoding of the server's 255-bit public key. E.g., in BIND format:

example.com. IN NS uz5bcx1nh80x1r17q653jf3guywz7cmyh5jv0qjz0unm56lq7rpj8l.example.com. 

The identity is used to establish keys used by an authenticated encryption scheme consisting of Salsa20 and Poly1305.The cryptographic setup is called a "cryptographic box", specifically crypto_box_curve25519xsalsa20poly1305.[3]

The "cryptographic box" tool used in DNSCurve are the same used in CurveCP, a UDP-based protocol which is similar to TCP but uses elliptic-curve cryptography to encrypt and authenticate data. An analogy is that while DNSSEC is like signing a webpage with Pretty Good Privacy (PGP), CurveCP and DNSCurve are like encrypting and authenticating the channel using Transport Layer Security (TLS). Just as PGP-signed webpages can be sent over an encrypted channel using SSL, DNSSEC data can be protected using DNSCurve.[4]

Operation edit

The resolver first retrives the public key from the NS record, see § Structure above.

The resolver then sends to the server a packet containing its DNSCurve public key, a 96-bit nonce, and a cryptographic box containing the query. The cryptographic box is created using the resolver's private key, the server's public key, and the nonce. The response from the server contains a different 96-bit nonce and its own cryptographic box containing the answer to the query.

Security edit

DNSCurve uses 256-bit elliptic-curve cryptography, which NIST estimates to be roughly equivalent to 3072-bit RSA.[5] ECRYPT reports a similar equivalence.[6] It uses per-query public-key crypto (like SSH and SSL), and 96-bit nonces to protect against replay attacks. Adam Langley, security officer at Google, says "With very high probability, no one will ever solve a single instance of Curve25519 without a large, quantum computer."[7]

Speed edit

Adam Langley has posted speed tests on his personal website showing Curve25519, used by DNSCurve, to be the fastest among elliptic curves tested.[8] According to the U.S. National Security Agency (NSA), elliptic curve cryptography offers vastly superior performance over RSA and Diffie–Hellman at a geometric rate as key sizes increase.[9]

Implementations edit

DNSCurve first gained recursive support in dnscache via a patch[10] by Matthew Dempsky. Dempsky also has a GitHub repository which includes Python DNS lookup tools and a forwarder in C.[11] Adam Langley has a GitHub repository as well.[12] There is an authoritative forwarder called CurveDNS[13] which allows DNS administrators to protect existing installations without patching.

Jan Mojžíš has released curveprotect,[14] a software suite which implements DNSCurve and CurveCP protection for common services like DNS, SSH, HTTP, and SMTP.

DNSCurve.io (2023) recommends two implementations: Jan Mojžíš's dqcache for recursive resolvers, CurveDNS for authoritative servers.[15]

Deployment edit

OpenDNS, which has 50 million users, announced support for DNSCurve on its recursive resolvers on February 23, 2010. In other words, its recursive resolvers now use DNSCurve to communicate to authoritative servers if available.[16] On December 6, 2011, OpenDNS announced a new tool, called DNSCrypt.[17] DNSCrypt is based on similar cryptographic tools as DNSCurve, but instead protects the channel between OpenDNS and its users.[18]

No equally large authoritative DNS providers have yet deployed DNSCurve.

See also edit

DNSCurve is intended to secure communication between a resolver and an authoritative server. For securing communication between DNS clients and resolvers, there are several options:

Notes edit

  1. ^ a b "Introduction to DNSCurve". DNSCurve. 22 June 2009. Retrieved 16 March 2016.
  2. ^ D. J. Bernstein. "Curve25519: high-speed elliptic-curve cryptography". Retrieved 30 January 2013.
  3. ^ "Public-key authenticated encryption: crypto_box". nacl.cr.yp.to. crypto_box is curve25519xsalsa20poly1305, a particular combination of Curve25519, Salsa20, and Poly1305 specified in "Cryptography in NaCl". This function is conjectured to meet the standard notions of privacy and third-party unforgeability.
  4. ^ "CurveCP: Usable security for the Internet". Retrieved 18 January 2024.
  5. ^ "NIST Recommendations (2011)".
  6. ^ (PDF). Archived from the original (PDF) on 2012-06-02.
  7. ^ "Adam Langley on curve25519 security".
  8. ^ "Adam Langley: What a difference a prime makes".
  9. ^ . NSA. Archived from the original on January 17, 2009. Retrieved January 17, 2009.
  10. ^ "DNSCurve patch for dnscache". Archived from the original on 2012-12-28.
  11. ^ "Matthew Dempsky's DNSCurve repo on GitHub". GitHub. 13 August 2019.
  12. ^ "Adam Langley's DNSCurve repo". GitHub. 13 August 2019.
  13. ^ "CurveDNS: A DNSCurve Forwarding Name Server".
  14. ^ . Archived from the original on 2013-05-26. Retrieved 2012-05-09.
  15. ^ "DNSCurve.io - A Community for DNSCurve". dnscurve.io.
  16. ^ . Archived from the original on 2010-02-26. Retrieved 2010-04-13.
  17. ^ . Archived from the original on 2013-02-03.
  18. ^ "net/dnscrypt-proxy: dnscrypt-proxy-1.4.3 – secure communications between a DNS client and resolver". OpenBSD ports. 2015-01-06. Retrieved 2015-02-09.

External links edit

  • Official website
  • DNSCurve.io: a community for DNSCurve users
  • High-speed cryptography and DNSCurve, a June 2009 presentation by the author
  • DNSCurve: Usable security for DNS, an August 2008 presentation by the author
  • draft-dempsky-dnscurve-01 Proposed standard "DNSCurve: Link-Level Security for the Domain Name System", sent by M. Dempsky (from OpenDNS) to IETF (updated in February 2010)
  • OpenDNS adopts DNSCurve 2010-02-26 at the Wayback Machine, official OpenDNS blog entry
  • CurveDNS, DNSCurve forwarding name server
  • NaCl, Networking and Cryptography library

dnscurve, proposed, secure, protocol, domain, name, system, designed, daniel, bernstein, encrypts, authenticates, packets, between, resolvers, authoritative, servers, over, httpscommunication, protocoldeveloper, daniel, bernsteinintroduction2009, years, 2009, . DNSCurve is a proposed secure protocol for the Domain Name System DNS designed by Daniel J Bernstein It encrypts and authenticates DNS packets between resolvers and authoritative servers DNS over HTTPSCommunication protocolDeveloper s Daniel J BernsteinIntroduction2009 15 years ago 2009 1 OSI layerApplication layerWebsitednscurve wbr orgDNSCurve claims advantages over previous DNS services of 1 Confidentiality usual DNS requests and responses are not encrypted and broadcast to any attacker Integrity usual DNS has some protection but with patience and sniffing attackers can forge DNS records this is prevented by DNSCurve cryptographic authentication Availability usual DNS has no protection against denial of service DoS by a sniffing attacker sending a few forged packets per second DNSCurve recognizes and discards forged DNS packets providing some protection though SMTP HTTP HTTPS are also vulnerable to DoS Contents 1 Structure 2 Operation 3 Security 4 Speed 5 Implementations 6 Deployment 7 See also 8 Notes 9 External linksStructure editDNSCurve uses Curve25519 elliptic curve cryptography to establish the identity of authoritative servers 2 Public keys for remote authoritative servers are placed in NS records so recursive resolvers know whether the server supports DNSCurve Keys begin with the magic string uz5 and are followed by a 51 byte Base32 encoding of the server s 255 bit public key E g in BIND format example com IN NS uz5bcx1nh80x1r17q653jf3guywz7cmyh5jv0qjz0unm56lq7rpj8l example com The identity is used to establish keys used by an authenticated encryption scheme consisting of Salsa20 and Poly1305 The cryptographic setup is called a cryptographic box specifically crypto box curve25519xsalsa20poly1305 3 The cryptographic box tool used in DNSCurve are the same used in CurveCP a UDP based protocol which is similar to TCP but uses elliptic curve cryptography to encrypt and authenticate data An analogy is that while DNSSEC is like signing a webpage with Pretty Good Privacy PGP CurveCP and DNSCurve are like encrypting and authenticating the channel using Transport Layer Security TLS Just as PGP signed webpages can be sent over an encrypted channel using SSL DNSSEC data can be protected using DNSCurve 4 Operation editThe resolver first retrives the public key from the NS record see Structure above The resolver then sends to the server a packet containing its DNSCurve public key a 96 bit nonce and a cryptographic box containing the query The cryptographic box is created using the resolver s private key the server s public key and the nonce The response from the server contains a different 96 bit nonce and its own cryptographic box containing the answer to the query Security editDNSCurve uses 256 bit elliptic curve cryptography which NIST estimates to be roughly equivalent to 3072 bit RSA 5 ECRYPT reports a similar equivalence 6 It uses per query public key crypto like SSH and SSL and 96 bit nonces to protect against replay attacks Adam Langley security officer at Google says With very high probability no one will ever solve a single instance of Curve25519 without a large quantum computer 7 Speed editAdam Langley has posted speed tests on his personal website showing Curve25519 used by DNSCurve to be the fastest among elliptic curves tested 8 According to the U S National Security Agency NSA elliptic curve cryptography offers vastly superior performance over RSA and Diffie Hellman at a geometric rate as key sizes increase 9 Implementations editDNSCurve first gained recursive support in dnscache via a patch 10 by Matthew Dempsky Dempsky also has a GitHub repository which includes Python DNS lookup tools and a forwarder in C 11 Adam Langley has a GitHub repository as well 12 There is an authoritative forwarder called CurveDNS 13 which allows DNS administrators to protect existing installations without patching Jan Mojzis has released curveprotect 14 a software suite which implements DNSCurve and CurveCP protection for common services like DNS SSH HTTP and SMTP DNSCurve io 2023 recommends two implementations Jan Mojzis s dqcache for recursive resolvers CurveDNS for authoritative servers 15 Deployment editOpenDNS which has 50 million users announced support for DNSCurve on its recursive resolvers on February 23 2010 In other words its recursive resolvers now use DNSCurve to communicate to authoritative servers if available 16 On December 6 2011 OpenDNS announced a new tool called DNSCrypt 17 DNSCrypt is based on similar cryptographic tools as DNSCurve but instead protects the channel between OpenDNS and its users 18 No equally large authoritative DNS providers have yet deployed DNSCurve See also editDNSCurve is intended to secure communication between a resolver and an authoritative server For securing communication between DNS clients and resolvers there are several options DNS over TLS defined by two standards track RFCs RFC 7858 and RFC 8310 DNS over HTTPS standardized in RFC 8484 DNSCryptNotes edit a b Introduction to DNSCurve DNSCurve 22 June 2009 Retrieved 16 March 2016 D J Bernstein Curve25519 high speed elliptic curve cryptography Retrieved 30 January 2013 Public key authenticated encryption crypto box nacl cr yp to crypto box is curve25519xsalsa20poly1305 a particular combination of Curve25519 Salsa20 and Poly1305 specified in Cryptography in NaCl This function is conjectured to meet the standard notions of privacy and third party unforgeability CurveCP Usable security for the Internet Retrieved 18 January 2024 NIST Recommendations 2011 ECRYPT II Yearly Report on Algorithms and Keysizes 2010 2011 PDF Archived from the original PDF on 2012 06 02 Adam Langley on curve25519 security Adam Langley What a difference a prime makes The Case for Elliptic Curve Cryptography NSA Archived from the original on January 17 2009 Retrieved January 17 2009 DNSCurve patch for dnscache Archived from the original on 2012 12 28 Matthew Dempsky s DNSCurve repo on GitHub GitHub 13 August 2019 Adam Langley s DNSCurve repo GitHub 13 August 2019 CurveDNS A DNSCurve Forwarding Name Server curveprotect a complex collection of tools for protecting wide range of internet services Archived from the original on 2013 05 26 Retrieved 2012 05 09 DNSCurve io A Community for DNSCurve dnscurve io OpenDNS adopts DNSCurve Archived from the original on 2010 02 26 Retrieved 2010 04 13 OpenDNS unveils DNSCrypt Archived from the original on 2013 02 03 net dnscrypt proxy dnscrypt proxy 1 4 3 secure communications between a DNS client and resolver OpenBSD ports 2015 01 06 Retrieved 2015 02 09 External links editOfficial website DNSCurve io a community for DNSCurve users High speed cryptography and DNSCurve a June 2009 presentation by the author DNSCurve Usable security for DNS an August 2008 presentation by the author draft dempsky dnscurve 01 Proposed standard DNSCurve Link Level Security for the Domain Name System sent by M Dempsky from OpenDNS to IETF updated in February 2010 OpenDNS adopts DNSCurve Archived 2010 02 26 at the Wayback Machine official OpenDNS blog entry CurveDNS DNSCurve forwarding name server NaCl Networking and Cryptography library Retrieved from https en wikipedia org w index php title DNSCurve amp oldid 1196734093, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.