| < draft-ietf-ipsecme-rfc4307bis-03.txt | draft-ietf-ipsecme-rfc4307bis-04.txt > | |||
|---|---|---|---|---|
| Network Working Group Y. Nir | Network Working Group Y. Nir | |||
| Internet-Draft Check Point | Internet-Draft Check Point | |||
| Intended status: Standards Track T. Kivinen | Intended status: Standards Track T. Kivinen | |||
| Expires: August 13, 2016 INSIDE Secure | Expires: September 17, 2016 INSIDE Secure | |||
| P. Wouters | P. Wouters | |||
| Red Hat | Red Hat | |||
| D. Migault | D. Migault | |||
| Ericsson | Ericsson | |||
| February 10, 2016 | March 16, 2016 | |||
| Algorithm Implementation Requirements and Usage Guidance for IKEv2 | Algorithm Implementation Requirements and Usage Guidance for IKEv2 | |||
| draft-ietf-ipsecme-rfc4307bis-03 | draft-ietf-ipsecme-rfc4307bis-04 | |||
| 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 protocol provides a mechanism to negotiate which algorithms | Exchange (IKE) protocol is used to negotiate the IPsec Security | |||
| should be used in any given Security Association. To ensure | Association (IPsec SA) parameters, such as which algorithms should be | |||
| interoperability between different implementations, it is necessary | used. To ensure interoperability between different implementations, | |||
| to specify a set of algorithm implementation requirements and Usage | it is necessary to specify a set of algorithm implementation | |||
| guidance to ensure that there is at least one algorithm that all | requirements and usage guidance to ensure that there is at least one | |||
| implementations will have available. This document defines the | algorithm that all implementations support. This document defines | |||
| current algorithm implementation requirements and usage guidance of | the current algorithm implementation requirements and usage guidance | |||
| IKEv2. This document does not update the algorithms used for packet | for IKEv2. This document does not update the algorithms used for | |||
| encryption using IPsec Encapsulated Security Payload (ESP) | packet encryption using IPsec Encapsulated Security Payload (ESP) | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at 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 August 13, 2016. | This Internet-Draft will expire on September 17, 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 35 ¶ | skipping to change at page 2, line 32 ¶ | |||
| 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 . . . . 6 | 3.2. Type 2 - IKEv2 Pseudo-random Function Transforms . . . . 6 | |||
| 3.3. Type 3 - IKEv2 Integrity Algorithm Transforms . . . . . . 7 | 3.3. Type 3 - IKEv2 Integrity Algorithm Transforms . . . . . . 7 | |||
| 3.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms . . . . . 8 | 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.2. Digital Signature Recommendation . . . . . . . . . . . . 11 | 4.1.1. Recommendations for RSA key length . . . . . . . . . 11 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 4.2. Digital Signature Recommendations . . . . . . . . . . . . 11 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 12 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 13 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 13 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | 8.2. Informative References . . . . . . . . . . . . . . . . . 14 | |||
| 1. Introduction | 1. Introduction | |||
| The Internet Key Exchange protocol [RFC7296] is used to negotiate the | The Internet Key Exchange (IKE) protocol [RFC7296] is used to | |||
| IPsec parameters, such as encryption algorithms and keys, for | negotiate the parameters of the IPsec SA, such as the encryption and | |||
| protected communications between two endpoints. The IKEv2 protocol | authentication algorithms and the keys for the protected | |||
| itself is also protected by encryption, which is also negotiated | communications between the two endpoints. The IKE protocol itself is | |||
| between the two endpoints. Negotiation is performed by IKEv2 itself. | also protected by encryption which is negotiated between the two | |||
| This document describes the encryption parameters of the IKE | endpoints using IKE. Different implementations of IKE may negotiate | |||
| protocol, not the encryption parameters of the ESP (IPsec) protocol. | different algorithms based on their individual local policy. To | |||
| ensure interoperability, a set of "mandatory-to-implement" IKE | ||||
| encryption algorithms is defined. | ||||
| Different implementations of IKEv2 may negotiate different encryption | This document describes the parameters of the IKE protocol. It does | |||
| algorithms based on their individual local policy. To ensure | not describe the cryptographic parameters of the AH or ESP protocols. | |||
| interoperability, a set of "mandatory-to-implement" IKEv2 encryption | ||||
| algorithms is defined. | ||||
| 1.1. Updating Algorithm Implementation Requirements and Usage Guidance | 1.1. Updating Algorithm Implementation Requirements and Usage Guidance | |||
| The field of cryptography evolves continiously. New stronger | The field of cryptography evolves continuously. New stronger | |||
| algorithms appear and existing algorithms are found to be less secure | algorithms appear and existing algorithms are found to be less secure | |||
| then originally thought. Therefore, algorithm implementation | then originally thought. Therefore, algorithm implementation | |||
| requirements and usage guidance need to be updated from time to time | requirements and usage guidance need to be updated from time to time | |||
| to reflect the new reality. The choices for algorithms must be | to reflect the new reality. The choices for algorithms must be | |||
| conservative to minimize the risk of algorithm compromised. | conservative to minimize the risk of algorithm compromise. | |||
| Algorithms need to be suitable for a wide variety of CPU | Algorithms need to be suitable for a wide variety of CPU | |||
| architectures and device deployments ranging from high end bulk | architectures and device deployments ranging from high end bulk | |||
| encryption devices to small low-power IoT devices. | encryption devices to small low-power IoT devices. | |||
| The algorithm implementation requirements and usage guidance may need | The algorithm implementation requirements and usage guidance may need | |||
| to change over time to adapt to the changing world. For this reason, | to change over time to adapt to the changing world. For this reason, | |||
| the selection of mandatory-to-implement algorithms was removed from | the selection of mandatory-to-implement algorithms was removed from | |||
| the main IKEv2 specification and placed in this document. | the main IKEv2 specification and placed in this document. | |||
| 1.2. Updating Algorithm Requirement Levels | 1.2. Updating Algorithm Requirement Levels | |||
| Ideally, the mandatory-to-implement algorithm of tomorrow should | The mandatory-to-implement algorithm of tomorrow should already be | |||
| already be available in most implementations of IKE by the time it is | available in most implementations of IKE by the time it is made | |||
| made mandatory. To facilitate this, this document attempts to | mandatory. This document attempts to identify and introduce those | |||
| identify those algorithms for future mandatory-to-implement. There | algorithms for future mandatory-to-implement status. There is no | |||
| is no guarantee that the algorithms in use today may become mandatory | guarantee that the algorithms in use today may become mandatory in | |||
| in the future. Published algorithms are continiously 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 not mentioned in this | to be implemented. As a result, any algorithm listed at the IKEv2 | |||
| document MAY be implemented. For clarification and consistency with | IANA registry not mentioned in this document MAY be implemented. For | |||
| [RFC4307] an algorithm will be set to MAY only when it has been | clarification and consistency with [RFC4307] an algorithm will be set | |||
| downgraded. | to MAY only when it has been downgraded. | |||
| Although this document updates the algorithms in order to keep the | Although this document updates the algorithms to keep the IKEv2 | |||
| 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 | |||
| gradually. This provides time for various implementations to update | gradually. This provides time for various implementations to update | |||
| their implemented algorithms while remaining interoperable. Unless | their implemented algorithms while remaining interoperable. Unless | |||
| there are strong security reasons, an algorithm is expected to be | there are strong security reasons, an algorithm is expected to be | |||
| downgraded from MUST to MUST- or SHOULD, instead of MUST NOT. | downgraded from MUST to MUST- or SHOULD, instead of MUST NOT. | |||
| 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 constrainted devices and their choice of | IoT devices are resource constrained devices and their choice of | |||
| algorithms are motivated by minimizing the fooprint 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. | |||
| 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 needs 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 updates. 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 suites. | may deploy and configure IKEv2 with only the safest cipher suite. On | |||
| On the other hand, comments and recommendations are also expected to | the other hand, comments and recommendations from this document are | |||
| be useful for such users. | also expected to be 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. | recommendations of this document must not be considered for IKEv1, as | |||
| most IKEv1 implementations have been "frozen" and will not be able to | ||||
| 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 | that an algorithm marked as SHOULD+ will be promoted at some | |||
| some future time to be a MUST. | 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 | MUST- This term means the same as MUST. However, we expect at some | |||
| some point that this algorithm will no longer be a MUST in | point that this algorithm will no longer be a MUST in a | |||
| a future document. Although its status will be determined | future document. Although its status will be determined at a | |||
| at a later time, it is reasonable to expect that if a | later time, it is reasonable to expect that if a future | |||
| future revision of a document alters the status of a MUST- | 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. | ||||
| 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 in the Encrypted Payload. References to the specifications | 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 | |||
| integrity algorithms in Section 3.3. | integrity algorithms in Section 3.3. | |||
| +-----------------------------+----------+-------+----------+ | +-----------------------------+----------+-------+----------+ | |||
| | Name | Status | AEAD? | Comment | | | Name | Status | AEAD? | Comment | | |||
| +-----------------------------+----------+-------+----------+ | +-----------------------------+----------+-------+----------+ | |||
| | ENCR_AES_CBC | MUST- | No | [1] | | | ENCR_AES_CBC | MUST- | No | [1] | | |||
| skipping to change at page 5, line 46 ¶ | skipping to change at page 5, line 39 ¶ | |||
| | 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 | |||
| MAY. 192-bit keys can safely be ignored. [IoT] - This requirement is | MAY. 192-bit keys can safely be ignored. [IoT] - This requirement is | |||
| for interoperability with IoT. | for interoperability with IoT. | |||
| ENCR_AES_CBC is raised from SHOULD+ in RFC4307. It is the only | Table 2 | |||
| shared mandatory-to-implement algorithm with RFC4307 and as a result | ||||
| is necessary for interoperability with IKEv2 implementation | 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 | ||||
| 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 and AES-GCM. It is also being standarized for | alternative to AES-CBC and AES-GCM. It is also being standardized | |||
| IPsec for the same reasons. At the time of writing, there were not | for IPsec for the same reasons. At the time of writing, there were | |||
| enough IKEv2 implementations of ENCR_CHACHA20_POLY1305 to be able to | not enough IKEv2 implementations supporting ENCR_CHACHA20_POLY1305 to | |||
| introduce it at the SHOULD+ level. | be able to introduce it at the SHOULD+ level. | |||
| AES-GCM with a 16 octet ICV was not considered as in RFC4307. At the | AES-GCM with a 16 octet ICV was not considered as in RFC4307. At the | |||
| time RFC4307 was written, AES-GCM was not defined in an IETF | time RFC4307 was written, AES-GCM was not defined in an IETF | |||
| document. AES-GCM was defined for ESP in [RFC4106] and later for | document. AES-GCM was defined for ESP in [RFC4106] and later for | |||
| IKEv2 in [RFC5282]. The main motivation for adopting AES-GCM for ESP | IKEv2 in [RFC5282]. The main motivation for adopting AES-GCM for ESP | |||
| is encryption performance as well as key longevity - compared to AES- | is encryption performance and key longevity compared to AES-CBC. | |||
| CBC for example. This resulted in AES-GCM widely implemented for | This resulted in AES-GCM being widely implemented for ESP. As the | |||
| ESP. As the load of IKEv2 is expected to remain relatively small, | computation load of IKEv2 is relatively small compared to ESP, many | |||
| many IKEv2 implementations do not include AES-GCM. In addition to | IKEv2 implementations have not implemented AES-GCM. For this reason, | |||
| its former MAY, this document does not promote AES-GCM to a greater | AES-GCM is not promoted to a greater status than SHOULD. The reason | |||
| status than SHOULD so to preserve interoperability between IKEv2 | for promotion from MAY to SHOULD is to promote the slightly more | |||
| implementations. [PAUL: I dont follow the reasoning, as we could | secure AEAD method over the traditional encrypt+auth method. Its | |||
| have AES and AES-GCM at MUST level] This document considers AES-GCM | status is expected to be raised once widely implemented. As the | |||
| as mandatory to implement to promote the slightly more secure AEAD | advantage of the shorter (and weaker) ICVs is minimal, the 8 and 12 | |||
| method over the traditional encrypt+auth method. Its status is | octet ICV's remain at the MAY level. | |||
| expected to be raised once widely deployed. | ||||
| ENCR_AES_CCM_8 was not considered in RFC4307. This document | ENCR_AES_CCM_8 was not considered in RFC4307. This document | |||
| considers it SHOULD be implemented in order to be able to interact | considers it as SHOULD be implemented in order to be able to interact | |||
| with Internet of Things devices. As this case is not a general use | with Internet of Things devices. As this case is not a general use | |||
| case for VPNs, its status is expected to remain to SHOULD. The size | case for non-IoT VPNs, its status is expected to remain as SHOULD. | |||
| of the ICV is expected to be sufficient for most use cases of IKEv2, | The 8 octet size of the ICV is expected to be sufficient for most use | |||
| as far less packets are exchanged on the IKE_SA compared to the IPsec | cases of IKEv2, as far less packets are exchanged on the IKE SA | |||
| SA. When implemented, ENCR_AES_CCM_8 MUST be implemented for key | compared to the IPsec SA. When implemented, ENCR_AES_CCM_8 MUST be | |||
| length 128 and MAY be implemented for key length 256. | implemented for key length 128 and MAY be implemented for key length | |||
| 256. | ||||
| ENCR_3DES has been downgraded from RFC4307 MUST-. All IKEv2 | ENCR_3DES has been downgraded from RFC4307 MUST- to SHOULD NOT. All | |||
| implementation already implement ENCR_AES_CBC, so there is no need to | IKEv2 implementation already implement ENCR_AES_CBC, so there is no | |||
| keep ENCR_3DES. In addition, ENCR_CHACHA20_POLY1305 provides a more | need to keep support for the much slower ENCR_3DES. In addition, | |||
| modern alternative to AES. [PAUL: removed 'efficient' as we said | ENCR_CHACHA20_POLY1305 provides a more modern alternative to AES. | |||
| above encryption efficiency at the IKE level hardly matters] | ||||
| ENCR_DES can be brute-forced using of-the-shelves hardware. It | ENCR_DES can be brute-forced using of-the-shelves hardware. It | |||
| provides no meaningful security whatsoever and therefor MUST NOT be | provides no meaningful security whatsoever and therefor MUST NOT be | |||
| implemented. | implemented. | |||
| 3.2. Type 2 - IKEv2 Pseudo-random Function Transforms | 3.2. Type 2 - IKEv2 Pseudo-random Function Transforms | |||
| Transform Type 2 Algorithms are pseudo-random functions used to | Transform Type 2 Algorithms are pseudo-random functions used to | |||
| generate random values when needed. | generate random values when needed. | |||
| In general, if you can trust an algorithm as INTEG algorithm, you can | If an algorithm is selected as the integrity algorithm, it SHOULD | |||
| and should also use it as the PRF. When using an AEAD cipher, the | also be used as the PRF. When using an AEAD cipher, a choice of PRF | |||
| choice is PRF is open, and picking one of the SHA2 variants is | needs to be made. The table below lists the recommended algorithms. | |||
| recommended. | ||||
| +-------------------+---------+---------+ | +-------------------+----------+---------+ | |||
| | Name | Status | Comment | | | Name | Status | Comment | | |||
| +-------------------+---------+---------+ | +-------------------+----------+---------+ | |||
| | PRF_HMAC_SHA2_256 | MUST | | | | PRF_HMAC_SHA2_256 | MUST | | | |||
| | PRF_HMAC_SHA2_512 | SHOULD+ | | | | PRF_HMAC_SHA2_512 | SHOULD+ | | | |||
| | PRF_HMAC_SHA1 | MUST- | [1] | | | PRF_HMAC_SHA1 | MUST- | | | |||
| | PRF_AES128_CBC | SHOULD | [IoT] | | | PRF_AES128_CBC | SHOULD | [IoT] | | |||
| +-------------------+---------+---------+ | | 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 | |||
| authentication was mentioned. PRF_HMAC_SHA2_256 MUST be implemented | authentication was mentioned. PRF_HMAC_SHA2_256 MUST be implemented | |||
| in order to replace SHA1 and PRF_HMAC_SHA1. | in order to replace SHA1 and PRF_HMAC_SHA1. | |||
| PRF_HMAC_SHA2_512 SHOULD be implemented as as a future replacement of | PRF_HMAC_SHA2_512 SHOULD be implemented as a future replacement for | |||
| SHA2_256 or when stronger security is required. PRF_HMAC_SHA2_512 is | PRF_HMAC_SHA2_256 or for when stronger security is required. | |||
| preferred over PRF_HMAC_SHA2_384, as the overhead of | PRF_HMAC_SHA2_512 is preferred over PRF_HMAC_SHA2_384, as the | |||
| PRF_HMAC_SHA2_512 is negligible. | additional overhead of PRF_HMAC_SHA2_512 is negligible. | |||
| PRF_HMAC_SHA1_96 has been downgraded from MUST in RFC4307. There is | PRF_HMAC_SHA1 has been downgraded from MUST in RFC4307 to MUST- as | |||
| an industry-wide trend to deprecate its usage. | their is an industry-wide trend to deprecate its usage. | |||
| PRF_AES128_CBC is only recommended in the scope of IoT, as Internet | PRF_AES128_CBC is only recommended in the scope of IoT, as Internet | |||
| of Things deployments tend to prefer AES based pseudo-random | of Things deployments tend to prefer AES based pseudo-random | |||
| functions in order to avoid implementing SHA2. For the wide VPN | functions in order to avoid implementing SHA2. For the non-IoT VPN | |||
| deployment, as it has not been widely adopted, it has been downgraded | deployment it has been downgraded from SHOULD in RFC4307 to MAY as it | |||
| from SHOULD in RFC4307 to MAY. | has not seen wide adoption. | |||
| PRF_HMAC_MD5 has been downgraded from MAY in RFC4307 to MUST NOT. | ||||
| There is an industry-wide trend to deprecate its usage as MD5 support | ||||
| is being removed from cryptographic libraries in general because its | ||||
| non-HMAC use is known to be subject to collision attacks, for example | ||||
| as mentioned in [TRANSCRIPTION]. | ||||
| 3.3. Type 3 - IKEv2 Integrity Algorithm Transforms | 3.3. Type 3 - IKEv2 Integrity 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 in the ENCR payload. References to the specifications | and used for the Encrypted Payload. References to the specification | |||
| defining these algorithms are in the IANA registry. When an AEAD | defining these algorithms are in the IANA registry. When an AEAD | |||
| algorithm (see Section 3.1) is proposed, this algorithm transform | algorithm (see Section 3.1) is proposed, this algorithm transform | |||
| type is not in use. | type is not in use. | |||
| +------------------------+--------+---------+ | +------------------------+----------+---------+ | |||
| | Name | Status | Comment | | | Name | Status | Comment | | |||
| +------------------------+--------+---------+ | +------------------------+----------+---------+ | |||
| | AUTH_HMAC_SHA2_256_128 | MUST | | | | AUTH_HMAC_SHA2_256_128 | MUST | | | |||
| | AUTH_HMAC_SHA2_512_256 | SHOULD | | | | AUTH_HMAC_SHA2_512_256 | SHOULD | | | |||
| | AUTH_HMAC_SHA1_96 | SHOULD | | | | AUTH_HMAC_SHA1_96 | MUST- | | | |||
| | AUTH_AES_XCBC_96 | SHOULD | [IoT] | | | AUTH_AES_XCBC_96 | SHOULD | [IoT] | | |||
| +------------------------+--------+---------+ | | AUTH_HMAC_MD5_96 | MUST NOT | | | |||
| | AUTH_DES_MAC | 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 | |||
| authentication was mentioned. AUTH_HMAC_SHA2_256_128 MUST be | authentication was 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 as a future | AUTH_HMAC_SHA2_512_256 SHOULD be implemented as a future replacement | |||
| replacement of AUTH_HMAC_SHA2_256_128 or when stronger security is | of AUTH_HMAC_SHA2_256_128 or for when stronger security is required. | |||
| required. This value has been preferred to AUTH_HMAC_SHA2_384, as | This value has been preferred over AUTH_HMAC_SHA2_384, as the | |||
| the 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. There is | AUTH_HMAC_SHA1_96 has been downgraded from MUST in RFC4307 to MUST- | |||
| 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 wide VPN deployment, as | in order to avoid implementing SHA2. For the non-IoT VPN deployment, | |||
| it has not been widely adopted, it has been downgraded from SHOULD in | it has been downgraded from SHOULD in RFC4307 to MAY as it has not | |||
| RFC4307 to MAY. | been widely adopted. | |||
| 3.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms | AUTH_HMAC_MD5_96, AUTH_DES_MAC and AUTH_KPDK_MD5 were not mentioned | |||
| in RFC4307 so its default status was MAY. It has been downgraded to | ||||
| MUST NOT. There is an industry-wide trend to deprecate its usage. | ||||
| MD5 support is being removed from cryptographic libraries in general | ||||
| because its non-HMAC use is known to be subject to collision attacks, | ||||
| for example as mentioned in [TRANSCRIPTION]. | ||||
| 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. They | Elliptic Curve groups (ECC) that are defined for use in IKEv2. These | |||
| are defined in both the [IKEv2] base document and in extensions | groups are defined in both the [IKEv2] base document and in | |||
| documents. They are identified by group number. | extensions documents and are identified by group number. Note that | |||
| it is critical to enforce a secure Diffie Hellman exchange as this | ||||
| exchange provides encryption for the session. If an attacker can | ||||
| retrieve the private numbers (for example a, b) (and? or?) the public | ||||
| values (for example g**a, g**b), then the attacker can compute the | ||||
| secret and the keys used and decrypt the exchange. Such an attack | ||||
| can be performed off-line on a previously recorded communication, | ||||
| years after the communication happened. This differs from attacks | ||||
| that need to be executed during the authentication which 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 | | | 5 | 1536-bit MODP Group | SHOULD NOT | | |||
| | | | NOT | | | 2 | 1024-bit MODP Group | SHOULD NOT | | |||
| | 2 | 1024-bit MODP Group | SHOULD | | | 1 | 768-bit MODP Group | MUST NOT | | |||
| | | | NOT | | | 22 | 1024-bit MODP Group with 160-bit Prime | SHOULD NOT | | |||
| | 1 | 768-bit MODP Group | MUST NOT | | | | Order Subgroup | | | |||
| | 22 | 1024-bit MODP Group with 160-bit Prime Order | MUST NOT | | | 23 | 2048-bit MODP Group with 224-bit Prime | SHOULD NOT | | |||
| | | Subgroup | | | | | Order Subgroup | | | |||
| | 23 | 1024-bit MODP Group with 224-bit Prime Order | MUST NOT | | | 24 | 2048-bit MODP Group with 256-bit Prime | SHOULD NOT | | |||
| | | Subgroup | | | | | Order Subgroup | | | |||
| | 24 | 1024-bit MODP Group with 256-bit Prime Order | MUST NOT | | +------------+----------------------------------------+-------------+ | |||
| | | 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. | ||||
| Group 19 is widely implemented and considered secure | ||||
| Group 5 or 1536-bit MODP Group is downgrade from MUST- to SHOULD NOT. | Group 19 or 256-bit random ECP group was not specified in RFC4307, as | |||
| It was specified earlier, but now considered to be vulnerable to be | this group were not specified at that time. Group 19 is widely | |||
| broken within the next few years by a nation state level attack, so | implemented and considered secure. | |||
| its security margin is considered too narrow. | ||||
| Group 2 or 1024-bit MODP Group is downgrade from MUST- to SHOULD NOT. | Group 5 or 1536-bit MODP Group has been downgraded from MAY in | |||
| It was specified earlier, but now it is known to be weak against | RFC4307 to SHOULD NOT. It was specified earlier, but is now | |||
| sufficiently funded attackers using commercially available mass- | considered to be vulnerable to be broken within the next few years by | |||
| computing resources, so its security margin is considered too narrow. | a nation state level attack, so its security margin is considered too | |||
| It is expected in the near future to be downgraded to MUST NOT. | narrow. | |||
| Group 1 or 768-bit MODP Group can be broken within hours using cheap | Group 2 or 1024-bit MODP Group has been downgraded from MUST- in | |||
| of-the-shelves hardware. It provides no security whatsoever. | RFC4307 to SHOULD NOT. It is known to be weak against sufficiently | |||
| funded attackers using commercially available mass-computing | ||||
| resources, so its security margin is considered too narrow. It is | ||||
| expected in the near future to be downgraded to MUST NOT. | ||||
| Curve25519 has been designed with performance and security in mind | Group 1 or 768-bit MODP Group was not mentioned in RFC4307 and so its | |||
| and have been recommended by CFRG. At the time of writing, the IKEv2 | status was MAY. It can be broken within hours using cheap of-the- | |||
| specification is still at the draft status. This document specifies | shelves hardware. It provides no security whatsoever. | |||
| it as to encourage its implementation and deployment. If it gets | ||||
| widely implemented then it most likely will be upgraded to SHOULD or | ||||
| even MUST in the future. | ||||
| Group 22-24 or 1024-bit MODP Group with 160-bit and 2048-bit MODP | Group 22, 23 and 24 or 1024-bit MODP Group with 160-bit, and 2048-bit | |||
| Group with 224-256-bit Prime Order Subgroup are exposed to | MODP Group with 224-bit and 256-bit Prime Order Subgroup have small | |||
| synchronization or transcription attacks. | subgroups, which means that checks specified in the "Additional | |||
| Diffie-Hellman Test for the IKEv2" [RFC6989] section 2.2 first bullet | ||||
| point MUST be done when these groups are used. These groups are also | ||||
| not safe-primes. The seeds for these groups have not been publicly | ||||
| released, resulting in reduced trust in these groups. These groups | ||||
| were proposed as alternatives for group 2 and 14 but never saw wide | ||||
| deployment. It is expected in the near future to be further | ||||
| downgraded to MUST NOT. | ||||
| 4. IKEv2 Authentication | 4. IKEv2 Authentication | |||
| IKEv2 authentication may involve a signatures verification. | IKEv2 authentication may involve a signatures verification. | |||
| Signatures may be used to validate a certificate or to check the | Signatures may be used to validate a certificate or to check the | |||
| signature of the AUTH value. Cryptographic recommendations regarding | signature of the AUTH value. Cryptographic recommendations regarding | |||
| certificate validation are out of scope of this document as what | certificate validation are out of scope of this document. What is | |||
| mandatory implementations are provided by the PKIX WG. This document | mandatory to implement is provided by the PKIX Community. This | |||
| is mostly concerned on signature verification and generation for the | document is mostly concerned on signature verification and generation | |||
| authentication. | for the authentication. | |||
| 4.1. IKEv2 Authentication Method | 4.1. IKEv2 Authentication Method | |||
| +--------+-------------------------+--------+-----------------------+ | +--------+---------------------------------------+------------+ | |||
| | Number | Description | Status | Comment | | | Number | Description | Status | | |||
| +--------+-------------------------+--------+-----------------------+ | +--------+---------------------------------------+------------+ | |||
| | 1 | RSA Digital Signature | MUST | With keys length 2048 | | | 1 | RSA Digital Signature | MUST | | |||
| | 1 | RSA Digital Signature | SHOULD | With keys length | | | 3 | DSS Digital Signature | SHOULD NOT | | |||
| | | | | 3072/4096 | | | 9 | ECDSA with SHA-256 on the P-256 curve | SHOULD | | |||
| | 1 | RSA Digital Signature | MUST | With keys length | | | 10 | ECDSA with SHA-384 on the P-384 curve | SHOULD | | |||
| | | | NOT | lower than 2048 | | | 11 | ECDSA with SHA-512 on the P-521 curve | SHOULD | | |||
| | 3 | DSS Digital Signature | MAY | | | | 14 | Digital Signature | SHOULD | | |||
| | 9 | ECDSA with SHA-256 on | SHOULD | | | +--------+---------------------------------------+------------+ | |||
| | | the P-256 curve | | | | ||||
| | 10 | ECDSA with SHA-384 on | SHOULD | | | ||||
| | | the P-384 curve | | | | ||||
| | 11 | ECDSA with SHA-512 on | SHOULD | | | ||||
| | | the P-521 curve | | | | ||||
| | 14 | Digital Signature | SHOULD | | | ||||
| +--------+-------------------------+--------+-----------------------+ | ||||
| RSA Digital Signature is mostly kept for interoperability. It is | Table 6 | |||
| expected to be downgraded in the future as signatures are based on | ||||
| RSASSA-PKCS1-v1.5, not any more recommemded. Instead, more robust | RSA Digital Signature is widely deployed and therefor kept for | |||
| use of RSA is expected to be performed via the Digital Signature | 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 | ||||
| longer recommended. RSA authentication, as well as other specific | ||||
| Authentication Methods, are expected to be replaced with the generic | ||||
| Digital Signature method of [RFC7427]. RSA Digital Signature is not | ||||
| recommended for keys smaller then 2048, but since these signatures | ||||
| only have value in real-time, and need no future protection, smaller | ||||
| keys was kept at SHOULD NOT instead of MUST NOT. | ||||
| ECDSA based Authentication Methods are also expected to be downgraded | ||||
| as it does not provide hash function agility. Instead, ECDSA (like | ||||
| RSA) is expected to be performed using the generic Digital Signature | ||||
| method. | method. | |||
| ECDSA family are also expected to be downgraded as it does not | DSS Digital Signature is bound to SHA-1 and has the same level of | |||
| provide hash function agility. Instead ECDSA is expected to be | security as 1024-bit RSA. It is expected to be downgraded to MUST | |||
| performed using the generic Digital Signature method. | NOT in the future. | |||
| DSS Digital Signature is bound to SHA-1 and thus is expected to be | Digital Signature [RFC7427] is expected to be promoted as it provides | |||
| downgraded to MUST NOT in the future. | hash function, signature format and algorithm agility. | |||
| Digital Signature is expected to be promoted as it provides hash | 4.1.1. Recommendations for RSA key length | |||
| function, signature format and algorithm agility. | ||||
| [MGLT: Do we have any recommendation for the authentication based on | +-------------------------------------------+------------+ | |||
| PSK?] | | Description | Status | | |||
| +-------------------------------------------+------------+ | ||||
| | RSA with key length 2048 | MUST | | ||||
| | RSA with key length 3072 and 4096 | SHOULD | | ||||
| | RSA with key length between 2049 and 4095 | MAY | | ||||
| | RSA with key length smaler than 2048 | SHOULD NOT | | ||||
| +-------------------------------------------+------------+ | ||||
| 4.2. Digital Signature Recommendation | Table 7 | |||
| Here are the recommendations for the authentication methods. | 4.2. Digital Signature Recommendations | |||
| +--------+-------------+----------+---------------------------------+ | Recommendations for when a hash function is involved in a signature: | |||
| | Number | Description | Status | Comment | | ||||
| +--------+-------------+----------+---------------------------------+ | ||||
| | OID | RSA | MUST | With keys length 2048 | | ||||
| | OID | RSA | SHOULD | With keys length 3072/4096 | | ||||
| | OID | RSA | MUST NOT | With keys length lower than | | ||||
| | | | | 2048 | | ||||
| | OID | ECDSA | SHOULD | | | ||||
| +--------+-------------+----------+---------------------------------+ | ||||
| Here are the recommendations when a hash function is involved in a | +--------+-------------+------------+---------+ | |||
| signature. | | Number | Description | Status | Comment | | |||
| +--------+-------------+------------+---------+ | ||||
| | 1 | SHA1 | SHOULD NOT | | | ||||
| | 2 | SHA2-256 | MUST | | | ||||
| | 3 | SHA2-384 | MAY | | | ||||
| | 4 | SHA2-512 | SHOULD | | | ||||
| +--------+-------------+------------+---------+ | ||||
| +--------+-------------+--------+---------+ | Table 8 | |||
| | Number | Description | Status | Comment | | ||||
| +--------+-------------+--------+---------+ | ||||
| | 1 | SHA1 | MUST | | | ||||
| | 2 | SHA2-256 | MUST | | | ||||
| | 3 | SHA2-384 | MAY | | | ||||
| | 4 | SHA2-512 | SHOULD | | | ||||
| +--------+-------------+--------+---------+ | ||||
| With the use of Digital Signature, RSASSA-PKCS1-v1.5 MAY be | With the use of Digital Signature, RSASSA-PKCS1-v1.5 MAY be | |||
| implemented, and RSASSA-PSS MUST be implemented. | implemented. RSASSA-PSS MUST be implemented. | |||
| Recommendation of Authentication Method described in [RFC7427] | ||||
| notation: | ||||
| +------------------------------------+------------+---------+ | ||||
| | Description | Status | Comment | | ||||
| +------------------------------------+------------+---------+ | ||||
| | RSASSA-PSS with SHA-256 | SHOULD | | | ||||
| | ecdsa-with-sha256 | SHOULD | | | ||||
| | sha1WithRSAEncryption | SHOULD NOT | | | ||||
| | dsa-with-sha1 | SHOULD NOT | | | ||||
| | ecdsa-with-sha1 | SHOULD NOT | | | ||||
| | RSASSA-PSS with Empty Parameters | SHOULD NOT | | | ||||
| | RSASSA-PSS with Default Parameters | SHOULD NOT | | | ||||
| | sha256WithRSAEncryption | MAY | | | ||||
| | sha384WithRSAEncryption | MAY | | | ||||
| | sha512WithRSAEncryption | MAY | | | ||||
| | sha512WithRSAEncryption | MAY | | | ||||
| | dsa-with-sha256 | MAY | | | ||||
| | ecdsa-with-sha384 | MAY | | | ||||
| | ecdsa-with-sha512 | MAY | ?SHOULD | | ||||
| +------------------------------------+------------+---------+ | ||||
| Table 9 | ||||
| 5. Security Considerations | 5. Security Considerations | |||
| The security of cryptographic-based systems depends on both the | The security of cryptographic-based systems depends on both the | |||
| strength of the cryptographic algorithms chosen and the strength of | strength of the cryptographic algorithms chosen and the strength of | |||
| the keys used with those algorithms. The security also depends on | the keys used with those algorithms. The security also depends on | |||
| the engineering of the protocol used by the system to ensure that | the engineering of the protocol used by the system to ensure that | |||
| there are no non-cryptographic ways to bypass the security of the | there are no non-cryptographic ways to bypass the security of the | |||
| overall system. | overall system. | |||
| The Diffie-Hellman Groups parameter is the most important one to | The Diffie-Hellman Group parameter is the most important one to | |||
| choose conservatively. Any party capturing all traffic that can | choose conservatively. Any party capturing all IKE and ESP traffic | |||
| break the selected DH group can retroactively gain access to the | that (even years later) can break the selected DH group in IKE, can | |||
| symmetric keys used to encrypt all the IPsec data. However, | gain access to the symmetric keys used to encrypt all the ESP | |||
| specifying extremely large DH group also puts a considerable load on | traffic. Therefore, these groups must be chosen very conservatively. | |||
| the device, especially when this is a large VPN gateway or an IoT | However, specifying an extremely large DH group also puts a | |||
| constrained device. | considerable load on the device, especially when this is a large VPN | |||
| gateway or an IoT constrained device. | ||||
| This document concerns itself with the selection of cryptographic | This document concerns itself with the selection of cryptographic | |||
| 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. | |||
| skipping to change at page 12, line 28 ¶ | skipping to change at page 13, line 18 ¶ | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This document makes no requests of IANA. | This document makes no requests of IANA. | |||
| 7. Acknowledgements | 7. 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 thanks Paul Hoffman, Yaron Sheffer John Mattsson and | We would like to thank Paul Hoffman, Yaron Sheffer, John Mattsson and | |||
| Tommy Pauly for their valuable feed backs. | Tommy Pauly for their valuable feedback. | |||
| 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/ | |||
| DOI 10.17487/RFC2119, March 1997, | 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)", | (GCM) in IPsec Encapsulating Security Payload (ESP)", RFC | |||
| RFC 4106, DOI 10.17487/RFC4106, June 2005, | 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, | Internet Key Exchange Version 2 (IKEv2)", RFC 4307, DOI | |||
| DOI 10.17487/RFC4307, December 2005, | 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, | Exchange version 2 (IKEv2) Protocol", RFC 5282, DOI | |||
| DOI 10.17487/RFC5282, August 2008, | 10.17487/RFC5282, August 2008, | |||
| <http://www.rfc-editor.org/info/rfc5282>. | <http://www.rfc-editor.org/info/rfc5282>. | |||
| 8.2. Informative References | 8.2. Informative References | |||
| [RFC7427] Kivinen, T. and J. Snyder, "Signature Authentication in | ||||
| the Internet Key Exchange Version 2 (IKEv2)", RFC 7427, | ||||
| DOI 10.17487/RFC7427, January 2015, | ||||
| <http://www.rfc-editor.org/info/rfc7427>. | ||||
| [RFC6989] Sheffer, Y. and S. Fluhrer, "Additional Diffie-Hellman | ||||
| Tests for the Internet Key Exchange Protocol Version 2 | ||||
| (IKEv2)", RFC 6989, DOI 10.17487/RFC6989, July 2013, | ||||
| <http://www.rfc-editor.org/info/rfc6989>. | ||||
| [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] | ||||
| Bhargavan, K. and G. Leurent, "Transcript Collision | ||||
| Attacks: Breaking Authentication in TLS, IKE, and SSH", | ||||
| NDSS , feb 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. 74 change blocks. | ||||
| 254 lines changed or deleted | 330 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/ | ||||