- Home
- RFC 8784
RFC 8784: Mixing Preshared Keys in the Internet Key Exchange Protocol Version 2 (IKEv2) for Post-quantum Security
- S. Fluhrer,
- P. Kampanakis,
- D. McGrew,
- V. Smyslov
Abstract
The possibility of quantum computers poses a serious challenge to cryptographic algorithms deployed widely today. The Internet Key Exchange Protocol Version 2 (IKEv2) is one example of a cryptosystem that could be broken; someone storing VPN communications today could decrypt them at a later time when a quantum computer is available. It is anticipated that IKEv2 will be extended to support quantum-secure key exchange algorithms; however, that is not likely to happen in the near term. To address this problem before then, this document describes an extension of IKEv2 to allow it to be resistant to a quantum computer by using preshared keys.¶
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
Recent achievements in developing quantum computers demonstrate that
it is probably feasible to build one that is cryptographical
This document describes a way to extend IKEv2 to have a similar property; assuming that the two end systems share a long secret key, then the resulting exchange is quantum secure. By bringing post-quantum security to IKEv2, this document removes the need to use an obsolete version of IKE in order to achieve that security goal.¶
The general idea is that we add an additional secret that is shared
between the initiator and the responder; this secret is in addition to
the authentication method that is already provided within IKEv2. We
stir this secret into the SK_
It was considered important to minimize the changes to IKEv2. The existing mechanisms to perform authentication and key exchange remain in place (that is, we continue to perform (EC)DH and potentially PKI authentication if configured). This document does not replace the authentication checks that the protocol does; instead, they are strengthened by using an additional secret key.¶
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
2. Assumptions
We assume that each IKE peer has a list of Post-quantum Preshared
Keys (PPKs) along with their identifiers
Peer, PPK, PPK_ID, mandatory_or_not
We assume the reader is familiar with the payload notation defined in Section 1.2 of [RFC7296].¶
3. Exchanges
If the initiator is configured to use a PPK with the responder (whether or not
the use of the PPK is mandatory), then it MUST include a
notification USE_
Initiator Responder ------------------------------------------------------------------ HDR, SAi1, KEi, Ni, N(USE_PPK) --->
N
If the initiator needs to resend this initial message with a COOKIE notification, then the resend would include the USE_
If the responder does not support this specification or does not have any PPK configured,
then it ignores the received notification (as defined in [RFC7296] for unknown status notifications)
and continues with the IKEv2 protocol as normal.
Otherwise, the responder replies with the IKE_
Initiator Responder
------------------------------------------------------------------
<--- HDR, SAr1, KEr, Nr, [CERTREQ,] N(USE_PPK)
When the initiator receives this reply, it checks whether the responder included the USE_
If the responder did not include the USE_
If the responder did include the USE_
SKEYSEED = prf(Ni | Nr, g^ir)
{SK_d' | SK_ai | SK_ar | SK_ei | SK_er | SK_pi' | SK_pr'}
= prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr)
SK_d = prf+ (PPK, SK_d')
SK_pi = prf+ (PPK, SK_pi')
SK_pr = prf+ (PPK, SK_pr')
That is, we use the standard IKEv2 key derivation process, except
that the three resulting subkeys SK_
Using a prf+ construction ensures that it is always possible to get the resulting keys of the same size as the initial ones, even if the underlying PRF has an output size different from its key size. Note that at the time of this writing, all PRFs defined for use in IKEv2 (see the "Transform Type 2 - Pseudorandom Function Transform IDs" subregistry [IANA-IKEV2]) have an output size equal to the (preferred) key size. For such PRFs, only the first iteration of prf+ is needed:¶
SK_d = prf (PPK, SK_d' | 0x01) SK_pi = prf (PPK, SK_pi' | 0x01) SK_pr = prf (PPK, SK_pr' | 0x01)
Note that the PPK is used in SK_
The initiator then sends the IKE_
Initiator Responder
------------------------------------------------------------------
HDR, SK {IDi, [CERT,] [CERTREQ,]
[IDr,] AUTH, SAi2,
TSi, TSr, N(PPK_IDENTITY, PPK_ID), [N(NO_PPK_AUTH)]} --->
PPK_
A situation may happen when the responder has some PPKs but doesn't have a PPK with the PPK_
NO_
When the responder receives this encrypted exchange, it first computes the values:¶
SKEYSEED = prf(Ni | Nr, g^ir)
{SK_d' | SK_ai | SK_ar | SK_ei | SK_er | SK_pi' | SK_pr'}
= prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr)
The responder then uses the SK_
If the PPK_
Table 1 summarizes the above logic for the responder:¶
| Received USE_ |
Received NO_ |
Configured with PPK | PPK is Mandatory | Action |
|---|---|---|---|---|
| No | * | No | * | Standard IKEv2 protocol |
| No | * | Yes | No | Standard IKEv2 protocol |
| No | * | Yes | Yes | Abort negotiation |
| Yes | No | No | * | Abort negotiation |
| Yes | Yes | No | Yes | Abort negotiation |
| Yes | Yes | No | No | Standard IKEv2 protocol |
| Yes | * | Yes | * | Use PPK |
If a PPK is in use, then the responder extracts the corresponding PPK and computes the following values:¶
SK_d = prf+ (PPK, SK_d') SK_pi = prf+ (PPK, SK_pi') SK_pr = prf+ (PPK, SK_pr')
The responder then continues with the IKE_
Initiator Responder
------------------------------------------------------------------
<-- HDR, SK {IDr, [CERT,]
AUTH, SAr2,
TSi, TSr, N(PPK_IDENTITY)}
When the initiator receives the response, it checks for the
presence of the PPK_
If the Extensible Authentication Protocol (EAP) is used in the IKE_
The general rule for using a PPK in the IKE_
Initiator Responder
----------------------------------------------------------------
HDR, SK {IDi, [CERTREQ,]
[IDr,] SAi2,
TSi, TSr} -->
<-- HDR, SK {IDr, [CERT,] AUTH,
EAP}
HDR, SK {EAP} -->
<-- HDR, SK {EAP (success)}
HDR, SK {AUTH,
N(PPK_IDENTITY, PPK_ID)
[, N(NO_PPK_AUTH)]} -->
<-- HDR, SK {AUTH, SAr2, TSi, TSr
[, N(PPK_IDENTITY)]}
Note that the diagram above shows both the cases when the responder
uses a PPK and when it chooses not to use it (provided the initiator has
included the NO_
4. Upgrade Procedure
This algorithm was designed so that someone can introduce PPKs into an existing IKE network without causing network disruption.¶
In the initial phase of the network upgrade, the network administrator would visit each IKE node and configure:¶
- The set of PPKs (and corresponding PPK_
IDs ) that this node would need to know.¶ - The PPK that will be used for each peer that this node would initiate to.¶
- The value "false" for the mandatory_
or_ not flag for each peer that this node would initiate to (thus indicating that the use of PPKs is not mandatory).¶
With this configuration, the node will continue to operate with nodes that have not yet been upgraded.
This is due to the USE_
As an optional second step, after all nodes have been upgraded, the administrator should then go back through the nodes and mark the use of a PPK as mandatory. This will not affect the strength against a passive attacker, but it would mean that an active attacker with a quantum computer (which is sufficiently fast to be able to break the (EC)DH in real time) would not be able to perform a downgrade attack.¶
5. PPK
5.1. PPK_ID Format
This standard requires that both the initiator and the responder
have a secret PPK value, with the responder selecting the PPK based on
the PPK_
- PPK_
ID_ OPAQUE (1) - For this type, the format of the PPK_ ID (and the PPK itself) is not specified by this document; it is assumed to be mutually intelligible by both the initiator and the responder. This PPK_ ID type is intended for those implementations that choose not to disclose the type of PPK to active attackers.¶ - PPK_
ID_ FIXED (2) - In this case, the format of the PPK_ ID and the PPK are fixed octet strings; the remaining bytes of the PPK_ ID are a configured value. We assume that there is a fixed mapping between PPK_ ID and PPK, which is configured locally to both the initiator and the responder. The responder can use the PPK_ ID to look up the corresponding PPK value. Not all implementations are able to configure arbitrary octet strings; to improve the potential interoperabilit y, it is recommended that, in the PPK_ ID_ FIXED case, both the PPK and the PPK_ ID strings be limited to the base64 character set [RFC4648].¶
5.2. Operational Considerations
The need to maintain several independent sets of security credentials can significantly complicate a security administrator's job and can potentially slow down widespread adoption of this specification. It is anticipated that administrators will try to simplify their job by decreasing the number of credentials they need to maintain. This section describes some of the considerations for PPK management.¶
5.2.1. PPK Distribution
PPK_
5.2.2. Group PPK
This document doesn't explicitly require that the PPK be unique for each pair of peers. If this is the case, then this solution provides full peer authentication, but it also means that each host must have as many independent PPKs as peers it is going to communicate with. As the number of peers grows, the PPKs will not scale.¶
It is possible to use a single PPK for a group of users. Since each peer uses classical public key cryptography in addition to a PPK for key exchange and authentication, members of the group can neither impersonate each other nor read each other's traffic unless they use quantum computers to break public key operations. However, group members can record any traffic they have access to that comes from other group members and decrypt it later, when they get access to a quantum computer.¶
In addition, the fact that the PPK is known to a (potentially large) group of users makes it more susceptible to theft. When an attacker equipped with a quantum computer gets access to a group PPK, all communications inside the group are revealed.¶
For these reasons, using a group PPK is NOT RECOMMENDED.¶
5.2.3. PPK-Only Authentication
If quantum computers become a reality, classical public key cryptography will provide little security, so administrators may find it attractive not to use it at all for authentication. This will reduce the number of credentials they need to maintain because they only need to maintain PPK credentials. Combining group PPK and PPK-only authentication is NOT RECOMMENDED since, in this case, any member of the group can impersonate any other member, even without the help of quantum computers.¶
PPK-only authentication can be achieved in IKEv2 if the NULL
Authentication method [RFC7619] is
employed. Without PPK, the NULL Authentication method provides no
authentication of the peers; however, since a PPK is stirred into
the SK_
6. Security Considerations
A critical consideration is how to ensure the randomness of this post-quantum preshared key. Quantum computers are able to perform Grover's algorithm [GROVER]; that effectively halves the size of a symmetric key. In addition, an adversary impersonating the server, even with a conventional computer, can perform a dictionary search over plausible post-quantum preshared key values. The strongest practice is to ensure that any post-quantum preshared key contains at least 256 bits of entropy; this will provide 128 bits of post-quantum security, while providing security against conventional dictionary attacks. That provides the security equivalent to Category 5 as defined in the NIST Post-Quantum Cryptography Call for Proposals [NISTPQCFP]. Deriving a post-quantum preshared key from a password, name, or other low-entropy source is not secure because of these known attacks.¶
With this protocol, the computed SK_
An attacker with a quantum computer that can decrypt the initial IKE SA has access to all the information exchanged over it, such as identities of the peers, configuration parameters, and all negotiated IPsec SA information (including traffic selectors), with the exception of the cryptographic keys used by the IPsec SAs, which are protected by the PPK.¶
Deployments that treat this information as sensitive or that send other sensitive data (like cryptographic keys)
over IKE SAs MUST rekey the IKE SA before the sensitive information is sent to ensure this information is protected by the PPK.
It is possible to create a childless IKE SA as specified in [RFC6023]. This prevents Child SA
configuration information from being transmitted in the original IKE SA that is not protected by a PPK.
Some information related to IKE SA that is sent in the IKE_
In addition, the policy SHOULD be set to negotiate only quantum-secure symmetric algorithms; while this RFC doesn't claim to give advice as to what algorithms are secure (as that may change based on future cryptographical results), below is a list of defined IKEv2 and IPsec algorithms that should not be used, as they are known to provide less than 128 bits of post-quantum security:¶
- Any IKEv2 encryption algorithm, PRF, or integrity algorithm with a key size less than 256 bits.¶
- Any ESP transform with a key size less than 256 bits.¶
- PRF_
AES128_ XCBC and PRF_ AES128_ CBC : even though they can use as input a key of arbitrary size, such input keys are converted into a 128-bit key for internal use.¶
Section 3 requires the initiator to
abort the initial exchange if using PPKs is mandatory for it but the
responder does not include the USE_
If using PPKs is optional for both peers and they authenticate themselves using digital signatures, then
an attacker in between, equipped with a quantum computer capable of breaking public key operations
in real time, is able to mount a downgrade attack by removing the USE_
If using PPKs is mandatory for the initiator, then an attacker able
to eavesdrop and inject packets into the network can prevent creation of an
IKE SA by mounting the following attack. The attacker intercepts the
initial request containing the USE_
If using a PPK is optional for both peers, then in case of misconfiguratio
7. IANA Considerations
This document defines three new Notify Message Types in the "IKEv2 Notify Message Types - Status Types" subregistry under the "Internet Key Exchange Version 2 (IKEv2) Parameters" registry [IANA-IKEV2]:¶
| Value | NOTIFY MESSAGES - STATUS TYPES | Reference |
|---|---|---|
| 16435 | USE_ |
RFC 8784 |
| 16436 | PPK_ |
RFC 8784 |
| 16437 | NO_ |
RFC 8784 |
Per this document, IANA has created a new subregistry titled "IKEv2
Post-quantum Preshared Key ID Types" under the "Internet Key Exchange
Version 2 (IKEv2) Parameters" registry [IANA-IKEV2]. This new subregistry is for the PPK_
| Value | PPK_ |
Reference |
|---|---|---|
| 0 | Reserved | RFC 8784 |
| 1 | PPK_ |
RFC 8784 |
| 2 | PPK_ |
RFC 8784 |
| 3-127 | Unassigned | RFC 8784 |
| 128-255 | Reserved for Private Use | RFC 8784 |
The PPK_
8. References
8.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC7296]
-
Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. Kivinen, "Internet Key Exchange Protocol Version 2 (IKEv2)", STD 79, RFC 7296, DOI 10
.17487 , , <https:///RFC7296 www >..rfc -editor .org /info /rfc7296 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174
8.2. Informative References
- [C2PQ]
-
Hoffman, P., "The Transition from Classical to Post-Quantum Cryptography", Work in Progress, Internet-Draft, draft
-hoffman , , <https://-c2pq -07 tools >..ietf .org /html /draft -hoffman -c2pq -07 - [GROVER]
-
Grover, L., "A Fast Quantum Mechanical Algorithm for Database Search", STOC '96: Proceedings of the Twenty-Eighth Annual ACM Symposium
on the Theory of Computing, pp. 212-219", DOI 10
.1145 , , <https:///237814 .237866 doi >..org /10 .1145 /237814 .237866 - [IANA-IKEV2]
-
IANA, "Internet Key Exchange Version 2 (IKEv2) Parameters", <https://
www >..iana .org /assignments /ikev2 -parameters / - [NISTPQCFP]
-
NIST, "Submission Requirements and Evaluation Criteria for the Post-Quantum Cryptography Standardization Process", , <https://
csrc >..nist .gov /CSRC /media /Projects /Post -Quantum -Cryptography /documents /call -for -proposals -final -dec -2016 .pdf - [RFC2409]
-
Harkins, D. and D. Carrel, "The Internet Key Exchange (IKE)", RFC 2409, DOI 10
.17487 , , <https:///RFC2409 www >..rfc -editor .org /info /rfc2409 - [RFC4648]
-
Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, DOI 10
.17487 , , <https:///RFC4648 www >..rfc -editor .org /info /rfc4648 - [RFC6023]
-
Nir, Y., Tschofenig, H., Deng, H., and R. Singh, "A Childless Initiation of the Internet Key Exchange Version 2 (IKEv2) Security Association (SA)", RFC 6023, DOI 10
.17487 , , <https:///RFC6023 www >..rfc -editor .org /info /rfc6023 - [RFC6030]
-
Hoyer, P., Pei, M., and S. Machani, "Portable Symmetric Key Container (PSKC)", RFC 6030, DOI 10
.17487 , , <https:///RFC6030 www >..rfc -editor .org /info /rfc6030 - [RFC7619]
-
Smyslov, V. and P. Wouters, "The NULL Authentication Method in the Internet Key Exchange Protocol Version 2 (IKEv2)", RFC 7619, DOI 10
.17487 , , <https:///RFC7619 www >..rfc -editor .org /info /rfc7619 - [RFC8019]
-
Nir, Y. and V. Smyslov, "Protecting Internet Key Exchange Protocol Version 2 (IKEv2) Implementations from Distributed Denial
-of , RFC 8019, DOI 10-Service Attacks" .17487 , , <https:///RFC8019 www >..rfc -editor .org /info /rfc8019 - [RFC8126]
-
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10
.17487 , , <https:///RFC8126 www >..rfc -editor .org /info /rfc8126
Appendix A. Discussion and Rationale
The primary goal of this document is to augment the IKEv2 protocol to
provide protection against
quantum computers without requiring novel cryptographic algorithms. The idea behind this document is that while a quantum computer can easily
reconstruct the shared secret of an (EC)DH exchange, it cannot as
easily recover a secret from a symmetric exchange. This document makes the
SK_
Another goal of this protocol is to minimize the number of changes
within the IKEv2 protocol, in particular, within the cryptography
of IKEv2. By limiting our changes to notifications and only adjusting the
SK_
A third goal is to be friendly to incremental deployment in operational networks for which we might not want to have a global shared key or for which quantum-secure IKEv2 is rolled out incrementally. This is why we specifically try to allow the PPK to be dependent on the peer and why we allow the PPK to be configured as optional.¶
A fourth goal is to avoid violating any of the security properties provided by IKEv2.¶
Acknowledgements
We would like to thank Tero Kivinen, Paul Wouters, Graham Bartlett, Tommy Pauly, Quynh Dang, and the rest of the IPSECME Working Group for their feedback and suggestions for the scheme.¶