draft-ietf-ipsecme-qr-ikev2-10.txt | draft-ietf-ipsecme-qr-ikev2-11.txt | |||
---|---|---|---|---|
Internet Engineering Task Force S. Fluhrer | Internet Engineering Task Force S. Fluhrer | |||
Internet-Draft D. McGrew | Internet-Draft P. Kampanakis | |||
Intended status: Standards Track P. Kampanakis | Intended status: Standards Track D. McGrew | |||
Expires: June 29, 2020 Cisco Systems | Expires: July 17, 2020 Cisco Systems | |||
V. Smyslov | V. Smyslov | |||
ELVIS-PLUS | ELVIS-PLUS | |||
December 27, 2019 | January 14, 2020 | |||
Mixing Preshared Keys in IKEv2 for Post-quantum Resistance | Mixing Preshared Keys in IKEv2 for Post-quantum Security | |||
draft-ietf-ipsecme-qr-ikev2-10 | draft-ietf-ipsecme-qr-ikev2-11 | |||
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 | |||
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 29, 2020. | This Internet-Draft will expire on July 17, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
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 33 ¶ | skipping to change at page 2, line 33 ¶ | |||
5. PPK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 5. PPK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5.1. PPK_ID format . . . . . . . . . . . . . . . . . . . . . . 12 | 5.1. PPK_ID format . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5.2. Operational Considerations . . . . . . . . . . . . . . . 13 | 5.2. Operational Considerations . . . . . . . . . . . . . . . 13 | |||
5.2.1. PPK Distribution . . . . . . . . . . . . . . . . . . 13 | 5.2.1. PPK Distribution . . . . . . . . . . . . . . . . . . 13 | |||
5.2.2. Group PPK . . . . . . . . . . . . . . . . . . . . . . 13 | 5.2.2. Group PPK . . . . . . . . . . . . . . . . . . . . . . 13 | |||
5.2.3. PPK-only Authentication . . . . . . . . . . . . . . . 14 | 5.2.3. PPK-only Authentication . . . . . . . . . . . . . . . 14 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
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 . . . . . . . . . . . . . . . . 18 | |||
Appendix A. Discussion and Rationale . . . . . . . . . . . . . . 18 | Appendix A. Discussion and Rationale . . . . . . . . . . . . . . 19 | |||
Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 19 | Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 20 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
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-secure, that is, secure against classical attackers of | |||
quantum computer. | today or future attackers with a 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 post- | then the resulting exchange is quantum-secure. By bringing post- | |||
quantum security to IKEv2, this note removes the need to use an | quantum security to IKEv2, this document 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 | |||
allows both sides to detect a secret mismatch cleanly. | allows both sides to detect a secret mismatch cleanly. | |||
It was considered important to minimize the changes to IKEv2. The | It was considered important to minimize the changes to IKEv2. The | |||
existing mechanisms to do authentication and key exchange remain in | existing mechanisms to do authentication and key exchange remain in | |||
place (that is, we continue to do (EC)DH, and potentially PKI | place (that is, we continue to do (EC)DH, and potentially PKI | |||
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, they are | |||
a parallel check. | strengthened by using an additional secret key. | |||
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-11 | ||||
o Updates the IANA section based on Eric V.'s IESG Review. | ||||
o Updates based on IESG Reviews (Alissa, Adam, Barry, Alexey, Mijra, | ||||
Roman, Martin. | ||||
draft-ietf-ipsecme-qr-ikev2-10 | draft-ietf-ipsecme-qr-ikev2-10 | |||
o Addresses issues raised during IETF LC. | 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 | 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. | |||
skipping to change at page 4, line 46 ¶ | skipping to change at page 5, line 5 ¶ | |||
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_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 | ||||
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 6, line 42 ¶ | skipping to change at page 6, line 47 ¶ | |||
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 post-quantum 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 MUST 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 | notification, then the resend would include the USE_PPK notification | |||
the resend would include the USE_PPK notification if the original | if the original message did (see Section 2.6 of [RFC7296]). | |||
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 (as | any PPK configured, then it ignores the received notification (as | |||
defined in [RFC7296] for unknown status notifications) and continues | defined in [RFC7296] for unknown status notifications) and continues | |||
with the IKEv2 protocol as normal. Otherwise the responder replies | with the IKEv2 protocol as normal. Otherwise the responder replies | |||
with the IKE_SA_INIT message including a USE_PPK notification in the | with the IKE_SA_INIT message including a USE_PPK notification in the | |||
response: | 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 | |||
misconfiguration, when the initiator believes it has a mandatory to | misconfiguration, when the initiator believes it has a mandatory-to- | |||
use PPK for the responder, while the responder either doesn't support | use PPK for the responder, while the responder either doesn't support | |||
PPKs at all or doesn't have any PPK configured for the initiator. | PPKs at all or doesn't have any PPK configured for the initiator. | |||
See Section 6 for discussion of the possible impacts of this | See Section 6 for discussion of the possible impacts of this | |||
situation. | situation. | |||
If the responder did not include the USE_PPK notification and using a | If the responder did not include the USE_PPK notification and using a | |||
PPK for this particular responder is optional, then the initiator | PPK for this particular responder is optional, then the initiator | |||
continues with the IKEv2 protocol as normal, without using PPKs. | continues with the IKEv2 protocol as normal, without using PPKs. | |||
If the responder did include the USE_PPK notification, then the | If the responder did include the USE_PPK notification, then the | |||
initiator selects a PPK, along with its identifier PPK_ID. Then, it | initiator selects a PPK, along with its identifier PPK_ID. Then, it | |||
computes this modification of the standard IKEv2 key derivation: | computes this modification of the standard IKEv2 key derivation from | |||
Section 2.14 of [RFC7296]: | ||||
SKEYSEED = prf(Ni | Nr, g^ir) | SKEYSEED = prf(Ni | Nr, g^ir) | |||
{SK_d' | SK_ai | SK_ar | SK_ei | SK_er | SK_pi' | SK_pr' ) | {SK_d' | SK_ai | SK_ar | SK_ei | SK_er | SK_pi' | SK_pr' ) | |||
= prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr } | = prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr } | |||
SK_d = prf+ (PPK, SK_d') | SK_d = prf+ (PPK, SK_d') | |||
SK_pi = prf+ (PPK, SK_pi') | SK_pi = prf+ (PPK, SK_pi') | |||
SK_pr = prf+ (PPK, SK_pr') | SK_pr = prf+ (PPK, SK_pr') | |||
That is, we use the standard IKEv2 key derivation process except that | That is, we use the standard IKEv2 key derivation process except that | |||
the three subkeys SK_d, SK_pi, SK_pr are run through the prf+ again, | the three resulting subkeys SK_d, SK_pi, SK_pr (marked with primes in | |||
this time using the PPK as the key. Using prf+ construction ensures | the formula above) are then run through the prf+ again, this time | |||
that it is always possible to get the resulting keys of the same size | using the PPK as the key. The result is the unprimed versions of | |||
as the initial ones, even if the underlying PRF has output size | these keys which are then used as inputs to subsequent steps of the | |||
different from its key size. Note, that at the time this document | IKEv2 exchange. | |||
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 | Using a prf+ construction ensures that it is always possible to get | |||
the first iteration of prf+ is needed: | the resulting keys of the same size as the initial ones, even if the | |||
underlying PRF has output size different from its key size. Note, | ||||
that at the time of this writing, all PRFs defined for use in IKEv2 | ||||
[IKEV2-IANA-PRFS] had 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_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 | 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 | 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 | subkeys are calculated as result of IKE SA rekey, resumption or other | |||
similar operation. | similar operation. | |||
skipping to change at page 8, line 38 ¶ | skipping to change at page 9, line 7 ¶ | |||
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, it cannot | the responder cannot continue with PPK (in particular, it cannot | |||
authenticate the initiator), but the responder could be able to | authenticate the initiator), but the responder could be able to | |||
continue with normal IKEv2 protocol if the initiator provided its | continue with normal IKEv2 protocol if the initiator provided its | |||
authentication data computed as in normal IKEv2, without using PPKs. | authentication data computed as in normal IKEv2, without using PPKs. | |||
For this purpose, if using PPKs for communication with this responder | For this purpose, if using PPKs for communication with this responder | |||
is optional for the initiator, then the initiator MAY include a | is optional for the initiator (based on the mandatory_or_not flag), | |||
notification NO_PPK_AUTH in the above message. | then the initiator MUST include a NO_PPK_AUTH notification in the | |||
above message. This notification informs the responder that PPK is | ||||
optional and allows for authenticating the initiator without using | ||||
PPK. | ||||
NO_PPK_AUTH is a status notification with the type 16437; it has a | NO_PPK_AUTH is a status notification with the type 16437; it has a | |||
protocol ID of 0 and no SPI. The Notification Data field contains | protocol ID of 0 and no SPI. The Notification Data field contains | |||
the initiator's authentication data computed using SK_pi', which has | the initiator's authentication data computed using SK_pi', which has | |||
been computed without using PPKs. This is the same data that would | been computed without using PPKs. This is the same data that would | |||
normally be placed in the Authentication Data field of an AUTH | normally be placed in the Authentication Data field of an AUTH | |||
payload. Since the Auth Method field is not present in the | payload. Since the Auth Method field is not present in the | |||
notification, the authentication method used for computing the | notification, the authentication method used for computing the | |||
authentication data MUST be the same as method indicated in the AUTH | authentication data MUST be the same as method indicated in the AUTH | |||
payload. Note that if the initiator decides to include the | payload. Note that if the initiator decides to include the | |||
NO_PPK_AUTH notification, the initiator needs to perform | NO_PPK_AUTH notification, the initiator needs to perform | |||
authentication data computation twice, which may consume computation | authentication data computation twice, which may consume computation | |||
power (e.g. if digital signatures are involved). | power (e.g., if digital signatures are involved). | |||
When the responder receives this encrypted exchange, it first | When the responder receives this encrypted exchange, it first | |||
computes the values: | computes the values: | |||
SKEYSEED = prf(Ni | Nr, g^ir) | SKEYSEED = prf(Ni | Nr, g^ir) | |||
{SK_d' | SK_ai | SK_ar | SK_ei | SK_er | SK_pi' | SK_pr' } | {SK_d' | SK_ai | SK_ar | SK_ei | SK_er | SK_pi' | SK_pr' } | |||
= prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr ) | = prf+ (SKEYSEED, Ni | Nr | SPIi | SPIr ) | |||
The responder then uses the SK_ei/SK_ai values to decrypt/check the | The responder then uses the SK_ei/SK_ai values to decrypt/check the | |||
message and then scans through the payloads for the PPK_ID attached | message and then scans through the payloads for the PPK_ID attached | |||
skipping to change at page 12, line 12 ¶ | skipping to change at page 12, line 30 ¶ | |||
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, but it would mean that an active attacker with a | |||
computer (which is sufficiently fast to be able to break the (EC)DH | quantum computer (which is sufficiently fast to be able to break the | |||
in real time) would not be able to perform a downgrade attack. | (EC)DH 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 | |||
values, and do the look up based on PPK_ID value. It is anticipated | values, and do the look up based on PPK_ID value. It is anticipated | |||
that later standards will extend this technique to allow dynamically | that later specifications will extend this technique to allow | |||
changing PPK values. To facilitate such an extension, we specify | dynamically changing PPK values. To facilitate such an extension, we | |||
that the PPK_ID the initiator sends will have its first octet be the | specify that the PPK_ID the initiator sends will have its first octet | |||
PPK_ID Type value. This document defines two values for PPK_ID Type: | be the PPK_ID Type value. This document defines two values for | |||
PPK_ID Type: | ||||
o PPK_ID_OPAQUE (1) - for this type the format of the PPK_ID (and | o 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 | the PPK itself) is not specified by this document; it is assumed | |||
to be mutually intelligible by both by initiator and the | to be mutually intelligible by both by initiator and the | |||
responder. This PPK_ID type is intended for those implementations | responder. This PPK_ID type is intended for those implementations | |||
that choose not to disclose the type of PPK to active attackers. | that choose not to disclose the type of PPK to active attackers. | |||
o PPK_ID_FIXED (2) - in this case the format of the PPK_ID and the | o 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 | PPK are fixed octet strings; the remaining bytes of the PPK_ID are | |||
a configured value. We assume that there is a fixed mapping | a configured value. We assume that there is a fixed mapping | |||
between PPK_ID and PPK, which is configured locally to both the | between PPK_ID and PPK, which is configured locally to both the | |||
initiator and the responder. The responder can use the PPK_ID to | initiator and the responder. The responder can use the PPK_ID to | |||
look up the corresponding PPK value. Not all implementations are | look up the corresponding PPK value. Not all implementations are | |||
able to configure arbitrary octet strings; to improve the | able to configure arbitrary octet strings; to improve the | |||
potential interoperability, it is recommended that, in the | potential interoperability, it is recommended that, in the | |||
PPK_ID_FIXED case, both the PPK and the PPK_ID strings be limited | PPK_ID_FIXED case, both the PPK and the PPK_ID strings be limited | |||
to the base64 character set, namely the 64 characters 0-9, A-Z, | to the Base64 character set [RFC4648]. | |||
a-z, + and /. | ||||
The PPK_ID type value 0 is reserved; values 3-127 are reserved for | ||||
IANA; values 128-255 are for private use among mutually consenting | ||||
parties. | ||||
5.2. Operational Considerations | 5.2. Operational Considerations | |||
The need to maintain several independent sets of security credentials | The need to maintain several independent sets of security credentials | |||
can significantly complicate a security administrator's job, and can | can significantly complicate a security administrator's job, and can | |||
potentially slow down widespread adoption of this specification. It | potentially slow down widespread adoption of this specification. It | |||
is anticipated, that administrators will try to simplify their job by | is anticipated, that administrators will try to simplify their job by | |||
decreasing the number of credentials they need to maintain. This | decreasing the number of credentials they need to maintain. This | |||
section describes some of the considerations for PPK management. | section describes some of the considerations for PPK management. | |||
skipping to change at page 14, line 21 ¶ | skipping to change at page 14, line 31 ¶ | |||
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. Additionally, 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 [GROVER]; | Quantum computers are able to perform Grover's algorithm [GROVER]; | |||
that effectively halves the size of a symmetric key. Because of | that effectively halves the size of a symmetric key. Because of | |||
this, the user SHOULD ensure that the post-quantum preshared key used | this, the user SHOULD ensure that the post-quantum preshared key used | |||
has at least 256 bits of entropy, in order to provide 128 bits of | has at least 256 bits of entropy, in order to provide 128 bits of | |||
post-quantum security. That provides security equivalent to Level 5 | post-quantum security. That provides security equivalent to Level 5 | |||
as defined in the NIST PQ Project Call For Proposals [NISTPQCFP]. | 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-secure | |||
resistant (assuming that the PPK was of high enough entropy, and that | (assuming that the PPK was of high enough entropy, and that all the | |||
all the subkeys are sufficiently long). | 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 | |||
childless IKE SA as specified in [RFC6023]. This prevents Child SA | childless IKE SA as specified in [RFC6023]. This prevents Child SA | |||
configuration information from being transmited in the original IKE | 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 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 | secure 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 to | IPsec algorithms that should not be used, as they are known to | |||
provide less than 128 bits of post-quantum security | 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. | |||
skipping to change at page 15, line 41 ¶ | skipping to change at page 15, line 50 ¶ | |||
128-bit key internally. | 128-bit key internally. | |||
Section 3 requires the initiator to abort the initial exchange if | Section 3 requires the initiator to abort the initial exchange if | |||
using PPKs is mandatory for it, but the responder does not include | using PPKs is mandatory for it, but the responder does not include | |||
the USE_PPK notification in the response. In this situation, when | the USE_PPK notification in the response. In this situation, when | |||
the initiator aborts negotiation it leaves a half-open IKE SA on the | the initiator aborts negotiation it leaves a half-open IKE SA on the | |||
responder (because IKE_SA_INIT completes successfully from the | responder (because IKE_SA_INIT completes successfully from the | |||
responder's point of view). This half-open SA will eventually expire | responder's point of view). This half-open SA will eventually expire | |||
and be deleted, but if the initiator continues its attempts to create | and be deleted, but if the initiator continues its attempts to create | |||
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 (DoS) 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 and | |||
some time and doesn't make attempts to create it again for some time, | doesn't make attempts to create it again for some time. This period | |||
because this is a result of misconfiguration and probably some re- | of time may vary, but it is believed that waiting for at least few | |||
configuration of the peers is needed. | minutes will not cause the responder to treat it as DoS attack. | |||
Note, that this situation would most likely be a result of | ||||
misconfiguration and some re-configuration of the peers would | ||||
probably be 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. | |||
skipping to change at page 16, line 19 ¶ | skipping to change at page 16, line 32 ¶ | |||
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 | |||
intercepts the initial request containing the USE_PPK notification | intercepts the initial request containing the USE_PPK notification | |||
and injects a forged response containing no USE_PPK. If the attacker | and injects a forged response containing no USE_PPK. If the attacker | |||
manages to inject this packet before the responder sends a genuine | manages to inject this packet before the responder sends a genuine | |||
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. Instead it waits for more response messages | |||
(possibly retransmitting the request). If all the received responses | retransmitting the request as if no responses were received at all, | |||
contain no USE_PPK, then the exchange is aborted. | until either the received message contains the USE_PPK or the | |||
exchange times out (see section 2.4 of [RFC7296] for more details | ||||
about retransmission timers in IKEv2). If neither of the received | ||||
responses contains 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 | |||
(https://www.iana.org/assignments/ikev2-parameters/ | ||||
ikev2-parameters.xhtml#ikev2-parameters-16): | ||||
16435 USE_PPK [THIS RFC] | 16435 USE_PPK [THIS RFC] | |||
16436 PPK_IDENTITY [THIS RFC] | 16436 PPK_IDENTITY [THIS RFC] | |||
16437 NO_PPK_AUTH [THIS RFC] | 16437 NO_PPK_AUTH [THIS RFC] | |||
This document also creates a new IANA registry "IKEv2 Post-quantum | This document also creates a new IANA registry "IKEv2 Post-quantum | |||
Preshared Key ID Types" in IKEv2 IANA registry | Preshared Key ID Types" in IKEv2 IANA registry | |||
(https://www.iana.org/assignments/ikev2-parameters/) for the PPK_ID | (https://www.iana.org/assignments/ikev2-parameters/) for the PPK_ID | |||
types. The initial values of the new registry are: | types used in the PPK_IDENTITY notification defined in this | |||
specification. The initial values of the new registry are: | ||||
PPK_ID Type Value Reference | PPK_ID Type Value Reference | |||
----------- ----- --------- | ----------- ----- --------- | |||
Reserved 0 [THIS RFC] | Reserved 0 [THIS RFC] | |||
PPK_ID_OPAQUE 1 [THIS RFC] | PPK_ID_OPAQUE 1 [THIS RFC] | |||
PPK_ID_FIXED 2 [THIS RFC] | PPK_ID_FIXED 2 [THIS RFC] | |||
Unassigned 3-127 [THIS RFC] | Unassigned 3-127 [THIS RFC] | |||
Reserved for private use 128-255 [THIS RFC] | Private Use 128-255 [THIS RFC] | |||
Changes and additions to this registry are by Expert Review | ||||
[RFC8126]. | The PPK_ID type value 0 is reserved; values 3-127 are to be assigned | |||
by IANA; values 128-255 are for private use among mutually consenting | ||||
parties. To register new PPK_IDs in the unassigned range, a Type | ||||
name, a Value between 3 and 127 and a Reference specification need to | ||||
be defined. Changes and additions to the unassigned range of this | ||||
registry are by the Expert Review Policy [RFC8126]. Changes and | ||||
additions to the private use range of this registry are by the | ||||
Private Use Policy [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, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
skipping to change at page 17, line 44 ¶ | skipping to change at page 18, line 24 ¶ | |||
progress), November 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] | [NISTPQCFP] | |||
NIST, "NIST Post-Quantum Cryptography Call for Proposals", | NIST, "NIST Post-Quantum Cryptography Call for Proposals", | |||
2016. | 2016, <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 | [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>. | |||
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | ||||
Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, | ||||
<https://www.rfc-editor.org/info/rfc4648>. | ||||
[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>. | |||
[RFC6030] Hoyer, P., Pei, M., and S. Machani, "Portable Symmetric | [RFC6030] Hoyer, P., Pei, M., and S. Machani, "Portable Symmetric | |||
Key Container (PSKC)", RFC 6030, DOI 10.17487/RFC6030, | Key Container (PSKC)", RFC 6030, DOI 10.17487/RFC6030, | |||
October 2010, <https://www.rfc-editor.org/info/rfc6030>. | October 2010, <https://www.rfc-editor.org/info/rfc6030>. | |||
skipping to change at page 19, line 10 ¶ | skipping to change at page 19, line 44 ¶ | |||
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. | |||
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-secure 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 properties | A fourth goal was to avoid violating any of the security properties | |||
provided by IKEv2. | provided by IKEv2. | |||
Appendix B. Acknowledgements | Appendix B. Acknowledgements | |||
We would like to thank Tero Kivinen, Paul Wouters, Graham Bartlett, | We would like to thank Tero Kivinen, Paul Wouters, Graham Bartlett, | |||
Tommy Pauly, Quynh Dang and the rest of the IPSecME Working Group for | Tommy Pauly, Quynh Dang and the rest of the IPSecME Working Group for | |||
their feedback and suggestions for the scheme. | their feedback and suggestions for the scheme. | |||
Authors' Addresses | Authors' Addresses | |||
Scott Fluhrer | Scott Fluhrer | |||
Cisco Systems | Cisco Systems | |||
Email: sfluhrer@cisco.com | Email: sfluhrer@cisco.com | |||
David McGrew | Panos Kampanakis | |||
Cisco Systems | Cisco Systems | |||
Email: mcgrew@cisco.com | Email: pkampana@cisco.com | |||
Panos Kampanakis | David McGrew | |||
Cisco Systems | Cisco Systems | |||
Email: pkampana@cisco.com | Email: mcgrew@cisco.com | |||
Valery Smyslov | Valery Smyslov | |||
ELVIS-PLUS | ELVIS-PLUS | |||
Phone: +7 495 276 0211 | Phone: +7 495 276 0211 | |||
Email: svan@elvis.ru | Email: svan@elvis.ru | |||
End of changes. 42 change blocks. | ||||
78 lines changed or deleted | 111 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |