| < draft-ietf-ipsecme-rfc4307bis-07.txt | draft-ietf-ipsecme-rfc4307bis-08.txt > | |||
|---|---|---|---|---|
| Network Working Group Y. Nir | Network Working Group Y. Nir | |||
| Internet-Draft Check Point | Internet-Draft Check Point | |||
| Obsoletes: 4307 (if approved) T. Kivinen | Obsoletes: 4307 (if approved) T. Kivinen | |||
| Updates: 7296 (if approved) INSIDE Secure | Updates: 7296 (if approved) INSIDE Secure | |||
| Intended status: Standards Track P. Wouters | Intended status: Standards Track P. Wouters | |||
| Expires: October 09, 2016 Red Hat | Expires: November 12, 2016 Red Hat | |||
| D. Migault | D. Migault | |||
| Ericsson | Ericsson | |||
| April 07, 2016 | May 11, 2016 | |||
| Algorithm Implementation Requirements and Usage Guidance for IKEv2 | Algorithm Implementation Requirements and Usage Guidance for IKEv2 | |||
| draft-ietf-ipsecme-rfc4307bis-07 | draft-ietf-ipsecme-rfc4307bis-08 | |||
| Abstract | Abstract | |||
| The IPsec series of protocols makes use of various cryptographic | The IPsec series of protocols makes use of various cryptographic | |||
| algorithms in order to provide security services. The Internet Key | algorithms in order to provide security services. The Internet Key | |||
| Exchange (IKE) protocol is used to negotiate the IPsec Security | Exchange (IKE) protocol is used to negotiate the IPsec Security | |||
| Association (IPsec SA) parameters, such as which algorithms should be | Association (IPsec SA) parameters, such as which algorithms should be | |||
| used. To ensure interoperability between different implementations, | used. To ensure interoperability between different implementations, | |||
| it is necessary to specify a set of algorithm implementation | it is necessary to specify a set of algorithm implementation | |||
| requirements and usage guidance to ensure that there is at least one | requirements and usage guidance to ensure that there is at least one | |||
| skipping to change at page 1, line 45 ¶ | skipping to change at page 1, line 45 ¶ | |||
| 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 09, 2016. | This Internet-Draft will expire on November 12, 2016. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 | |||
| skipping to change at page 2, line 27 ¶ | skipping to change at page 2, line 30 ¶ | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Updating Algorithm Implementation Requirements and Usage | 1.1. Updating Algorithm Implementation Requirements and Usage | |||
| Guidance . . . . . . . . . . . . . . . . . . . . . . . . 3 | Guidance . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Updating Algorithm Requirement Levels . . . . . . . . . . 3 | 1.2. Updating Algorithm Requirement Levels . . . . . . . . . . 3 | |||
| 1.3. Document Audience . . . . . . . . . . . . . . . . . . . . 4 | 1.3. Document Audience . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 | 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 | |||
| 3. Algorithm Selection . . . . . . . . . . . . . . . . . . . . . 5 | 3. Algorithm Selection . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1. Type 1 - IKEv2 Encryption Algorithm Transforms . . . . . 5 | 3.1. Type 1 - IKEv2 Encryption Algorithm Transforms . . . . . 5 | |||
| 3.2. Type 2 - IKEv2 Pseudo-random Function Transforms . . . . 7 | 3.2. Type 2 - IKEv2 Pseudo-random Function Transforms . . . . 6 | |||
| 3.3. Type 3 - IKEv2 Integrity Algorithm Transforms . . . . . . 8 | 3.3. Type 3 - IKEv2 Integrity Algorithm Transforms . . . . . . 7 | |||
| 3.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms . . . . . 9 | 3.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms . . . . . 8 | |||
| 4. IKEv2 Authentication . . . . . . . . . . . . . . . . . . . . 10 | 4. IKEv2 Authentication . . . . . . . . . . . . . . . . . . . . 10 | |||
| 4.1. IKEv2 Authentication Method . . . . . . . . . . . . . . . 10 | 4.1. IKEv2 Authentication Method . . . . . . . . . . . . . . . 10 | |||
| 4.1.1. Recommendations for RSA key length . . . . . . . . . 11 | 4.1.1. Recommendations for RSA key length . . . . . . . . . 11 | |||
| 4.2. Digital Signature Recommendations . . . . . . . . . . . . 11 | 4.2. Digital Signature Recommendations . . . . . . . . . . . . 11 | |||
| 5. Algorithms for Internet of Things . . . . . . . . . . . . . . 12 | 5. Algorithms for Internet of Things . . . . . . . . . . . . . . 12 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 14 | 9.2. Informative References . . . . . . . . . . . . . . . . . 14 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
| 1. Introduction | 1. Introduction | |||
| The Internet Key Exchange (IKE) protocol [RFC7296] is used to | The Internet Key Exchange (IKE) protocol [RFC7296] is used to | |||
| negotiate the parameters of the IPsec SA, such as the encryption and | negotiate the parameters of the IPsec SA, such as the encryption and | |||
| authentication algorithms and the keys for the protected | authentication algorithms and the keys for the protected | |||
| communications between the two endpoints. The IKE protocol itself is | communications between the two endpoints. The IKE protocol itself is | |||
| also protected by cryptographic algorithms which are negotiated | also protected by cryptographic algorithms which are negotiated | |||
| between the two endpoints using IKE. Different implementations of | between the two endpoints using IKE. Different implementations of | |||
| IKE may negotiate different algorithms based on their individual | IKE may negotiate different algorithms based on their individual | |||
| local policy. To ensure interoperability, a set of "mandatory-to- | local policy. To ensure interoperability, a set of "mandatory-to- | |||
| implement" IKE cryptographic algorithms is defined. | implement" IKE cryptographic algorithms is defined. | |||
| skipping to change at page 4, line 4 ¶ | skipping to change at page 3, line 47 ¶ | |||
| algorithms for future mandatory-to-implement status. There is no | algorithms for future mandatory-to-implement status. There is no | |||
| guarantee that the algorithms in use today may become mandatory in | guarantee that the algorithms in use today may become mandatory in | |||
| the future. Published algorithms are continuously subjected to | the future. Published algorithms are continuously subjected to | |||
| cryptographic attack and may become too weak or could become | cryptographic attack and may become too weak or could become | |||
| completely broken before this document is updated. | completely broken before this document is updated. | |||
| This document only provides recommendations for the mandatory-to- | This document only provides recommendations for the mandatory-to- | |||
| implement algorithms or algorithms too weak that are recommended not | implement algorithms or algorithms too weak that are recommended not | |||
| to be implemented. As a result, any algorithm listed at the IKEv2 | to be implemented. As a result, any algorithm listed at the IKEv2 | |||
| IANA registry not mentioned in this document MAY be implemented. For | IANA registry not mentioned in this document MAY be implemented. For | |||
| clarification and consistency with [RFC4307] an algorithm will be set | clarification and consistency with [RFC4307] an algorithm will be | |||
| to MAY only when it has been downgraded. | denoted here as MAY only when it has been downgraded. | |||
| Although this document updates the algorithms to keep the IKEv2 | Although this document updates the algorithms to keep the IKEv2 | |||
| communication secure over time, it also aims at providing | communication secure over time, it also aims at providing | |||
| recommendations so that IKEv2 implementations remain interoperable. | recommendations so that IKEv2 implementations remain interoperable. | |||
| IKEv2 interoperability is addressed by an incremental introduction or | IKEv2 interoperability is addressed by an incremental introduction or | |||
| deprecation of algorithms. In addition, this document also considers | deprecation of algorithms. In addition, this document also considers | |||
| the new use cases for IKEv2 deployment, such as Internet of Things | the new use cases for IKEv2 deployment, such as Internet of Things | |||
| (IoT). | (IoT). | |||
| It is expected that deprecation of an algorithm is performed | It is expected that deprecation of an algorithm is performed | |||
| skipping to change at page 4, line 30 ¶ | skipping to change at page 4, line 25 ¶ | |||
| Similarly, an algorithm that has not been mentioned as mandatory-to- | Similarly, an algorithm that has not been mentioned as mandatory-to- | |||
| implement is expected to be introduced with a SHOULD instead of a | implement is expected to be introduced with a SHOULD instead of a | |||
| MUST. | MUST. | |||
| The current trend toward Internet of Things and its adoption of IKEv2 | The current trend toward Internet of Things and its adoption of IKEv2 | |||
| requires this specific use case to be taken into account as well. | requires this specific use case to be taken into account as well. | |||
| IoT devices are resource constrained devices and their choice of | IoT devices are resource constrained devices and their choice of | |||
| algorithms are motivated by minimizing the footprint of the code, the | algorithms are motivated by minimizing the footprint of the code, the | |||
| computation effort and the size of the messages to send. This | computation effort and the size of the messages to send. This | |||
| document indicates "[IoT]" when a specified algorithm is specifically | document indicates "[IoT]" when a specified algorithm is specifically | |||
| listed for IoT devices. | listed for IoT devices. Requirement levels that are marked as "IoT" | |||
| apply to IoT devices and to server-side implementations that might | ||||
| presumably need to interoperate with them, including any general- | ||||
| purpose VPN gateways. | ||||
| 1.3. Document Audience | 1.3. Document Audience | |||
| The recommendations of this document mostly target IKEv2 implementers | The recommendations of this document mostly target IKEv2 implementers | |||
| as implementations need to meet both high security expectations as | as implementations need to meet both high security expectations as | |||
| well as high interoperability between various vendors and with | well as high interoperability between various vendors and with | |||
| different versions. Interoperability requires a smooth move to more | different versions. Interoperability requires a smooth move to more | |||
| secure cipher suites. This may differ from a user point of view that | secure cipher suites. This may differ from a user point of view that | |||
| may deploy and configure IKEv2 with only the safest cipher suite. On | may deploy and configure IKEv2 with only the safest cipher suite. On | |||
| the other hand, comments and recommendations from this document are | the other hand, comments from this document are also expected to be | |||
| also expected to be useful for such users. | useful for such users. | |||
| IKEv1 is out of scope of this document. IKEv1 is deprecated and the | IKEv1 is out of scope of this document. IKEv1 is deprecated and the | |||
| recommendations of this document must not be considered for IKEv1, as | recommendations of this document must not be considered for IKEv1, as | |||
| most IKEv1 implementations have been "frozen" and will not be able to | most IKEv1 implementations have been "frozen" and will not be able to | |||
| update the list of mandatory-to-implement algorithms. | update the list of mandatory-to-implement algorithms. | |||
| 2. Conventions Used in This Document | 2. 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]. | |||
| We define some additional terms here: | We define some additional terms here: | |||
| SHOULD+ This term means the same as SHOULD. However, it is likely | SHOULD+ This term means the same as SHOULD. However, it is likely | |||
| that an algorithm marked as SHOULD+ will be promoted at some | that an algorithm marked as SHOULD+ will be promoted at | |||
| future time to be a MUST. | some future time to be a MUST. | |||
| SHOULD- This term means the same as SHOULD. However, an algorithm | SHOULD- This term means the same as SHOULD. However, an algorithm | |||
| marked as SHOULD- may be deprecated to a MAY in a future | marked as SHOULD- may be deprecated to a MAY in a future | |||
| version of this document. | version of this document. | |||
| MUST- This term means the same as MUST. However, we expect at some | MUST- This term means the same as MUST. However, we expect at | |||
| point that this algorithm will no longer be a MUST in a | some point that this algorithm will no longer be a MUST in | |||
| future document. Although its status will be determined at a | a future document. Although its status will be determined | |||
| later time, it is reasonable to expect that if a future | at a later time, it is reasonable to expect that if a | |||
| revision of a document alters the status of a MUST- | future revision of a document alters the status of a MUST- | |||
| algorithm, it will remain at least a SHOULD or a SHOULD- | algorithm, it will remain at least a SHOULD or a SHOULD- | |||
| level. | level. | |||
| IoT stands for Internet of Things. | IoT stands for Internet of Things. | |||
| Table 1 | ||||
| 3. Algorithm Selection | 3. Algorithm Selection | |||
| 3.1. Type 1 - IKEv2 Encryption Algorithm Transforms | 3.1. Type 1 - IKEv2 Encryption Algorithm Transforms | |||
| The algorithms in the below table are negotiated in the SA payload | The algorithms in the below table are negotiated in the SA payload | |||
| and used for the Encrypted Payload. References to the specification | and used for the Encrypted Payload. References to the specification | |||
| defining these algorithms and the ones in the following subsections | defining these algorithms and the ones in the following subsections | |||
| are in the IANA registry [IKEV2-IANA]. Some of these algorithms are | are in the IANA registry [IKEV2-IANA]. Some of these algorithms are | |||
| Authenticated Encryption with Associated Data (AEAD - [RFC5282]). | Authenticated Encryption with Associated Data (AEAD - [RFC5282]). | |||
| Algorithms that are not AEAD MUST be used in conjunction with an | Algorithms that are not AEAD MUST be used in conjunction with an | |||
| skipping to change at page 6, line 9 ¶ | skipping to change at page 5, line 49 ¶ | |||
| | AES-GCM with a 16 octet ICV | SHOULD | Yes | [1] | | | AES-GCM with a 16 octet ICV | SHOULD | Yes | [1] | | |||
| | ENCR_AES_CCM_8 | SHOULD | Yes | [1][IoT] | | | ENCR_AES_CCM_8 | SHOULD | Yes | [1][IoT] | | |||
| | ENCR_3DES | MAY | No | | | | ENCR_3DES | MAY | No | | | |||
| | ENCR_DES | MUST NOT | No | | | | ENCR_DES | MUST NOT | No | | | |||
| +-----------------------------+----------+-------+----------+ | +-----------------------------+----------+-------+----------+ | |||
| [1] - This requirement level is for 128-bit keys. 256-bit keys are at | [1] - This requirement level is for 128-bit keys. 256-bit keys are at | |||
| SHOULD. 192-bit keys can safely be ignored. [IoT] - This requirement | SHOULD. 192-bit keys can safely be ignored. [IoT] - This requirement | |||
| is for interoperability with IoT. | is for interoperability with IoT. | |||
| Table 2 | ||||
| ENCR_AES_CBC is raised from SHOULD+ in [RFC4307] to MUST. It is the | ENCR_AES_CBC is raised from SHOULD+ in [RFC4307] to MUST. It is the | |||
| only shared mandatory-to-implement algorithm with RFC4307 and as a | only shared mandatory-to-implement algorithm with RFC4307 and as a | |||
| result it is necessary for interoperability with IKEv2 implementation | result it is necessary for interoperability with IKEv2 implementation | |||
| compatible with RFC4307. | compatible with RFC4307. | |||
| ENCR_CHACHA20_POLY1305 was not ready to be considered at the time of | ENCR_CHACHA20_POLY1305 was not ready to be considered at the time of | |||
| RFC4307. It has been recommended by the CRFG and others as an | RFC4307. It has been recommended by the CRFG and others as an | |||
| alternative to AES-CBC and AES-GCM. It is also being standardized | alternative to AES-CBC and AES-GCM. It is also being standardized | |||
| for IPsec for the same reasons. At the time of writing, there were | for IPsec for the same reasons. At the time of writing, there were | |||
| not enough IKEv2 implementations supporting ENCR_CHACHA20_POLY1305 to | not enough IKEv2 implementations supporting ENCR_CHACHA20_POLY1305 to | |||
| skipping to change at page 7, line 30 ¶ | skipping to change at page 7, line 21 ¶ | |||
| +-------------------+----------+---------+ | +-------------------+----------+---------+ | |||
| | PRF_HMAC_SHA2_256 | MUST | | | | PRF_HMAC_SHA2_256 | MUST | | | |||
| | PRF_HMAC_SHA2_512 | SHOULD+ | | | | PRF_HMAC_SHA2_512 | SHOULD+ | | | |||
| | PRF_HMAC_SHA1 | MUST- | | | | PRF_HMAC_SHA1 | MUST- | | | |||
| | PRF_AES128_XCBC | SHOULD | [IoT] | | | PRF_AES128_XCBC | SHOULD | [IoT] | | |||
| | PRF_HMAC_MD5 | MUST NOT | | | | PRF_HMAC_MD5 | MUST NOT | | | |||
| +-------------------+----------+---------+ | +-------------------+----------+---------+ | |||
| [IoT] - This requirement is for interoperability with IoT | [IoT] - This requirement is for interoperability with IoT | |||
| Table 3 | ||||
| PRF_HMAC_SHA2_256 was not mentioned in RFC4307, as no SHA2 based | PRF_HMAC_SHA2_256 was not mentioned in RFC4307, as no SHA2 based | |||
| transforms were mentioned. PRF_HMAC_SHA2_256 MUST be implemented in | transforms were mentioned. PRF_HMAC_SHA2_256 MUST be implemented in | |||
| order to replace SHA1 and PRF_HMAC_SHA1. | order to replace SHA1 and PRF_HMAC_SHA1. | |||
| PRF_HMAC_SHA2_512 SHOULD be implemented as a future replacement for | PRF_HMAC_SHA2_512 SHOULD be implemented as a future replacement for | |||
| PRF_HMAC_SHA2_256 or when stronger security is required. | PRF_HMAC_SHA2_256 or when stronger security is required. | |||
| PRF_HMAC_SHA2_512 is preferred over PRF_HMAC_SHA2_384, as the | PRF_HMAC_SHA2_512 is preferred over PRF_HMAC_SHA2_384, as the | |||
| additional overhead of PRF_HMAC_SHA2_512 is negligible. | additional overhead of PRF_HMAC_SHA2_512 is negligible. | |||
| PRF_HMAC_SHA1 has been downgraded from MUST in RFC4307 to MUST- as | PRF_HMAC_SHA1 has been downgraded from MUST in RFC4307 to MUST- as | |||
| skipping to change at page 8, line 29 ¶ | skipping to change at page 8, line 19 ¶ | |||
| | AUTH_HMAC_SHA2_512_256 | SHOULD | | | | AUTH_HMAC_SHA2_512_256 | SHOULD | | | |||
| | AUTH_HMAC_SHA1_96 | MUST- | | | | AUTH_HMAC_SHA1_96 | MUST- | | | |||
| | AUTH_AES_XCBC_96 | SHOULD | [IoT] | | | AUTH_AES_XCBC_96 | SHOULD | [IoT] | | |||
| | AUTH_HMAC_MD5_96 | MUST NOT | | | | AUTH_HMAC_MD5_96 | MUST NOT | | | |||
| | AUTH_DES_MAC | MUST NOT | | | | AUTH_DES_MAC | MUST NOT | | | |||
| | AUTH_KPDK_MD5 | MUST NOT | | | | AUTH_KPDK_MD5 | MUST NOT | | | |||
| +------------------------+----------+---------+ | +------------------------+----------+---------+ | |||
| [IoT] - This requirement is for interoperability with IoT | [IoT] - This requirement is for interoperability with IoT | |||
| Table 4 | ||||
| AUTH_HMAC_SHA2_256_128 was not mentioned in RFC4307, as no SHA2 based | AUTH_HMAC_SHA2_256_128 was not mentioned in RFC4307, as no SHA2 based | |||
| transforms were mentioned. AUTH_HMAC_SHA2_256_128 MUST be | transforms were mentioned. AUTH_HMAC_SHA2_256_128 MUST be | |||
| implemented in order to replace AUTH_HMAC_SHA1_96. | implemented in order to replace AUTH_HMAC_SHA1_96. | |||
| AUTH_HMAC_SHA2_512_256 SHOULD be implemented as a future replacement | AUTH_HMAC_SHA2_512_256 SHOULD be implemented as a future replacement | |||
| of AUTH_HMAC_SHA2_256_128 or when stronger security is required. | of AUTH_HMAC_SHA2_256_128 or when stronger security is required. | |||
| This value has been preferred over AUTH_HMAC_SHA2_384, as the | This value has been preferred over AUTH_HMAC_SHA2_384, as the | |||
| additional overhead of AUTH_HMAC_SHA2_512 is negligible. | additional overhead of AUTH_HMAC_SHA2_512 is negligible. | |||
| AUTH_HMAC_SHA1_96 has been downgraded from MUST in RFC4307 to MUST- | AUTH_HMAC_SHA1_96 has been downgraded from MUST in RFC4307 to MUST- | |||
| as there is an industry-wide trend to deprecate its usage. | as there is an industry-wide trend to deprecate its usage. | |||
| AUTH_AES-XCBC is only recommended in the scope of IoT, as Internet of | AUTH_AES-XCBC is only recommended in the scope of IoT, as Internet of | |||
| Things deployments tend to prefer AES based pseudo-random functions | Things deployments tend to prefer AES based pseudo-random functions | |||
| in order to avoid implementing SHA2. For the non-IoT VPN deployment, | in order to avoid implementing SHA2. For the non-IoT VPN deployment, | |||
| it has been downgraded from SHOULD in RFC4307 to MAY as it has not | it has been downgraded from SHOULD in RFC4307 to MAY as it has not | |||
| been widely adopted. | been widely adopted. | |||
| AUTH_HMAC_MD5_96, AUTH_DES_MAC and AUTH_KPDK_MD5 were not mentioned | AUTH_DES_MAC, AUTH_HMAC_MD5_96, and AUTH_KPDK_MD5 were not mentioned | |||
| in RFC4307 so its default status was MAY. It has been downgraded to | in RFC4307 so their default status ware MAY. They have been | |||
| MUST NOT. There is an industry-wide trend to deprecate its usage. | downgraded to MUST NOT. There is an industry-wide trend to deprecate | |||
| DES and MD5. MD5 support is being removed from cryptographic | ||||
| MD5 support is being removed from cryptographic libraries in general | libraries in general because its non-HMAC use is known to be subject | |||
| because its non-HMAC use is known to be subject to collision attacks, | to collision attacks, for example as mentioned in [TRANSCRIPTION]. | |||
| for example as mentioned in [TRANSCRIPTION]. | ||||
| 3.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms | 3.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms | |||
| There are several Modular Exponential (MODP) groups and several | There are several Modular Exponential (MODP) groups and several | |||
| Elliptic Curve groups (ECC) that are defined for use in IKEv2. These | Elliptic Curve groups (ECC) that are defined for use in IKEv2. These | |||
| groups are defined in both the [IKEv2] base document and in | groups are defined in both the [IKEv2] base document and in | |||
| extensions documents and are identified by group number. Note that | extensions documents and are identified by group number. Note that | |||
| it is critical to enforce a secure Diffie-Hellman exchange as this | it is critical to enforce a secure Diffie-Hellman exchange as this | |||
| exchange provides keys for the session. If an attacker can retrieve | exchange provides keys for the session. If an attacker can retrieve | |||
| the private numbers (a, or b) and the public values (g**a, and g**b), | the private numbers (a, or b) and the public values (g**a, and g**b), | |||
| then the attacker can compute the secret and the keys used and | then the attacker can compute the secret and the keys used and | |||
| decrypt the exchange and IPsec SA created inside the IKEv2 SA. Such | decrypt the exchange and IPsec SA created inside the IKEv2 SA. Such | |||
| an attack can be performed off-line on a previously recorded | an attack can be performed off-line on a previously recorded | |||
| communication, years after the communication happened. This differs | communication, years after the communication happened. This differs | |||
| from attacks that need to be executed during the authentication which | from attacks that need to be executed during the authentication which | |||
| must be performed online and in near real-time. | must be performed online and in near real-time. | |||
| +------------+----------------------------------------+-------------+ | +--------+---------------------------------------------+------------+ | |||
| | Number | Description | Status | | | Number | Description | Status | | |||
| +------------+----------------------------------------+-------------+ | +--------+---------------------------------------------+------------+ | |||
| | 14 | 2048-bit MODP Group | MUST | | | 14 | 2048-bit MODP Group | MUST | | |||
| | 19 | 256-bit random ECP group | SHOULD | | | 19 | 256-bit random ECP group | SHOULD | | |||
| | 5 | 1536-bit MODP Group | SHOULD NOT | | | 5 | 1536-bit MODP Group | SHOULD NOT | | |||
| | 2 | 1024-bit MODP Group | SHOULD NOT | | | 2 | 1024-bit MODP Group | SHOULD NOT | | |||
| | 1 | 768-bit MODP Group | MUST NOT | | | 1 | 768-bit MODP Group | MUST NOT | | |||
| | 22 | 1024-bit MODP Group with 160-bit Prime | SHOULD NOT | | | 22 | 1024-bit MODP Group with 160-bit Prime | SHOULD NOT | | |||
| | | Order Subgroup | | | | | Order Subgroup | | | |||
| | 23 | 2048-bit MODP Group with 224-bit Prime | SHOULD NOT | | | 23 | 2048-bit MODP Group with 224-bit Prime | SHOULD NOT | | |||
| | | Order Subgroup | | | | | Order Subgroup | | | |||
| | 24 | 2048-bit MODP Group with 256-bit Prime | SHOULD NOT | | | 24 | 2048-bit MODP Group with 256-bit Prime | SHOULD NOT | | |||
| | | Order Subgroup | | | | | Order Subgroup | | | |||
| +------------+----------------------------------------+-------------+ | +--------+---------------------------------------------+------------+ | |||
| Table 5 | ||||
| Group 14 or 2048-bit MODP Group is raised from SHOULD+ in RFC4307 as | Group 14 or 2048-bit MODP Group is raised from SHOULD+ in RFC4307 as | |||
| a replacement for 1024-bit MODP Group. Group 14 is widely | a replacement for 1024-bit MODP Group. Group 14 is widely | |||
| implemented and considered secure. | implemented and considered secure. | |||
| Group 19 or 256-bit random ECP group was not specified in RFC4307, as | Group 19 or 256-bit random ECP group was not specified in RFC4307, as | |||
| this group were not specified at that time. Group 19 is widely | this group were not specified at that time. Group 19 is widely | |||
| implemented and considered secure. | implemented and considered secure. | |||
| Group 5 or 1536-bit MODP Group has been downgraded from MAY in | Group 5 or 1536-bit MODP Group has been downgraded from MAY in | |||
| skipping to change at page 11, line 4 ¶ | skipping to change at page 10, line 39 ¶ | |||
| | Number | Description | Status | | | Number | Description | Status | | |||
| +--------+---------------------------------------+------------+ | +--------+---------------------------------------+------------+ | |||
| | 1 | RSA Digital Signature | MUST | | | 1 | RSA Digital Signature | MUST | | |||
| | 2 | Shared Key Message Integrity Code | MUST | | | 2 | Shared Key Message Integrity Code | MUST | | |||
| | 3 | DSS Digital Signature | SHOULD NOT | | | 3 | DSS Digital Signature | SHOULD NOT | | |||
| | 9 | ECDSA with SHA-256 on the P-256 curve | SHOULD | | | 9 | ECDSA with SHA-256 on the P-256 curve | SHOULD | | |||
| | 10 | ECDSA with SHA-384 on the P-384 curve | SHOULD | | | 10 | ECDSA with SHA-384 on the P-384 curve | SHOULD | | |||
| | 11 | ECDSA with SHA-512 on the P-521 curve | SHOULD | | | 11 | ECDSA with SHA-512 on the P-521 curve | SHOULD | | |||
| | 14 | Digital Signature | SHOULD | | | 14 | Digital Signature | SHOULD | | |||
| +--------+---------------------------------------+------------+ | +--------+---------------------------------------+------------+ | |||
| Table 6 | ||||
| RSA Digital Signature is widely deployed and therefore kept for | RSA Digital Signature is widely deployed and therefore kept for | |||
| interoperability. It is expected to be downgraded in the future as | interoperability. It is expected to be downgraded in the future as | |||
| its signatures are based on the older RSASSA-PKCS1-v1.5 which is no | its signatures are based on the older RSASSA-PKCS1-v1.5 which is no | |||
| longer recommended. RSA authentication, as well as other specific | longer recommended. RSA authentication, as well as other specific | |||
| Authentication Methods, are expected to be replaced with the generic | Authentication Methods, are expected to be replaced with the generic | |||
| Digital Signature method of [RFC7427]. RSA Digital Signature is not | Digital Signature method of [RFC7427]. RSA Digital Signature is not | |||
| recommended for keys smaller then 2048, but since these signatures | recommended for keys smaller then 2048, but since these signatures | |||
| only have value in real-time, and need no future protection, smaller | only have value in real-time, and need no future protection, smaller | |||
| keys was kept at SHOULD NOT instead of MUST NOT. | keys was kept at SHOULD NOT instead of MUST NOT. | |||
| skipping to change at page 11, line 42 ¶ | skipping to change at page 11, line 28 ¶ | |||
| +-------------------------------------------+------------+ | +-------------------------------------------+------------+ | |||
| | Description | Status | | | Description | Status | | |||
| +-------------------------------------------+------------+ | +-------------------------------------------+------------+ | |||
| | RSA with key length 2048 | MUST | | | RSA with key length 2048 | MUST | | |||
| | RSA with key length 3072 and 4096 | SHOULD | | | RSA with key length 3072 and 4096 | SHOULD | | |||
| | RSA with key length between 2049 and 4095 | MAY | | | RSA with key length between 2049 and 4095 | MAY | | |||
| | RSA with key length smaller than 2048 | SHOULD NOT | | | RSA with key length smaller than 2048 | SHOULD NOT | | |||
| +-------------------------------------------+------------+ | +-------------------------------------------+------------+ | |||
| Table 7 | ||||
| The IKEv2 RFC7296 mandates support for the RSA keys of size 1024 or | The IKEv2 RFC7296 mandates support for the RSA keys of size 1024 or | |||
| 2048 bits, but here we make key sizes less than 2048 SHOULD NOT as | 2048 bits, but here we make key sizes less than 2048 SHOULD NOT as | |||
| there is industry-wide trend to deprecate key lengths less than 2048 | there is industry-wide trend to deprecate key lengths less than 2048 | |||
| bits. | bits. | |||
| 4.2. Digital Signature Recommendations | 4.2. Digital Signature Recommendations | |||
| Recommendations for when a hash function is involved in a signature: | When Digital Signature authentication method is implemented, then the | |||
| following recommendations are applied for hash functions: | ||||
| +--------+-------------+------------+---------+ | +--------+-------------+------------+---------+ | |||
| | Number | Description | Status | Comment | | | Number | Description | Status | Comment | | |||
| +--------+-------------+------------+---------+ | +--------+-------------+------------+---------+ | |||
| | 1 | SHA1 | SHOULD NOT | | | | 1 | SHA1 | SHOULD NOT | | | |||
| | 2 | SHA2-256 | MUST | | | | 2 | SHA2-256 | MUST | | | |||
| | 3 | SHA2-384 | MAY | | | | 3 | SHA2-384 | MAY | | | |||
| | 4 | SHA2-512 | SHOULD | | | | 4 | SHA2-512 | SHOULD | | | |||
| +--------+-------------+------------+---------+ | +--------+-------------+------------+---------+ | |||
| Table 8 | When Digital Signature authentication method is used with RSA | |||
| signature algorithm, then RSASSA-PSS MUST be supported and RSASSA- | ||||
| With the use of Digital Signature, RSASSA-PKCS1-v1.5 MAY be | PKCS1-v1.5 MAY be supported. | |||
| implemented. RSASSA-PSS MUST be implemented. | ||||
| Recommendation of Authentication Method described in [RFC7427] | The following table lists recommendations for authentication methods | |||
| notation: | in RFC7427 [RFC7427] notation. These recommendations are applied | |||
| only if Digital Signature authentication method is implemented. | ||||
| +------------------------------------+------------+---------+ | +------------------------------------+------------+---------+ | |||
| | Description | Status | Comment | | | Description | Status | Comment | | |||
| +------------------------------------+------------+---------+ | +------------------------------------+------------+---------+ | |||
| | RSASSA-PSS with SHA-256 | SHOULD | | | | RSASSA-PSS with SHA-256 | MUST | | | |||
| | ecdsa-with-sha256 | SHOULD | | | | ecdsa-with-sha256 | SHOULD | | | |||
| | sha1WithRSAEncryption | SHOULD NOT | | | | sha1WithRSAEncryption | SHOULD NOT | | | |||
| | dsa-with-sha1 | SHOULD NOT | | | | dsa-with-sha1 | SHOULD NOT | | | |||
| | ecdsa-with-sha1 | SHOULD NOT | | | | ecdsa-with-sha1 | SHOULD NOT | | | |||
| | RSASSA-PSS with Empty Parameters | SHOULD NOT | | | | RSASSA-PSS with Empty Parameters | SHOULD NOT | | | |||
| | RSASSA-PSS with Default Parameters | SHOULD NOT | | | | RSASSA-PSS with Default Parameters | SHOULD NOT | | | |||
| +------------------------------------+------------+---------+ | +------------------------------------+------------+---------+ | |||
| Table 9 | ||||
| 5. Algorithms for Internet of Things | 5. Algorithms for Internet of Things | |||
| Some algorithms in this document are marked for use with the Internet | Some algorithms in this document are marked for use with the Internet | |||
| of Things (IoT). There are several reasons why IoT devices prefer a | of Things (IoT). There are several reasons why IoT devices prefer a | |||
| different set of algorithms from regular IKEv2 clients. IoT devices | different set of algorithms from regular IKEv2 clients. IoT devices | |||
| are usually very constrained, meaning the memory size and CPU power | are usually very constrained, meaning the memory size and CPU power | |||
| is so limited, that these clients only have resources to implement | is so limited, that these clients only have resources to implement | |||
| and run one set of algorithms. For example, instead of implementing | and run one set of algorithms. For example, instead of implementing | |||
| AES and SHA, these devices typically use AES_XCBC as integrity | AES and SHA, these devices typically use AES_XCBC as integrity | |||
| algorithm so SHA does not need to be implemented. | algorithm so SHA does not need to be implemented. | |||
| skipping to change at page 14, line 4 ¶ | skipping to change at page 13, line 38 ¶ | |||
| algorithms for the use of IKEv2, specifically with the selection of | algorithms for the use of IKEv2, specifically with the selection of | |||
| "mandatory-to-implement" algorithms. The algorithms identified in | "mandatory-to-implement" algorithms. The algorithms identified in | |||
| this document as "MUST implement" or "SHOULD implement" are not known | this document as "MUST implement" or "SHOULD implement" are not known | |||
| to be broken at the current time, and cryptographic research so far | to be broken at the current time, and cryptographic research so far | |||
| leads us to believe that they will likely remain secure into the | leads us to believe that they will likely remain secure into the | |||
| foreseeable future. However, this isn't necessarily forever and it | foreseeable future. However, this isn't necessarily forever and it | |||
| is expected that new revisions of this document will be issued from | is expected that new revisions of this document will be issued from | |||
| time to time to reflect the current best practice in this area. | time to time to reflect the current best practice in this area. | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| This document makes no requests of IANA. | This document makes no requests of IANA. | |||
| 8. Acknowledgements | 8. Acknowledgements | |||
| The first version of this document was RFC 4307 by Jeffrey I. | The first version of this document was RFC 4307 by Jeffrey I. | |||
| Schiller of the Massachusetts Institute of Technology (MIT). Much of | Schiller of the Massachusetts Institute of Technology (MIT). Much of | |||
| the original text has been copied verbatim. | the original text has been copied verbatim. | |||
| We would like to thank Paul Hoffman, Yaron Sheffer, John Mattsson and | We would like to thank Paul Hoffman, Yaron Sheffer, John Mattsson and | |||
| Tommy Pauly for their valuable feedback. | Tommy Pauly for their valuable feedback. | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.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, DOI 10.17487/ | Requirement Levels", BCP 14, RFC 2119, | |||
| RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC4106] Viega, J. and D. McGrew, "The Use of Galois/Counter Mode | [RFC4106] Viega, J. and D. McGrew, "The Use of Galois/Counter Mode | |||
| (GCM) in IPsec Encapsulating Security Payload (ESP)", RFC | (GCM) in IPsec Encapsulating Security Payload (ESP)", | |||
| 4106, DOI 10.17487/RFC4106, June 2005, | RFC 4106, DOI 10.17487/RFC4106, June 2005, | |||
| <http://www.rfc-editor.org/info/rfc4106>. | <http://www.rfc-editor.org/info/rfc4106>. | |||
| [RFC4307] Schiller, J., "Cryptographic Algorithms for Use in the | [RFC4307] Schiller, J., "Cryptographic Algorithms for Use in the | |||
| Internet Key Exchange Version 2 (IKEv2)", RFC 4307, DOI | Internet Key Exchange Version 2 (IKEv2)", RFC 4307, | |||
| 10.17487/RFC4307, December 2005, | DOI 10.17487/RFC4307, December 2005, | |||
| <http://www.rfc-editor.org/info/rfc4307>. | <http://www.rfc-editor.org/info/rfc4307>. | |||
| [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. | [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. | |||
| Kivinen, "Internet Key Exchange Protocol Version 2 | Kivinen, "Internet Key Exchange Protocol Version 2 | |||
| (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October | (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October | |||
| 2014, <http://www.rfc-editor.org/info/rfc7296>. | 2014, <http://www.rfc-editor.org/info/rfc7296>. | |||
| [RFC5282] Black, D. and D. McGrew, "Using Authenticated Encryption | [RFC5282] Black, D. and D. McGrew, "Using Authenticated Encryption | |||
| Algorithms with the Encrypted Payload of the Internet Key | Algorithms with the Encrypted Payload of the Internet Key | |||
| Exchange version 2 (IKEv2) Protocol", RFC 5282, DOI | Exchange version 2 (IKEv2) Protocol", RFC 5282, | |||
| 10.17487/RFC5282, August 2008, | DOI 10.17487/RFC5282, August 2008, | |||
| <http://www.rfc-editor.org/info/rfc5282>. | <http://www.rfc-editor.org/info/rfc5282>. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [RFC7427] Kivinen, T. and J. Snyder, "Signature Authentication in | [RFC7427] Kivinen, T. and J. Snyder, "Signature Authentication in | |||
| the Internet Key Exchange Version 2 (IKEv2)", RFC 7427, | the Internet Key Exchange Version 2 (IKEv2)", RFC 7427, | |||
| DOI 10.17487/RFC7427, January 2015, | DOI 10.17487/RFC7427, January 2015, | |||
| <http://www.rfc-editor.org/info/rfc7427>. | <http://www.rfc-editor.org/info/rfc7427>. | |||
| [RFC6989] Sheffer, Y. and S. Fluhrer, "Additional Diffie-Hellman | [RFC6989] Sheffer, Y. and S. Fluhrer, "Additional Diffie-Hellman | |||
| Tests for the Internet Key Exchange Protocol Version 2 | Tests for the Internet Key Exchange Protocol Version 2 | |||
| (IKEv2)", RFC 6989, DOI 10.17487/RFC6989, July 2013, | (IKEv2)", RFC 6989, DOI 10.17487/RFC6989, July 2013, | |||
| <http://www.rfc-editor.org/info/rfc6989>. | <http://www.rfc-editor.org/info/rfc6989>. | |||
| [RFC7815] Kivinen, T., "Minimal Internet Key Exchange Version 2 | [RFC7815] Kivinen, T., "Minimal Internet Key Exchange Version 2 | |||
| (IKEv2) Initiator Implementation", RFC 7815, DOI 10.17487/ | (IKEv2) Initiator Implementation", RFC 7815, | |||
| RFC7815, March 2016, | DOI 10.17487/RFC7815, March 2016, | |||
| <http://www.rfc-editor.org/info/rfc7815>. | <http://www.rfc-editor.org/info/rfc7815>. | |||
| [IKEV2-IANA] | [IKEV2-IANA] | |||
| , "Internet Key Exchange Version 2 (IKEv2) Parameters", , | "Internet Key Exchange Version 2 (IKEv2) Parameters", | |||
| <http://www.iana.org/assignments/ikev2-parameters>. | <http://www.iana.org/assignments/ikev2-parameters>. | |||
| [TRANSCRIPTION] | [TRANSCRIPTION] | |||
| Bhargavan, K. and G. Leurent, "Transcript Collision | Bhargavan, K. and G. Leurent, "Transcript Collision | |||
| Attacks: Breaking Authentication in TLS, IKE, and SSH", | Attacks: Breaking Authentication in TLS, IKE, and SSH", | |||
| NDSS , feb 2016. | NDSS , feb 2016. | |||
| [IEEE-802-15-4] | [IEEE-802-15-4] | |||
| , "IEEE Standard for Low-Rate Wireless Personal Area | "IEEE Standard for Low-Rate Wireless Personal Area | |||
| Networks (WPANs)", IEEE Standard 802.15.4, 2015. | Networks (WPANs)", IEEE Standard 802.15.4, 2015. | |||
| [IEEE-802-15-9] | [IEEE-802-15-9] | |||
| , "IEEE Recommended Practice for Transport of Key | "IEEE Recommended Practice for Transport of Key Management | |||
| Management Protocol (KMP) Datagrams", IEEE Standard | Protocol (KMP) Datagrams", IEEE Standard 802.15.9, 2016. | |||
| 802.15.9, 2016. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Yoav Nir | Yoav Nir | |||
| Check Point Software Technologies Ltd. | Check Point Software Technologies Ltd. | |||
| 5 Hasolelim st. | 5 Hasolelim st. | |||
| Tel Aviv 6789735 | Tel Aviv 6789735 | |||
| Israel | Israel | |||
| EMail: ynir.ietf@gmail.com | EMail: ynir.ietf@gmail.com | |||
| End of changes. 37 change blocks. | ||||
| 80 lines changed or deleted | 72 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||