8080
PROPOSED STANDARD
Edwards-Curve Digital Security Algorithm (EdDSA) for DNSSEC
Authors: O. Sury, R. Edmonds
Date: February 2017
Area: sec
Working Group: curdle
Stream: IETF
Abstract
This document describes how to specify Edwards-curve Digital Security Algorithm (EdDSA) keys and signatures in DNS Security (DNSSEC). It uses EdDSA with the choice of two curves: Ed25519 and Ed448.
RFC 8080
PROPOSED STANDARD
Errata Exist
Internet Engineering Task Force (IETF) O. Sury
Request for Comments: 8080 CZ.NIC
Category: Standards Track R. Edmonds
ISSN: 2070-1721 Fastly
February 2017
<span class="h1">Edwards-Curve Digital Security Algorithm (EdDSA) for DNSSEC</span>
Abstract
This document describes how to specify Edwards-curve Digital Security
Algorithm (EdDSA) keys and signatures in DNS Security (DNSSEC). It
uses EdDSA with the choice of two curves: Ed25519 and Ed448.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in <a href="./rfc7841#section-2">Section 2 of RFC 7841</a>.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
<a href="https://www.rfc-editor.org/info/rfc8080">http://www.rfc-editor.org/info/rfc8080</a>.
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<a href="http://trustee.ietf.org/license-info">http://trustee.ietf.org/license-info</a>) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
<span class="grey">Sury & Edmonds Standards Track [Page 1]</span>
<span id="page-2" ></span>
<span class="grey"><a href="./rfc8080">RFC 8080</a> EdDSA for DNSSEC February 2017</span>
Table of Contents
<a href="#section-1">1</a>. Introduction . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-2">2</a>
<a href="#section-2">2</a>. Requirements Language . . . . . . . . . . . . . . . . . . . . <a href="#page-2">2</a>
<a href="#section-3">3</a>. DNSKEY Resource Records . . . . . . . . . . . . . . . . . . . <a href="#page-2">2</a>
<a href="#section-4">4</a>. RRSIG Resource Records . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
5. Algorithm Number for DS, DNSKEY, and RRSIG Resource Records . 3
<a href="#section-6">6</a>. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-6.1">6.1</a>. Ed25519 Examples . . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-6.2">6.2</a>. Ed448 Examples . . . . . . . . . . . . . . . . . . . . . <a href="#page-4">4</a>
<a href="#section-7">7</a>. IANA Considerations . . . . . . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
<a href="#section-8">8</a>. Security Considerations . . . . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
<a href="#section-9">9</a>. References . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-6">6</a>
<a href="#section-9.1">9.1</a>. Normative References . . . . . . . . . . . . . . . . . . <a href="#page-6">6</a>
<a href="#section-9.2">9.2</a>. Informative References . . . . . . . . . . . . . . . . . <a href="#page-7">7</a>
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-7">7</a>
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-7">7</a>
<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>. Introduction</span>
DNSSEC, which is broadly defined in [<a href="./rfc4033" title=""DNS Security Introduction and Requirements"">RFC4033</a>], [<a href="./rfc4034" title=""Resource Records for the DNS Security Extensions"">RFC4034</a>], and
[<a href="./rfc4035" title=""Protocol Modifications for the DNS Security Extensions"">RFC4035</a>], uses cryptographic keys and digital signatures to provide
authentication of DNS data. Currently, the most popular signature
algorithm in use is RSA. GOST [<a href="./rfc5933" title=""Use of GOST Signature Algorithms in DNSKEY and RRSIG Resource Records for DNSSEC"">RFC5933</a>] and NIST-specified elliptic
curve cryptography [<a href="./rfc6605" title=""Elliptic Curve Digital Signature Algorithm (DSA) for DNSSEC"">RFC6605</a>] are also standardized.
[<a id="ref-RFC8032">RFC8032</a>] describes the elliptic curve signature system Edwards-curve
Digital Signature Algorithm (EdDSA) and recommends two curves,
Ed25519 and Ed448.
This document defines the use of DNSSEC's DS, DNSKEY, and RRSIG
resource records (RRs) with a new signing algorithm, EdDSA, using a
choice of two curves: Ed25519 and Ed448.
<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>. Requirements Language</span>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [<a href="./rfc2119" title=""Key words for use in RFCs to Indicate Requirement Levels"">RFC2119</a>].
<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>. DNSKEY Resource Records</span>
An Ed25519 public key consists of a 32-octet value, which is encoded
into the Public Key field of a DNSKEY resource record as a simple bit
string. The generation of a public key is defined in <a href="./rfc8032#section-5.1.5">Section 5.1.5
of [RFC8032]</a>.
<span class="grey">Sury & Edmonds Standards Track [Page 2]</span>
<span id="page-3" ></span>
<span class="grey"><a href="./rfc8080">RFC 8080</a> EdDSA for DNSSEC February 2017</span>
An Ed448 public key consists of a 57-octet value, which is encoded
into the Public Key field of a DNSKEY resource record as a simple bit
string. The generation of a public key is defined in <a href="./rfc8032#section-5.2.5">Section 5.2.5
of [RFC8032]</a>.
<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>. RRSIG Resource Records</span>
An Ed25519 signature consists of a 64-octet value, which is encoded
into the Signature field of an RRSIG resource record as a simple bit
string. The Ed25519 signature algorithm and verification of the
Ed25519 signature are described in Sections <a href="#section-5.1.6">5.1.6</a> and <a href="#section-5.1.7">5.1.7</a> of
[<a href="./rfc8032" title=""Edwards-Curve Digital Signature Algorithm (EdDSA)"">RFC8032</a>], respectively.
An Ed448 signature consists of a 114-octet value, which is encoded
into the Signature field of an RRSIG resource record as a simple bit
string. The Ed448 signature algorithm and verification of the Ed448
signature are described in Sections <a href="#section-5.2.6">5.2.6</a> and <a href="#section-5.2.7">5.2.7</a> of [<a href="./rfc8032" title=""Edwards-Curve Digital Signature Algorithm (EdDSA)"">RFC8032</a>],
respectively.
<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>. Algorithm Number for DS, DNSKEY, and RRSIG Resource Records</span>
The algorithm number associated with the use of Ed25519 in DS,
DNSKEY, and RRSIG resource records is 15. The algorithm number
associated with the use of Ed448 in DS, DNSKEY, and RRSIG resource
records is 16. This registration is fully defined in the IANA
Considerations section.
<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>. Examples</span>
<span class="h3"><a class="selflink" id="section-6.1" href="#section-6.1">6.1</a>. Ed25519 Examples</span>
Private-key-format: v1.2
Algorithm: 15 (ED25519)
PrivateKey: ODIyNjAzODQ2MjgwODAxMjI2NDUxOTAyMDQxNDIyNjI=
example.com. 3600 IN DNSKEY 257 3 15 (
l02Woi0iS8Aa25FQkUd9RMzZHJpBoRQwAQEX1SxZJA4= )
example.com. 3600 IN DS 3613 15 2 (
3aa5ab37efce57f737fc1627013fee07bdf241bd10f3b1964ab55c78e79
a304b )
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN RRSIG MX 3 3600 (
1440021600 1438207200 3613 example.com. (
Edk+IB9KNNWg0HAjm7FazXyrd5m3Rk8zNZbvNpAcM+eysqcUOMIjWoevFkj
H5GaMWeG96GUVZu6ECKOQmemHDg== )
<span class="grey">Sury & Edmonds Standards Track [Page 3]</span>
<span id="page-4" ></span>
<span class="grey"><a href="./rfc8080">RFC 8080</a> EdDSA for DNSSEC February 2017</span>
Private-key-format: v1.2
Algorithm: 15 (ED25519)
PrivateKey: DSSF3o0s0f+ElWzj9E/Osxw8hLpk55chkmx0LYN5WiY=
example.com. 3600 IN DNSKEY 257 3 15 (
zPnZ/QwEe7S8C5SPz2OfS5RR40ATk2/rYnE9xHIEijs= )
example.com. 3600 IN DS 35217 15 2 (
401781b934e392de492ec77ae2e15d70f6575a1c0bc59c5275c04ebe80c
6614c )
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN RRSIG MX 3 3600 (
1440021600 1438207200 35217 example.com. (
5LL2obmzdqjWI+Xto5eP5adXt/T5tMhasWvwcyW4L3SzfcRawOle9bodhC+
oip9ayUGjY9T/rL4rN3bOuESGDA== )
<span class="h3"><a class="selflink" id="section-6.2" href="#section-6.2">6.2</a>. Ed448 Examples</span>
Private-key-format: v1.2
Algorithm: 16 (ED448)
PrivateKey: xZ+5Cgm463xugtkY5B0Jx6erFTXp13rYegst0qRtNsOYnaVpMx0Z/c5EiA9x
8wWbDDct/U3FhYWA
example.com. 3600 IN DNSKEY 257 3 16 (
3kgROaDjrh0H2iuixWBrc8g2EpBBLCdGzHmn+G2MpTPhpj/OiBVHHSfPodx
1FYYUcJKm1MDpJtIA )
example.com. 3600 IN DS 9713 16 2 (
6ccf18d5bc5d7fc2fceb1d59d17321402f2aa8d368048db93dd811f5cb2
b19c7 )
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN RRSIG MX 3 3600 (
1440021600 1438207200 9713 example.com. (
Nmc0rgGKpr3GKYXcB1JmqqS4NYwhmechvJTqVzt3jR+Qy/lSLFoIk1L+9e3
9GPL+5tVzDPN3f9kAwiu8KCuPPjtl227ayaCZtRKZuJax7n9NuYlZJIusX0
SOIOKBGzG+yWYtz1/jjbzl5GGkWvREUCUA )
<span class="grey">Sury & Edmonds Standards Track [Page 4]</span>
<span id="page-5" ></span>
<span class="grey"><a href="./rfc8080">RFC 8080</a> EdDSA for DNSSEC February 2017</span>
Private-key-format: v1.2
Algorithm: 16 (ED448)
PrivateKey: WEykD3ht3MHkU8iH4uVOLz8JLwtRBSqiBoM6fF72+Mrp/u5gjxuB1DV6NnPO
2BlZdz4hdSTkOdOA
example.com. 3600 IN DNSKEY 257 3 16 (
kkreGWoccSDmUBGAe7+zsbG6ZAFQp+syPmYUurBRQc3tDjeMCJcVMRDmgcN
Lp5HlHAMy12VoISsA )
example.com. 3600 IN DS 38353 16 2 (
645ff078b3568f5852b70cb60e8e696cc77b75bfaaffc118cf79cbda1ba
28af4 )
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN RRSIG MX 3 3600 (
1440021600 1438207200 38353 example.com. (
+JjANio/LIzp7osmMYE5XD3H/YES8kXs5Vb9H8MjPS8OAGZMD37+LsCIcjg
5ivt0d4Om/UaqETEAsJjaYe56CEQP5lhRWuD2ivBqE0zfwJTyp4WqvpULbp
vaukswvv/WNEFxzEYQEIm9+xDlXj4pMAMA )
<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>. IANA Considerations</span>
This document updates the IANA registry "Domain Name System Security
(DNSSEC) Algorithm Numbers". The following entries have been added
to the registry:
+--------------+----------+----------+
| Number | 15 | 16 |
| Description | Ed25519 | Ed448 |
| Mnemonic | ED25519 | ED448 |
| Zone Signing | Y | Y |
| Trans. Sec. | * | * |
| Reference | <a href="./rfc8080">RFC 8080</a> | <a href="./rfc8080">RFC 8080</a> |
+--------------+----------+----------+
* There has been no determination of standardization of the use of
this algorithm with Transaction Security.
<span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a>. Security Considerations</span>
The security considerations of [<a href="./rfc8032" title=""Edwards-Curve Digital Signature Algorithm (EdDSA)"">RFC8032</a>] and [<a href="./rfc7748" title=""Elliptic Curves for Security"">RFC7748</a>] are inherited
in the usage of Ed25519 and Ed448 in DNSSEC.
Ed25519 is intended to operate at around the 128-bit security level
and Ed448 at around the 224-bit security level. A sufficiently large
quantum computer would be able to break both. Reasonable projections
of the abilities of classical computers conclude that Ed25519 is
<span class="grey">Sury & Edmonds Standards Track [Page 5]</span>
<span id="page-6" ></span>
<span class="grey"><a href="./rfc8080">RFC 8080</a> EdDSA for DNSSEC February 2017</span>
perfectly safe. Ed448 is provided for those applications with
relaxed performance requirements and where there is a desire to hedge
against analytical attacks on elliptic curves.
These assessments could, of course, change in the future if new
attacks that work better than the ones known today are found.
A private key used for a DNSSEC zone MUST NOT be used for any other
purpose than for that zone. Otherwise, cross-protocol or cross-
application attacks are possible.
<span class="h2"><a class="selflink" id="section-9" href="#section-9">9</a>. References</span>
<span class="h3"><a class="selflink" id="section-9.1" href="#section-9.1">9.1</a>. Normative References</span>
[<a id="ref-RFC2119">RFC2119</a>] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>,
DOI 10.17487/RFC2119, March 1997,
<<a href="https://www.rfc-editor.org/info/rfc2119">http://www.rfc-editor.org/info/rfc2119</a>>.
[<a id="ref-RFC4033">RFC4033</a>] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "DNS Security Introduction and Requirements",
<a href="./rfc4033">RFC 4033</a>, DOI 10.17487/RFC4033, March 2005,
<<a href="https://www.rfc-editor.org/info/rfc4033">http://www.rfc-editor.org/info/rfc4033</a>>.
[<a id="ref-RFC4034">RFC4034</a>] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Resource Records for the DNS Security Extensions",
<a href="./rfc4034">RFC 4034</a>, DOI 10.17487/RFC4034, March 2005,
<<a href="https://www.rfc-editor.org/info/rfc4034">http://www.rfc-editor.org/info/rfc4034</a>>.
[<a id="ref-RFC4035">RFC4035</a>] Arends, R., Austein, R., Larson, M., Massey, D., and S.
Rose, "Protocol Modifications for the DNS Security
Extensions", <a href="./rfc4035">RFC 4035</a>, DOI 10.17487/RFC4035, March 2005,
<<a href="https://www.rfc-editor.org/info/rfc4035">http://www.rfc-editor.org/info/rfc4035</a>>.
[<a id="ref-RFC7748">RFC7748</a>] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves
for Security", <a href="./rfc7748">RFC 7748</a>, DOI 10.17487/RFC7748, January
2016, <<a href="https://www.rfc-editor.org/info/rfc7748">http://www.rfc-editor.org/info/rfc7748</a>>.
[<a id="ref-RFC8032">RFC8032</a>] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
Signature Algorithm (EdDSA)", <a href="./rfc8032">RFC 8032</a>,
DOI 10.17487/RFC8032, January 2017,
<<a href="https://www.rfc-editor.org/info/rfc8032">http://www.rfc-editor.org/info/rfc8032</a>>.
<span class="grey">Sury & Edmonds Standards Track [Page 6]</span>
<span id="page-7" ></span>
<span class="grey"><a href="./rfc8080">RFC 8080</a> EdDSA for DNSSEC February 2017</span>
<span class="h3"><a class="selflink" id="section-9.2" href="#section-9.2">9.2</a>. Informative References</span>
[<a id="ref-RFC5933">RFC5933</a>] Dolmatov, V., Ed., Chuprina, A., and I. Ustinov, "Use of
GOST Signature Algorithms in DNSKEY and RRSIG Resource
Records for DNSSEC", <a href="./rfc5933">RFC 5933</a>, DOI 10.17487/RFC5933, July
2010, <<a href="https://www.rfc-editor.org/info/rfc5933">http://www.rfc-editor.org/info/rfc5933</a>>.
[<a id="ref-RFC6605">RFC6605</a>] Hoffman, P. and W. Wijngaards, "Elliptic Curve Digital
Signature Algorithm (DSA) for DNSSEC", <a href="./rfc6605">RFC 6605</a>,
DOI 10.17487/RFC6605, April 2012,
<<a href="https://www.rfc-editor.org/info/rfc6605">http://www.rfc-editor.org/info/rfc6605</a>>.
Acknowledgements
Some of the material in this document is copied liberally from
[<a href="./rfc6605" title=""Elliptic Curve Digital Signature Algorithm (DSA) for DNSSEC"">RFC6605</a>].
The authors of this document wish to thank Jan Vcelak, Pieter Lexis,
Kees Monshouwer, Simon Josefsson, Paul Hoffman, and others for a
review of this document.
Authors' Addresses
Ondrej Sury
CZ.NIC
Milesovska 1136/5
Praha 130 00
Czech Republic
Email: [email protected]
Robert Edmonds
Fastly
Atlanta, Georgia
United States of America
Email: [email protected]
Sury & Edmonds Standards Track [Page 7]
Annotations
Select text to annotate