draft-ietf-ipsecme-ikev2-multiple-ke-00.txt   draft-ietf-ipsecme-ikev2-multiple-ke-01.txt 
Internet Engineering Task Force (IETF) C. Tjhai Internet Engineering Task Force (IETF) C. Tjhai
Internet-Draft M. Tomlinson Internet-Draft M. Tomlinson
Updates: 7296 (if approved) Post-Quantum Updates: 7296 (if approved) Post-Quantum
Intended status: Standards Track G. Bartlett Intended status: Standards Track G. Bartlett
Expires: July 11, 2020 S. Fluhrer Expires: January 8, 2021 Quantum Secret
S. Fluhrer
Cisco Systems Cisco Systems
D. Van Geest D. Van Geest
ISARA Corporation ISARA Corporation
O. Garcia-Morchon O. Garcia-Morchon
Philips Philips
V. Smyslov V. Smyslov
ELVIS-PLUS ELVIS-PLUS
January 8, 2020 July 7, 2020
Multiple Key Exchanges in IKEv2 Multiple Key Exchanges in IKEv2
draft-ietf-ipsecme-ikev2-multiple-ke-00 draft-ietf-ipsecme-ikev2-multiple-ke-01
Abstract Abstract
This document describes how to extend the Internet Key Exchange This document describes how to extend the Internet Key Exchange
Protocol Version 2 (IKEv2) to allow multiple key exchanges to take Protocol Version 2 (IKEv2) to allow multiple key exchanges to take
place while computing of a shared secret during a Security place while computing a shared secret during a Security Association
Association (SA) setup. The primary application of this feature in (SA) setup. The primary application of this feature in IKEv2 is the
IKEv2 is the ability to perform one or more post-quantum key ability to perform one or more post-quantum key exchanges in
exchanges in conjunction with the classical (Elliptic Curve) Diffie- conjunction with the classical (Elliptic Curve) Diffie-Hellman key
Hellman key exchange, so that the resulting shared key is resistant exchange, so that the resulting shared key is resistant against
against quantum computer attacks. Another possible application is quantum computer attacks. Another possible application is the
the ability to combine several key exchanges in situations when no ability to combine several key exchanges in situations when no single
single key exchange algorithm is trusted by both initiator and key exchange algorithm is trusted by both initiator and responder.
responder.
This document updates RFC7296 by renaming a tranform type 4 from This document updates RFC7296 by renaming a transform type 4 from
"Diffie-Hellman Group (D-H)" to "Key Exchange Method (KE)" and "Diffie-Hellman Group (D-H)" to "Key Exchange Method (KE)" and
renaming a field in the Key Exchange Payload from "Diffie-Hellman renaming a field in the Key Exchange Payload from "Diffie-Hellman
Group Num" to "Key Exchange Method". It also renames an IANA Group Num" to "Key Exchange Method". It also renames an IANA
registry for this transform type from "Transform Type 4 - Diffie- registry for this transform type from "Transform Type 4 - Diffie-
Hellman Group Transform IDs" to "Transform Type 4 - Key Exchange Hellman Group Transform IDs" to "Transform Type 4 - Key Exchange
Method Transform IDs". These changes generalize key exchange Method Transform IDs". These changes generalize key exchange
algorithms that can be used in IKEv2. algorithms that can be used in IKEv2.
Status of This Memo Status of This Memo
skipping to change at page 2, line 12 skipping to change at page 2, line 12
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 11, 2020. This Internet-Draft will expire on January 8, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 38 skipping to change at page 2, line 38
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Problem Description . . . . . . . . . . . . . . . . . . . 3 1.1. Problem Description . . . . . . . . . . . . . . . . . . . 3
1.2. Proposed Extension . . . . . . . . . . . . . . . . . . . 3 1.2. Proposed Extension . . . . . . . . . . . . . . . . . . . 3
1.3. Changes . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3. Changes . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Document Organization . . . . . . . . . . . . . . . . . . 5 1.4. Document Organization . . . . . . . . . . . . . . . . . . 5
2. Design Criteria . . . . . . . . . . . . . . . . . . . . . . . 6 2. Design Criteria . . . . . . . . . . . . . . . . . . . . . . . 6
3. Multiple Key Exchanges . . . . . . . . . . . . . . . . . . . 8 3. Multiple Key Exchanges . . . . . . . . . . . . . . . . . . . 8
3.1. Overall design . . . . . . . . . . . . . . . . . . . . . 8 3.1. Overall Design . . . . . . . . . . . . . . . . . . . . . 8
3.2. Overall Protocol . . . . . . . . . . . . . . . . . . . . 9 3.2. Overall Protocol . . . . . . . . . . . . . . . . . . . . 9
3.2.1. IKE_SA_INIT Round: Negotiation . . . . . . . . . . . 10 3.2.1. IKE_SA_INIT Round: Negotiation . . . . . . . . . . . 10
3.2.2. IKE_INTERMEDIATE Round: Additional Key Exchanges . . 11 3.2.2. IKE_INTERMEDIATE Round: Additional Key Exchanges . . 11
3.2.3. IKE_AUTH Exchange . . . . . . . . . . . . . . . . . . 12 3.2.3. IKE_AUTH Exchange . . . . . . . . . . . . . . . . . . 12
3.2.4. CREATE_CHILD_SA Exchange . . . . . . . . . . . . . . 12 3.2.4. CREATE_CHILD_SA Exchange . . . . . . . . . . . . . . 12
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
5. Security Considerations . . . . . . . . . . . . . . . . . . . 16 5. Security Considerations . . . . . . . . . . . . . . . . . . . 16
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.1. Normative References . . . . . . . . . . . . . . . . . . 17 7.1. Normative References . . . . . . . . . . . . . . . . . . 17
7.2. Informative References . . . . . . . . . . . . . . . . . 18 7.2. Informative References . . . . . . . . . . . . . . . . . 18
Appendix A. Alternative Design . . . . . . . . . . . . . . . . . 18 Appendix A. Alternative Design . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22
1. Introduction 1. Introduction
1.1. Problem Description 1.1. Problem Description
Internet Key Exchange Protocol (IKEv2) as specified in [RFC7296] uses Internet Key Exchange Protocol (IKEv2) as specified in [RFC7296] uses
the Diffie-Hellman (DH) or Elliptic Curve Diffie-Hellman (ECDH) the Diffie-Hellman (DH) or Elliptic Curve Diffie-Hellman (ECDH)
algorithm to establish a shared secret between an initiator and a algorithm to establish a shared secret between an initiator and a
responder. The security of the DH and ECDH algorithms relies on the responder. The security of the DH and ECDH algorithms relies on the
difficulty to solve a discrete logarithm problem in multiplicative difficulty to solve a discrete logarithm problem in multiplicative
and elliptic curve groups respectively when the order of the group and elliptic curve groups respectively when the order of the group
parameter is large enough. While solving such a problem remains parameter is large enough. While solving such a problem remains
difficult with current computing power, it is believed that general difficult with current computing power, it is believed that general
purpose quantum computers will be able to solve this problem, purpose quantum computers will be able to solve this problem,
implying that the security of IKEv2 is compromised. There are, implying that the security of IKEv2 is compromised. There are,
however, a number of cryptosystems that are conjectured to be however, a number of cryptosystems that are conjectured to be
resistant against quantum computer attack. This family of resistant against quantum computer attack. This family of
cryptosystems are known as post-quantum cryptography (PQC). It is cryptosystems is known as post-quantum cryptography (PQC). It is
sometimes also referred to as quantum-safe cryptography (QSC) or sometimes also referred to as quantum-safe cryptography (QSC) or
quantum-resistant cryptography (QRC). quantum-resistant cryptography (QRC).
1.2. Proposed Extension 1.2. Proposed Extension
This document describes a method to perform multiple successive key This document describes a method to perform multiple successive key
exchanges in IKEv2. It allows integration of QSC in IKEv2, while exchanges in IKEv2. It allows integration of QSC in IKEv2, while
maintaining backwards compatibility, to derive a set of IKE keys that maintaining backwards compatibility, to derive a set of IKE keys that
is resistant to quantum computer attacks. This extension allows the is resistant to quantum computer attacks. This extension allows the
negotiation of one or more QSC algorithm to exchange data, in negotiation of one or more QSC algorithm to exchange data, in
addition to the existing DH or ECDH key exchange data. We believe addition to the existing DH or ECDH key exchange data. We believe
that the feature of using more than one post-quantum algorithm is that the feature of using more than one post-quantum algorithms is
important as many of these algorithms are relatively new and there important as many of these algorithms are relatively new and there
may be a need to hedge the security risk with multiple key exchange may be a need to hedge the security risk with multiple key exchange
data from several distinct QSC algorithms. data from several distinct QSC algorithms.
The secrets established from each key exchange are combined in a way The secrets established from each key exchange are combined in a way
such that should the post-quantum secrets not be present, the derived such that should the post-quantum secrets not be present, the derived
shared secret is equivalent to that of the standard IKEv2; on the shared secret is equivalent to that of the standard IKEv2; on the
other hand, a post-quantum shared secret is obtained if both other hand, a post-quantum shared secret is obtained if both
classical and post-quantum key exchange data are present. This classical and post-quantum key exchange data are present. This
extension also applies to key exchanges in IKE Security Associations extension also applies to key exchanges in IKE Security Associations
(SAs) for Encapsulating Security Payload (ESP) [RFC4303] or (SAs) for Encapsulating Security Payload (ESP) [RFC4303] or
Authentication Header (AH) [RFC4302], i.e. Child SAs, in order to Authentication Header (AH) [RFC4302], i.e. Child SAs, in order to
provide a stronger guarantee of forward security. provide a stronger guarantee of forward security.
Some post-quantum key exchange payloads may have size larger than the Some post-quantum key exchange payloads may have sizes larger than
standard maximum transmission unit (MTU) size, and therefore there the standard maximum transmission unit (MTU) size, and therefore
could be issues with fragmentation at IP layer. IKE does allow there could be issues with fragmentation at the IP layer. IKE does
transmission over TCP where fragmentation is not an issue [RFC8229]; allow transmission over TCP where fragmentation is not an issue
however, we believe that a UDP-based solution will be required too. [RFC8229]; however, we believe that a UDP-based solution will be
required too. IKE does have a mechanism to handle fragmentation
IKE does have a mechanism to handle fragmentation within UDP within UDP [RFC7383], however that is only applicable to messages
[RFC7383], however that is only applicable to messages exchanged exchanged after the IKE_SA_INIT. To use this mechanism, this
after the IKE_SA_INIT. To use this mechanism, this specification specification relies on the IKE_INTERMEDIATE exchange as outlined in
relies on the IKE_INTERMEDIATE exchange as outlined in
[I-D.ietf-ipsecme-ikev2-intermediate]. With this mechanism, we do an [I-D.ietf-ipsecme-ikev2-intermediate]. With this mechanism, we do an
initial key exchange, using a smaller, possibly non-quantum resistant initial key exchange, using a smaller, possibly non-quantum resistant
primitive, such as ECDH. Then, before we do the IKE_AUTH exchange, primitive, such as ECDH. Then, before we do the IKE_AUTH exchange,
we perform one or more IKE_INTERMEDIATE exchanges, each of which we perform one or more IKE_INTERMEDIATE exchanges, each of which
contains an additional key exchange. As the IKE_INTERMEDIATE contains an additional key exchange. As the IKE_INTERMEDIATE
exchange is encrypted, the IKE fragmentation protocol [RFC7383] can exchange is encrypted, the IKE fragmentation protocol [RFC7383] can
be used. The IKE SK_* values are updated after each exchange, and so be used. The IKE SK_* values are updated after each exchange, and so
the final IKE SA keys depend on all the key exchanges, hence they are the final IKE SA keys depend on all the key exchanges, hence they are
secure if any of the key exchanges are secure. secure if any of the key exchanges are secure.
Note that readers should consider the approach defined in this Note that readers should consider the approach defined in this
document as providing a long term solution in upgrading the IKEv2 document as providing a long term solution in upgrading the IKEv2
protocol to support post-quantum algorithms. A short term solution protocol to support post-quantum algorithms. A short term solution
to make IKEv2 key exchange quantum secure is to use post-quantum pre- to make IKEv2 key exchange quantum secure is to use post-quantum pre-
shared keys as discussed in [I-D.ietf-ipsecme-qr-ikev2]. shared keys as discussed in [RFC8784].
Note also, that the proposed approach of performing multiple Note also, that the proposed approach of performing multiple
successive key exchanges in such a way that resulting session keys successive key exchanges in such a way that resulting session keys
depend on all of them is not limited to achieving quantum resistance depend on all of them is not limited to achieving quantum resistance
only. It can also be used when all the performed key exchanges are only. It can also be used when all the performed key exchanges are
classical (EC)DH ones, but for some reasons (e.g. policy classical (EC)DH ones, where for some reasons (e.g. policy
requirements) it is essential to perform multiple of them. requirements) it is essential to perform multiple of them.
1.3. Changes 1.3. Changes
RFC EDITOR PLEASE DELETE THIS SECTION. RFC EDITOR PLEASE DELETE THIS SECTION.
Changes in this draft in each version iterations. Changes in this draft in each version iterations.
draft-ietf-ipsecme-ikev2-multiple-ke-01
o References are updated.
draft-ietf-ipsecme-ikev2-multiple-ke-00 draft-ietf-ipsecme-ikev2-multiple-ke-00
o Draft name changed as result of WG adoption and generalization of o Draft name changed as result of WG adoption and generalization of
the approach. the approach.
o New exchange IKE_FOLLOWUP_KE is defined for additional key o New exchange IKE_FOLLOWUP_KE is defined for additional key
exchanges performed after CREATE_CHILD_SA. exchanges performed after CREATE_CHILD_SA.
o Nonces are removed from all additional key exchanges. o Nonces are removed from all additional key exchanges.
o Clarification that IKE_INTERMEDIATE must be negotiated is added. o Clarification that IKE_INTERMEDIATE must be negotiated is added.
draft-tjhai-ipsecme-hybrid-qske-ikev2-04
o Clarification about key derivation in case of multiple key o Clarification about key derivation in case of multiple key
exchanges in CREATE_CHILD_SA is added. exchanges in CREATE_CHILD_SA is added.
o Resolving rekey collisions in case of multiple key exchanges is o Resolving rekey collisions in case of multiple key exchanges is
clarified. clarified.
draft-tjhai-ipsecme-hybrid-qske-ikev2-03 draft-tjhai-ipsecme-hybrid-qske-ikev2-03
o Using multiple key exchanges CREATE_CHILD_SA is defined. o Using multiple key exchanges CREATE_CHILD_SA is defined.
skipping to change at page 6, line 30 skipping to change at page 6, line 30
is available (e.g., year Q) if key negotiation only relies on is available (e.g., year Q) if key negotiation only relies on
non post-quantum primitives. This is a high threat for any non post-quantum primitives. This is a high threat for any
information that must remain confidential for a long period of information that must remain confidential for a long period of
time T > Q-D. The need is obvious if we assume that Q is 2040, 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 D is 2020, and T is 30 years. Such a value of T is typical in
classified or healthcare data. classified or healthcare data.
2) Hybrid. Currently, there does not exist a post-quantum key 2) Hybrid. Currently, there does not exist a post-quantum key
exchange that is trusted at the level that ECDH is trusted exchange that is trusted at the level that ECDH is trusted
against conventional (non-quantum) adversaries. A hybrid post- against conventional (non-quantum) adversaries. A hybrid post-
quantum algorithms to be introduced next to well-established quantum algorithm to be introduced next to well-established
primitives, since the overall security is at least as strong as primitives, since the overall security is at least as strong as
each individual primitive. each individual primitive.
3) Focus on quantum-resistant confidentiality. A passive attacker 3) Focus on quantum-resistant confidentiality. A passive attacker
can eavesdrop on IPsec communication today and decrypt it once a can eavesdrop on IPsec communication today and decrypt it once a
quantum computer is available in the future. This is a very quantum computer is available in the future. This is a very
serious attack for which we do not have a solution. An attacker serious attack for which we do not have a solution. An attacker
can only perform active attacks such as impersonation of the can only perform active attacks such as impersonation of the
communicating peers once a quantum computer is available, communicating peers once a quantum computer is available,
sometime in the future. Thus, our design focuses on quantum- sometime in the future. Thus, our design focuses on quantum-
skipping to change at page 7, line 6 skipping to change at page 7, line 6
4) Limit amount of exchanged data. The protocol design should be 4) Limit amount of exchanged data. The protocol design should be
such that the amount of exchanged data, such as public-keys, is such that the amount of exchanged data, such as public-keys, is
kept as small as possible even if initiator and responder need kept as small as possible even if initiator and responder need
to agree on a hybrid group or multiple public-keys need to be to agree on a hybrid group or multiple public-keys need to be
exchanged. exchanged.
5) Future proof. Any cryptographic algorithm could be potentially 5) Future proof. Any cryptographic algorithm could be potentially
broken in the future by currently unknown or impractical broken in the future by currently unknown or impractical
attacks: quantum computers are merely the most concrete example attacks: quantum computers are merely the most concrete example
of this. The design does not categorize algorithms as "post- of this. The design does not categorize algorithms as "post-
quantum" or "non post-quantum" and does not create assumptions quantum" or "non post-quantum" nor does it create assumptions
about the properties of the algorithms, meaning that if about the properties of the algorithms, meaning that if
algorithms with different properties become necessary in the algorithms with different properties become necessary in the
future, this extension can be used unchanged to facilitate future, this extension can be used unchanged to facilitate
migration to those algorithms. migration to those algorithms.
6) Limited amount of changes. A key goal is to limit the number of 6) Limited amount of changes. A key goal is to limit the number of
changes required when enabling a post-quantum handshake. This changes required when enabling a post-quantum handshake. This
ensures easier and quicker adoption in existing implementations. ensures easier and quicker adoption in existing implementations.
7) Localized changes. Another key requirement is that changes to 7) Localized changes. Another key requirement is that changes to
skipping to change at page 7, line 33 skipping to change at page 7, line 33
based on algorithms that both client and server wish to support. based on algorithms that both client and server wish to support.
9) Fragmentation support. Some PQC algorithms could be relatively 9) Fragmentation support. Some PQC algorithms could be relatively
bulky and they might require fragmentation. Thus, a design goal bulky and they might require fragmentation. Thus, a design goal
is the adaptation and adoption of an existing fragmentation is the adaptation and adoption of an existing fragmentation
method or the design of a new method that allows for the method or the design of a new method that allows for the
fragmentation of the key shares. fragmentation of the key shares.
10) Backwards compatibility and interoperability. This is a 10) Backwards compatibility and interoperability. This is a
fundamental requirement to ensure that hybrid post-quantum IKEv2 fundamental requirement to ensure that hybrid post-quantum IKEv2
and a non-post-quantum IKEv2 implementations are interoperable. and non-post-quantum IKEv2 implementations are interoperable.
11) Federal Information Processing Standards (FIPS) compliance. 11) Federal Information Processing Standards (FIPS) compliance.
IPsec is widely used in Federal Information Systems and FIPS IPsec is widely used in Federal Information Systems and FIPS
certification is an important requirement. However, algorithms certification is an important requirement. However, algorithms
that are believed to be post-quantum are not FIPS compliant yet. that are believed to be post-quantum are not FIPS compliant yet.
Still, the goal is that the overall hybrid post-quantum IKEv2 Still, the goal is that the overall hybrid post-quantum IKEv2
design can be FIPS compliant. design can be FIPS compliant.
12) Ability to use this method with multiple classical (EC)DH key 12) Ability to use this method with multiple classical (EC)DH key
exchanges. In some situations peers have no single mutually exchanges. In some situations peers have no single mutually
trusted key exchange algorithm (e.g., due to local policy trusted key exchange algorithm (e.g., due to local policy
restrictions). The ability to combine two (or more) key restrictions). The ability to combine two (or more) key
exchange methods in such a way that the resulting shared key exchange methods in such a way that the resulting shared key
depends on all of them allows peers to communicate in this depends on all of them allows peers to communicate in this
situation. situation.
3. Multiple Key Exchanges 3. Multiple Key Exchanges
3.1. Overall design 3.1. Overall Design
This design assigns new Transform Type 4 identifiers to the various This design assigns new Transform Type 4 identifiers to the various
post-quantum key exchanges (which will be defined later). We post-quantum key exchanges (which will be defined later). We
specifically do not make a distinction between classical (DH and specifically do not make a distinction between classical (DH and
ECDH) and post-quantum key exchanges, nor post-quantum algorithms ECDH) and post-quantum key exchanges, nor post-quantum algorithms
which are true key exchanges versus post-quantum algorithms that act which are true key exchanges versus post-quantum algorithms that act
as key transport mechanisms; all are treated equivalently by the as key transport mechanisms; all are treated equivalently by the
protocol. To be more specific, this document renames Transform Type protocol. To be more specific, this document renames Transform Type
4 from "Diffie-Hellman Group (D-H)" to "Key Exchange Method (KE)" and 4 from "Diffie-Hellman Group (D-H)" to "Key Exchange Method (KE)" and
renames a field in the Key Exchange Payload from "Diffie-Hellman renames a field in the Key Exchange Payload from "Diffie-Hellman
skipping to change at page 8, line 33 skipping to change at page 8, line 33
that may have long public keys, the proposed framework utilizes the that may have long public keys, the proposed framework utilizes the
IKE_INTERMEDIATE exchange defined in IKE_INTERMEDIATE exchange defined in
[I-D.ietf-ipsecme-ikev2-intermediate]. [I-D.ietf-ipsecme-ikev2-intermediate].
In order to minimize communication overhead, only the key shares that In order to minimize communication overhead, only the key shares that
are agreed to be used are actually exchanged. In order to achieve are agreed to be used are actually exchanged. In order to achieve
this several new Transform Types are defined, each sharing possible this several new Transform Types are defined, each sharing possible
Transform IDs with Transform Type 4. The IKE_SA_INIT message Transform IDs with Transform Type 4. The IKE_SA_INIT message
includes one or more newly defined SA transforms that lists the extra includes one or more newly defined SA transforms that lists the extra
key exchange policy required by the initiator; the responder selects key exchange policy required by the initiator; the responder selects
single transform of each type, and returns them back in the response a single transform of each type, and returns them in the response
IKE_SA_INIT message. Then, provided that additional key exchanges IKE_SA_INIT message. Then, provided that additional key exchanges
are negotiated the initiator and the responder perform one or more are negotiated, the initiator and the responder perform one or more
IKE_INTERMEDIATE exchanges; each such exchange includes a KE payload IKE_INTERMEDIATE exchanges; each such exchange includes a KE payload
for one of the negotiated key exchanges. for one of the negotiated key exchanges.
Here is an overview of the initial exchanges: Here is an overview of the initial exchanges:
Initiator Responder Initiator Responder
--------------------------------------------------------------------- ---------------------------------------------------------------------
<-- IKE_SA_INIT (additional key exchanges negotiation) --> <-- IKE_SA_INIT (additional key exchanges negotiation) -->
<-- {IKE_INTERMEDIATE (additional key exchange)} --> <-- {IKE_INTERMEDIATE (additional key exchange)} -->
skipping to change at page 9, line 14 skipping to change at page 9, line 14
The additional key exchanges may use algorithms that are currently The additional key exchanges may use algorithms that are currently
considered to be resistant to quantum computer attacks. These considered to be resistant to quantum computer attacks. These
algorithms are collectively referred to as post-quantum algorithms in algorithms are collectively referred to as post-quantum algorithms in
this document. However, it is also possible to use classical (EC)DH this document. However, it is also possible to use classical (EC)DH
primitives for non post-quantum requirements. primitives for non post-quantum requirements.
Most post-quantum key agreement algorithms are relatively new, and Most post-quantum key agreement algorithms are relatively new, and
thus are not fully trusted. There are also many proposed algorithms, thus are not fully trusted. There are also many proposed algorithms,
with different trade-offs and relying on different hard problems. with different trade-offs and relying on different hard problems.
The concern is that some of these hard problems may turn out to be The concern is that some of these hard problems may turn out to be
easier to solve than anticipated (and thus the key agreement easier to solve than anticipated and thus the key agreement algorithm
algorithm not be as secure as expected). A hybrid solution allows us may not be as secure as expected. A hybrid solution allows us to
to deal with this uncertainty by combining a classical key exchange deal with this uncertainty by combining a classical key exchange with
with a post-quantum one, as well as leaving open the possibility of a post-quantum one, as well as leaving open the possibility of
multiple post-quantum key exchanges. multiple post-quantum key exchanges.
The method that we use to perform additional key exchanges also The method that we use to perform additional key exchanges also
addresses the fragmentation issue. The initial IKE_INIT messages do addresses the fragmentation issue. The initial IKE_INIT messages do
not have any inherent fragmentation support within IKE; however that not have any inherent fragmentation support within IKE; however that
can include a relatively short KE payload (e.g. one for group 14, 19 can include a relatively short KE payload (e.g. one for group 14, 19
or 31). The rest of the KE payloads are encrypted within or 31). The rest of the KE payloads are encrypted within
IKE_INTERMEDIATE messages; because they are encrypted, the standard IKE_INTERMEDIATE messages; because they are encrypted, the standard
IKE fragmentation solution [RFC7383] is available. IKE fragmentation solution [RFC7383] is available.
skipping to change at page 10, line 22 skipping to change at page 10, line 22
mechanism, via SA payload. For this purpose several new transform mechanism, via SA payload. For this purpose several new transform
types, namely Additional Key Exchange 1, Additional Key Exchange 2, types, namely Additional Key Exchange 1, Additional Key Exchange 2,
Additional Key Exchange 3, etc., are defined. They are collectively Additional Key Exchange 3, etc., are defined. They are collectively
called Additional Key Exchanges and have slightly different semantics called Additional Key Exchanges and have slightly different semantics
than existing IKEv2 transform types. They are interpreted as than existing IKEv2 transform types. They are interpreted as
additional key exchanges that peers agreed to perform in a series of additional key exchanges that peers agreed to perform in a series of
IKE_INTERMEDIATE exchanges. The possible transform IDs for these IKE_INTERMEDIATE exchanges. The possible transform IDs for these
transform types are the same as IDs for the Transform Type 4, so they transform types are the same as IDs for the Transform Type 4, so they
all share a single IANA registry for transform IDs. all share a single IANA registry for transform IDs.
Key exchange method negotiated via Transform Type 4 MUST always take Key exchange methods negotiated via Transform Type 4 MUST always take
place in the IKE_SA_INIT exchange. Additional key exchanges place in the IKE_SA_INIT exchange. Additional key exchanges
negotiated via newly defined transforms MUST take place in a series negotiated via newly defined transforms MUST take place in a series
of IKE_INTERMEDIATE exchanges, in an order of the values of their of IKE_INTERMEDIATE exchanges, in an order of the values of their
transform types, so that key exchange negotiated using Transform Type transform types, so that key exchange negotiated using Transform Type
n always precedes that of Transform Type n + 1. Each n always precedes that of Transform Type n + 1. Each
IKE_INTERMEDIATE exchange MUST bear exactly one key exchange method. IKE_INTERMEDIATE exchange MUST bear exactly one key exchange method.
Note that with this semantics, Additional Key Exchanges transforms Note that with this semantics, Additional Key Exchanges transforms
are not associated with any particular type of key exchange and don't are not associated with any particular type of key exchange and do
have any specific per transform type transform IDs IANA registry. not have any specific per transform type transform IDs IANA registry.
Instead they all share a single registry for transform IDs - "Key Instead they all share a single registry for transform IDs - "Key
Exchange Method Transform IDs", as well as Transform Type 4. All new Exchange Method Transform IDs", as well as Transform Type 4. All new
key exchange algorithms (both classical or post-quantum) should be key exchange algorithms (both classical or post-quantum) should be
added to this registry. This approach gives peers flexibility in added to this registry. This approach gives peers flexibility in
defining the ways they want to combine different key exchange defining the ways they want to combine different key exchange
methods. methods.
When forming a proposal the initiator adds transforms for the When forming a proposal the initiator adds transforms for the
IKE_SA_INIT exchange using Transform Type 4. In most cases they will IKE_SA_INIT exchange using Transform Type 4. In most cases they will
contain classical key exchange methods (DH or ECDH), however it is contain classical key exchange methods (DH or ECDH), however it is
skipping to change at page 11, line 10 skipping to change at page 11, line 10
n is among Additional Key Exchanges) in the proposal, the responder n is among Additional Key Exchanges) in the proposal, the responder
MUST select one of the algorithms proposed using this type. A MUST select one of the algorithms proposed using this type. A
transform ID NONE may be added to those transform types which contain transform ID NONE may be added to those transform types which contain
key exchange methods that the initiator believes are optional. key exchange methods that the initiator believes are optional.
If the initiator includes any Additional Key Exchanges transform If the initiator includes any Additional Key Exchanges transform
types into SA payload, it MUST also negotiate using IKE_INTERMEDIATE types into SA payload, it MUST also negotiate using IKE_INTERMEDIATE
exchange as described in [I-D.ietf-ipsecme-ikev2-intermediate], by exchange as described in [I-D.ietf-ipsecme-ikev2-intermediate], by
including INTERMEDIATE_EXCHANGE_SUPPORTED notification in the including INTERMEDIATE_EXCHANGE_SUPPORTED notification in the
IKE_SA_INIT request message. If the responder agrees to use IKE_SA_INIT request message. If the responder agrees to use
additional key exchanges, it MUST also return back this notification, additional key exchanges, it MUST also return this notification, thus
thus confirming that IKE_INTERMEDIATE exchange is supported and will confirming that IKE_INTERMEDIATE exchange is supported and will be
be used for transferring additional key exchange data. Presence of used for transferring additional key exchange data. The presence of
Additional Key Exchanges transform types in SA payload without Additional Key Exchanges transform types in SA payload without
negotiation of using IKE_INTERMEDIATE exchange MUST be treated as negotiation of using IKE_INTERMEDIATE exchange MUST be treated as
protocol error by both initiator and responder. protocol error by both initiator and responder.
The responder performs negotiation using standard IKEv2 procedure The responder performs negotiation using standard IKEv2 procedure
described in Section 3.3 of [RFC7296]. However, for the Additional described in Section 3.3 of [RFC7296]. However, for the Additional
Key Exchange types the responder's choice MUST NOT contain equal Key Exchange types the responder's choice MUST NOT contain equal
transform IDs (apart from NONE), and the ID selected for Transform transform IDs (apart from NONE), and the ID selected for Transform
Type 4 MUST NOT appear in any of Additional Key Exchange transforms. Type 4 MUST NOT appear in any of Additional Key Exchange transforms.
In other words, all selected key exchange methods must be different. In other words, all selected key exchange methods must be different.
skipping to change at page 12, line 10 skipping to change at page 12, line 10
not modified. not modified.
Once this exchange is done, then both sides compute an updated keying Once this exchange is done, then both sides compute an updated keying
material: material:
SKEYSEED(n) = prf(SK_d(n-1), KE(n) | Ni | Nr) SKEYSEED(n) = prf(SK_d(n-1), KE(n) | Ni | Nr)
where KE(n) is the resulting shared secret of this key exchange, Ni where KE(n) is the resulting shared secret of this key exchange, Ni
and Nr are nonces from the IKE_SA_INIT exchange and SK_d(n-1) is the and Nr are nonces from the IKE_SA_INIT exchange and SK_d(n-1) is the
last generated SK_d, (derived from the previous IKE_INTERMEDIATE last generated SK_d, (derived from the previous IKE_INTERMEDIATE
exchange, or the IKE_SA_INIT if there haven't already been any exchange, or the IKE_SA_INIT if there have not already been any
IKE_INTERMEDIATE exchanges). Then, SK_d, SK_ai, SK_ar, SK_ei, SK_er, IKE_INTERMEDIATE exchanges). Then, SK_d, SK_ai, SK_ar, SK_ei, SK_er,
SK_pi, SK_pr are updated as: SK_pi, SK_pr are updated as:
{SK_d(n) | SK_ai(n) | SK_ar(n) | SK_ei(n) | SK_er(n) | SK_pi(n) | {SK_d(n) | SK_ai(n) | SK_ar(n) | SK_ei(n) | SK_er(n) | SK_pi(n) |
SK_pr(n)} = prf+ (SKEYSEED(n), Ni | Nr | SPIi | SPIr) SK_pr(n)} = prf+ (SKEYSEED(n), Ni | Nr | SPIi | SPIr)
Both the initiator and the responder use this updated key values in Both the initiator and the responder use these updated key values in
the next exchange. the next exchange.
3.2.3. IKE_AUTH Exchange 3.2.3. IKE_AUTH Exchange
After all IKE_INTERMEDIATE exchanges have completed, the initiator After all IKE_INTERMEDIATE exchanges have completed, the initiator
and the responder perform an IKE_AUTH exchange. This exchange is the and the responder perform an IKE_AUTH exchange. This exchange is the
standard IKE exchange, except that the initiator and responder signed standard IKE exchange, except that the initiator and responder signed
octets are modified as described in octets are modified as described in
[I-D.ietf-ipsecme-ikev2-intermediate]. [I-D.ietf-ipsecme-ikev2-intermediate].
3.2.4. CREATE_CHILD_SA Exchange 3.2.4. CREATE_CHILD_SA Exchange
The CREATE_CHILD_SA exchange is used in IKEv2 for the purpose of The CREATE_CHILD_SA exchange is used in IKEv2 for the purpose of
creating additional Child SAs, rekeying them and rekeying IKE SA creating additional Child SAs, rekeying them and rekeying IKE SA
itself. When creating or rekeying Child SAs, the peers may itself. When creating or rekeying Child SAs, the peers may
optionally perform a Diffie-Hellmann key exchange to add a fresh optionally perform a Diffie-Hellman key exchange to add a fresh
entropy into the session keys. In case of IKE SA rekey, the key entropy into the session keys. In case of IKE SA rekey, the key
exchange is mandatory. exchange is mandatory.
If the IKE SA was created using multiple key exchange methods, the If the IKE SA was created using multiple key exchange methods, the
peers may want to continue using multiple key exchanges in the peers may want to continue using multiple key exchanges in the
CREATE_CHILD_SA exchange too. If the initiator includes any CREATE_CHILD_SA exchange too. If the initiator includes any
Additional Key Exchanges transform in the SA payload (along with Additional Key Exchanges transform in the SA payload (along with
Transform Type 4) and the responder agrees to perform additional key Transform Type 4) and the responder agrees to perform additional key
exchanges, then the additional key exchanges are performed in a exchanges, then the additional key exchanges are performed in a
series of new IKE_FOLLOWUP_KE exchanges that follows the series of new IKE_FOLLOWUP_KE exchanges that follows the
skipping to change at page 13, line 19 skipping to change at page 13, line 19
to link the IKE_FOLLOWUP_KE exchanges together and with the to link the IKE_FOLLOWUP_KE exchanges together and with the
corresponding CREATE_CHILD_SA exchange. A new status type corresponding CREATE_CHILD_SA exchange. A new status type
notification ADDITIONAL_KEY_EXCHANGE is used for this purpose. Its notification ADDITIONAL_KEY_EXCHANGE is used for this purpose. Its
Notify Message Type is <TBA by IANA>, Protocol ID and SPI Size are Notify Message Type is <TBA by IANA>, Protocol ID and SPI Size are
both set to 0. The data associated with this notification is a blob both set to 0. The data associated with this notification is a blob
meaningful only to the responder, so that the responder can correctly meaningful only to the responder, so that the responder can correctly
link successive exchanges. For the initiator the content of this link successive exchanges. For the initiator the content of this
notification is an opaque blob. notification is an opaque blob.
The responder MUST include this notification in a CREATE_CHILD_SA or The responder MUST include this notification in a CREATE_CHILD_SA or
IKE_FOLLOWUP_KE response message in case next exchange is expected, IKE_FOLLOWUP_KE response message in case the next exchange is
filling it with some data that would allow linking this exchange to expected, filling it with some data that would allow linking this
the next one. The initiator MUST copy the received notification with exchange to the next one. The initiator MUST copy the received
its content intact into the request message of the next exchange. notification with its content intact into the request message of the
next exchange.
Below is an example of three additional key exchanges. Below is an example of three additional key exchanges.
Initiator Responder Initiator Responder
--------------------------------------------------------------------- ---------------------------------------------------------------------
HDR(CREATE_CHILD_SA), SK {SA, Ni, KEi} --> HDR(CREATE_CHILD_SA), SK {SA, Ni, KEi} -->
<-- HDR(CREATE_CHILD_SA), SK {SA, Nr, KEr, <-- HDR(CREATE_CHILD_SA), SK {SA, Nr, KEr,
N(ADDITIONAL_KEY_EXCHANGE)(link1)} N(ADDITIONAL_KEY_EXCHANGE)(link1)}
HDR(IKE_FOLLOWUP_KE), SK {KEi(1), HDR(IKE_FOLLOWUP_KE), SK {KEi(1),
N(ADDITIONAL_KEY_EXCHANGE)(link1)} --> N(ADDITIONAL_KEY_EXCHANGE)(link1)} -->
<-- HDR(IKE_FOLLOWUP_KE), SK {KEr(1), <-- HDR(IKE_FOLLOWUP_KE), SK {KEr(1),
N(ADDITIONAL_KEY_EXCHANGE)(link2)} N(ADDITIONAL_KEY_EXCHANGE)(link2)}
HDR(IKE_FOLLOWUP_KE), SK {KEi(2), HDR(IKE_FOLLOWUP_KE), SK {KEi(2),
N(ADDITIONAL_KEY_EXCHANGE)(link2)} --> N(ADDITIONAL_KEY_EXCHANGE)(link2)} -->
<-- HDR(IKE_FOLLOWUP_KE), SK {KEr(2), <-- HDR(IKE_FOLLOWUP_KE), SK {KEr(2),
N(ADDITIONAL_KEY_EXCHANGE)(link3)} N(ADDITIONAL_KEY_EXCHANGE)(link3)}
HDR(IKE_FOLLOWUP_KE), SK {KEi(3), HDR(IKE_FOLLOWUP_KE), SK {KEi(3),
N(ADDITIONAL_KEY_EXCHANGE)(link3)} --> N(ADDITIONAL_KEY_EXCHANGE)(link3)} -->
<-- HDR(IKE_FOLLOWUP_KE), SK {KEr(3)} <-- HDR(IKE_FOLLOWUP_KE), SK {KEr(3)}
The former "Diffie-Hellman Group Num" (now called "Key Exchange The former "Diffie-Hellman Group Num" (now called "Key Exchange
Method") field in the KEi(n) and KEr(n) payloads MUST match the n-th Method") field in the KEi(n) and KEr(n) payloads MUST match the n-th
negotiated additional key exchange. negotiated additional key exchange.
It is possible that due to some unexpected events (e.g. reboot) the It is possible that due to some unexpected events (e.g. reboot) the
initiator could forget that it is in the process of performing initiator could forget that it is in the process of performing
additional key exchanges and never starts next IKE_FOLLOWUP_KE additional key exchanges and never starts next IKE_FOLLOWUP_KE
exchanges. The responder MUST handle this situation gracefully and exchanges. The responder MUST handle this situation gracefully and
delete the associated state if it doesn't receive the next expected delete the associated state if it does not receive the next expected
IKE_FOLLOWUP_KE request after some reasonable period of time. IKE_FOLLOWUP_KE request after some reasonable period of time.
If responder receives IKE_FOLLOWUP_KE request containing If responder receives IKE_FOLLOWUP_KE request containing
ADDITIONAL_KEY_EXCHANGE notification and the content of this notify ADDITIONAL_KEY_EXCHANGE notification and the content of this notify
doesn't correspond to any active key exchange state the responder does not correspond to any active key exchange state the responder
has, it MUST send back a new error type notification STATE_NOT_FOUND. has, it MUST send back a new error type notification STATE_NOT_FOUND.
This is a non-fatal error notification, its Notify Message Type is This is a non-fatal error notification, its Notify Message Type is
<TBA by IANA>, Protocol ID and SPI Size are both set to 0 and the <TBA by IANA>, Protocol ID and SPI Size are both set to 0 and the
data is empty. If the initiator receives this notification in data is empty. If the initiator receives this notification in
response to IKE_FOLLOWUP_KE exchange performing additional key response to IKE_FOLLOWUP_KE exchange performing additional key
exchange, it MUST cancel this exchange and MUST treat the whole exchange, it MUST cancel this exchange and MUST treat the whole
series of exchanges started from the CREATE_CHILD_SA exchange as series of exchanges started from the CREATE_CHILD_SA exchange as
failed. In most cases, the receipt of this notification is caused by failed. In most cases, the receipt of this notification is caused by
premature deletion of the corresponding state on the responder (the premature deletion of the corresponding state on the responder (the
time period between IKE_FOLLOWUP_KE exchanges appeared too long from time period between IKE_FOLLOWUP_KE exchanges appeared too long from
responder's point of view, e.g. due to a temporary network failure). responder's point of view, e.g. due to a temporary network failure).
After receiving this notification the initiator MAY start a new After receiving this notification the initiator MAY start a new
CREATE_CHILD_SA exchange (eventually followed by the IKE_FOLLOWUP_KE CREATE_CHILD_SA exchange (eventually followed by the IKE_FOLLOWUP_KE
exchanges) to retry the failed attempt. If the initiator continues exchanges) to retry the failed attempt. If the initiator continues
to receive STATE_NOT_FOUND notifications after several retries, it to receive STATE_NOT_FOUND notifications after several retries, it
MUST treat this situation as fatal error and delete IKE SA by sending MUST treat this situation as a fatal error and delete IKE SA by
a DELETE payload. sending a DELETE payload.
When rekeying IKE SA or Child SA, it is possible that the peers start When rekeying IKE SA or Child SA, it is possible that the peers start
doing this at the same time, which is called simultaneous rekeying. doing this at the same time, which is called simultaneous rekeying.
Sections 2.8.1 and 2.8.2 of [RFC7296] describes how IKEv2 handles Sections 2.8.1 and 2.8.2 of [RFC7296] describes how IKEv2 handles
this situation. In a nutshell IKEv2 follows the rule that if in case this situation. In a nutshell IKEv2 follows the rule that if in case
of simultaneous rekeying two identical new IKE SAs (or two pairs of of simultaneous rekeying two identical new IKE SAs (or two pairs of
Child SAs) are created, then one of them should be deleted. Which Child SAs) are created, then one of them should be deleted. Which
one is to be deleted is determined by comparing the values of four one is to be deleted is determined by comparing the values of four
nonces, that were used in the colliding CREATE_CHILD_SA exchanges - nonces, that were used in the colliding CREATE_CHILD_SA exchanges -
the IKE SA (or pair of Child SAs) that was created by the exchange in the IKE SA (or pair of Child SAs) that was created by the exchange in
skipping to change at page 15, line 9 skipping to change at page 15, line 12
side just stops the rekeying process - this side MUST not initiate side just stops the rekeying process - this side MUST not initiate
IKE_FOLLOWUP_KE exchange with next key exchange. IKE_FOLLOWUP_KE exchange with next key exchange.
In most cases, rekey collisions are resolved in the CREATE_CHILD_SA In most cases, rekey collisions are resolved in the CREATE_CHILD_SA
exchange. However, a situation may occur when due to packet loss, exchange. However, a situation may occur when due to packet loss,
one of the peers receives CREATE_CHILD_SA message requesting rekeying one of the peers receives CREATE_CHILD_SA message requesting rekeying
SA that is already being rekeyed by this peer (i.e. the SA that is already being rekeyed by this peer (i.e. the
CREATE_CHILD_SA exchange initiated by this peer has been already CREATE_CHILD_SA exchange initiated by this peer has been already
completed and the series of IKE_FOLLOWUP_KE exchanges is in completed and the series of IKE_FOLLOWUP_KE exchanges is in
progress). In this case, a TEMPORARY_FAILURE notification MUST be progress). In this case, a TEMPORARY_FAILURE notification MUST be
sent in response to such request. sent in response to such a request.
If multiple key exchanges were negotiated in the CREATE_CHILD_SA If multiple key exchanges were negotiated in the CREATE_CHILD_SA
exchange, then the resulting keys are computed as follows. In case exchange, then the resulting keys are computed as follows. In case
of IKE SA rekey: of IKE SA rekey:
SKEYSEED = prf(SK_d, KE | Ni | Nr | KE(1) | ... KE(n)) SKEYSEED = prf(SK_d, KE | Ni | Nr | KE(1) | ... KE(n))
In case of Child SA creation or rekey: In case of Child SA creation or rekey:
KEYMAT = prf+ (SK_d, KE | Ni | Nr | KE(1) | ... KE(n)) KEYMAT = prf+ (SK_d, KE | Ni | Nr | KE(1) | ... KE(n))
skipping to change at page 15, line 38 skipping to change at page 15, line 41
registry: registry:
<TBA> IKE_FOLLOWUP_KE <TBA> IKE_FOLLOWUP_KE
This document renames Transform Type 4 defined in "Transform Type This document renames Transform Type 4 defined in "Transform Type
Values" registry from "Diffie-Hellman Group (D-H)" to "Key Exchange Values" registry from "Diffie-Hellman Group (D-H)" to "Key Exchange
Method (KE)". Method (KE)".
This document renames IKEv2 registry "Transform Type 4 - Diffie- This document renames IKEv2 registry "Transform Type 4 - Diffie-
Hellman Group Transform IDs" to "Transform Type 4 - Key Exchange Hellman Group Transform IDs" to "Transform Type 4 - Key Exchange
Method Transform IDs" Method Transform IDs".
This document adds the following Transform Types to the "Transform This document adds the following Transform Types to the "Transform
Type Values" registry: Type Values" registry:
Type Description Used In Type Description Used In
----------------------------------------------------------------- -----------------------------------------------------------------
<TBA> Additional Key Exchange 1 (optional in IKE, AH, ESP) <TBA> Additional Key Exchange 1 (optional in IKE, AH, ESP)
<TBA> Additional Key Exchange 2 (optional in IKE, AH, ESP) <TBA> Additional Key Exchange 2 (optional in IKE, AH, ESP)
<TBA> Additional Key Exchange 3 (optional in IKE, AH, ESP) <TBA> Additional Key Exchange 3 (optional in IKE, AH, ESP)
<TBA> Additional Key Exchange 4 (optional in IKE, AH, ESP) <TBA> Additional Key Exchange 4 (optional in IKE, AH, ESP)
skipping to change at page 17, line 41 skipping to change at page 18, line 7
negotiate the post-quantum algorithms using the existing KE payload. negotiate the post-quantum algorithms using the existing KE payload.
The authors are also grateful to Tobias Heider and Tobias Guggemos The authors are also grateful to Tobias Heider and Tobias Guggemos
for valuable comments. for valuable comments.
7. References 7. References
7.1. Normative References 7.1. Normative References
[I-D.ietf-ipsecme-ikev2-intermediate] [I-D.ietf-ipsecme-ikev2-intermediate]
Smyslov, V., "Intermediate Exchange in the IKEv2 Smyslov, V., "Intermediate Exchange in the IKEv2
Protocol", draft-ietf-ipsecme-ikev2-intermediate-03 (work Protocol", draft-ietf-ipsecme-ikev2-intermediate-04 (work
in progress), December 2019. in progress), June 2020.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T.
Kivinen, "Internet Key Exchange Protocol Version 2 Kivinen, "Internet Key Exchange Protocol Version 2
(IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October
2014, <https://www.rfc-editor.org/info/rfc7296>. 2014, <https://www.rfc-editor.org/info/rfc7296>.
skipping to change at page 18, line 15 skipping to change at page 18, line 30
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
7.2. Informative References 7.2. Informative References
[GROVER] Grover, L., "A Fast Quantum Mechanical Algorithm for [GROVER] Grover, L., "A Fast Quantum Mechanical Algorithm for
Database Search", Proc. of the Twenty-Eighth Annual ACM Database Search", Proc. of the Twenty-Eighth Annual ACM
Symposium on the Theory of Computing (STOC 1996), 1996. Symposium on the Theory of Computing (STOC 1996), 1996.
[I-D.ietf-ipsecme-qr-ikev2]
Fluhrer, S., McGrew, D., Kampanakis, P., and V. Smyslov,
"Mixing Preshared Keys in IKEv2 for Post-quantum
Resistance", draft-ietf-ipsecme-qr-ikev2-10 (work in
progress), December 2019.
[RFC4302] Kent, S., "IP Authentication Header", RFC 4302, [RFC4302] Kent, S., "IP Authentication Header", RFC 4302,
DOI 10.17487/RFC4302, December 2005, DOI 10.17487/RFC4302, December 2005,
<https://www.rfc-editor.org/info/rfc4302>. <https://www.rfc-editor.org/info/rfc4302>.
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)",
RFC 4303, DOI 10.17487/RFC4303, December 2005, RFC 4303, DOI 10.17487/RFC4303, December 2005,
<https://www.rfc-editor.org/info/rfc4303>. <https://www.rfc-editor.org/info/rfc4303>.
[RFC7383] Smyslov, V., "Internet Key Exchange Protocol Version 2 [RFC7383] Smyslov, V., "Internet Key Exchange Protocol Version 2
(IKEv2) Message Fragmentation", RFC 7383, (IKEv2) Message Fragmentation", RFC 7383,
skipping to change at page 18, line 43 skipping to change at page 19, line 5
[RFC8229] Pauly, T., Touati, S., and R. Mantha, "TCP Encapsulation [RFC8229] Pauly, T., Touati, S., and R. Mantha, "TCP Encapsulation
of IKE and IPsec Packets", RFC 8229, DOI 10.17487/RFC8229, of IKE and IPsec Packets", RFC 8229, DOI 10.17487/RFC8229,
August 2017, <https://www.rfc-editor.org/info/rfc8229>. August 2017, <https://www.rfc-editor.org/info/rfc8229>.
[RFC8391] Huelsing, A., Butin, D., Gazdag, S., Rijneveld, J., and A. [RFC8391] Huelsing, A., Butin, D., Gazdag, S., Rijneveld, J., and A.
Mohaisen, "XMSS: eXtended Merkle Signature Scheme", Mohaisen, "XMSS: eXtended Merkle Signature Scheme",
RFC 8391, DOI 10.17487/RFC8391, May 2018, RFC 8391, DOI 10.17487/RFC8391, May 2018,
<https://www.rfc-editor.org/info/rfc8391>. <https://www.rfc-editor.org/info/rfc8391>.
[RFC8784] Fluhrer, S., Kampanakis, P., McGrew, D., and V. Smyslov,
"Mixing Preshared Keys in the Internet Key Exchange
Protocol Version 2 (IKEv2) for Post-quantum Security",
RFC 8784, DOI 10.17487/RFC8784, June 2020,
<https://www.rfc-editor.org/info/rfc8784>.
Appendix A. Alternative Design Appendix A. Alternative Design
This section gives an overview on a number of alternative approaches This section gives an overview on a number of alternative approaches
that we have considered, but later discarded. These approaches are: that we have considered, but later discarded. These approaches are:
o Sending the classical and post-quantum key exchanges as a single o Sending the classical and post-quantum key exchanges as a single
transform transform
We considered combining the various key exchanges into a single We considered combining the various key exchanges into a single
large KE payload; this effort is documented in a previous version large KE payload; this effort is documented in a previous version
skipping to change at page 22, line 28 skipping to change at page 22, line 45
Post-Quantum Post-Quantum
Email: cjt@post-quantum.com Email: cjt@post-quantum.com
M. Tomlinson M. Tomlinson
Post-Quantum Post-Quantum
Email: mt@post-quantum.com Email: mt@post-quantum.com
G. Bartlett G. Bartlett
Cisco Systems Quantum Secret
Email: grbartle@cisco.com
Email: graham.ietf@gmail.com
S. Fluhrer S. Fluhrer
Cisco Systems Cisco Systems
Email: sfluhrer@cisco.com Email: sfluhrer@cisco.com
D. Van Geest D. Van Geest
ISARA Corporation ISARA Corporation
Email: daniel.vangeest@isara.com Email: daniel.vangeest@isara.com
 End of changes. 46 change blocks. 
85 lines changed or deleted 87 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/