| < draft-ietf-ipsecme-qr-ikev2-09.txt | draft-ietf-ipsecme-qr-ikev2-10.txt > | |||
|---|---|---|---|---|
| Internet Engineering Task Force S. Fluhrer | Internet Engineering Task Force S. Fluhrer | |||
| Internet-Draft D. McGrew | Internet-Draft D. McGrew | |||
| Intended status: Standards Track P. Kampanakis | Intended status: Standards Track P. Kampanakis | |||
| Expires: May 30, 2020 Cisco Systems | Expires: June 29, 2020 Cisco Systems | |||
| V. Smyslov | V. Smyslov | |||
| ELVIS-PLUS | ELVIS-PLUS | |||
| November 27, 2019 | December 27, 2019 | |||
| Postquantum Preshared Keys for IKEv2 | Mixing Preshared Keys in IKEv2 for Post-quantum Resistance | |||
| draft-ietf-ipsecme-qr-ikev2-09 | draft-ietf-ipsecme-qr-ikev2-10 | |||
| Abstract | Abstract | |||
| The possibility of Quantum Computers poses a serious challenge to | The possibility of quantum computers poses a serious challenge to | |||
| cryptographic algorithms deployed widely today. IKEv2 is one example | cryptographic algorithms deployed widely today. IKEv2 is one example | |||
| of a cryptosystem that could be broken; someone storing VPN | of a cryptosystem that could be broken; someone storing VPN | |||
| communications today could decrypt them at a later time when a | communications today could decrypt them at a later time when a | |||
| Quantum Computer is available. It is anticipated that IKEv2 will be | quantum computer is available. It is anticipated that IKEv2 will be | |||
| extended to support quantum-secure key exchange algorithms; however | extended to support quantum-secure key exchange algorithms; however | |||
| that is not likely to happen in the near term. To address this | that is not likely to happen in the near term. To address this | |||
| problem before then, this document describes an extension of IKEv2 to | problem before then, this document describes an extension of IKEv2 to | |||
| allow it to be resistant to a Quantum Computer, by using preshared | allow it to be resistant to a quantum computer, by using preshared | |||
| keys. | keys. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 May 30, 2020. | This Internet-Draft will expire on June 29, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 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 40 ¶ | skipping to change at page 2, line 40 ¶ | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 17 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
| 8.2. Informational References . . . . . . . . . . . . . . . . 17 | 8.2. Informational References . . . . . . . . . . . . . . . . 17 | |||
| Appendix A. Discussion and Rationale . . . . . . . . . . . . . . 18 | Appendix A. Discussion and Rationale . . . . . . . . . . . . . . 18 | |||
| Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 19 | Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 19 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 1. Introduction | 1. Introduction | |||
| Recent achievements in developing Quantum Computers demonstrate that | Recent achievements in developing quantum computers demonstrate that | |||
| it is probably feasible to build a cryptographically significant one. | it is probably feasible to build a cryptographically significant one. | |||
| If such a computer is implemented, many of the cryptographic | If such a computer is implemented, many of the cryptographic | |||
| algorithms and protocols currently in use would be insecure. A | algorithms and protocols currently in use would be insecure. A | |||
| Quantum Computer would be able to solve DH and ECDH problems in | quantum computer would be able to solve DH and ECDH problems in | |||
| polynomial time [I-D.hoffman-c2pq], and this would imply that the | polynomial time [I-D.hoffman-c2pq], and this would imply that the | |||
| security of existing IKEv2 [RFC7296] systems would be compromised. | security of existing IKEv2 [RFC7296] systems would be compromised. | |||
| IKEv1 [RFC2409], when used with strong preshared keys, is not | IKEv1 [RFC2409], when used with strong preshared keys, is not | |||
| vulnerable to quantum attacks, because those keys are one of the | vulnerable to quantum attacks, because those keys are one of the | |||
| inputs to the key derivation function. If the preshared key has | inputs to the key derivation function. If the preshared key has | |||
| sufficient entropy and the PRF, encryption and authentication | sufficient entropy and the PRF, encryption and authentication | |||
| transforms are quantum-secure, then the resulting system is believed | transforms are quantum-secure, then the resulting system is believed | |||
| to be quantum resistant, that is, invulnerable to an attacker with a | to be quantum resistant, that is, invulnerable to an attacker with a | |||
| Quantum Computer. | quantum computer. | |||
| This document describes a way to extend IKEv2 to have a similar | This document describes a way to extend IKEv2 to have a similar | |||
| property; assuming that the two end systems share a long secret key, | property; assuming that the two end systems share a long secret key, | |||
| then the resulting exchange is quantum resistant. By bringing | then the resulting exchange is quantum resistant. By bringing post- | |||
| postquantum security to IKEv2, this note removes the need to use an | quantum security to IKEv2, this note removes the need to use an | |||
| obsolete version of the Internet Key Exchange in order to achieve | obsolete version of the Internet Key Exchange in order to achieve | |||
| that security goal. | that security goal. | |||
| The general idea is that we add an additional secret that is shared | The general idea is that we add an additional secret that is shared | |||
| between the initiator and the responder; this secret is in addition | between the initiator and the responder; this secret is in addition | |||
| to the authentication method that is already provided within IKEv2. | to the authentication method that is already provided within IKEv2. | |||
| We stir this secret into the SK_d value, which is used to generate | We stir this secret into the SK_d value, which is used to generate | |||
| the key material (KEYMAT) and the SKEYSEED for the child SAs; this | the key material (KEYMAT) and the SKEYSEED for the child SAs; this | |||
| secret provides quantum resistance to the IPsec SAs (and any child | secret provides quantum resistance to the IPsec SAs (and any child | |||
| IKE SAs). We also stir the secret into the SK_pi, SK_pr values; this | IKE SAs). We also stir the secret into the SK_pi, SK_pr values; this | |||
| skipping to change at page 3, line 36 ¶ | skipping to change at page 3, line 36 ¶ | |||
| authentication if configured). This document does not replace the | authentication if configured). This document does not replace the | |||
| authentication checks that the protocol does; instead, it is done as | authentication checks that the protocol does; instead, it is done as | |||
| a parallel check. | a parallel check. | |||
| 1.1. Changes | 1.1. 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-qr-ikev2-10 | ||||
| o Addresses issues raised during IETF LC. | ||||
| draft-ietf-ipsecme-qr-ikev2-09 | draft-ietf-ipsecme-qr-ikev2-09 | |||
| o Addresses issues raised in AD review. | o Addresses issues raised in AD review. | |||
| draft-ietf-ipsecme-qr-ikev2-08 | draft-ietf-ipsecme-qr-ikev2-08 | |||
| o Editorial changes. | o Editorial changes. | |||
| draft-ietf-ipsecme-qr-ikev2-07 | draft-ietf-ipsecme-qr-ikev2-07 | |||
| o Editorial changes. | o Editorial changes. | |||
| draft-ietf-ipsecme-qr-ikev2-06 | ||||
| o Editorial changes. | o Editorial changes. | |||
| draft-ietf-ipsecme-qr-ikev2-05 | ||||
| o Addressed comments received during WGLC. | o Addressed comments received during WGLC. | |||
| draft-ietf-ipsecme-qr-ikev2-04 | draft-ietf-ipsecme-qr-ikev2-04 | |||
| o Using Group PPK is clarified based on comment from Quynh Dang. | o Using Group PPK is clarified based on comment from Quynh Dang. | |||
| draft-ietf-ipsecme-qr-ikev2-03 | draft-ietf-ipsecme-qr-ikev2-03 | |||
| o Editorial changes and minor text nit fixes. | o Editorial changes and minor text nit fixes. | |||
| skipping to change at page 4, line 47 ¶ | skipping to change at page 5, line 5 ¶ | |||
| o Clarified using PPK in case of EAP authentication. | o Clarified using PPK in case of EAP authentication. | |||
| o PPK_SUPPORT notification is changed to USE_PPK to better reflect | o PPK_SUPPORT notification is changed to USE_PPK to better reflect | |||
| its purpose. | its purpose. | |||
| draft-ietf-ipsecme-qr-ikev2-00 | draft-ietf-ipsecme-qr-ikev2-00 | |||
| o Migrated from draft-fluhrer-qr-ikev2-05 to draft-ietf-ipsecme-qr- | o Migrated from draft-fluhrer-qr-ikev2-05 to draft-ietf-ipsecme-qr- | |||
| ikev2-00 that is a WG item. | ikev2-00 that is a WG item. | |||
| draft-fluhrer-qr-ikev2-05 | ||||
| o Nits and editorial fixes. | o Nits and editorial fixes. | |||
| o Made PPK_ID format and PPK Distributions subsection of the PPK | o Made PPK_ID format and PPK Distributions subsection of the PPK | |||
| section. Also added an Operational Considerations section. | section. Also added an Operational Considerations section. | |||
| o Added comment about Child SA rekey in the Security Considerations | o Added comment about Child SA rekey in the Security Considerations | |||
| section. | section. | |||
| o Added NO_PPK_AUTH to solve the cases where a PPK_ID is not | o Added NO_PPK_AUTH to solve the cases where a PPK_ID is not | |||
| configured for a responder. | configured for a responder. | |||
| skipping to change at page 5, line 30 ¶ | skipping to change at page 5, line 32 ¶ | |||
| o Modified how we stir the PPK into the IKEv2 secret state. | o Modified how we stir the PPK into the IKEv2 secret state. | |||
| o Modified how the use of PPKs is negotiated. | o Modified how the use of PPKs is negotiated. | |||
| draft-fluhrer-qr-ikev2-02 | draft-fluhrer-qr-ikev2-02 | |||
| o Simplified the protocol by stirring in the preshared key into the | o Simplified the protocol by stirring in the preshared key into the | |||
| child SAs; this avoids the problem of having the responder decide | child SAs; this avoids the problem of having the responder decide | |||
| which preshared key to use (as it knows the initiator identity at | which preshared key to use (as it knows the initiator identity at | |||
| that point); it does mean that someone with a Quantum Computer can | that point); it does mean that someone with a quantum computer can | |||
| recover the initial IKE negotiation. | recover the initial IKE negotiation. | |||
| o Removed positive endorsements of various algorithms. Retained | o Removed positive endorsements of various algorithms. Retained | |||
| warnings about algorithms known to be weak against a Quantum | warnings about algorithms known to be weak against a quantum | |||
| Computer. | computer. | |||
| draft-fluhrer-qr-ikev2-01 | draft-fluhrer-qr-ikev2-01 | |||
| o Added explicit guidance as to what IKE and IPsec algorithms are | o Added explicit guidance as to what IKE and IPsec algorithms are | |||
| quantum resistant. | quantum resistant. | |||
| draft-fluhrer-qr-ikev2-00 | draft-fluhrer-qr-ikev2-00 | |||
| o We switched from using vendor ID's to transmit the additional data | o We switched from using vendor ID's to transmit the additional data | |||
| to notifications. | to notifications. | |||
| skipping to change at page 6, line 22 ¶ | skipping to change at page 6, line 25 ¶ | |||
| 1.2. Requirements Language | 1.2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Assumptions | 2. Assumptions | |||
| We assume that each IKE peer has a list of Postquantum Preshared Keys | We assume that each IKE peer has a list of Post-quantum Preshared | |||
| (PPK) along with their identifiers (PPK_ID), and any potential IKE | Keys (PPK) along with their identifiers (PPK_ID), and any potential | |||
| initiator selects which PPK to use with any specific responder. In | IKE initiator selects which PPK to use with any specific responder. | |||
| addition, implementations have a configurable flag that determines | In addition, implementations have a configurable flag that determines | |||
| whether this postquantum preshared key is mandatory. This PPK is | whether this post-quantum preshared key is mandatory. This PPK is | |||
| independent of the preshared key (if any) that the IKEv2 protocol | independent of the preshared key (if any) that the IKEv2 protocol | |||
| uses to perform authentication (because the preshared key in IKEv2 is | uses to perform authentication (because the preshared key in IKEv2 is | |||
| not used for any key derivation, and thus doesn't protect against | not used for any key derivation, and thus doesn't protect against | |||
| Quantum Computers). The PPK specific configuration that is assumed | quantum computers). The PPK specific configuration that is assumed | |||
| to be on each node consists of the following tuple: | to be on each node consists of the following tuple: | |||
| Peer, PPK, PPK_ID, mandatory_or_not | Peer, PPK, PPK_ID, mandatory_or_not | |||
| 3. Exchanges | 3. Exchanges | |||
| If the initiator is configured to use a postquantum preshared key | If the initiator is configured to use a post-quantum preshared key | |||
| with the responder (whether or not the use of the PPK is mandatory), | with the responder (whether or not the use of the PPK is mandatory), | |||
| then it will include a notification USE_PPK in the IKE_SA_INIT | then it will include a notification USE_PPK in the IKE_SA_INIT | |||
| request message as follows: | request message as follows: | |||
| Initiator Responder | Initiator Responder | |||
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | |||
| HDR, SAi1, KEi, Ni, N(USE_PPK) ---> | HDR, SAi1, KEi, Ni, N(USE_PPK) ---> | |||
| N(USE_PPK) is a status notification payload with the type 16435; it | N(USE_PPK) is a status notification payload with the type 16435; it | |||
| has a protocol ID of 0, no SPI and no notification data associated | has a protocol ID of 0, no SPI and no notification data associated | |||
| with it. | with it. | |||
| If the initiator needs to resend this initial message with a cookie | If the initiator needs to resend this initial message with a cookie | |||
| (because the responder response included a COOKIE notification), then | (because the responder response included a COOKIE notification), then | |||
| the resend would include the USE_PPK notification if the original | the resend would include the USE_PPK notification if the original | |||
| message did. | message did. | |||
| If the responder does not support this specification or does not have | If the responder does not support this specification or does not have | |||
| any PPK configured, then it ignores the received notification and | any PPK configured, then it ignores the received notification (as | |||
| continues with the IKEv2 protocol as normal. Otherwise the responder | defined in [RFC7296] for unknown status notifications) and continues | |||
| replies with the IKE_SA_INIT message including a USE_PPK notification | with the IKEv2 protocol as normal. Otherwise the responder replies | |||
| in the response: | with the IKE_SA_INIT message including a USE_PPK notification in the | |||
| response: | ||||
| Initiator Responder | Initiator Responder | |||
| ------------------------------------------------------------------ | ------------------------------------------------------------------ | |||
| <--- HDR, SAr1, KEr, Nr, [CERTREQ,] N(USE_PPK) | <--- HDR, SAr1, KEr, Nr, [CERTREQ,] N(USE_PPK) | |||
| When the initiator receives this reply, it checks whether the | When the initiator receives this reply, it checks whether the | |||
| responder included the USE_PPK notification. If the responder did | responder included the USE_PPK notification. If the responder did | |||
| not and the flag mandatory_or_not indicates that using PPKs is | not and the flag mandatory_or_not indicates that using PPKs is | |||
| mandatory for communication with this responder, then the initiator | mandatory for communication with this responder, then the initiator | |||
| MUST abort the exchange. This situation may happen in case of | MUST abort the exchange. This situation may happen in case of | |||
| skipping to change at page 12, line 12 ¶ | skipping to change at page 12, line 12 ¶ | |||
| both peers have been upgraded, but the responder isn't yet configured | both peers have been upgraded, but the responder isn't yet configured | |||
| with the PPK for the initiator, then the responder could do standard | with the PPK for the initiator, then the responder could do standard | |||
| IKEv2 protocol if the initiator sent NO_PPK_AUTH notification. If | IKEv2 protocol if the initiator sent NO_PPK_AUTH notification. If | |||
| both the responder and initiator have been upgraded and properly | both the responder and initiator have been upgraded and properly | |||
| configured, they will both realize it, and the Child SAs will be | configured, they will both realize it, and the Child SAs will be | |||
| quantum-secure. | quantum-secure. | |||
| As an optional second step, after all nodes have been upgraded, then | As an optional second step, after all nodes have been upgraded, then | |||
| the administrator should then go back through the nodes, and mark the | the administrator should then go back through the nodes, and mark the | |||
| use of PPK as mandatory. This will not affect the strength against a | use of PPK as mandatory. This will not affect the strength against a | |||
| passive attacker; it would mean that an attacker with a Quantum | passive attacker; it would mean that an attacker with a quantum | |||
| Computer (which is sufficiently fast to be able to break the (EC)DH | 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. | in real time) would not be able to perform a downgrade attack. | |||
| 5. PPK | 5. PPK | |||
| 5.1. PPK_ID format | 5.1. PPK_ID format | |||
| This standard requires that both the initiator and the responder have | This standard requires that both the initiator and the responder have | |||
| a secret PPK value, with the responder selecting the PPK based on the | a secret PPK value, with the responder selecting the PPK based on the | |||
| PPK_ID that the initiator sends. In this standard, both the | PPK_ID that the initiator sends. In this standard, both the | |||
| initiator and the responder are configured with fixed PPK and PPK_ID | initiator and the responder are configured with fixed PPK and PPK_ID | |||
| skipping to change at page 13, line 38 ¶ | skipping to change at page 13, line 38 ¶ | |||
| This document doesn't explicitly require that PPK is unique for each | This document doesn't explicitly require that PPK is unique for each | |||
| pair of peers. If it is the case, then this solution provides full | pair of peers. If it is the case, then this solution provides full | |||
| peer authentication, but it also means that each host must have as | peer authentication, but it also means that each host must have as | |||
| many independent PPKs as the peers it is going to communicate with. | many independent PPKs as the peers it is going to communicate with. | |||
| As the number of peers grows the PPKs will not scale. | 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 | It is possible to use a single PPK for a group of users. Since each | |||
| peer uses classical public key cryptography in addition to PPK for | peer uses classical public key cryptography in addition to PPK for | |||
| key exchange and authentication, members of the group can neither | key exchange and authentication, members of the group can neither | |||
| impersonate each other nor read other's traffic, unless they use | impersonate each other nor read other's traffic, unless they use | |||
| Quantum Computers to break public key operations. However group | quantum computers to break public key operations. However group | |||
| members can record any traffic they have access to that comes from | 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 | other group members and decrypt it later, when they get access to a | |||
| Quantum Computer. | quantum computer. | |||
| In addition, the fact that the PPK is known to a (potentially large) | 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 | group of users makes it more susceptible to theft. When an attacker | |||
| equipped with a Quantum Computer gets access to a group PPK, all | equipped with a quantum computer gets access to a group PPK, all | |||
| communications inside the group are revealed. | communications inside the group are revealed. | |||
| For these reasons using group PPK is NOT RECOMMENDED. | For these reasons using group PPK is NOT RECOMMENDED. | |||
| 5.2.3. PPK-only Authentication | 5.2.3. PPK-only Authentication | |||
| If Quantum Computers become a reality, classical public key | If quantum computers become a reality, classical public key | |||
| cryptography will provide little security, so administrators may find | cryptography will provide little security, so administrators may find | |||
| it attractive not to use it at all for authentication. This will | it attractive not to use it at all for authentication. This will | |||
| reduce the number of credentials they need to maintain to PPKs only. | reduce the number of credentials they need to maintain to PPKs only. | |||
| Combining group PPK and PPK-only authentication is NOT RECOMMENDED, | Combining group PPK and PPK-only authentication is NOT RECOMMENDED, | |||
| since in this case any member of the group can impersonate any other | since in this case any member of the group can impersonate any other | |||
| member even without help of Quantum Computers. | member even without help of quantum computers. | |||
| PPK-only authentication can be achieved in IKEv2 if the NULL | PPK-only authentication can be achieved in IKEv2 if the NULL | |||
| Authentication method [RFC7619] is employed. Without PPK the NULL | Authentication method [RFC7619] is employed. Without PPK the NULL | |||
| Authentication method provides no authentication of the peers, | Authentication method provides no authentication of the peers, | |||
| however since a PPK is stirred into the SK_pi and the SK_pr, the | however since a PPK is stirred into the SK_pi and the SK_pr, the | |||
| peers become authenticated if a PPK is in use. Using PPKs MUST be | peers become authenticated if a PPK is in use. Using PPKs MUST be | |||
| mandatory for the peers if they advertise support for PPK in | mandatory for the peers if they advertise support for PPK in | |||
| IKE_SA_INIT and use NULL Authentication. Addtionally, since the | IKE_SA_INIT and use NULL Authentication. Addtionally, since the | |||
| peers are authenticated via PPK, the ID Type in the IDi/IDr payloads | peers are authenticated via PPK, the ID Type in the IDi/IDr payloads | |||
| SHOULD NOT be ID_NULL, despite using the NULL Authentication method. | SHOULD NOT be ID_NULL, despite using the NULL Authentication method. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| Quantum computers are able to perform Grover's algorithm; that | Quantum computers are able to perform Grover's algorithm [GROVER]; | |||
| effectively halves the size of a symmetric key. Because of this, the | that effectively halves the size of a symmetric key. Because of | |||
| user SHOULD ensure that the postquantum preshared key used has at | this, the user SHOULD ensure that the post-quantum preshared key used | |||
| least 256 bits of entropy, in order to provide 128 bits of security. | has at least 256 bits of entropy, in order to provide 128 bits of | |||
| post-quantum security. That provides security equivalent to Level 5 | ||||
| as defined in the NIST PQ Project Call For Proposals [NISTPQCFP]. | ||||
| With this protocol, the computed SK_d is a function of the PPK. | With this protocol, the computed SK_d is a function of the PPK. | |||
| Assuming that the PPK has sufficient entropy (for example, at least | Assuming that the PPK has sufficient entropy (for example, at least | |||
| 2^256 possible values), then even if an attacker was able to recover | 2^256 possible values), then even if an attacker was able to recover | |||
| the rest of the inputs to the PRF function, it would be infeasible to | the rest of the inputs to the PRF function, it would be infeasible to | |||
| use Grover's algorithm with a Quantum Computer to recover the SK_d | use Grover's algorithm with a quantum computer to recover the SK_d | |||
| value. Similarly, all keys that are a function of SK_d, which | value. Similarly, all keys that are a function of SK_d, which | |||
| include all Child SAs keys and all keys for subsequent IKE SAs | include all Child SAs keys and all keys for subsequent IKE SAs | |||
| (created when the initial IKE SA is rekeyed), are also quantum | (created when the initial IKE SA is rekeyed), are also quantum | |||
| resistant (assuming that the PPK was of high enough entropy, and that | resistant (assuming that the PPK was of high enough entropy, and that | |||
| all the subkeys are sufficiently long). | all the subkeys are sufficiently long). | |||
| An attacker with a Quantum Computer that can decrypt the initial IKE | An attacker with a quantum computer that can decrypt the initial IKE | |||
| SA has access to all the information exchanged over it, such as | SA has access to all the information exchanged over it, such as | |||
| identities of the peers, configuration parameters and all negotiated | identities of the peers, configuration parameters and all negotiated | |||
| IPsec SAs information (including traffic selectors), with the | IPsec SAs information (including traffic selectors), with the | |||
| exception of the cryptographic keys used by the IPsec SAs which are | exception of the cryptographic keys used by the IPsec SAs which are | |||
| protected by the PPK. | protected by the PPK. | |||
| Deployments that treat this information as sensitive or that send | Deployments that treat this information as sensitive or that send | |||
| other sensitive data (like cryptographic keys) over IKE SA MUST rekey | other sensitive data (like cryptographic keys) over IKE SA MUST rekey | |||
| the IKE SA before the sensitive information is sent to ensure this | the IKE SA before the sensitive information is sent to ensure this | |||
| information is protected by the PPK. It is possible to create a | information is protected by the PPK. It is possible to create a | |||
| skipping to change at page 15, line 17 ¶ | skipping to change at page 15, line 21 ¶ | |||
| SA that is not protected by a PPK. Some information related to IKE | SA that is not protected by a PPK. Some information related to IKE | |||
| SA, that is sent in the IKE_AUTH exchange, such as peer identities, | SA, that is sent in the IKE_AUTH exchange, such as peer identities, | |||
| feature notifications, Vendor ID's etc. cannot be hidden from the | feature notifications, Vendor ID's etc. cannot be hidden from the | |||
| attack described above, even if the additional IKE SA rekey is | attack described above, even if the additional IKE SA rekey is | |||
| performed. | performed. | |||
| In addition, the policy SHOULD be set to negotiate only quantum- | In addition, the policy SHOULD be set to negotiate only quantum- | |||
| resistant symmetric algorithms; while this RFC doesn't claim to give | resistant symmetric algorithms; while this RFC doesn't claim to give | |||
| advice as to what algorithms are secure (as that may change based on | advice as to what algorithms are secure (as that may change based on | |||
| future cryptographical results), below is a list of defined IKEv2 and | future cryptographical results), below is a list of defined IKEv2 and | |||
| IPsec algorithms that should NOT be used, as they are known not to be | IPsec algorithms that should not be used, as they are known to | |||
| quantum resistant | provide less than 128 bits of post-quantum security | |||
| o Any IKEv2 Encryption algorithm, PRF or Integrity algorithm with | o Any IKEv2 Encryption algorithm, PRF or Integrity algorithm with | |||
| key size less than 256 bits. | key size less than 256 bits. | |||
| o Any ESP Transform with key size less than 256 bits. | o Any ESP Transform with key size less than 256 bits. | |||
| o PRF_AES128_XCBC and PRF_AES128_CBC; even though they are defined | o PRF_AES128_XCBC and PRF_AES128_CBC; even though they are defined | |||
| to be able to use an arbitrary key size, they convert it into a | to be able to use an arbitrary key size, they convert it into a | |||
| 128-bit key internally. | 128-bit key internally. | |||
| skipping to change at page 15, line 46 ¶ | skipping to change at page 15, line 50 ¶ | |||
| IKE SA with a high enough rate, then the responder may consider it as | IKE SA with a high enough rate, then the responder may consider it as | |||
| a Denial-of-Service attack and take protection measures (see | a Denial-of-Service attack and take protection measures (see | |||
| [RFC8019] for more detail). In this situation, it is RECOMMENDED | [RFC8019] for more detail). In this situation, it is RECOMMENDED | |||
| that the initiator caches the negative result of the negotiation for | that the initiator caches the negative result of the negotiation for | |||
| some time and doesn't make attempts to create it again for some time, | some time and doesn't make attempts to create it again for some time, | |||
| because this is a result of misconfiguration and probably some re- | because this is a result of misconfiguration and probably some re- | |||
| configuration of the peers is needed. | configuration of the peers is needed. | |||
| If using PPKs is optional for both peers and they authenticate | If using PPKs is optional for both peers and they authenticate | |||
| themselves using digital signatures, then an attacker in between, | themselves using digital signatures, then an attacker in between, | |||
| equipped with a Quantum Computer capable of breaking public key | equipped with a quantum computer capable of breaking public key | |||
| operations in real time, is able to mount downgrade attack by | operations in real time, is able to mount downgrade attack by | |||
| removing USE_PPK notification from the IKE_SA_INIT and forging | removing USE_PPK notification from the IKE_SA_INIT and forging | |||
| digital signatures in the subsequent exchange. If using PPKs is | digital signatures in the subsequent exchange. If using PPKs is | |||
| mandatory for at least one of the peers or PSK is used for | mandatory for at least one of the peers or PSK is used for | |||
| authentication, then the attack will be detected and the SA won't be | authentication, then the attack will be detected and the SA won't be | |||
| created. | created. | |||
| If using PPKs is mandatory for the initiator, then an attacker able | If using PPKs is mandatory for the initiator, then an attacker able | |||
| to eavesdrop and to inject packets into the network can prevent | to eavesdrop and to inject packets into the network can prevent | |||
| creating an IKE SA by mounting the following attack. The attacker | creating an IKE SA by mounting the following attack. The attacker | |||
| skipping to change at page 16, line 23 ¶ | skipping to change at page 16, line 25 ¶ | |||
| response, then the initiator would abort the exchange. To thwart | response, then the initiator would abort the exchange. To thwart | |||
| this kind of attack it is RECOMMENDED, that if using PPKs is | this kind of attack it is RECOMMENDED, that if using PPKs is | |||
| mandatory for the initiator and the received response doesn't contain | mandatory for the initiator and the received response doesn't contain | |||
| the USE_PPK notification, then the initiator doesn't abort the | the USE_PPK notification, then the initiator doesn't abort the | |||
| exchange immediately, but instead waits some time for more responses | exchange immediately, but instead waits some time for more responses | |||
| (possibly retransmitting the request). If all the received responses | (possibly retransmitting the request). If all the received responses | |||
| contain no USE_PPK, then the exchange is aborted. | contain no USE_PPK, then the exchange is aborted. | |||
| If using PPK is optional for both peers, then in case of | If using PPK is optional for both peers, then in case of | |||
| misconfiguration (e.g. mismatched PPK_ID) the IKE SA will be created | misconfiguration (e.g. mismatched PPK_ID) the IKE SA will be created | |||
| without protection against Quantum Computers. It is advised that if | without protection against quantum computers. It is advised that if | |||
| PPK was configured, but was not used for a particular IKE SA, then | PPK was configured, but was not used for a particular IKE SA, then | |||
| implementations SHOULD audit this event. | implementations SHOULD audit this event. | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| This document defines three new Notify Message Types in the "Notify | This document defines three new Notify Message Types in the "Notify | |||
| Message Types - Status Types" registry: | Message Types - Status Types" registry: | |||
| 16435 USE_PPK | 16435 USE_PPK [THIS RFC] | |||
| 16436 PPK_IDENTITY | 16436 PPK_IDENTITY [THIS RFC] | |||
| 16437 NO_PPK_AUTH | 16437 NO_PPK_AUTH [THIS RFC] | |||
| This document also creates a new IANA registry for the PPK_ID types. | ||||
| The initial values of this registry are: | ||||
| PPK_ID Type Value | This document also creates a new IANA registry "IKEv2 Post-quantum | |||
| ----------- ----- | Preshared Key ID Types" in IKEv2 IANA registry | |||
| Reserved 0 | (https://www.iana.org/assignments/ikev2-parameters/) for the PPK_ID | |||
| PPK_ID_OPAQUE 1 | types. The initial values of the new registry are: | |||
| PPK_ID_FIXED 2 | ||||
| Unassigned 3-127 | ||||
| Reserved for private use 128-255 | ||||
| PPK_ID Type Value Reference | ||||
| ----------- ----- --------- | ||||
| Reserved 0 [THIS RFC] | ||||
| PPK_ID_OPAQUE 1 [THIS RFC] | ||||
| PPK_ID_FIXED 2 [THIS RFC] | ||||
| Unassigned 3-127 [THIS RFC] | ||||
| Reserved for private use 128-255 [THIS RFC] | ||||
| Changes and additions to this registry are by Expert Review | Changes and additions to this registry are by Expert Review | |||
| [RFC8126]. | [RFC8126]. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [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, | |||
| skipping to change at page 17, line 25 ¶ | skipping to change at page 17, line 27 ¶ | |||
| 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>. | |||
| [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>. | |||
| 8.2. Informational References | 8.2. Informational References | |||
| [GROVER] Grover, L., "A Fast Quantum Mechanical Algorithm for | ||||
| Database Search", Proc. of the Twenty-Eighth Annual ACM | ||||
| Symposium on the Theory of Computing (STOC 1996), 1996. | ||||
| [I-D.hoffman-c2pq] | [I-D.hoffman-c2pq] | |||
| Hoffman, P., "The Transition from Classical to Post- | Hoffman, P., "The Transition from Classical to Post- | |||
| Quantum Cryptography", draft-hoffman-c2pq-05 (work in | Quantum Cryptography", draft-hoffman-c2pq-06 (work in | |||
| progress), May 2019. | progress), November 2019. | |||
| [IKEV2-IANA-PRFS] | [IKEV2-IANA-PRFS] | |||
| "Internet Key Exchange Version 2 (IKEv2) Parameters, | "Internet Key Exchange Version 2 (IKEv2) Parameters, | |||
| Transform Type 2 - Pseudorandom Function Transform IDs", | Transform Type 2 - Pseudorandom Function Transform IDs", | |||
| <https://www.iana.org/assignments/ikev2-parameters/ | <https://www.iana.org/assignments/ikev2-parameters/ | |||
| ikev2-parameters.xhtml#ikev2-parameters-6>. | ikev2-parameters.xhtml#ikev2-parameters-6>. | |||
| [NISTPQCFP] | ||||
| NIST, "NIST Post-Quantum Cryptography Call for Proposals", | ||||
| 2016. | ||||
| [RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange | [RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange | |||
| (IKE)", RFC 2409, DOI 10.17487/RFC2409, November 1998, | (IKE)", RFC 2409, DOI 10.17487/RFC2409, November 1998, | |||
| <https://www.rfc-editor.org/info/rfc2409>. | <https://www.rfc-editor.org/info/rfc2409>. | |||
| [RFC6023] Nir, Y., Tschofenig, H., Deng, H., and R. Singh, "A | [RFC6023] Nir, Y., Tschofenig, H., Deng, H., and R. Singh, "A | |||
| Childless Initiation of the Internet Key Exchange Version | Childless Initiation of the Internet Key Exchange Version | |||
| 2 (IKEv2) Security Association (SA)", RFC 6023, | 2 (IKEv2) Security Association (SA)", RFC 6023, | |||
| DOI 10.17487/RFC6023, October 2010, | DOI 10.17487/RFC6023, October 2010, | |||
| <https://www.rfc-editor.org/info/rfc6023>. | <https://www.rfc-editor.org/info/rfc6023>. | |||
| skipping to change at page 18, line 23 ¶ | skipping to change at page 18, line 33 ¶ | |||
| DOI 10.17487/RFC8019, November 2016, | DOI 10.17487/RFC8019, November 2016, | |||
| <https://www.rfc-editor.org/info/rfc8019>. | <https://www.rfc-editor.org/info/rfc8019>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| <https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
| Appendix A. Discussion and Rationale | Appendix A. Discussion and Rationale | |||
| The idea behind this document is that while a Quantum Computer can | The idea behind this document is that while a quantum computer can | |||
| easily reconstruct the shared secret of an (EC)DH exchange, they | easily reconstruct the shared secret of an (EC)DH exchange, they | |||
| cannot as easily recover a secret from a symmetric exchange. This | cannot as easily recover a secret from a symmetric exchange. This | |||
| document makes the SK_d, and hence the IPsec KEYMAT and any child | document makes the SK_d, and hence the IPsec KEYMAT and any child | |||
| SA's SKEYSEED, depend on both the symmetric PPK, and also the Diffie- | SA's SKEYSEED, depend on both the symmetric PPK, and also the Diffie- | |||
| Hellman exchange. If we assume that the attacker knows everything | Hellman exchange. If we assume that the attacker knows everything | |||
| except the PPK during the key exchange, and there are 2^n plausible | except the PPK during the key exchange, and there are 2^n plausible | |||
| PPKs, then a Quantum Computer (using Grover's algorithm) would take | PPKs, then a quantum computer (using Grover's algorithm) would take | |||
| O(2^(n/2)) time to recover the PPK. So, even if the (EC)DH can be | O(2^(n/2)) time to recover the PPK. So, even if the (EC)DH can be | |||
| trivially solved, the attacker still can't recover any key material | trivially solved, the attacker still can't recover any key material | |||
| (except for the SK_ei, SK_er, SK_ai and SK_ar values for the initial | (except for the SK_ei, SK_er, SK_ai and SK_ar values for the initial | |||
| IKE exchange) unless they can find the PPK, which is too difficult if | IKE exchange) unless they can find the PPK, which is too difficult if | |||
| the PPK has enough entropy (for example, 256 bits). Note that we do | the PPK has enough entropy (for example, 256 bits). Note that we do | |||
| allow an attacker with a Quantum Computer to rederive the keying | allow an attacker with a quantum computer to rederive the keying | |||
| material for the initial IKE SA; this was a compromise to allow the | material for the initial IKE SA; this was a compromise to allow the | |||
| responder to select the correct PPK quickly. | responder to select the correct PPK quickly. | |||
| Another goal of this protocol is to minimize the number of changes | Another goal of this protocol is to minimize the number of changes | |||
| within the IKEv2 protocol, and in particular, within the cryptography | within the IKEv2 protocol, and in particular, within the cryptography | |||
| of IKEv2. By limiting our changes to notifications, and only | of IKEv2. By limiting our changes to notifications, and only | |||
| adjusting the SK_d, SK_pi, SK_pr, it is hoped that this would be | adjusting the SK_d, SK_pi, SK_pr, it is hoped that this would be | |||
| implementable, even on systems that perform most of the IKEv2 | implementable, even on systems that perform most of the IKEv2 | |||
| processing in hardware. | processing in hardware. | |||
| End of changes. 42 change blocks. | ||||
| 66 lines changed or deleted | 80 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||