summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8420.txt
blob: b11e7f8ec13655830c8517b1b0d9fc0098ecc49b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
Internet Engineering Task Force (IETF)                            Y. Nir
Request for Comments: 8420                                      Dell EMC
Category: Standards Track                                    August 2018
ISSN: 2070-1721


   Using the Edwards-Curve Digital Signature Algorithm (EdDSA) in the
            Internet Key Exchange Protocol Version 2 (IKEv2)

Abstract

   This document describes the use of the Edwards-curve Digital
   Signature Algorithm (EdDSA) in the Internet Key Exchange Protocol
   Version 2 (IKEv2).

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 Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc8420.

Copyright Notice

   Copyright (c) 2018 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) 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.








Nir                          Standards Track                    [Page 1]
^L
RFC 8420                     EdDSA in IKEv2                  August 2018


Table of Contents

   1. Introduction ....................................................2
      1.1. Conventions Used in This Document ..........................3
   2. The "Identity" Hash Identifier ..................................3
   3. Security Considerations .........................................3
   4. IANA Considerations .............................................3
   5. Normative References ............................................3
   Appendix A.  ASN.1 Objects .........................................4
     A.1.  ASN.1 Object for Ed25519 ...................................4
     A.2.  ASN.1 Object for Ed448 .....................................4
   Author's Address ...................................................5

1.  Introduction

   The Internet Key Exchange Protocol Version 2 [RFC7296] can use
   arbitrary signature algorithms as described in [RFC7427].  [RFC7427]
   defines the SIGNATURE_HASH_ALGORITHMS notification where each side of
   the IKE negotiation lists its supported hash algorithms.  This
   assumes that all signature schemes involve a hashing phase followed
   by a signature phase.  This made sense because most signature
   algorithms either cannot sign messages bigger than their key or
   truncate messages bigger than their key.

   EdDSA [RFC8032] defines signature methods that do not require
   prehashing of the message.  Unlike other methods, these accept
   messages of arbitrary size, so no prehashing is required.  These
   methods are called Ed25519 and Ed448; they use the Edwards 25519 and
   the Edwards 448 ("Goldilocks") curves, respectively.  Although that
   document also defines prehashed versions of these algorithms, those
   versions are not recommended for protocols where there is minimal
   burden in buffering the entire message so as to make it practical to
   make two passes over the message.  This is true of IKEv2.  See
   Section 8.5 of [RFC8032] for that recommendation.

   EdDSA defines the binary format of the signatures that should be used
   in the "Signature Value" field of the Authentication Data Format in
   Section 3 of RFC 8032.  [RFC8410] defines the object identifiers
   (OIDs) for these signature methods.  For convenience, these OIDs are
   repeated in Appendix A.

   In order to signal within IKE that no hashing needs to be done, we
   define a new value in the SIGNATURE_HASH_ALGORITHMS notification to
   indicate that no hashing is performed.







Nir                          Standards Track                    [Page 2]
^L
RFC 8420                     EdDSA in IKEv2                  August 2018


1.1.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

2.  The "Identity" Hash Identifier

   This document defines a new value called "Identity" (5) in the "IKEv2
   Hash Algorithms" registry for use in the SIGNATURE_HASH_ALGORITHMS
   notification.  Inserting this new value into the notification
   indicates that the receiver supports at least one signature algorithm
   that accepts messages of arbitrary size such as Ed25519 and Ed448.

   Ed25519 and Ed448 are only defined with the "Identity" hash and MUST
   NOT be sent to a receiver that has not indicated support for the
   "Identity" hash.

   The prehashed versions of Ed25519 and Ed448 (Ed25519ph and Ed448ph,
   respectively) MUST NOT be used in IKE.

3.  Security Considerations

   The new "Identity" value is needed only for signature algorithms that
   accept an input of arbitrary size.  It MUST NOT be used if none of
   the supported and configured algorithms have this property.  On the
   other hand, there is no good reason to prehash the inputs where the
   signature algorithm has that property.  For this reason,
   implementations MUST have the "Identity" value in the
   SIGNATURE_HASH_ALGORITHMS notification when EdDSA is supported and
   configured.  Implementations SHOULD NOT have other hash algorithms in
   the notification if all supported and configured signature algorithms
   have this property.

4.  IANA Considerations

   IANA has assigned the value 5 for the algorithm with the name
   "Identity" in the "IKEv2 Hash Algorithms" registry with this document
   as reference.

5.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.



Nir                          Standards Track                    [Page 3]
^L
RFC 8420                     EdDSA in IKEv2                  August 2018


   [RFC7296]  Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T.
              Kivinen, "Internet Key Exchange Protocol Version 2
              (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October
              2014, <https://www.rfc-editor.org/info/rfc7296>.

   [RFC7427]  Kivinen, T. and J. Snyder, "Signature Authentication in
              the Internet Key Exchange Version 2 (IKEv2)", RFC 7427,
              DOI 10.17487/RFC7427, January 2015,
              <https://www.rfc-editor.org/info/rfc7427>.

   [RFC8032]  Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
              Signature Algorithm (EdDSA)", RFC 8032,
              DOI 10.17487/RFC8032, January 2017,
              <https://www.rfc-editor.org/info/rfc8032>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8410]  Josefsson, S. and J. Schaad, "Algorithm Identifiers for
              Ed25519, Ed448, X25519, and X448 for Use in the Internet
              X.509 Public Key Infrastructure", RFC 8410,
              DOI 10.17487/RFC8410, August 2018,
              <https://www.rfc-editor.org/info/rfc8410>.

Appendix A.  ASN.1 Objects

   [RFC8410] is the normative reference for the ASN.1 objects for
   Ed25519 and Ed448.  They are repeated below for convenience.

A.1.  ASN.1 Object for Ed25519

   id-Ed25519 OBJECT IDENTIFIER ::= { 1.3.101.112 }

   Parameters are absent.  Length is 7 bytes.

   Binary encoding: 3005 0603 2B65 70

A.2.  ASN.1 Object for Ed448

   id-Ed448 OBJECT IDENTIFIER ::= { 1.3.101.113 }

   Parameters are absent.  Length is 7 bytes.

   Binary encoding: 3005 0603 2B65 71






Nir                          Standards Track                    [Page 4]
^L
RFC 8420                     EdDSA in IKEv2                  August 2018


Author's Address

   Yoav Nir
   Dell EMC
   9 Andrei Sakharov St
   Haifa  3190500
   Israel

   Email: ynir.ietf@gmail.com










































Nir                          Standards Track                    [Page 5]
^L