draft-ietf-ipsecme-qr-ikev2-01.txt | draft-ietf-ipsecme-qr-ikev2-02.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: June 23, 2018 Cisco Systems | Expires: August 31, 2018 Cisco Systems | |||
V. Smyslov | V. Smyslov | |||
ELVIS-PLUS | ELVIS-PLUS | |||
December 20, 2017 | February 27, 2018 | |||
Postquantum Preshared Keys for IKEv2 | Postquantum Preshared Keys for IKEv2 | |||
draft-ietf-ipsecme-qr-ikev2-01 | draft-ietf-ipsecme-qr-ikev2-02 | |||
Abstract | Abstract | |||
The possibility of Quantum Computers pose a serious challenge to | The possibility of Quantum Computers pose a serious challenge to | |||
cryptography algorithms deployed widely today. IKEv2 is one example | cryptography 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 | |||
skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
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 June 23, 2018. | This Internet-Draft will expire on August 31, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Changes . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Changes . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.2. Requirements Language . . . . . . . . . . . . . . . . . . 5 | 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 5 | |||
2. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3. Exchanges . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Exchanges . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
4. Upgrade procedure . . . . . . . . . . . . . . . . . . . . . . 10 | 4. Upgrade procedure . . . . . . . . . . . . . . . . . . . . . . 10 | |||
5. PPK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 5. PPK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
5.1. PPK_ID format . . . . . . . . . . . . . . . . . . . . . . 11 | 5.1. PPK_ID format . . . . . . . . . . . . . . . . . . . . . . 11 | |||
5.2. Operational Considerations . . . . . . . . . . . . . . . 11 | 5.2. Operational Considerations . . . . . . . . . . . . . . . 12 | |||
5.2.1. PPK Distribution . . . . . . . . . . . . . . . . . . 12 | 5.2.1. PPK Distribution . . . . . . . . . . . . . . . . . . 12 | |||
5.2.2. Group PPK . . . . . . . . . . . . . . . . . . . . . . 12 | 5.2.2. Group PPK . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5.2.3. PPK-only Authentication . . . . . . . . . . . . . . . 12 | 5.2.3. PPK-only Authentication . . . . . . . . . . . . . . . 13 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 15 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 16 | |||
8.2. Informational References . . . . . . . . . . . . . . . . 16 | 8.2. Informational References . . . . . . . . . . . . . . . . 16 | |||
Appendix A. Discussion and Rationale . . . . . . . . . . . . . . 16 | Appendix A. Discussion and Rationale . . . . . . . . . . . . . . 17 | |||
Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 17 | Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 17 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
1. Introduction | 1. Introduction | |||
It is an open question whether or not it is feasible to build a | It is an open question whether or not it is feasible to build a | |||
Quantum Computer (and if so, when one might be implemented), but if | Quantum Computer (and if so, when one might be implemented), but if | |||
it is, many of the cryptographic algorithms and protocols currently | it is, many of the cryptographic algorithms and protocols currently | |||
in use would be insecure. A Quantum Computer would be able to solve | in use would be insecure. A Quantum Computer would be able to solve | |||
DH and ECDH problems in polynomial time [I-D.hoffman-c2pq], and this | DH and ECDH problems in polynomial time [I-D.hoffman-c2pq], and this | |||
would imply that the security of existing IKEv2 [RFC7296] systems | would imply that the security of existing IKEv2 [RFC7296] systems | |||
would be compromised. IKEv1 [RFC2409], when used with strong | would be compromised. IKEv1 [RFC2409], when used with strong | |||
skipping to change at page 3, line 34 ¶ | skipping to change at page 3, line 34 ¶ | |||
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-02 | ||||
o Added note that the PPK is stirred in the initial IKE SA setup | ||||
only. | ||||
o Added note about the initiator ignoring any content in the | ||||
PPK_IDENTITY notification from the responder. | ||||
o fixed Tero's suggestions from 2/6/1028 | ||||
o Added IANA assigned message types where necessary. | ||||
o fixed minor text nits | ||||
draft-ietf-ipsecme-qr-ikev2-01 | draft-ietf-ipsecme-qr-ikev2-01 | |||
o Nits and minor fixes. | o Nits and minor fixes. | |||
o prf is replaced with prf+ for the SK_d and SK_pi/r calculations. | o prf is replaced with prf+ for the SK_d and SK_pi/r calculations. | |||
o Clarified using PPK in case of EAP authentication. | o Clarified using PPK in case of EAP authentication. | |||
o PPK_SUUPORT 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 | draft-fluhrer-qr-ikev2-05 | |||
o Nits and editorial fixes. | o Nits and editorial fixes. | |||
skipping to change at page 5, line 43 ¶ | skipping to change at page 6, line 9 ¶ | |||
If the initiator is configured to use a postquantum preshared key | If the initiator is configured to use a postquantum 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 he will include a notification USE_PPK in the IKE_SA_INIT | then he 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 [TBA]; 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 she ignores the received notification and | any PPK configured, then she ignores the received notification and | |||
skipping to change at page 7, line 9 ¶ | skipping to change at page 7, line 27 ¶ | |||
as the initial ones, even if the underlying prf has output size | as the initial ones, even if the underlying prf has output size | |||
different from its key size. Note, that at the time this document | different from its key size. Note, that at the time this document | |||
was written, all prfs defined for use in IKEv2 [IKEV2-IANA-PRFS] had | was written, all prfs defined for use in IKEv2 [IKEV2-IANA-PRFS] had | |||
output size equal to the (preferred) key size. For such prfs only | output size equal to the (preferred) key size. For such prfs only | |||
the first iteration of prf+ is needed: | the first iteration of prf+ is needed: | |||
SK_d = prf (PPK, SK_d' | 0x01) | SK_d = prf (PPK, SK_d' | 0x01) | |||
SK_pi = prf (PPK, SK_pi' | 0x01) | SK_pi = prf (PPK, SK_pi' | 0x01) | |||
SK_pr = prf (PPK, SK_pr' | 0x01) | SK_pr = prf (PPK, SK_pr' | 0x01) | |||
Note that the PPK is used in SK_d, SK_pi and SK_pr calculation only | ||||
during the initial IKE SA setup. It MUST NOT be used when these | ||||
subkeys are calculated as result of IKE SA rekey, resumption or other | ||||
similar operation. | ||||
The initiator then sends the IKE_AUTH request message, including the | The initiator then sends the IKE_AUTH request message, including the | |||
PPK_ID value as follows: | PPK_ID value as follows: | |||
Initiator Responder | Initiator Responder | |||
------------------------------------------------------------------ | ------------------------------------------------------------------ | |||
HDR, SK {IDi, [CERT,] [CERTREQ,] | HDR, SK {IDi, [CERT,] [CERTREQ,] | |||
[IDr,] AUTH, SAi2, | [IDr,] AUTH, SAi2, | |||
TSi, TSr, N(PPK_IDENTITY)(PPK_ID), [N(NO_PPK_AUTH)]} ---> | TSi, TSr, N(PPK_IDENTITY, PPK_ID), [N(NO_PPK_AUTH)]} ---> | |||
PPK_IDENTITY is a status notification with the type [TBA]; it has a | PPK_IDENTITY is a status notification with the type 16436; it has a | |||
protocol ID of 0, no SPI and a notification data that consists of the | protocol ID of 0, no SPI and a notification data that consists of the | |||
identifier PPK_ID. | identifier PPK_ID. | |||
A situation may happen when the responder has some PPKs, but doesn't | A situation may happen when the responder has some PPKs, but doesn't | |||
have a PPK with the PPK_ID received from the initiator. In this case | have a PPK with the PPK_ID received from the initiator. In this case | |||
the responder cannot continue with PPK (in particular, she cannot | the responder cannot continue with PPK (in particular, she cannot | |||
authenticate the initiator), but she could be able to continue with | authenticate the initiator), but she could be able to continue with | |||
normal IKEv2 protocol if the initiator provided its authentication | normal IKEv2 protocol if the initiator provided its authentication | |||
data computed as in normal IKEv2, without using PPKs. For this | data computed as in normal IKEv2, without using PPKs. For this | |||
purpose, if using PPKs for communication with this responder is | purpose, if using PPKs for communication with this responder is | |||
optional for the initiator, then the initiator MAY include a | optional for the initiator, then the initiator MAY include a | |||
notification NO_PPK_AUTH in the above message. | notification NO_PPK_AUTH in the above message. | |||
NO_PPK_AUTH is a status notification with the type [TBA]; it has a | NO_PPK_AUTH is a status notification with the type 16437; it has a | |||
protocol ID of 0 and no SPI. A notification data consists of the | protocol ID of 0 and no SPI. A notification data consists of the | |||
initiator's authentication data computed using SK_pi' (i.e. the data | initiator's authentication data computed using SK_pi' (i.e. the data | |||
that computed without using PPKs and would normally be placed in the | that computed without using PPKs and would normally be placed in the | |||
AUTH payload). Authentication Method for computing the | AUTH payload). Authentication Method for computing the | |||
authentication data MUST be the same as indicated in the AUTH payload | authentication data MUST be the same as indicated in the AUTH payload | |||
and is not included in the notification. Note that if the initiator | and is not included in the notification. Note that if the initiator | |||
decides to include NO_PPK_AUTH notification, then it means that the | decides to include NO_PPK_AUTH notification, then it means that the | |||
initiator needs to perform authentication data computation twice that | initiator needs to perform authentication data computation twice that | |||
may consume substantial computation power (e.g. if digital signatures | may consume substantial computation power (e.g. if digital signatures | |||
are involved). | are involved). | |||
skipping to change at page 9, line 14 ¶ | skipping to change at page 9, line 37 ¶ | |||
Initiator Responder | Initiator Responder | |||
------------------------------------------------------------------ | ------------------------------------------------------------------ | |||
<-- HDR, SK {IDr, [CERT,] | <-- HDR, SK {IDr, [CERT,] | |||
AUTH, SAr2, | AUTH, SAr2, | |||
TSi, TSr, N(PPK_IDENTITY)} | TSi, TSr, N(PPK_IDENTITY)} | |||
When the initiator receives the response, then he checks for the | When the initiator receives the response, then he checks for the | |||
presence of the PPK_IDENTITY notification. If he receives one, he | presence of the PPK_IDENTITY notification. If he receives one, he | |||
marks the SA as using the configured PPK to generate SK_d, SK_pi, | marks the SA as using the configured PPK to generate SK_d, SK_pi, | |||
SK_pr (as shown above); if he does not receive one, he MUST either | SK_pr (as shown above); the content of the received PPK_IDENTITY (if | |||
fail the IKE SA negotiation sending the AUTHENTICATION_FAILED | any) MUST be ignored. If the initiator does not receive the | |||
notification in the Informational exchange (if the PPK was configured | PPK_IDENTITY, he MUST either fail the IKE SA negotiation sending the | |||
as mandatory), or continue without using the PPK (if the PPK was not | AUTHENTICATION_FAILED notification in the Informational exchange (if | |||
configured as mandatory and the initiator included the NO_PPK_AUTH | the PPK was configured as mandatory), or continue without using the | |||
notification in the request). | PPK (if the PPK was not configured as mandatory and the initiator | |||
included the NO_PPK_AUTH notification in the request). | ||||
If EAP is used in the IKE_AUTH exchange, then the initiator doesn't | If EAP is used in the IKE_AUTH exchange, then the initiator doesn't | |||
include AUTH payload in the first request message, however the | include AUTH payload in the first request message, however the | |||
responder sends back AUTH payload in the first reply. The peers then | responder sends back AUTH payload in the first reply. The peers then | |||
exchange AUTH payloads after EAP is successfully completed. As a | exchange AUTH payloads after EAP is successfully completed. As a | |||
result, the responder sends AUTH payload twice - in the first | result, the responder sends AUTH payload twice - in the first | |||
IKE_AUTH reply message and in the last one, while the initiator sends | IKE_AUTH reply message and in the last one, while the initiator sends | |||
AUTH payload only in the last IKE_AUTH request. See more details | AUTH payload only in the last IKE_AUTH request. See more details | |||
about EAP authentication in IKEv2 in Section 2.16 of [RFC7296]. | about EAP authentication in IKEv2 in Section 2.16 of [RFC7296]. | |||
skipping to change at page 10, line 15 ¶ | skipping to change at page 10, line 25 ¶ | |||
Initiator Responder | Initiator Responder | |||
------------------------------------------------------------------- | ------------------------------------------------------------------- | |||
HDR, SK {IDi, [CERTREQ,] | HDR, SK {IDi, [CERTREQ,] | |||
[IDr,] SAi2, | [IDr,] SAi2, | |||
TSi, TSr} --> | TSi, TSr} --> | |||
<-- HDR, SK {IDr, [CERT,] AUTH, | <-- HDR, SK {IDr, [CERT,] AUTH, | |||
EAP} | EAP} | |||
HDR, SK {EAP} --> | HDR, SK {EAP} --> | |||
<-- HDR, SK {EAP (success)} | <-- HDR, SK {EAP (success)} | |||
HDR, SK {AUTH, | HDR, SK {AUTH, | |||
N(PPK_IDENTITY)(PPK_ID) | N(PPK_IDENTITY, PPK_ID) | |||
[, N(NO_PPK_AUTH)]} --> | [, N(NO_PPK_AUTH)]} --> | |||
<-- HDR, SK {AUTH, SAr2, TSi, TSr | <-- HDR, SK {AUTH, SAr2, TSi, TSr | |||
[, N(PPK_IDENTITY)]} | [, N(PPK_IDENTITY)]} | |||
Note, that the IKE_SA_INIT exchange in case of PPK is as described | Note, that the IKE_SA_INIT exchange in case of PPK is as described | |||
above (including exchange of the USE_PPK notifications), regardless | above (including exchange of the USE_PPK notifications), regardless | |||
whether EAP is employed in the IKE_AUTH or not. | whether EAP is employed in the IKE_AUTH or not. | |||
4. Upgrade procedure | 4. Upgrade procedure | |||
skipping to change at page 10, line 49 ¶ | skipping to change at page 11, line 10 ¶ | |||
With this configuration, the node will continue to operate with nodes | With this configuration, the node will continue to operate with nodes | |||
that have not yet been upgraded. This is due to the USE_PPK notify | that have not yet been upgraded. This is due to the USE_PPK notify | |||
and the NO_PPK_AUTH notify; if the initiator has not been upgraded, | and the NO_PPK_AUTH notify; if the initiator has not been upgraded, | |||
he will not send the USE_PPK notify (and so the responder will know | he will not send the USE_PPK notify (and so the responder will know | |||
that we will not use a PPK). If the responder has not been upgraded, | that we will not use a PPK). If the responder has not been upgraded, | |||
she will not send the USE_PPK notify (and so the initiator will know | she will not send the USE_PPK notify (and so the initiator will know | |||
to not use a PPK). If both peers have been upgraded, but the | to not use a PPK). If both peers have been upgraded, but the | |||
responder isn't yet configured with the PPK for the initiator, then | responder isn't yet configured with the PPK for the initiator, then | |||
the responder could do standard IKEv2 protocol if the initiator sent | the responder could do standard IKEv2 protocol if the initiator sent | |||
NO_PPK_AUTH notification. If the responder has not been upgraded and | NO_PPK_AUTH notification. If both the responder and initiator have | |||
properly configured, they will both realize it, and in that case, the | been upgraded and properly configured, they will both realize it, and | |||
link will be quantum secure. | in that case, the link will be 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 may then go back through the nodes, and mark the | the administrator may 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 | |||
skipping to change at page 13, line 37 ¶ | skipping to change at page 13, line 50 ¶ | |||
(assuming that the PPK was high entropy and secret, and that all the | (assuming that the PPK was high entropy and secret, and that all the | |||
subkeys are sufficiently long). | subkeys are sufficiently long). | |||
Although this protocol preserves all the security properties of IKEv2 | Although this protocol preserves all the security properties of IKEv2 | |||
against adversaries with conventional computers, it allows an | against adversaries with conventional computers, it allows an | |||
adversary with a Quantum Computer to decrypt all traffic encrypted | adversary with a Quantum Computer to decrypt all traffic encrypted | |||
with the initial IKE SA. In particular, it allows the adversary to | with the initial IKE SA. In particular, it allows the adversary to | |||
recover the identities of both sides. If there is IKE traffic other | recover the identities of both sides. If there is IKE traffic other | |||
than the identities that need to be protected against such an | than the identities that need to be protected against such an | |||
adversary, implementations MAY rekey the initial IKE SA immediately | adversary, implementations MAY rekey the initial IKE SA immediately | |||
after negotiating it to generate a new SKEYSEED with from the | after negotiating it to generate a new SKEYSEED from the postquantum | |||
postquantum SK_d. This would reduce the amount of data available to | SK_d. This would reduce the amount of data available to an attacker | |||
an attacker with a Quantum Computer. | with a Quantum Computer. | |||
Alternatively, an initial IKE SA (which is used to exchange | Alternatively, an initial IKE SA (which is used to exchange | |||
identities) can take place, perhaps by using the protocol documented | identities) can take place, perhaps by using the protocol documented | |||
in [RFC6023]. After the childless IKE SA is created, implementations | in [RFC6023]. After the childless IKE SA is created, implementations | |||
would immediately create a new IKE SA (which is used to exchange | would immediately create a new IKE SA (which is used to exchange | |||
everything else) by using a rekey mechanism for IKE SAs. Because the | everything else) by using a rekey mechanism for IKE SAs. Because the | |||
rekeyed IKE SA keys are a function of SK_d, which is a function of | rekeyed IKE SA keys are a function of SK_d, which is a function of | |||
the PPK (among other things), traffic protected by that IKE SA is | the PPK (among other things), traffic protected by that IKE SA is | |||
secure against Quantum capable adversaries. | secure against Quantum capable adversaries. | |||
skipping to change at page 15, line 20 ¶ | skipping to change at page 15, line 29 ¶ | |||
doesn't contain the USE_PPK notification, then the initiator doesn't | doesn't contain the USE_PPK notification, then the initiator doesn't | |||
abort exchange immediately, but instead waits some time for more | abort 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. | responses contain no USE_PPK, then the exchange is aborted. | |||
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: | |||
<TBA> USE_PPK | 16435 USE_PPK | |||
<TBA> PPK_IDENTITY | 16436 PPK_IDENTITY | |||
<TBA> NO_PPK_AUTH | 16437 NO_PPK_AUTH | |||
This document also creates a new IANA registry for the PPK_ID types. | This document also creates a new IANA registry for the PPK_ID types. | |||
The initial values of this registry are: | The initial values of this registry are: | |||
PPK_ID Type Value | PPK_ID Type Value | |||
----------- ----- | ----------- ----- | |||
Reserved 0 | Reserved 0 | |||
PPK_ID_OPAQUE 1 | PPK_ID_OPAQUE 1 | |||
PPK_ID_FIXED 2 | PPK_ID_FIXED 2 | |||
Unassigned 3-127 | Unassigned 3-127 | |||
skipping to change at page 17, line 20 ¶ | skipping to change at page 17, line 32 ¶ | |||
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, SK_ar values for the initial IKE | (except for the SK_ei, SK_er, SK_ai, SK_ar values for the initial IKE | |||
exchange) unless they can find the PPK, which is too difficult if the | 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 | 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 translating | of IKEv2. By limiting our changes to notifications, and adjusting | |||
the nonces, it is hoped that this would be implementable, even on | the SK_d, SK_pi, SK_pr, it is hoped that this would be implementable, | |||
systems that perform much of the IKEv2 processing is in hardware. | even on systems that perform much of the IKEv2 processing is in | |||
hardware. | ||||
A third goal was to be friendly to incremental deployment in | A third goal was to be friendly to incremental deployment in | |||
operational networks, for which we might not want to have a global | operational networks, for which we might not want to have a global | |||
shared key or quantum resistant IKEv2 is rolled out incrementally. | shared key or quantum resistant IKEv2 is rolled out incrementally. | |||
This is why we specifically try to allow the PPK to be dependent on | 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. | the peer, and why we allow the PPK to be configured as optional. | |||
A fourth goal was to avoid violating any of the security goals of | A fourth goal was to avoid violating any of the security goals of | |||
IKEv2. | IKEv2. | |||
End of changes. 23 change blocks. | ||||
34 lines changed or deleted | 55 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |