draft-ietf-ipsecme-dh-checks-01.txt | draft-ietf-ipsecme-dh-checks-02.txt | |||
---|---|---|---|---|
ipsecme Y. Sheffer | ipsecme Y. Sheffer | |||
Internet-Draft Porticor | Internet-Draft Porticor | |||
Updates: 5996 (if approved) S. Fluhrer | Updates: 5996 (if approved) S. Fluhrer | |||
Intended status: Standards Track Cisco | Intended status: Standards Track Cisco | |||
Expires: October 4, 2013 April 2, 2013 | Expires: October 22, 2013 April 20, 2013 | |||
Additional Diffie-Hellman Tests for IKEv2 | Additional Diffie-Hellman Tests for IKEv2 | |||
draft-ietf-ipsecme-dh-checks-01 | draft-ietf-ipsecme-dh-checks-02 | |||
Abstract | Abstract | |||
This document adds a small number of mandatory tests required for the | This document adds a small number of mandatory tests required for the | |||
secure operation of IKEv2 with elliptic curve groups. No change is | secure operation of IKEv2 with elliptic curve groups. No change is | |||
required to IKE implementations that use modular exponential groups, | required to IKE implementations that use modular exponential groups, | |||
other than a few rarely used so-called DSA groups. This document | other than a few rarely used so-called DSA groups. This document | |||
updates the IKEv2 protocol, RFC 5996. | updates the IKEv2 protocol, RFC 5996. | |||
Status of this Memo | Status of this Memo | |||
skipping to change at page 1, line 35 | skipping to change at page 1, line 35 | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 October 4, 2013. | This Internet-Draft will expire on October 22, 2013. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . 3 | |||
1.1. Conventions used in this document . . . . . . . . . . . 3 | 1.1. Conventions used in this document . . . . . . . . . . 3 | |||
2. Group Membership Tests . . . . . . . . . . . . . . . . 3 | 2. Group Membership Tests . . . . . . . . . . . . . . . . 3 | |||
2.1. Regular MODP Groups . . . . . . . . . . . . . . . . . . 3 | 2.1. Sophie Germain Prime MODP Groups . . . . . . . . . . . 3 | |||
2.2. MODP Groups with Small Subgroups . . . . . . . . . . . 3 | 2.2. MODP Groups with Small Subgroups . . . . . . . . . . . 4 | |||
2.3. Elliptic Curve Groups . . . . . . . . . . . . . . . . . 4 | 2.3. Elliptic Curve Groups . . . . . . . . . . . . . . . . 4 | |||
2.4. Transition . . . . . . . . . . . . . . . . . . . . . . 4 | 2.4. Transition . . . . . . . . . . . . . . . . . . . . . . 5 | |||
2.5. Protocol Behavior . . . . . . . . . . . . . . . . . . . 5 | 2.5. Protocol Behavior . . . . . . . . . . . . . . . . . . 5 | |||
3. Security Considerations . . . . . . . . . . . . . . . . 5 | 3. Side-Channel Attacks . . . . . . . . . . . . . . . . . 5 | |||
3.1. DH Key Reuse and Multiple Peers . . . . . . . . . . . . 5 | 4. Security Considerations . . . . . . . . . . . . . . . 6 | |||
3.2. Groups not covered by this RFC . . . . . . . . . . . . 5 | 4.1. DH Key Reuse and Multiple Peers . . . . . . . . . . . 6 | |||
3.3. Behavior Upon Test Failure . . . . . . . . . . . . . . 6 | 4.2. DH Key Reuse: Variants . . . . . . . . . . . . . . . . 7 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . 6 | 4.3. Groups not covered by this RFC . . . . . . . . . . . . 7 | |||
5. Acknowledgements . . . . . . . . . . . . . . . . . . . 6 | 4.4. Behavior Upon Test Failure . . . . . . . . . . . . . . 7 | |||
6. References . . . . . . . . . . . . . . . . . . . . . . 7 | 5. IANA Considerations . . . . . . . . . . . . . . . . . 8 | |||
6.1. Normative References . . . . . . . . . . . . . . . . . 7 | 6. Acknowledgements . . . . . . . . . . . . . . . . . . . 8 | |||
6.2. Informative References . . . . . . . . . . . . . . . . 7 | 7. References . . . . . . . . . . . . . . . . . . . . . . 9 | |||
Appendix A. Appendix: Change Log . . . . . . . . . . . . . . . . . 7 | 7.1. Normative References . . . . . . . . . . . . . . . . . 9 | |||
A.1. -01 . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 7.2. Informative References . . . . . . . . . . . . . . . . 9 | |||
A.2. -00 . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | Appendix A. Appendix: Change Log . . . . . . . . . . . . . . . . . 10 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . 8 | A.1. -02 . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
A.2. -01 . . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
A.3. -00 . . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . 10 | ||||
1. Introduction | 1. Introduction | |||
IKEv2 [RFC5996] consists of the establishment of a shared secret | IKEv2 [RFC5996] consists of the establishment of a shared secret | |||
using the Diffie-Hellman (DH) protocol, followed by authentication of | using the Diffie-Hellman (DH) protocol, followed by authentication of | |||
the two peers. Existing implementations typically use modular | the two peers. Existing implementations typically use modular | |||
exponential (MODP) DH groups, such as those defined in [RFC3526]. | exponential (MODP) DH groups, such as those defined in [RFC3526]. | |||
IKEv2 does not require that any tests be performed by a peer | IKEv2 does not require that any tests be performed by a peer | |||
receiving a public Diffie-Hellman key from the other peer. This is | receiving a public Diffie-Hellman key from the other peer. This is | |||
fine for the common case of MODP groups. For other DH groups, when | fine for the common case of MODP groups. For other DH groups, when | |||
peers reuse DH values across multiple IKE sessions, the lack of tests | peers reuse DH values across multiple IKE sessions, the lack of tests | |||
by the recipient results in a potential vulnerability (see | by the recipient results in a potential vulnerability (see | |||
Section 3.1 for more details). In particular, this is true for | Section 4.1 for more details). In particular, this is true for | |||
elliptic curve groups whose use is becoming ever more popular. This | elliptic curve groups whose use is becoming ever more popular. This | |||
document defines such tests for several types of DH groups. | document defines such tests for several types of DH groups. | |||
In addition, this document describes another potential attack related | ||||
to reuse of DH keys: a timing attack. This additional material is | ||||
taken from [RFC2412]. | ||||
1.1. Conventions used in this document | 1.1. Conventions used in this document | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
2. Group Membership Tests | 2. Group Membership Tests | |||
This section describes the tests that need to be performed by IKE | This section describes the tests that need to be performed by IKE | |||
peers receiving a Key Exchange (KE) payload. The tests are | peers receiving a Key Exchange (KE) payload. The tests are | |||
RECOMMENDED for all implementations, but only REQUIRED for those that | RECOMMENDED for all implementations, but only REQUIRED for those that | |||
reuse DH secret keys (as defined in [RFC5996], Sec. 2.12). The tests | reuse DH secret keys (as defined in [RFC5996], Sec. 2.12). The tests | |||
are listed here according to the DH group being used. | apply to the recipient of a KE payload, and describe how it should | |||
check the received payload. They are listed here according to the DH | ||||
group being used. | ||||
2.1. Regular MODP Groups | 2.1. Sophie Germain Prime MODP Groups | |||
These are currently the most commonly used groups; all these groups | These are currently the most commonly used groups; all these groups | |||
have the property that (p-1)/2 is also prime; this section applies to | have the property that (p-1)/2 is also prime; this section applies to | |||
any such MODP group. Each recipient MUST verify that the peer's | any such MODP group. Each recipient MUST verify that the peer's | |||
public value r is in the legal range (1 < r < p-1). According to | public value r is in the legal range (1 < r < p-1). According to | |||
[Menezes], Sec 2.2, even with this check there remains the | [Menezes], Sec 2.2, even with this check there remains the | |||
possibility of leaking a single bit of the secret exponent when DH | possibility of leaking a single bit of the secret exponent when DH | |||
keys are reused; this amount of leakage is insignificant. | keys are reused; this amount of leakage is insignificant. | |||
See Section 4 for the specific groups covered by this section. | See Section 5 for the specific groups covered by this section. | |||
2.2. MODP Groups with Small Subgroups | 2.2. MODP Groups with Small Subgroups | |||
[RFC5114] defines modular exponential groups with small subgroups; | [RFC5114] defines modular exponential groups with small subgroups; | |||
these are modular exponential groups with comparatively small | these are modular exponential groups with comparatively small | |||
subgroups, and all have (p-1)/2 composite. Sec. 2.1 of [Menezes] | subgroups, and all have (p-1)/2 composite. Sec. 2.1 of [Menezes] | |||
describes some informational leakage from a small subgroup attack on | describes some informational leakage from a small subgroup attack on | |||
these groups, if the DH private value is reused. | these groups, if the DH private value is reused. | |||
This leakage can be prevented if the recipient performs a test on the | This leakage can be prevented if the recipient performs a test on the | |||
skipping to change at page 4, line 29 | skipping to change at page 4, line 35 | |||
subgroup, as listed in the RFC). DH private values MAY then be | subgroup, as listed in the RFC). DH private values MAY then be | |||
reused. This option is appropriate if conformance to | reused. This option is appropriate if conformance to | |||
[NIST-800-56A] is required. | [NIST-800-56A] is required. | |||
o It MUST NOT reuse DH private values (that is, the DH private value | o It MUST NOT reuse DH private values (that is, the DH private value | |||
for each DH exchange MUST be generated from a fresh output of a | for each DH exchange MUST be generated from a fresh output of a | |||
cryptographically secure random number generator), and it MUST | cryptographically secure random number generator), and it MUST | |||
check that the peer's public value is in range (1 < r < p-1). | check that the peer's public value is in range (1 < r < p-1). | |||
This option is more appropriate if conformance to [NIST-800-56A] | This option is more appropriate if conformance to [NIST-800-56A] | |||
is not required. | is not required. | |||
See Section 4 for the specific groups covered by this section. | See Section 5 for the specific groups covered by this section. | |||
2.3. Elliptic Curve Groups | 2.3. Elliptic Curve Groups | |||
IKEv2 can be used with elliptic curve groups defined over a field | IKEv2 can be used with elliptic curve groups defined over a field | |||
GF(p) [RFC5903] [RFC5114]. According to [Menezes], Sec. 2.3, there | GF(p) [RFC5903] [RFC5114]. According to [Menezes], Sec. 2.3, there | |||
is some informational leakage possible. A receiving peer MUST check | is some informational leakage possible. A receiving peer MUST check | |||
that its peer's public value is valid; that is, it is not the point- | that its peer's public value is valid; that is, it is not the point- | |||
at-infinity, and that the x and y parameters from the peer's public | at-infinity, and that the x and y parameters from the peer's public | |||
value satisfy the curve equation, that is, y**2 = x**3 + ax + b mod p | value satisfy the curve equation, that is, y**2 = x**3 + ax + b mod p | |||
(where for groups 19, 20, 21, a=-3, and all other values of a, b and | (where for groups 19, 20, 21, a=-3 (mod p), and all other values of | |||
p for the group are listed in the RFC). | a, b and p for the group are listed in the RFC). | |||
See Section 4 for the specific groups covered by this section. | See Section 5 for the specific groups covered by this section. | |||
2.4. Transition | 2.4. Transition | |||
Existing implementations of IKEv2 with ECDH groups MAY be modified to | Existing implementations of IKEv2 with ECDH groups MAY be modified to | |||
include the tests described in the current document, if they do not | include the tests described in the current document, even if they do | |||
reuse DH keys with multiple peers. The tests can be considered as | not reuse DH keys. The tests can be considered as sanity checks, and | |||
sanity checks, and will prevent the code having to handle inputs that | will prevent the code having to handle inputs that it may not have | |||
it may not have been designed to handle. | been designed to handle. | |||
ECDH implementations that do reuse DH keys MUST be enhanced to | ECDH implementations that do reuse DH keys MUST be enhanced to | |||
include the above tests. | include the above tests. | |||
2.5. Protocol Behavior | 2.5. Protocol Behavior | |||
The recipient of a DH public key that fails one of the above tests | The recipient of a DH public key that fails one of the above tests | |||
can assume that the sender either is truly malicious or else it has a | can assume that the sender is either truly malicious or else it has a | |||
bug in its implementation. The recipient MAY respond with an | bug in its implementation. | |||
unauthenticated INVALID_SYNTAX notification, and MUST immediately | ||||
drop the IKE SA. | ||||
3. Security Considerations | If this error happens during the IKE_SA_INIT exchange, then the | |||
recipient MUST drop the message that contains an invalid KE payload, | ||||
and MUST NOT use that message when creating the IKE SA. | ||||
If the implementation implements the DoS-resistant behavior proposed | ||||
in Sec. 2.4 of [RFC5996], it may simply ignore the erroneous request | ||||
or response message, and continue waiting for a later message | ||||
containing a legitimate KE payload. | ||||
If DoS-resistant behavior is not implemented, and the invalid KE | ||||
payload was in the IKE_SA_INIT request, the implementation MAY send | ||||
an INVALID_SYNTAX error notification back, and remove the in-progress | ||||
IKE SA; if the invalid KE payload was in the IKE_SA_INIT response, | ||||
then the implementation MAY simply delete the half created IKE SA, | ||||
and re-initiate the exchange. | ||||
If the invalid KE payload is received during the CREATE_CHILD_SA | ||||
exchange (or any other exchange after the IKE SA has been | ||||
established) and the invalid KE payload is in the request message, | ||||
the Responder MUST reply with an INVALID_SYNTAX error notification | ||||
and drop the IKE SA. If the invalid KE payload is in a response, the | ||||
Initiator getting this reply MUST immediately delete the IKE SA by | ||||
sending an IKE SA Delete notification as a new exchange. In this | ||||
case the sender evidently has an implementation bug, and dropping the | ||||
IKE SA makes it easier to detect. | ||||
3. Side-Channel Attacks | ||||
In addition to the small-subgroup attack, there is also a potential | ||||
timing attack on IKE peers when they are reusing Diffie-Hellman | ||||
secret values. This is a side-channel attack, which means that it | ||||
may or may not be a vulnerability in certain cases, depending on | ||||
implementation details and the threat model. | ||||
The remainder of this section is quoted from [RFC2412], Sec. 5, with | ||||
a few minor clarifications. This attack still applies to IKEv2 | ||||
implementations, and both to MODP groups and ECDH groups. We also | ||||
note that more efficient countermeasures are available for ECC groups | ||||
represented in projective form, but these are outside the scope of | ||||
the current document. | ||||
Timing attacks that are capable of recovering the exponent value used | ||||
in Diffie-Hellman calculations have been described by Paul Kocher | ||||
[Kocher]. In order to nullify the attack, implementors must take | ||||
pains to obscure the sequence of operations involved in carrying out | ||||
modular exponentiations. | ||||
One potential method to foil these timing attacks is to use a | ||||
"blinding factor". In this method, a group element, r, is chosen at | ||||
random, and its multiplicative inverse modulo p is computed, which | ||||
we'll call r_inv. r_inv can be computed by the Extended Euclidean | ||||
Method, using r and p as inputs. When an exponent x is chosen, the | ||||
value r_inv^x is also calculated. Then, when calculating (g^y)^x, | ||||
the implementation will calculate this sequence: | ||||
A = r*g^y | ||||
B = A^x = (r*g^y)^x = (r^x)(g^(xy)) | ||||
C = B*r_inv^x = (r^x)(r^(-1*x))(g^(xy)) = g^(xy) | ||||
The blinding factor is only necessary if the exponent x is used more | ||||
than 100 times (estimate by Richard Schroeppel). | ||||
4. Security Considerations | ||||
This entire document is concerned with the IKEv2 security protocol | This entire document is concerned with the IKEv2 security protocol | |||
and the need to harden it in some cases. | and the need to harden it in some cases. | |||
3.1. DH Key Reuse and Multiple Peers | 4.1. DH Key Reuse and Multiple Peers | |||
This section describes the attack prevented by the tests defined | This section describes one variant of the attack prevented by the | |||
here. | tests defined above. | |||
Suppose that IKE peer Alice maintains IKE security associations with | Suppose that IKE peer Alice maintains IKE security associations with | |||
peers Bob and Eve. Alice uses the same secret ECDH key for both SAs, | peers Bob and Eve. Alice uses the same secret ECDH key for both SAs, | |||
which is allowed with some restrictions. If Alice does not implement | which is allowed with some restrictions. If Alice does not implement | |||
these tests, Eve will be able to send a malformed public key, which | these tests, Eve will be able to send a malformed public key, which | |||
would allow her to efficiently determine Alice's secret key (as | would allow her to efficiently determine Alice's secret key (as | |||
described in Sec. 2 of [Menezes]). Since the key is shared, Eve will | described in Sec. 2 of [Menezes]). Since the key is shared, Eve will | |||
be able to obtain Alice's shared IKE SA key with Bob. | be able to obtain Alice's shared IKE SA key with Bob. | |||
3.2. Groups not covered by this RFC | 4.2. DH Key Reuse: Variants | |||
Private DH keys can be reused in different ways, with subtly | ||||
different security implications. For example: | ||||
1. DH keys are reused for multiple connections (IKE SAs) to the same | ||||
peer, and for connections to different peers. | ||||
2. DH keys are reused for multiple connections to the same peer | ||||
(e.g. when the peer is identified by its IP address) but not for | ||||
different peers. | ||||
3. DH keys are reused only when they had not been used to complete | ||||
an exchange, e.g. when the peer replies with an | ||||
INVALID_KE_PAYLOAD notification. | ||||
Both the small subgroup attack and the timing attack described in | ||||
this document apply at least to options #1 and #2. | ||||
4.3. Groups not covered by this RFC | ||||
There are a number of group types that are not specifically addressed | There are a number of group types that are not specifically addressed | |||
by this RFC. A document that defines such a group MUST describe the | by this RFC. A document that defines such a group MUST describe the | |||
tests required by that group. | tests required by that group. | |||
One specific type of group would be an even-characteristic elliptic | One specific type of group would be an even-characteristic elliptic | |||
curve group. Now, these curves have cofactors greater than 1; this | curve group. Now, these curves have cofactors greater than 1; this | |||
leads to a possibility of some information leakage. There are | leads to a possibility of some information leakage. There are | |||
several ways to address this information leakage, such as performing | several ways to address this information leakage, such as performing | |||
a test analogous to the test in section 2.2, or adjusting the ECDH | a test analogous to the test in section 2.2, or adjusting the ECDH | |||
operation to avoid this leakage (such as "ECC CDH", where the shared | operation to avoid this leakage (such as "ECC CDH", where the shared | |||
secret really is hxyG). Because the appropriate test depends on how | secret really is hxyG). Because the appropriate test depends on how | |||
the group is defined, we cannot document it in advance. | the group is defined, we cannot document it in advance. | |||
3.3. Behavior Upon Test Failure | 4.4. Behavior Upon Test Failure | |||
The behavior recommended in Section 2.5 is in line with generic error | The behavior recommended in Section 2.5 is in line with generic error | |||
treatment during the IKE_SA_INIT exchange, Sec. 2.21.1 of [RFC5996]. | treatment during the IKE_SA_INIT exchange, Sec. 2.21.1 of [RFC5996]. | |||
The sender is not required to send back an error notification, and | The sender is not required to send back an error notification, and | |||
the recipient cannot depend on this notification because it is | the recipient cannot depend on this notification because it is | |||
unauthenticated. Thus, the notification is only useful to debug | unauthenticated, and may in fact have been sent by an attacker trying | |||
implementation errors. | to DoS the connection. Thus, the notification is only useful to | |||
debug implementation errors. | ||||
On the other hand, the error notification is secure, in the sense | On the other hand, the error notification is secure, in the sense | |||
that no secret information is leaked. All IKEv2 Diffie-Hellman | that no secret information is leaked. All IKEv2 Diffie-Hellman | |||
groups are publicly known, and none of the tests defined here depend | groups are publicly known, and none of the tests defined here depend | |||
on any secret key. In fact the tests can all be performed by an | on any secret key. In fact the tests can all be performed by an | |||
eavesdropper. | eavesdropper. | |||
4. IANA Considerations | The situation when the failure occurs in the Create Child SA exchange | |||
is different, since everything is protected by an IKE SA. The peers | ||||
are authenticated, and error notifications can be relied on. See | ||||
Sec. 2.21.3 of [RFC5996] for more details on error handling in this | ||||
case. | ||||
5. IANA Considerations | ||||
This document requests that IANA should add a column named "Recipient | This document requests that IANA should add a column named "Recipient | |||
Tests" to the IKEv2 DH Group Transform IDs Registry | Tests" to the IKEv2 DH Group Transform IDs Registry | |||
[IANA-DH-Registry]. | [IANA-DH-Registry]. | |||
This column should initially be populated as per the following table. | This column should initially be populated as per the following table. | |||
+-----------------------------+---------------------+ | +-----------------------------+---------------------+ | |||
| Number | Recipient Tests | | | Number | Recipient Tests | | |||
+-----------------------------+---------------------+ | +-----------------------------+---------------------+ | |||
skipping to change at page 6, line 43 | skipping to change at page 8, line 36 | |||
| 19, 20, 21, 25, 26 | [current], Sec. 2.3 | | | 19, 20, 21, 25, 26 | [current], Sec. 2.3 | | |||
+-----------------------------+---------------------+ | +-----------------------------+---------------------+ | |||
Note to RFC Editor: please replace [current] by the RFC number | Note to RFC Editor: please replace [current] by the RFC number | |||
assigned to this document. | assigned to this document. | |||
Future documents that define new DH groups for IKEv2 are REQUIRED to | Future documents that define new DH groups for IKEv2 are REQUIRED to | |||
provide this information for each new group, possibly by referring to | provide this information for each new group, possibly by referring to | |||
the current document. | the current document. | |||
5. Acknowledgements | 6. Acknowledgements | |||
We would like to thank Dan Harkins who initially raised this issue on | We would like to thank Dan Harkins who initially raised this issue on | |||
the ipsec mailing list. Thanks to Tero Kivinen and Rene Struik for | the ipsec mailing list. Thanks to Tero Kivinen and Rene Struik for | |||
their useful comments. | their useful comments. | |||
The document was prepared using the lyx2rfc tool, created by Nico | The document was prepared using the lyx2rfc tool, created by Nico | |||
Williams. | Williams. | |||
6. References | 7. References | |||
7.1. Normative References | ||||
6.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, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
[RFC5996] Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen, | [RFC5996] Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen, | |||
"Internet Key Exchange Protocol Version 2 (IKEv2)", | "Internet Key Exchange Protocol Version 2 (IKEv2)", | |||
RFC 5996, September 2010. | RFC 5996, September 2010. | |||
6.2. Informative References | 7.2. Informative References | |||
[RFC2412] Orman, H., "The OAKLEY Key Determination Protocol", | ||||
RFC 2412, November 1998. | ||||
[RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP) | [RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP) | |||
Diffie-Hellman groups for Internet Key Exchange (IKE)", | Diffie-Hellman groups for Internet Key Exchange (IKE)", | |||
RFC 3526, May 2003. | RFC 3526, May 2003. | |||
[RFC5114] Lepinski, M. and S. Kent, "Additional Diffie-Hellman | [RFC5114] Lepinski, M. and S. Kent, "Additional Diffie-Hellman | |||
Groups for Use with IETF Standards", RFC 5114, | Groups for Use with IETF Standards", RFC 5114, | |||
January 2008. | January 2008. | |||
[RFC5903] Fu, D. and J. Solinas, "Elliptic Curve Groups modulo a | [RFC5903] Fu, D. and J. Solinas, "Elliptic Curve Groups modulo a | |||
Prime (ECP Groups) for IKE and IKEv2", RFC 5903, | Prime (ECP Groups) for IKE and IKEv2", RFC 5903, | |||
June 2010. | June 2010. | |||
[NIST-800-56A] | [NIST-800-56A] | |||
National Institute of Standards and Technology (NIST), | National Institute of Standards and Technology (NIST), | |||
"Recommendation for Pair-Wise Key Establishment Schemes | "Recommendation for Pair-Wise Key Establishment Schemes | |||
Using Discrete Logarithm Cryptography (Revised)", NIST PUB | Using Discrete Logarithm Cryptography (Revised)", NIST PUB | |||
800-56A, March 2007. | 800-56A, March 2007. | |||
[Kocher] Kocher, P., "Timing Attacks on Implementations of Diffie- | ||||
Hellman, RSA, DSS, and Other Systems", December 1996, | ||||
<http://www.cryptography.com/timingattack/paper.html>. | ||||
[Menezes] Menezes, A. and B. Ustaoglu, "On Reusing Ephemeral Keys In | [Menezes] Menezes, A. and B. Ustaoglu, "On Reusing Ephemeral Keys In | |||
Diffie-Hellman Key Agreement Protocols", December 2008, <h | Diffie-Hellman Key Agreement Protocols", December 2008, <h | |||
ttp://www.cacr.math.uwaterloo.ca/techreports/2008/ | ttp://www.cacr.math.uwaterloo.ca/techreports/2008/ | |||
cacr2008-24.pdf>. | cacr2008-24.pdf>. | |||
[IANA-DH-Registry] | [IANA-DH-Registry] | |||
IANA, "Internet Key Exchange Version 2 (IKEv2) Parameters, | IANA, "Internet Key Exchange Version 2 (IKEv2) Parameters, | |||
Transform Type 4 - Diffie-Hellman Group Transform IDs", | Transform Type 4 - Diffie-Hellman Group Transform IDs", | |||
Jan. 2005, <http://www.iana.org/assignments/ | Jan. 2005, <http://www.iana.org/assignments/ | |||
ikev2-parameters/ikev2-parameters.xml#ikev2-parameters-8>. | ikev2-parameters/ikev2-parameters.xml#ikev2-parameters-8>. | |||
Appendix A. Appendix: Change Log | Appendix A. Appendix: Change Log | |||
Note to RFC Editor: please remove this section before publication. | Note to RFC Editor: please remove this section before publication. | |||
A.1. -01 | A.1. -02 | |||
o Based on Tero's review: Improved the protocol behavior, and | ||||
mentioned that these checks apply to Create Child SA. Added a | ||||
discussion of DH timing attacks, stolen from RFC 2412. | ||||
A.2. -01 | ||||
o Corrected an author's name that was misspelled. | o Corrected an author's name that was misspelled. | |||
o Added recipient behavior if a test fails, and the related security | o Added recipient behavior if a test fails, and the related security | |||
considerations. | considerations. | |||
A.2. -00 | A.3. -00 | |||
o First WG document. | o First WG document. | |||
o Clarified IANA actions. | o Clarified IANA actions. | |||
o Discussion of potential future groups not covered here. | o Discussion of potential future groups not covered here. | |||
o Clarification re: practicality of recipient tests for DSA groups. | o Clarification re: practicality of recipient tests for DSA groups. | |||
Authors' Addresses | Authors' Addresses | |||
Yaron Sheffer | Yaron Sheffer | |||
Porticor | Porticor | |||
End of changes. 27 change blocks. | ||||
56 lines changed or deleted | 161 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |