| < draft-ietf-ipsecme-rfc4307bis-01.txt | draft-ietf-ipsecme-rfc4307bis-02.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: May 12, 2016 INSIDE Secure | Expires: July 07, 2016 INSIDE Secure | |||
| P. Wouters | P. Wouters | |||
| Red Hat | Red Hat | |||
| D. Migault | D. Migault | |||
| Ericsson | Ericsson | |||
| November 9, 2015 | January 04, 2016 | |||
| Cryptographic Algorithms for Use in the Internet Key Exchange Version 2 | Algorithm Implementation Requirements and Usage Guidance for IKEv2 | |||
| (IKEv2) | draft-ietf-ipsecme-rfc4307bis-02 | |||
| draft-ietf-ipsecme-rfc4307bis-01 | ||||
| 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 protocol provides a mechanism to negotiate which algorithms | |||
| should be used in any given association. However, to ensure | should be used in any given Security Association. To ensure | |||
| interoperability between disparate implementations, it is necessary | interoperability between different implementations, it is necessary | |||
| to specify a set of mandatory-to-implement algorithms to ensure that | to specify a set of algorithm implementation requirements and Usage | |||
| there is at least one algorithm that all implementations will have | guidance to ensure that there is at least one algorithm that all | |||
| available. This document defines the current set of algorithms that | implementations will have available. This document defines the | |||
| are mandatory to implement as part of IKEv2, as well as algorithms | current algorithm implementation requirements and usage guidance of | |||
| that should be implemented because they may be promoted to mandatory | IKEv2. This document does not update the algorithms used for packet | |||
| at some future time. | 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 May 12, 2016. | This Internet-Draft will expire on July 07, 2016. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | ||||
| Copyright (c) 2015 IETF Trust and the persons identified as the | ||||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 | 1.1. Updating Algorithm Implementation Requirements and Usage | |||
| 3. Algorithm Selection . . . . . . . . . . . . . . . . . . . . . 3 | Guidance . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3.1. IKEv2 Transform Type 1 Algorithms . . . . . . . . . . . . 3 | 1.2. Updating Algorithm Requirement Levels . . . . . . . . . . 3 | |||
| 3.2. IKEv2 Transform Type 3 Algorithms . . . . . . . . . . . . 4 | 1.3. Document Audience . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.3. IKEv2 Transform Type 2 Algorithms . . . . . . . . . . . . 5 | 2. Conventions Used in This Document . . . . . . . . . . . . . . 4 | |||
| 3.4. Diffie-Hellman Groups . . . . . . . . . . . . . . . . . . 5 | 3. Algorithm Selection . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | 3.1. Type 1 - IKEv2 Encryption Algorithm Transforms . . . . . 5 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 3.2. Type 2 - IKEv2 Pseudo-random Function Transforms . . . . 6 | |||
| 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 | 3.3. Type 3 - IKEv2 Integrity Algorithm Transforms . . . . . . 7 | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms . . . . . 8 | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 6 | 4. IKEv2 Authentication . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 7 | 4.1. IKEv2 Authentication Method . . . . . . . . . . . . . . . 9 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Digital Signature Recommendation . . . . . . . . . . . . 10 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | ||||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | ||||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 12 | ||||
| 1. Introduction | 1. Introduction | |||
| The Internet Key Exchange protocol [RFC7296] is used to negotiate the | ||||
| IPsec parameters, such as encryption algorithms and keys, for | ||||
| protected communications between two endpoints. The IKEv2 protocol | ||||
| itself is also protected by encryption, which is also negotiated | ||||
| between the two endpoints. Negotiation is performed by IKEv2 itself. | ||||
| This document describes the encryption parameters of the IKE | ||||
| protocol, not the encryption parameters of the ESP (IPsec) protocol. | ||||
| Different implementations of IKEv2 may negotiate different encryption | ||||
| algorithms based on their individual local policy. To ensure | ||||
| interoperability, a set of "mandatory-to-implement" IKEv2 encryption | ||||
| algorithms is defined. | ||||
| The Internet Key Exchange protocol [RFC7296] provides for the | 1.1. Updating Algorithm Implementation Requirements and Usage Guidance | |||
| negotiation of cryptographic algorithms between both endpoints of a | ||||
| cryptographic association. Different implementations of IPsec and | ||||
| IKE may provide different algorithms. However, the IETF desires that | ||||
| all implementations should have some way to interoperate. In | ||||
| particular, this requires that IKE define a set of mandatory-to- | ||||
| implement algorithms because IKE itself uses such algorithms as part | ||||
| of its own negotiations. This requires that some set of algorithms | ||||
| be specified as "mandatory-to-implement" for IKE. | ||||
| The nature of cryptography is that new algorithms surface | The field of cryptography evolves continiously. New stronger | |||
| continuously and existing algorithms are continuously attacked. An | algorithms appear and existing algorithms are found to be less secure | |||
| algorithm believed to be strong today may be demonstrated to be weak | then originally thought. Therefore, algorithm implementation | |||
| tomorrow. Given this, the choice of mandatory-to-implement algorithm | requirements and usage guidance need to be updated from time to time | |||
| should be conservative so as to minimize the likelihood of it being | to reflect the new reality. The choices for algorithms must be | |||
| compromised quickly. Thought should also be given to performance | conservative to minimize the risk of algorithm compromised. | |||
| considerations as many uses of IPsec will be in environments where | Algorithms need to be suitable for a wide variety of CPU | |||
| performance is a concern. | architectures and device deployments ranging from high end bulk | |||
| encryption devices to small low-power IoT devices. | ||||
| Finally, we need to recognize that the mandatory-to-implement | The algorithm implementation requirements and usage guidance may need | |||
| algorithm(s) may need to change over time to adapt to the changing | to change over time to adapt to the changing world. For this reason, | |||
| world. For this reason, the selection of mandatory-to-implement | the selection of mandatory-to-implement algorithms was removed from | |||
| algorithms was removed from the main IKEv2 specification and placed | the main IKEv2 specification and placed in this document. | |||
| in this document. As the choice of algorithm changes, only this | ||||
| document should need to be updated. | 1.2. Updating Algorithm Requirement Levels | |||
| Ideally, the mandatory-to-implement algorithm of tomorrow should | Ideally, the mandatory-to-implement algorithm of tomorrow should | |||
| already be available in most implementations of IPsec by the time it | already be available in most implementations of IKE by the time it is | |||
| is made mandatory. To facilitate this, we will attempt to identify | made mandatory. To facilitate this, this document attempts to | |||
| those algorithms (that are known today) in this document. There is | identify those algorithms for future mandatory-to-implement. There | |||
| no guarantee that the algorithms we believe today may be mandatory in | is no guarantee that the algorithms in use today may become mandatory | |||
| the future will in fact become so. All algorithms known today are | in the future. Published algorithms are continiously subjected to | |||
| subject to cryptographic attack and may be broken in the future. | cryptographic attack and may become too weak or could become | |||
| completely broken before this document is updated. | ||||
| This document only provides recommendations for the mandatory-to- | ||||
| implement algorithms or algorithms too weak that are recommended not | ||||
| to be implemented. As a result, any algorithm not mentioned in this | ||||
| document MAY be implemented. For clarification and consistency with | ||||
| [RFC4307] an algorithm will be set to MAY only when it has been | ||||
| downgraded. | ||||
| Although this document updates the algorithms in order to keep the | ||||
| IKEv2 communication secure over time, it also aims at providing | ||||
| recommendations so that IKEv2 implementations remain interoperable. | ||||
| IKEv2 interoperability is addressed by an incremental introduction or | ||||
| deprecation of algorithms. In addition, this document also considers | ||||
| the new use cases for IKEv2 deployment, such as Internet of Things | ||||
| (IoT). | ||||
| It is expected that deprecation of an algorithm is performed | ||||
| gradually. This provides time for various implementations to update | ||||
| their implemented algorithms while remaining interoperable. Unless | ||||
| there are strong security reasons, an algorithm is expected to be | ||||
| downgraded from MUST to MUST- or SHOULD, instead of MUST NOT. | ||||
| Similarly, an algorithm that has not been mentioned as mandatory-to- | ||||
| implement is expected to be introduced with a SHOULD instead of a | ||||
| MUST. | ||||
| The current trend toward Internet of Things and its adoption of IKEv2 | ||||
| requires this specific use case to be taken into account as well. | ||||
| IoT devices are resource constrainted devices and their choice of | ||||
| algorithms are motivated by minimizing the fooprint of the code, the | ||||
| computation effort and the size of the messages to send. This | ||||
| document indicates IoT when a specified algorithm is specifically | ||||
| listed for IoT devices. | ||||
| 1.3. Document Audience | ||||
| The recommendations of this document target IKEv2 implementers. In | ||||
| other words, the recommendations should not be considered for IKEv2 | ||||
| configuration, as a preference for some algorithms. [PAUL: I don't | ||||
| understand this. Clearly MTI are good default choices?] | ||||
| IKEv1 is out of scope of this document. IKEv1 is deprecated and the | ||||
| recommendations of this document must not be considered for IKEv1. | ||||
| 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 point that this algorithm will no longer be a MUST in | some 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 | |||
| at a later time, it is reasonable to expect that if a | 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-. | |||
| IoT stands for Internet of Things. | ||||
| Table 1 | ||||
| 3. Algorithm Selection | 3. Algorithm Selection | |||
| 3.1. IKEv2 Transform Type 1 Algorithms | 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 ENCR payload. References to the specifications | and used in the ENCR payload. References to the specifications | |||
| 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 the | Algorithms that are not AEAD MUST be used in conjunction with an | |||
| integrity algorithms in Section 3.2. | 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] | | |||
| | ENCR_CHACHA20_POLY1305 | SHOULD | Yes | | | | ENCR_CHACHA20_POLY1305 | SHOULD | Yes | | | |||
| | 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] | | | 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. | MAY. 192-bit keys can safely be ignored. [IoT] - This requirement is | |||
| for interoperability with IoT. | ||||
| Explanation about AES-CBC is TBD. | Table 2 | |||
| Explanation about ChaCha20 is TBD. | ENCR_AES_CBC is raised from SHOULD+ in RFC4307. It is the only | |||
| shared mandatory-to-implement algorithm with RFC4307 and as a result | ||||
| is necessary for interoperability with IKEv2 implementation | ||||
| compatible with RFC4307. | ||||
| Explanation about AES-GCM is TBD. | 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 | ||||
| alternative to AES and AES-GCM. It is also being standarized for | ||||
| IPsec for the same reasons. At the time of writing, there were not | ||||
| enough IKEv2 implementations of ENCR_CHACHA20_POLY1305 to be able to | ||||
| introduce it at the SHOULD+ level. | ||||
| Explanation about AES-CCM is TBD. | 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 | ||||
| document. AES-GCM was defined for ESP in [RFC4106] and later for | ||||
| IKEv2 in [RFC5282]. The main motivation for adopting AES-GCM for ESP | ||||
| is encryption performance as well as key longevity - compared to AES- | ||||
| CBC for example. This resulted in AES-GCM widely implemented for | ||||
| ESP. As the load of IKEv2 is expected to remain relatively small, | ||||
| many IKEv2 implementations do not include AES-GCM. In addition to | ||||
| its former MAY, this document does not promote AES-GCM to a greater | ||||
| status than SHOULD so to preserve interoperability between IKEv2 | ||||
| implementations. [PAUL: I dont follow the reasoning, as we could | ||||
| have AES and AES-GCM at MUST level] This document considers AES-GCM | ||||
| as mandatory to implement to promote the slightly more secure AEAD | ||||
| method over the traditional encrypt+auth method. Its status is | ||||
| expected to be raised once widely deployed. | ||||
| Explanation about 3DES is TBD. | ENCR_AES_CCM_8 was not considered in RFC4307. This document | |||
| considers it SHOULD be implemented in order to be able to interact | ||||
| 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 | ||||
| of the ICV is expected to be sufficient for most use cases of IKEv2, | ||||
| as far less packets are exchanged on the IKE_SA compared to the IPsec | ||||
| SA. When implemented, ENCR_AES_CCM_8 MUST be implemented for key | ||||
| length 128 and MAY be implemented for key length 256. | ||||
| Explanation about DES is TBD. | ENCR_3DES has been downgraded from RFC4307 MUST-. All IKEv2 | |||
| implementation already implement ENCR_AES_CBC, so there is no need to | ||||
| keep ENCR_3DES. In addition, ENCR_CHACHA20_POLY1305 provides a more | ||||
| modern alternative to AES. [PAUL: removed 'efficient' as we said | ||||
| above encryption efficiency at the IKE level hardly matters] | ||||
| 3.2. IKEv2 Transform Type 3 Algorithms | ENCR_DES can be brute-forced using of-the-shelves hardware. It | |||
| provides no meaningful security whatsoever and therefor MUST NOT be | ||||
| implemented. | ||||
| The algorithms in the below table are negotiated in the SA payload | 3.2. Type 2 - IKEv2 Pseudo-random Function Transforms | |||
| and used in the ENCR payload. References to the specifications | ||||
| defining these algorithms are in the IANA registry. When an AEAD | ||||
| algorithm (see Section 3.1) is used, no algorithm from this table | ||||
| needs to be used. | ||||
| +------------------------+---------+ | Transform Type 2 Algorithms are pseudo-random functions used to | |||
| | Name | Status | | generate random values when needed. | |||
| +------------------------+---------+ | ||||
| | AUTH_HMAC_SHA2_256_128 | MUST | | ||||
| | AUTH_HMAC_SHA2_512_256 | SHOULD+ | | ||||
| | AUTH_HMAC_SHA1_96 | MUST- | | ||||
| | AUTH_AES_XCBC_96 | MAY | | ||||
| +------------------------+---------+ | ||||
| Explanation about SHA-256 is TBD. | In general, if you can trust an algorithm as INTEG algorithm, you can | |||
| and should also use it as the PRF. When using an AEAD cipher, the | ||||
| choice is PRF is open, and picking one of the SHA2 variants is | ||||
| recommended. | ||||
| Explanation about SHA-512 is TBD. | +-------------------+---------+---------+ | |||
| | Name | Status | Comment | | ||||
| +-------------------+---------+---------+ | ||||
| | PRF_HMAC_SHA2_256 | MUST | | | ||||
| | PRF_HMAC_SHA2_512 | SHOULD+ | | | ||||
| | PRF_HMAC_SHA1 | MUST- | [1] | | ||||
| | PRF_AES128_CBC | SHOULD | [IoT] | | ||||
| +-------------------+---------+---------+ | ||||
| Explanation about SHA-1 is TBD. | [IoT] - This requirement is for interoperability with IoT | |||
| Explanation about AES-XCBC is TBD. | Table 3 | |||
| 3.3. IKEv2 Transform Type 2 Algorithms | PRF_HMAC_SHA2_256 was not mentioned in RFC4307, as no SHA2 based | |||
| authentication was mentioned. PRF_HMAC_SHA2_256 MUST be implemented | ||||
| in order to replace SHA1 and PRF_HMAC_SHA1. | ||||
| Transform Type 2 Algorithms are pseudo-random functions used to | PRF_HMAC_SHA2_512 SHOULD be implemented as as a future replacement of | |||
| generate random values when needed. | SHA2_256 or when stronger security is required. PRF_HMAC_SHA2_512 is | |||
| preferred over PRF_HMAC_SHA2_384, as the overhead of | ||||
| PRF_HMAC_SHA2_512 is negligible. | ||||
| +-------------------+---------+ | PRF_HMAC_SHA1_96 has been downgraded from MUST in RFC4307. There is | |||
| | Name | Status | | an industry-wide trend to deprecate its usage. | |||
| +-------------------+---------+ | ||||
| | PRF_HMAC_SHA2_256 | MUST | | ||||
| | PRF_HMAC_SHA2_512 | SHOULD+ | | ||||
| | PRF_HMAC_SHA1 | MUST- | | ||||
| | PRF_AES128_CBC | MAY | | ||||
| +-------------------+---------+ | ||||
| Explanation about SHA-256 is TBD. | PRF_AES128_CBC is only recommended in the scope of IoT, as Internet | |||
| of Things deployments tend to prefer AES based pseudo-random | ||||
| functions in order to avoid implementing SHA2. For the wide VPN | ||||
| deployment, as it has not been widely adopted, it has been downgraded | ||||
| from SHOULD in RFC4307 to MAY. | ||||
| Explanation about SHA-512 is TBD. | 3.3. Type 3 - IKEv2 Integrity Algorithm Transforms | |||
| Explanation about SHA-1 is TBD. | The algorithms in the below table are negotiated in the SA payload | |||
| and used in the ENCR payload. References to the specifications | ||||
| defining these algorithms are in the IANA registry. When an AEAD | ||||
| algorithm (see Section 3.1) is proposed, this algorithm transform | ||||
| type is not in use. | ||||
| Explanation about AES-XCBC is TBD. | +------------------------+--------+---------+ | |||
| | Name | Status | Comment | | ||||
| +------------------------+--------+---------+ | ||||
| | AUTH_HMAC_SHA2_256_128 | MUST | | | ||||
| | AUTH_HMAC_SHA2_512_256 | SHOULD | | | ||||
| | AUTH_HMAC_SHA1_96 | SHOULD | | | ||||
| | AUTH_AES_XCBC_96 | SHOULD | [IoT] | | ||||
| +------------------------+--------+---------+ | ||||
| 3.4. Diffie-Hellman Groups | [IoT] - This requirement is for interoperability with IoT | |||
| Table 4 | ||||
| AUTH_HMAC_SHA2_256_128 was not mentioned in RFC4307, as no SHA2 based | ||||
| authentication was mentioned. AUTH_HMAC_SHA2_256_128 MUST be | ||||
| implemented in order to replace AUTH_HMAC_SHA1_96. | ||||
| AUTH_HMAC_SHA2_512_256 SHOULD be implemented as as a future | ||||
| replacement of AUTH_HMAC_SHA2_256_128 or when stronger security is | ||||
| required. This value has been preferred to AUTH_HMAC_SHA2_384, as | ||||
| the overhead of AUTH_HMAC_SHA2_512 is negligible. | ||||
| AUTH_HMAC_SHA1_96 has been downgraded from MUST in RFC4307. There is | ||||
| an industry-wide trend to deprecate its usage. | ||||
| AUTH_AES-XCBC is only recommended in the scope of IoT, as Internet of | ||||
| Things deployments tend to prefer AES based pseudo-random functions | ||||
| in order to avoid implementing SHA2. For the wide VPN deployment, as | ||||
| it has not been widely adopted, it has been downgraded from SHOULD in | ||||
| RFC4307 to MAY. | ||||
| 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. They | |||
| are defined in both the [IKEv2] base document and in extensions | are defined in both the [IKEv2] base document and in extensions | |||
| documents. They are identified by group number. | documents. They are identified by group number. | |||
| +--------+--------------------------+------------+ | +--------+--------------------------+------------+ | |||
| | 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 | | ||||
| | 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 | | |||
| | TBD | Curve25519 | MAY | | ||||
| +--------+--------------------------+------------+ | +--------+--------------------------+------------+ | |||
| Explanation about Group 14 is TBD. | Table 5 | |||
| Explanation about Group 19 is TBD. | 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 | ||||
| implemented and considered secure | ||||
| Explanation about Group 2 is TBD. | 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. | ||||
| It was specified earlier, but now considered to be vulnerable to be | ||||
| broken within the next few years by a nation state level attack, so | ||||
| its security margin is considered too narrow. | ||||
| Explanation about Group 1 is TBD. | Group 2 or 1024-bit MODP Group is downgrade from MUST- to SHOULD NOT. | |||
| It was specified earlier, but now 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. | ||||
| 4. Security Considerations | Group 1 or 768-bit MODP Group can be broken within hours using cheap | |||
| of-the-shelves hardware. It provides no security whatsoever. | ||||
| Curve25519 has been designed with performance and security in mind | ||||
| and have been recommended by CFRG. At the time of writing, the IKEv2 | ||||
| specification is still at the draft status. This document specifies | ||||
| 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. | ||||
| 4. IKEv2 Authentication | ||||
| IKEv2 authentication may involve a signatures verification. | ||||
| Signatures may be used to validate a certificate or to check the | ||||
| signature of the AUTH value. Cryptographic recommendations regarding | ||||
| certificate validation are out of scope of this document as what | ||||
| mandatory implementations are provided by the PKIX WG. This document | ||||
| is mostly concerned on signature verification and generation for the | ||||
| authentication. | ||||
| 4.1. IKEv2 Authentication Method | ||||
| +----------+-----------------------+----------+---------------------+ | ||||
| | Number | Description | Status | Comment | | ||||
| +----------+-----------------------+----------+---------------------+ | ||||
| | 1 | RSA Digital Signature | MUST | With keys length | | ||||
| | | | | 2048 | | ||||
| | 1 | RSA Digital Signature | SHOULD | With keys length | | ||||
| | | | | 3072/4096 | | ||||
| | 1 | RSA Digital Signature | MUST NOT | With keys length | | ||||
| | | | | lower than 2048 | | ||||
| | 3 | DSS Digital Signature | MAY | | | ||||
| | 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 | | | ||||
| +----------+-----------------------+----------+---------------------+ | ||||
| Table 6 | ||||
| RSA Digital Signature is mostly kept for interoperability. It is | ||||
| expected to be downgraded in the future as signatures are based on | ||||
| RSASSA-PKCS1-v1.5, not any more recommemded. Instead, more robust | ||||
| use of RSA is expected to be performed via the Digital Signature | ||||
| method. | ||||
| ECDSA family are also expected to be downgraded as it does not | ||||
| provide hash function agility. Instead ECDSA is expected to be | ||||
| performed using the generic Digital Signature method. | ||||
| DSS Digital Signature is bound to SHA-1 and thus is expected to be | ||||
| downgraded to MUST NOT in the future. | ||||
| Digital Signature is expected to be promoted as it provides hash | ||||
| function, signature format and algorithm agility. | ||||
| [MGLT: Do we have any recommendation for the authentication based on | ||||
| PSK?] | ||||
| 4.2. Digital Signature Recommendation | ||||
| Recommended methods: RSA (MUST), ECDSA (SHOULD), Ed25519 (MAY), | ||||
| Ed25519ph(MAY), Ed448(MAY), Ed448ph(MAY)? | ||||
| Here are the recommendations when a hash function is involved in a | ||||
| signature. | ||||
| +--------+----------------------+----------+---------+ | ||||
| | Number | Description | Status | Comment | | ||||
| +--------+----------------------+----------+---------+ | ||||
| | 1 | SHA1 | MUST | | | ||||
| | 2 | SHA2-256 | MUST | | | ||||
| | 3 | SHA2-384 | MAY | | | ||||
| | 4 | SHA2-512 | SHOULD | | | ||||
| | | Other hash functions | MUST NOT | | | ||||
| +--------+----------------------+----------+---------+ | ||||
| Table 7 | ||||
| With the use of Digital Signature, RSASSA-PKCS1-v1.5 MAY be | ||||
| implemented, and RSASSA-PSS MUST be implemented. | ||||
| RSA keys MUST be greater or equal than 20148 bits. | ||||
| 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 | ||||
| choose conservatively. Any party capturing all traffic that can | ||||
| break the selected DH group can retroactively gain access to the | ||||
| symmetric keys used to encrypt all the IPsec data. However, | ||||
| specifying extremely large DH group also puts a 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. We | foreseeable future. However, this isn't necessarily forever and it | |||
| would therefore expect that new revisions of this document will be | is expected that new revisions of this document will be issued from | |||
| issued from time to time that reflect the current best practice in | time to time to reflect the current best practice in this area. | |||
| this area. | ||||
| 5. IANA Considerations | 6. IANA Considerations | |||
| This document makes no requests of IANA. | This document makes no requests of IANA. | |||
| 6. 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. | |||
| 7. References | We would like to thanks Paul Hoffman, Yaron Sheffer and Tommy Pauly | |||
| for their valuable feed backs. | ||||
| 7.1. Normative References | 8. 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 | ||||
| (GCM) in IPsec Encapsulating Security Payload (ESP)", RFC | ||||
| 4106, DOI 10.17487/RFC4106, June 2005, | ||||
| <http://www.rfc-editor.org/info/rfc4106>. | ||||
| [RFC4307] Schiller, J., "Cryptographic Algorithms for Use in the | ||||
| Internet Key Exchange Version 2 (IKEv2)", RFC 4307, DOI | ||||
| 10.17487/RFC4307, December 2005, | ||||
| <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>. | |||
| 7.2. Informative References | 8.2. Informative References | |||
| [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>. | |||
| 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 | |||
| End of changes. 58 change blocks. | ||||
| 137 lines changed or deleted | 382 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/ | ||||