forked from post-quantum/ietf-pq-ikev2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
draft-tjhai-ipsecme-hybrid-qske-ikev2-01.nroff
1931 lines (1599 loc) · 92.5 KB
/
draft-tjhai-ipsecme-hybrid-qske-ikev2-01.nroff
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
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.po 0
.ll 7.2i
.lt 7.2i
.nr LL 7.2i
.nr LT 7.2i
.ds LF Tjhai et al.
.ds RF FORMFEED[Page %]
.ds LH Internet-Draft
.ds RH October 21, 2017
.ds CH Hybrid QSKE for IKEv2
.ds CF Expires April 24, 2018
.hy 0
.nh
.ad l
.in 0
.nf
.tl 'Internet Engineering Task Force''C. Tjhai'
.tl 'Internet-Draft''M. Tomlinson'
.tl 'Intended Status: Informational''A. Cheng'
.tl 'Expires: April 24, 2018''Post-Quantum'
.tl '''G. Bartlett'
.tl '''S. Fluhrer'
.tl '''Cisco Systems'
.tl '''D. Geest'
.tl '''Isara'
.tl '''Z. Zhang'
.tl '''Onboard Security'
.tl '''O. Garcia-Morchon'
.tl '''Philips'
.tl '''October 21, 2017'
.fi
.\" Note. The ".tl" directive is used to generate the leading header
.\" in Internet drafts. The information specified after ".tl" provides
.\" left, center and right components of a line separated by the ' character
.\" in the following manner:
.\"
.\" .tl '<left component>'<center component>'<right component>'
.\"
.\" Only the left and right components are used in Internet-draft headers
.\" This and other comments in this template can safely be deleted.
.ce 2
Hybrid Quantum-Safe Key Exchange for Internet
Key Exchange Protocol Version 2 (IKEv2)
.fi
.ce
draft-tjhai-ipsecme-hybrid-qske-ikev2-01
.fi
.in 3
.ti 0
Abstract
This document describes how to extend Internet Key Exchange Protocol
Version 2 (IKEv2) so that the shared secret exchanged between peers is
not vulnerable against quantum computer attacks. The basic idea is
to exchange one or more post quantum key exchange payloads in conjunction
with the existing (Elliptic Curve) Diffie-Hellman payload. This document
also addresses the challenge of fragmentation as a result of sending
large post quantum key exchange data in the first pair of message of
the initial exchange phase.
.ti 0
Status of This Memo
This Internet-Draft is submitted in full conformance with the provisions of
BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-Drafts
is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 21, 2017.
.ti 0
Copyright Notice
Copyright (c) 2017 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 (http://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.
.ti 0
.\" \# TD4 -- Set TOC depth by altering this value (TD5 = depth 5)
.\" \# TOC -- Beginning of auto updated Table of Contents
.in 0
Table of Contents
.nf
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Problem Description . . . . . . . . . . . . . . . . . . . 3
1.2. Proposed Extension . . . . . . . . . . . . . . . . . . . . 3
1.3. Changes . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Document organization . . . . . . . . . . . . . . . . . . . 4
2. Design criteria: . . . . . . . . . . . . . . . . . . . . . . . 5
3. Hybrid Quantum-Safe Key Exchange . . . . . . . . . . . . . . . 6
3.1. Overall design . . . . . . . . . . . . . . . . . . . . . . 6
3.2. Overall Protocol . . . . . . . . . . . . . . . . . . . . . 7
3.3. Computation of a quantum-safe shared secret . . . . . . . 9
3.4. Quantum-Safe Group Transform Type and Group Identifiers . 9
3.5. Hybrid group negotiation . . . . . . . . . . . . . . . . . 10
3.5.1. Protocol for the initiator . . . . . . . . . . . . . . 11
3.5.2. Protocol from the responder . . . . . . . . . . . . . . 13
3.6. Fragmentation support . . . . . . . . . . . . . . . . . . . 14
3.7. Protection against roll-back attacks . . . . . . . . . . . 16
4. Design Rationale . . . . . . . . . . . . . . . . . . . . . . . 17
5. Alternative Designs . . . . . . . . . . . . . . . . . . . . . 17
6. Security considerations . . . . . . . . . . . . . . . . . . . . 21
7. Appendix with flow of messages for corner cases . . . . . . . . 22
2. Text from the old design . . . . . . . . . . . . . . . . . . . 22
2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 22
2.2. IKE_SA_INIT Exchange . . . . . . . . . . . . . . . . . . . 23
2.3. CREATE_CHILD_SA Exchange . . . . . . . . . . . . . . . . . 24
2.3.1. New Child SAs from the CREATE_CHILD_SA Exchange . . . 25
2.3.2. Rekeying IKE SAs with the CREATE_CHILD_SA Exchange . . 25
2.3.3. Rekeying Child SAs with the CREATE_CHILD_SA Exchange . 26
2.4. QSKE Payload Format . . . . . . . . . . . . . . . . . . . 26
3. Design Rationale . . . . . . . . . . . . . . . . . . . . . . . 27
3.1. Threat Categories . . . . . . . . . . . . . . . . . . . . 28
3.2. Dealing with Fragmentation . . . . . . . . . . . . . . . . 29
3.3. Removal of the Diffie-Hellman exchange . . . . . . . . . . 29
4. Security Considerations . . . . . . . . . . . . . . . . . . . 30
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Appendix A. Quantum-safe Ciphers . . . . . . . . . . . . . . . . 33
Appendix A.1. Ring Learning With Errors . . . . . . . . . . . . . 34
Appendix A.2. NTRU Lattices . . . . . . . . . . . . . . . . . . . 39
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 40
.fi
.in 3
.\" \# ETC -- End of auto updated Table of Contents
.ti 0
1. Introduction
.ti 0
1.1. Problem Description
.fi
Internet Key Exchange Protocol (IKEv2) as specified in RFC 7296
[RFC7296] uses the Diffie-Hellman (DH) or Elliptic Curve Diffie-
Hellman (ECDH) algorithm to establish a shared secret between an
initiator and a responder. The security of the DH and ECDH algorithms
rely on the difficulty to solve a discrete logarithm problem in
multiplicative and elliptic curve groups respectively when the order
of the group parameter is large enough. While solving such a problem
remains difficult with current computing power, it is believed that
general purpose quantum computers can easily crack this problem,
implying that the security of IKEv2 is compromised. There are,
however, a number of cryptosystems that are conjectured to be
resistant against quantum computer attack.
.ti 0
1.2. Proposed Extension
.fi
This document describes a method to extend IKEv2, whilst maintaining
backwards compatibility, to exchange a shared secret such that it is
not vulnerable to quantum computer attacks. The idea is to negotiate the use of one or more post quantum algorithm to exchange data, in addition to the
existing DH or ECDH key exchange data. We believe that the feature
of using more than one post quantum algorithm is important as many
of these algorithms are relatively new and there may be a need to
hedge the security risk with multiple post quantum key exchanges.
The secrets established from each key exchange are combined in a way
such that should the post quantum secrets not be present, the derived
shared secret is equivalent to that of the standard IKEv2; on the
other hand, a post quantum shared secret is obtained if both classical
and post quantum key exchange data are present. This extension also
applies to key exchanges in IKE Security Associations (SAs) for
Encapsulating Security Payload (ESP) [ESP] or Authentication Header
(AH) [AH], i.e. Child SAs, in order to provide a stronger guarantee
of forward security.
One of the key challenges in this extension is on fragmentation
handling during the first message pair of the initial exchange
phase, i.e. IKE_SA_INIT. Almost all of the known post quantum
algorithms to date have key exchange data size that is larger than
1K octets. When transmitted alongside other payloads, the total
payload size could easily exceed the network maximum transmission
unit (MTU) size of 1500 octets, and hence this may lead to IP
level fragmentation. While IKEv2 has a mechanism to handle
fragmentation [RFC7383], it is applicable to messages exchanged
after IKE_SA_INIT. Of course, fragmentation will not be an issue
if messages are sent over TCP [RFC8229]; however, we believe
that a UDP-based solution will also be required. This document
describes a simple mechanism to fragment IKE_SA_INIT messages,
which also allows exchanges for payload larger than 65,535 octets.
Note that the readers should consider the approach in this document
as to provide a long term solution in upgrading IKEv2 protocol to
support post quantum algorithms. A short term solution to make
IKEv2 key exchange quantum secure is using post quantum pre-shared
keys as discussed in [FMKS].
.ti 0
1.3. Changes
.fi
Changes in this draft in each version iterations.
draft-tjhai-ipsecme-hybrid-qske-ikev2-00
.ti 3
.in 6
o We added a feature to allow more than one post quantum key
exchange algorithms to be negotiated and used to exchange a post quantum
shared secret.
.ti 3
.in 6
o Instead of relying on TCP encapsulation to deal with IP level
fragmentation, we introduced a new key exchange payload that
can be sent as multiple fragments within IKE_SA_INIT message.
.ti 0
1.4. Document organization
The remainder of this document is organized as follows.
Section 2 summarizes design criteria.
Section 3 specifies how quantum-safe key exchange is performed between two IKE peers and how keying materials are derived.
The rationale behind the approach of this extension is described in Section 3.
Section 4 discusses security considerations.
Section 5 describes IANA considerations for the name spaces introduced in this document.
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this
document, are to be interpreted as described in RFC 2119 [RFC2119]. In
addition to using the terms defined in IKEv2 [RFC7296], this document
uses the following list of abbreviations:
.ti 0
2. Design criteria:
The design of the proposed quantum-safe IKEv2 is driven by the following criteria:
.in 10
.ti 6
1) Need for quantum-safe cryptography in IPSec. Quantum computers
might become feasible in the next 5-10 years. If current Internet
communications are monitored and recorded today (D), the
communications could be decrypted as soon as a quantum-computer is
available (e.g., year Q) if key negotiation only relies on non
quantum-safe primitives. This is a high threat for any information
that must remain confidential for long period of time T > Q-D. The
need is obvious if we assume that Q is 2040, D is 2020, and T is 30
years. Such a value of T is typical in classified or healthcare
data.
.ti 6
2) Hybrid. Currently, there does not exist a quantum-safe key
exchange that is trusted at the level that ECDH is trusted against
conventional (non-quantum) adversaries. A hybrid approach allows
introducing promising quantum-safe candidates next to well-
established primitives.
.ti 6
3) Limit amount of exchanged data. The protocol design should be
such that the amount of exchanged data, such as public-keys, is
kept as limited as possible even if initiator and responder need to
agree on a hybrid group or multiple public-keys are needed
to be exchanged.
.ti 6
4) Future proof. Any cryptographic algorithm could be potentially
broken in the future by currently unknown or impractical
attacks: quantum computers are merely the most concrete example of
this. The design does not categorize algorithms as "quantum-safe"
or "non quantum-safe" and does not create assumptions about the
properties of the algorithms, meaning that if algorithms with
different properties become necessary in future, this framework can
be used unchanged to facilitate migration to those algorithms.
.ti 6
5) Identification of hybrid algorithms. The usage of a hybrid
approach in which each hybrid combination of several classical and
quantum-safe algorithms leads to a different group identifier can
mean an exponential number of combinations. Thus, the design should seek an
approach in which a hybrid group -- comprising multiple quantum safe
algorithms -- can be efficiently negotiated.
.ti 6
6) Limited amount of changes. A key goal is to limit
the number of changes in when enabling a quantum-safe
handshake. This ensures easier and faster adoption in existing implementations.
.ti 6
7) Localized changes. Another key requirement is that changes to
the protocol are limited in scope, in particular, limiting changes
in the exchanged messages and in the state machine, so that they
can be easily implemented.
.ti 6
8) Deterministic operation. This requirement means that the hybrid
quantum-safe exchange, and thus, the computed key, will be based on
algorithms that both client and server wish to support.
.ti 6
9) Fragmentation support. Some quantum-safe algorithms could be relatively bulky and they might require fragmentation. Thus, a design goal is the adaptation and adoption of an existing fragmentation method or the design of a new one that allows for the fragmentation of the key shares.
.ti 6
10) Backwards compatibility and interoperability. This is a
fundamental requirement to ensure that hybrid quantum-safe IKEv2
and a non-quantum-safe IKEv2 implementations are interoperable.
.ti 6
11) FIPS compliancy. IPSec is widely used in Federal Information
Systems and FIPS certification is an important feature. However,
algorithms that are believed to be quantum-safe are not FIPS
complaint yet. Still, the goal is that the overall hybrid quantum-
safe IKEv2 design can be FIPS compliant.
.ti 0
3. Hybrid Quantum-Safe Key Exchange
.ti 0
3.1. Overall design
.fi
The proposed hybrid quantum-safe IKEv2 protocol extends RFC7296 [RFC7296] by duplicating
the initial exchange in [RFC7296]. The first round is then used for backwards compatibility,
and if the responder supports this document, to negotiate the algorithms in the hybrid group.
The second round is used to exchanged the key shares involved in the hybrid group and derive
a common secret that relies on both a traditional Diffie-Hellman shared secret key and shared secrets
derived from quantum-resistant algorithms.
.in 6
.nf
Initiator Responder
--------------------------------------------------------------
<-- First round (hybrid group negotiation)-->
<--Second round (hybrid quantum-safe key exchange)-->
.fi
This hybrid quantum-safe IKEv2 key exchange can occur in IKE_SA_INIT or CREATE_CHILD_SA.
message pair which contains various payloads for negotiating cryptographic
algorithms, exchanging nonces, and performing a Diffie-Hellman shared
secret exchange for an IKE SA or a Child SA.
These payloads are chained together forming a linked-list and this flexible structure allows an additional key exchange payload, denoted QSKE, to be introduced. The
additional key exchange uses algorithms that are currently considered to be
resistant to quantum computer attacks. These algorithms are collectively
referred to as quantum-safe algorithms in this document.
.ti 0
3.2. Overall Protocol
In the following we overview the two protocol rounds involved in the hybrid quantum-safe protocol.
.ti 3
3.2.1 First protocol round
In the first round, the IKE_SA_INIT request and response messages are used to negotiate the hybrid group.
.in 6
.nf
Initiator Responder
--------------------------------------------------------------
HDR, SAi1, KEi, Ni -->
<-- HDR, SAr1, KEr, Nr
.fi
.in 3
In order to keep backwards compatibility, the initiator signals the support of hybrid groups by sending
vendor specific group identifier 0x9000 in SAi1 (see Section 2.4 for more details).
In order to negotiate the quantum-safe algorithms included in the hybrid group, the initiator sends its policy
for negotiation in KEi (see Section 2.5 for more details).
If the initiator includes quantum-safe algorithms whose key shares require fragmentation, the initiator must include
flag 0x9001 in SAi1 stating that it supports fragmentation (See Sections 2.4 and 2.6 for details).
Upon reception of the IKE_SA_INIT request message from the initiator, the responder replies
with IKE_SA_INIT response in which it can acknowledge the support of a hybrid group by sending
the same group identifier 0x9000 in SAr1.
In this case, the responder will also include in KEr the identifiers of the quantum-safe algorithms
that comprise the hybrid group shared between initiator and responder and fulfilling their policies (see Section 2.5 for more details).
If the responder agrees on a hybrid group containing quantum-safe algorithms whose key shares require fragmentation, the initiator must include
flag 0x9001 in SAi1 stating that it supports fragmentation (See Sections 2.4 and 2.6 for details).
If the responder does not support this document, the responder will then reply as follows:
.in 6
.nf
Initiator Responder
--------------------------------------------------------------
HDR, SAi1, KEi, Ni -->
<-- N(INVALID_KE_PAYLOAD),
.fi
.in 3
This means that the peer does not support KE value 0x9001 and advertises correct classic DH group to use.
.ti 3
3.2.2. Second protocol round
In the second protocol round, the initiator sends again the IKE_SA_INIT request.
The main difference is that this message includes the key shares associated to each of the quantum-safe
algorithms agreed in the previous round.
If the fragmentation flag was agreed during the first round and the exchange of key shares requires fragmentation, then fragmentation is handled as in Section 2.6.
Furthermore, this message includes information about the policy exchanged in the first round
and that has as a goal to prevent roll-back attacks (see Section 2.7 for more details).
Upon reception of the the IKE_SA_INIT request message, the responder first checks whether the
received key shares fit its policy, i.e., it repeats the process of negotiating a hybrid group.
If it does, then the responder can proceed to compute a shared secret as detailed in Section 2.3.
The responder sends also the IKE_SA-INIT response message including its key shares.
As before, if agreed and if required, fragmentation is handled as described in Section 2.6.
Once the initiator has received key shares from the responder, the initiator can compute the same shared secret following the description in Section 2.3.
.in 6
.nf
Initiator Responder
--------------------------------------------------------------
HDR, SAi1, KEi1,KEi2,
KEi3, Ni -->
<-- HDR, SAr1, KEr1, KEr2,
KEr3, Nr
.fi
.in 3
.ti 0
3.3. Computation of a quantum-safe shared secret
After the second protocol round detailed in Section 2.2., both initiator and responder can compute:
.in 12
.ti 6
a shared Diffie-Hellman secret from KEi and KEr pair, and
.ti 6
a quantum-safe shared secret from QSKEi and QSKEr pair.
.fi
.in 3
Using these shared secrets, each peer generates SKEYSEED, from which
all keying materials for protection of the IKE SA are derived. The
quantity SKEYSEED is computed as follows:
.in 6
.df
SKEYSEED = prf(Ni | Nr, HQSK_1 | ...| HQSK_i |... |HQSKK)
.fi
.in 3
where prf, Ni and Nr are defined as in IKEv2 [RFC7296].
HQSK_i represents shared key number i derived from the ith key exchange algorithm
contained in the hybrid group that was negotiated in the protocol.
The seven secrets derived from SKEYSEED, namely SK_d, SK_ai, SK_ar, SK_ei, SK_er, SK_pi, and SK_pr,
are generated as defined in IKEv2 [RFC7296].
.ti 0
3.4. Quantum-Safe Group Transform Type and Group Identifiers
.fi
In generating keying material within IKEv2, both initiator and responder
negotiate up to four cryptographic algorithms in the SA payload of an
IKE_SA_INIT or a CREATE_CHILD_SA exchange. One of the negotiated
algorithms is a Diffie-Hellman algorithm,
which is used for key-exchange. This negotiation is done using the
Transform Type 4 (Diffie-Hellman Group) where each Diffie-Hellman group
is assigned a unique value.
In order to enable a quantum-safe key exchange in IKEv2, the various
quantum-safe algorithms MUST be negotiated between two IKEv2
peers.
To this end, this draft assigns new meanings to various transforms of transform type 4 ("Diffie-Hellman group").
It assigns identifiers to each of the various quantum safe algorithms (even though they are not actually Diffie-Hellman groups, they are methods of performing key exchange).
In addition, it assigns two artificial values that are not actually key exchange mechanisms, but are used as a part of the negotiation.
We expect that, in the future, IANA will assign permanent values to these transforms. Until it does, we will use the following mappings in the 'reserved for private use space':
.ti 3
0x9000 HYBRID - this signifies that we are negotiating a hybrid group, the details are listed in the KE payload
.ti 3
0x9001 FRAGMENT - this signifies that the initiator will need to perform preencryption fragmentation to send the entire KE payload
The following values are reserved for the below key exchanges (which will need to be specified in more detail elsewhere):
.in 6
.nf
Name Number Key exchange
------------------------------------------------------
NewHope 128 0x9100 Diffie-Hellman-like
Frodo 0x9101 Diffie-Hellman-like
NTRU EES743EP1 0x9102 KEM
NTRU-Prime 216 0x9103 KEM
.fi
.in 3
Because we are using transforms in the private use space, both the initiator and responder must include a vendor id with this payload:
.in 6
.nf
d4 48 11 94 c0 c3 4c 9d d1 22 76 aa 9a 4e 80 d5
.fi
.in 3
This payload is the MD5 hash of "IKEv2 Quantum Safe Key Exchange v1"). If the other side does not include this vendor id, you MUST NOT process these private use transforms as listed in this draft.
.ti 0
3.5. Hybrid group negotiation
h
.fi
Most quantum-safe key agreement algorithms are relatively new, and thus, are not fully trusted.There are also many proposed algorithms, with different trade-offs and relying on different hard problems.
The concern is that some of these hard problems may turn out to be easier to solve than anticipated
a(and thus the key agreement algorithm not as secure as expected).
Our hybrid group negotiation protocol allows the initiator and responder to agree on a common hybrid group based on their respective policies.The protocol categorizes each type of key exchange into a type T, which is based on the type of hard problem it relies on.Given this categorization of the key agreement protocols, initiator and responder have security policies that define the minimum number of quantum-safe algorithms that they require in a hybrid group and also the types of key agreement protocols that they support (and therefore, trust).
The initiator and responder can then engage in a simple protocol that allows them to
compute a common hybrid group fulfilling their policies.
The protocol for the initiator and responder is described below.
Note that it would be possible for the responder to search for a mutually
acceptable combination without specifying the key exchange types, however the
algorithm to search for such a combination would be considerably more complex.
tThis design assumes that the security policies of the initiator and the
responder will rely on key exchanges with distinct types of hard problems, and
hence the additional complexity of the more general algorithm is not warranted.
.ti 0
3.5.1. Protocol for the initiator
To define the protocol, we first define a "DH_Group_List", this is a list of groups of a specific type; it has the format:
.in 6
.nf
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| T | N |
+---------------------------------------------------------------+
| DH_1 | DH_2 |
\&...
| DH_N | 0 |
+---------------------------------------------------------------+
.fi
where:
.ti 6
* T is the type of the groups that are in this list, with this proposed encoding:
.ti 6
0x0001 is classical (DH or ECDH)
.ti 6
0x0002 is Lattice (RLWE, LWE, NTRU)
.ti 6
0x0003 is Code-based (McEliece, QC-MDPC)
jj.ti 6 0x0004 is Isogeny-based (SIDH)
.ti 6
0x0005 is symmetric (preshared key)
.ti 6
* N is the number of groups that make up the list
.in 3
The semantics of this proposal is that the initiator is proposing M different
types of groups; any selection of one group from K different types will be
acceptable.
.ti 6
* DH_1, DH_2, ..., DH_N are the groups that make up the list, in order of preference.
.ti 6
* 0 is padding, present if N is odd
The semantics of this list is that these are the groups of type T that are acceptable to the initiator.
We can now given the format that the initiator sends to the responder, in the KEi payload, the initiator sends its group policy in the format:
.in 6
.nf
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| K | M |
+---------------------------------------------------------------+
| DH Group List 1 |
\+---------------------------------------------------------------+
| DH Group List 2 |
\&...
| DH Group List M |
+---------------------------------------------------------------+
.fi
where:
.ti 6
* K is the minimum number of group lists that must be satisfied
.ti 6
* M is the number of group lists
.ti 6
* DH_Group_LIST_1, ..., DH_Group_List_N are the lists of different types of DH groups, in order of preference.
.in 3
The semantics of this proposal is that the initiator is proposing M different
types of groups; any selection of one group from K different types will be
acceptable.
Example: suppose our policy is "we must agree on at least 2 groups from the list (P256, P384), (NewHope, Frodo), (SIDH) (and NewHope is group 40, Frodo is group 41, SIDH is group 60)"; we have the list
.in 10
.nf
0002 0003 0001 0002 0019 0020 0002 0002
0040 0041 0004 0001 0060 0000
.fi
.in 3
Parsed as:
.ti 9
0002 K = 2
.ti 9
0003 We have 3 group lists
.ti 9
0001 0002 First list is of type classical, and consists of two groups;
.ti 12
0019 0020 Group 19 (P256) and group 20 (P384)
.ti 9
0002 0002 Second list is of type lattice, and consists of two groups
.ti 12
0040 0041 Group 40 (NewHope) and group 41 (Frodo)
.ti 9
0004 0001 Third list is of type isogeny, and consists of one group
.ti 12
0060 Group 60 (SIDH)
.ti 12
0000 Zero-pad
.ti 0
3.5.2. Protocol from the responder
If the responder finds a combination of groups that are mutually acceptable, then it responds with the KEr payload with the format:
.in 6
.nf
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| 0 | N |
+---------------------------------------------------------------+
| DH_1 | DH_2 |
\&...
| DH_N | 0 |
+---------------------------------------------------------------+
.fi
where:
.ti 6
* 0 is a fixed 0000 pattern
.ti 6
* N is the number of groups that are selected
.ti 6
* DH_1, DH_2, ..., DH_N are the selected groups
We assume that the responder has a similar local policy governing what it is willing to negotiate. To search the initiator's vector to find such a mutually acceptable combination, the responder can run the following algorithm.
.in 9
1. Set list of accepted DH groups to empty
2. Set K to the maximum of (minimum number of group lists specified by the initiator, minimum number of group lists acceptable according to the responder policy)
3. For every DH_Group_list in the initiator proposal
.ti 12
Set T to the DH_Group_list type
.ti 12
Find for the responder DH_Group_list of type T
.ti 12
If the responder has such a group list
.ti 15
Scan for a DH element that the two lists have in common
.ti 18
If there is such a group
.ti 21
Append that to the "list of accepted DH groups"
.in 21
(Optional) if the list is at least K elements long, stop searching (and accept)
.in 9
.ti 9
4. If the list of accepted DH groups is at least K elements long,
.ti 12
accept..ti 9
Otherwise,
.ti 12
fail.
.ti 0
.in 3
3.6. Fragmentation support
.ti 3
3.6.1. Fragmentation Problem Description
When the IKE message size exceeds the path MTU, the IKE messages are fragmented at the IP level. IP fragments can be blocked or dropped by network devices such as NAT/PAT gateways, firewalls, proxies and load balancers. If IKE messages are dropped, the IKE and subsequent IPsec Security Association (SA) will fail to be established. In many instances the quantum safe key exchange data could be too large to send in a single IKE payload as the path MTU between hosts is set below the total size of the IKE payload. As this draft defines multiple key exchanges, there is a high chance that fragmentation will occur.
The maximum length of an IKE payload is 65535 octets, it is anticipated that many post quantum algorithms will require a payload size that is greater than 65535 octets. To overcome this limitation we present a method to split the quantum secure payload into multiple fragments and send these fragments individually, therefore providing a method to overcome the maximum length limitation.
.ti 3
3.6.2. Fragmentation Proposed Solution
To overcome issues with fragmentation the IKE_SA_INIT message can be broken into smaller messages and rather that sending a single IKE_SA_INIT message that is fragmented at the IP layer, multiple IKE_SA_INIT messages can be sent, each IKE_SA_INIT message containing one or more IKE payloads which will overcome any issues with path MTU fragmentation causing the IKE SA to fail. If an IKE payload is too large to be sent in a single IKE_SA_INIT message it can split across multiple IKE_SA_INIT messages. All IKE_SA_INIT messages will have a message ID of 0, as per RFC7296. To notify the peer that an IKE payload is fragmented the Fragment bit, denoted F (below), specifies if the payload is fragmented. If this is set to '1', meaning the payload is fragmented the Fragment Number and Total Fragments fields will be populated. If the Fragment bit is not set (set to '0'), then the Fragment Number and Total Fragments fields will not exist. The Payload N, denoting the Payload Number is set to '1' for the first IKE payload that is fragmented and incremented by one for every subsequent payload that requires fragmentation. The Payload Number is used to re-assemble any fragments that arrive out of order and will have as many fragments as the Total Fragment field denotes. The Fragment Number is the first fragment, increasing by one for every other fragment that is sent. The Total Fragments field denotes the maximum number of fragments that are to be sent for this payload.
.in 6
.nf
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Payload |C|F| Payload N | Payload Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Fragment Number | Total Fragments ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.fi
Should a payload be too large that it requires fragmentation, the contents of the payload to be split is treated as a binary blob and split into chunks of data which is then sent in multiple fragmented payloads. Each IKE message will contain the generic IKE header and one or more payloads. There is no strict limit on the size of the fragmented payload, it is recommended that the size of the fragmented payload have a size within a range that does not cause the IP payload to be fragmented. As the maximum size of the IP MTU is sometimes not normally known, implementations should allow for administrators to configure a maximum IKE message size.
For a host that receives fragmented IKE payloads, the receiving host should verify that the received message is not a retransmission, it can achieve this by checking the Payload Number field and the corresponding Fragment Number to then perform a reassembly of the traffic. The extracted payload contents can then be reassembled.
Should a single message be lost, the retransmission of the whole message MUST occur, there is no mechanism to single fragmented payload being lost.
To mitigate the attack, whereby an attacker (who reveals their own IP address), negotiates a hybrid exchange, then sends a large number of fragmented payload, but does not send all the relevant payloads, implementations should monitor for such cases and allow for the ability block IP addresses or ranges of addresses should this occur. Note that this is not a fail safe mechanism and allows for potentially legitimate users to be punished should an attacker and legitimate users be behind the same NAT/PAT gateway.
The length field within the IKE header could be used to indicate the total length of the IKE message ? ** Thought needed **
.fi
insert text from Graham on fragmentation support.
.ti 0
3.7. Protection against roll-back attacks
.fi
In RFC7296, man-in-the-middle (MitM) downgrade attack is prevented by always resending the full set of group proposal in subsequent IKE_SA_INIT messages if the responder chooses a different Diffie-Hellman group from the one in the initial IKE_SA_INIT message. The two-round nature of the protocol in this document presents some challenges in terms of downgrade attack protection. However, the general idea is the same as the one in RFC7296, in that the responder must have sufficient information to verify that the downgrade is a genuine one, rather than one instigated by a malicious attacker. Consider the following example: an initiator proposes to use a hybrid group through N(HYBRID_PROPOSAL) payload, and for backward compatibility also purposes a Diffie-Hellman group 15 (3072-bit MODP Group) through SAi payload, in the first round of the exchange. The initiator may receive an INVALID_KE_PAYLOAD notification response. This could be a genuine response from a responder that does not understand or support the selected hybrid group, or it could also be a malicious downgrade response from an MitM attacker. The initiator then, on the second round of the exchange, proposes to use Diffie-Hellman group 15, but also it MUST include the full set of supported groups in SAi and N(HYBRID_PROPOSAL) to indicate that the initiator would have preferred to use a hybrid group. The responder MUST check that the chosen group is indeed not caused by a downgrade attack. If the check fails, it indicates a potential downgrade attack and the connection SHALL be dropped immediately. Note that by ensuring that the initiator always sends the full set of supported groups, the responder does not need to maintain any states between IKE_SA_INIT rounds, and therefore it minimizes the risk of state exhaustion attack. Of course, in the case of an active MitM attack, the malicious attacker may be able to modify the content of N(HYBRID_PROPOSAL) and SAi payloads, however, such a modification will be caught in the IKE_AUTH stage.
It is also possible to encode some information into a cookie (Section 2.6. RFC7296) as another way to prevent against downgrade attacks. Whilst this document does not mandate how the information should be encoded, it could be efficiently done as follows.
Cookie = <VersionIDofSecret> | Hash(Ni | IPi | SPIi |
.in 42
SAi PROPOSAL |
N(HYBRID_PROPOSAL) |
<secret>)
.in 6
where SAi PROPOSAL is the content of the SAi payload excluding the generic IKE header, N(HYBRID_PROPOSAL) is the content of the hybrid proposal notification payload as described in Section X.Y, and the rest of the parameters are the same as in RFC7296. In the scenario of using a cookie, the responder calculates a cookie value from the first round of IKE_SA_INIT message. The initiator echoes back the cookie and retries the first round of the exchange. When the responder receives the second round of the IKE_SA_INIT message, it recalculates the cookie value and checks whether or not this value is the same as the one in the previous round of the exchange. If they mismatch, it indicates a potential downgrade attack and therefore the connection SHALL be terminated. [[A mismatch can also occur in the event of <secret> being out-of-sync. Shall we terminate the connection this early here?]]. As before, any attempts of the attacker to modify the packets to instigate a downgrade attack will be detectable in IKE_AUTH stage.
Questions?
1. We don't want to mandate the use of COOKIE for this, do we?
2. I don't see the need to describe a checking method whereby a state is required, please correct me if I'm wrong.
3. In my naive opinion, it looks like the only useful checking is in IKE_AUTH. As long as we provide IKE_AUTH with sufficient information for checking (i.e. mandating that the initiator always proposes the full set of supported groups), we should resistant against downgrade-attack (of course assuming that there is no quantum computer). Is this correct? If not, what have I missed? OK. After reading our previous email chains, I think I know what the answer is: we consider MitM attacker that doesn't modify the content of the IKEv2 traffic.
[[Add some text on the following in the security consideration section:
SLOTH-ATTACK: COOKIE must be of 64-octet long to minimize this attack surface.]]
.in 3
.ti 0
4. Design Rationale
.in 3
.ti 0
5. Alternative Designs
.fi
This section gives an overview on a number of alternative approaches that we have considered, but later discarded. These approaches are:
.in 6
.ti 3
o Sending post-quantum proposal in KE payload
With the objective of not introducing unnecessary notify payloads, we consider communicating hybrid post-quantum proposal in KE payload during the first pass of the protocol exchange. Unfortunately, this design may be susceptible to a downgrade attack as described as follows. Consider the scenario where there is a MitM attacker sitting between an initiator and a responder. The initiator proposes, through SAi payload, to use a hybrid post-quantum group and as a backup a Diffie-Hellman group, and through KEi payload, the initiator proposes a list of hybrid post-quantum proposal. The MitM attacker intercepts this traffic and replies with N(INVALID_KE_PAYLOAD) suggesting to downgrade to the backup Diffie-Hellman group instead. The initiator then resends the same SAi payload and the KEi payload containing the public value of the backup Diffie-Hellman group. Note that the attacker may forwards the second IKE_SA_INIT message only to the responder, and therefore at this point in time, the responder will not have any information that the initiator prefers the hybrid group. Of course, it is possible for the responder to have a policy to reject an IKE_SA_INIT message that (a) offers a hybrid group but not offering the corresponding public value in the KEi payload; and (b) the responder has not specifically acknowledged that it does not supported the requested hybrid group. We believe that while this approach saves us from sending a notify payload, it introduces unnecessary protocol complexity in mitigating downgrade attack. The downgrade issue can be easily mitigated by enforcing the initiator to always send a notify payload containing the full set of supported groups in each IKE_SA_INIT message.
.in 6
.ti 3
o New payload types to negotiate hybrid proposal and to carry post-quantum public value
Semantically, it makes sense to use a new payload type, which mimics the SA payload, to carry a hybrid proposal. Likewise, another new payload type that mimics the KE payload, could be used to transport hybrid public value. Although, in theory new payload type could be made backward compatible by not setting its critical flag as per Section 2.5 of RFC7296, we believe that it may not be that simple in practice. Since the original release of IKEv2 in RFC4306, no new payload type has ever been proposed and therefore, this creates a potential risk of having a backward compatibility issue from non-conforming RFC IKEv2 implementations. Since we could not see any other compelling advantages apart from a semantic one, we use notify payloads instead. In fact, as described above, we use notify payload to carry the hybrid proposal and reuse the existing KE payload to carry the hybrid public value.
.in 6
.ti 3
o Hybrid public value payload
One way to transport the negotiated hybrid public value, which contains one classical Diffie-Hellman public value and one or more post-quantum public value, is to bundle them into a single KE payload. Alternatively, it could also be transported on a single new hybrid public value payload, but following the same reasoning as the point above, this may be a good idea from backward compatibility perspective. Using a single KE payload would require an encoding or formating to be defined so that both peers are able to compose and extract the individual public values. However, we believe that it is cleaner to send the hybrid public value int multiple KE payloads--one for each group or algorithm. Furthermore, at this point the protocol exchange, both peers should have indicated support of handling multiple KE payloads.
.in 6
.ti 3
o Fragmentation
Handling of large IKE_SA_INIT messages has been one of the most challenging tasks in this design. A number of approaches have been considered and the two prominent ones that we have discarded are outlined as follows. The first approach is to treat the entire IKE_SA_INIT message as a stream of bytes, we then split it into a number of fragments, each of which is wrapped onto a payload that would fit into the size of the network MTU. The payload that wraps each fragment is a new payload type and it is envisaged that this new payload type will not cause backward compatibility issue because at this stage of the protocol, both peers should have indicated support of fragmentation in the first pass of the IKE_SA_INIT exchange. The negotiation of fragmentation is done over a notify payload, which also defines supporting parameters such as the size of fragment in octets and the fragment identifier. The new payload that wraps each fragment of the messages in this exchange is assigned the same fragment identifier. Furthermore, it also has other parameters such as fragment index and total number of fragments. The decision to discard this approach is due to its blanket approach to fragmentation. In cases where only a few payloads that need to be fragmented, we feel that this approach is overly complicated. [[@Graham: you had some idea round this, have I got your idea correctly? @Everyone I'm not that sure on the reasons why we discard it, so please feel free to amend this]]
Another idea that has been discarded is on fragmenting an individual payload without introducing a new payload type. The idea is to use the 9-th bit (the bit after the critical flag in the RESERVED field) in the generic payload header as a flag to mark that this payload is fragmented. As an example, if a KE payload is to be fragmented, it may look as follows.
.in 3
.nf
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Payload |C|F| RESERVED | Payload Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Diffie-Hellman Group Number | Fragment Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Fragment Index | Total Fragments |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Total KE Payload Data Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Fragmented KE Payload ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.fi
.in 6
When the flag F is set, it means the current KE payload is fragment of a larger KE payload. The Payload Length field denotes the size of this payload fragment in octets--including the size of the generic payload header. The two-octet RESERVED field following Diffie-Hellman Group Number is used as a fragment identifier to help assembly and disassembly of fragments. The Fragment Index and Total Fragments fields are self-explanatory. The Total KE Payload Data Length indicates the size of the assembled KE payload data in octets. Finally, the actual fragment is carried in Fragment KE Payload field. We believe that the working group may not be happy using the RESERVED field to change the format of a packet and that implementors may not like the complexity added from checking the fragmentation flag in each received payload.
.in 6
.ti 3
o Group subidentifier
As discussed in Section 3.4, each group identifier is used to distinguish a post-quantum algorithm. Further classification could be made on a particular post-quantum algorithm by assigning additional value alongside the group identifier. This subidentifier value may be used to assign different security parameter sets to a given post-quantum algorithm. However, this level of details does not fit the principles of the document where it should deal with generic hybrid key-exchange protocol, not a specific ciphersuite. Furthermore, there are enough Diffie-Hellman group identifiers should this be required in the future.
.in 6
.ti 3
o State Keeping in Downgrade Attack Protection
Another way of checking whether or not a downgrade attack is in effect is to have a responder to commit the state of the first-pass of the IKE_SA_INIT message onto memory or a temporary database. When the responder receives the second-pass of the exchange, it can verify it against the saved state to determine whether or not a downgrade attack is in effect. While this simple verification does offer protection against downgrade attack, it is susceptible to state exhaustion attack. While we do not discard this idea, it is RECOMMENDED to use the other two downgrade protection mechanisms described in Section 3.7.
.ti 0
6. Security considerations
The key length of the Encryption Algorithm (Transform Type 1), the
Pseudorandom Function (Transform Type 2) and the Integrity Algorithm
(Transform Type 3), all have to be of sufficient length to prevent
attacks using Grover's algorithm [GROVER]. In order to use the
extension proposed in this document, the key lengths of these
transforms SHALL be at least 256 bits long in order to prevent any
quantum attacks from succeeding. Accordingly the post-quantum
security level achieved is at least 128 bits.
SKEYSEED is calculated from shared, KEx, using an algorithm defined
in Transform Type 2.
While a quantum attacker may learn the value of KEx', if this value is
obtained by means of a classical key exchange, other KEx values generated
by means of a quantum-resistant algorithm ensure that SKEYSEED is not compromised.
This assumes that the algorithm defined in the Transform Type 2 is quantum-safe.
Because some quantum-safe public values are in the order of several
KB, a IKEv2 message that contains such a QSKE payload will exceed the
path Maximum Transmission Unit (MTU) and the message may be
fragmented at the IP level. This presents the possibility of an
attack vector that relies on IP fragmentation. One such attack
vector is to mount a denial of service by swamping a receiver with IP
fragments [DOSUDPPROT]. This issue could be mitigated by employing
TCP encapsulation [RFC8229].
The main focus of this document is to prevent a passive attacker performing a "harvest and decrypt" attack.
In other words, an attacker that records messages exchanges today and proceeds to decrypt them once he owns a quantum computer.
This attack is prevented due to the hybrid nature of the key exchange.
Other attacks involving an active attacker owning a quantum-computer are not solved by this document since
the authentication step remains classical.
In particular, the authenticity of the SAs established under IKEv2 is protected
using a pre-shared key, RSA, DSS, or ECDSA algorithms. Whilst the
pre-shared key option, provided the key is long enough, is quantum-
safe, the other algorithms are not. Moreover, in implementations
where scalability is a requirement, the pre-shared key method may not
be suitable. Quantum-safe authenticity may be provided by using a
quantum-safe digital signature and several quantum-safe digital
signature methods are being explored by IETF. For example the hash
based method, XMSS has the status of an Internet Draft, see [XMSS].
Currently, quantum-safe authentication methods are not specified in
this document, but are planned to be incorporated in due course.
It should be noted that the purpose of quantum-safe algorithms is to
prevent attacks, mounted in the future, from succeeding. The current
threat is that encrypted sessions may be subject to eavesdropping and
archived with decryption by quantum computers taking place at some
point in the future. Until quantum computers become available there
is no point in attacking the authenticity of a connection because
there are no possibilities for exploitation. These only occur at the
time of the connection, for example by mounting a MitM attack.
Consequently there is not such a pressing need for quantum-safe
authenticity.
The use of the QSKE provides an method for malicious parties to send
IKE_SA_INIT initiator messages containing QSKE of type KEM and with
random values. As the standard behavior is for the responder to
generate a random entity, encrypt it using the received public key
(which would be a random value), and sends the encrypted quantity to
the initiator in QSKEr payload. This allows for a simply method for
malicious parties to cause a VPN gateway to perform excessive
processing. To mitigate against this threat, implementations can
make use of the COOKIE notification as defined in [RFC7296], to
mitigate spoofed traffic and [RFC8019] to minimize the impact from
hosts who use their own IP address.
.ti 0
7. Appendix with flow of messages for corner cases
.ti 0
2. Text from the old design
.ti 0
2.1. Terminology
.fi
.in 12
.ti 3
KEM:
It stands for key encapsulation mechanism whereby key material
is transported using a public-key algorithm.
.ti 3
QSKE:
Denotes a quantum-safe key exchange payload, which is similar to
Key Exchange (KE) payload.
.ti 0
.ti 3
QSSS:
Denotes a quantum-safe shared secret (QSSS) established from QSKEi
and QSKEr payloads. This entity is similar to the Diffie-Hellman
shared secret g^ir as defined in RFC 7296.
.ti 0
.ti 3
Q-S Group:
.in 12
It stands for Quantum-Safe Group and it represents a quantum-safe
cryptography algorithm for key exchange. Each group corresponds
to an algorithm with a specific set of parameters.
.in 3
.fi
.ti 0
2.2. IKE_SA_INIT Exchange
The IKE_SA_INIT request and response pairs negotiate cryptographic
algorithms, exchange nonces and perform a key exchange for an IKE SA.
.in 6
.nf
Initiator Responder
--------------------------------------------------------------
HDR, SAi1, KEi, [QSKEi,]
Ni -->
.fi
.in 3
The initiator sends a QSKEi payload which contains parameters needed
to established a quantum-safe shared secret. The QSKEi payload is marked
as OPTIONAL so that it will be ignored by a responder
who does not understand it. In this particular case, the responder