| < draft-ietf-ipsecme-rfc4307bis-16.txt | draft-ietf-ipsecme-rfc4307bis-17.txt > | |||
|---|---|---|---|---|
| skipping to change at page 1, line 14 ¶ | skipping to change at page 1, line 14 ¶ | |||
| Internet-Draft Check Point | Internet-Draft Check Point | |||
| Obsoletes: 4307 (if approved) T. Kivinen | Obsoletes: 4307 (if approved) T. Kivinen | |||
| Updates: 7296 (if approved) INSIDE Secure | Updates: 7296 (if approved) INSIDE Secure | |||
| Intended status: Standards Track P. Wouters | Intended status: Standards Track P. Wouters | |||
| Expires: August 20, 2017 Red Hat | Expires: August 20, 2017 Red Hat | |||
| D. Migault | D. Migault | |||
| Ericsson | Ericsson | |||
| February 16, 2017 | February 16, 2017 | |||
| Algorithm Implementation Requirements and Usage Guidance for IKEv2 | Algorithm Implementation Requirements and Usage Guidance for IKEv2 | |||
| draft-ietf-ipsecme-rfc4307bis-16 | draft-ietf-ipsecme-rfc4307bis-17 | |||
| Abstract | Abstract | |||
| The IPsec series of protocols makes use of various cryptographic | The IPsec series of protocols makes use of various cryptographic | |||
| algorithms in order to provide security services. The Internet Key | algorithms in order to provide security services. The Internet Key | |||
| Exchange (IKE) protocol is used to negotiate the IPsec Security | Exchange (IKE) protocol is used to negotiate the IPsec Security | |||
| Association (IPsec SA) parameters, such as which algorithms should be | Association (IPsec SA) parameters, such as which algorithms should be | |||
| used. To ensure interoperability between different implementations, | used. To ensure interoperability between different implementations, | |||
| it is necessary to specify a set of algorithm implementation | it is necessary to specify a set of algorithm implementation | |||
| requirements and usage guidance to ensure that there is at least one | requirements and usage guidance to ensure that there is at least one | |||
| skipping to change at page 2, line 23 ¶ | skipping to change at page 2, line 23 ¶ | |||
| 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 | |||
| 1.1. Updating Algorithm Implementation Requirements and Usage | 1.1. Conventions Used in This Document . . . . . . . . . . . . 3 | |||
| 1.2. Updating Algorithm Implementation Requirements and Usage | ||||
| Guidance . . . . . . . . . . . . . . . . . . . . . . . . 3 | Guidance . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Updating Algorithm Requirement Levels . . . . . . . . . . 3 | 1.3. Updating Algorithm Requirement Levels . . . . . . . . . . 4 | |||
| 1.3. Document Audience . . . . . . . . . . . . . . . . . . . . 4 | 1.4. Document Audience . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2. Conventions Used in This Document . . . . . . . . . . . . . . 5 | 2. Algorithm Selection . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Algorithm Selection . . . . . . . . . . . . . . . . . . . . . 5 | 2.1. Type 1 - IKEv2 Encryption Algorithm Transforms . . . . . 5 | |||
| 3.1. Type 1 - IKEv2 Encryption Algorithm Transforms . . . . . 5 | 2.2. Type 2 - IKEv2 Pseudo-random Function Transforms . . . . 7 | |||
| 3.2. Type 2 - IKEv2 Pseudo-random Function Transforms . . . . 7 | 2.3. Type 3 - IKEv2 Integrity Algorithm Transforms . . . . . . 8 | |||
| 3.3. Type 3 - IKEv2 Integrity Algorithm Transforms . . . . . . 8 | 2.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms . . . . . 9 | |||
| 3.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms . . . . . 9 | 2.5. Summary of Changes from RFC 4307 . . . . . . . . . . . . 10 | |||
| 3.5. Summary of Changes from RFC 4307 . . . . . . . . . . . . 10 | 3. IKEv2 Authentication . . . . . . . . . . . . . . . . . . . . 11 | |||
| 4. IKEv2 Authentication . . . . . . . . . . . . . . . . . . . . 11 | 3.1. IKEv2 Authentication Method . . . . . . . . . . . . . . . 11 | |||
| 4.1. IKEv2 Authentication Method . . . . . . . . . . . . . . . 11 | 3.1.1. Recommendations for RSA key length . . . . . . . . . 12 | |||
| 4.1.1. Recommendations for RSA key length . . . . . . . . . 12 | 3.2. Digital Signature Recommendations . . . . . . . . . . . . 12 | |||
| 4.2. Digital Signature Recommendations . . . . . . . . . . . . 12 | 4. Algorithms for Internet of Things . . . . . . . . . . . . . . 13 | |||
| 5. Algorithms for Internet of Things . . . . . . . . . . . . . . 13 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 16 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 16 | 8.2. Informative References . . . . . . . . . . . . . . . . . 16 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 16 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 1. Introduction | 1. Introduction | |||
| The Internet Key Exchange (IKE) protocol [RFC7296] is used to | The Internet Key Exchange (IKE) protocol [RFC7296] is used to | |||
| negotiate the parameters of the IPsec SA, such as the encryption and | negotiate the parameters of the IPsec SA, such as the encryption and | |||
| authentication algorithms and the keys for the protected | authentication algorithms and the keys for the protected | |||
| communications between the two endpoints. The IKE protocol itself is | communications between the two endpoints. The IKE protocol itself is | |||
| also protected by cryptographic algorithms which are negotiated | also protected by cryptographic algorithms which are negotiated | |||
| between the two endpoints using IKE. Different implementations of | between the two endpoints using IKE. Different implementations of | |||
| IKE may negotiate different algorithms based on their individual | IKE may negotiate different algorithms based on their individual | |||
| local policy. To ensure interoperability, a set of "mandatory-to- | local policy. To ensure interoperability, a set of "mandatory-to- | |||
| implement" IKE cryptographic algorithms is defined. | implement" IKE cryptographic algorithms is defined. | |||
| This document describes the parameters of the IKE protocol and | This document describes the parameters of the IKE protocol and | |||
| updates the IKEv2 specification because it changes the mandatory to | updates the IKEv2 specification. It changes the mandatory to | |||
| implement authentication algorithms of the section 4 of the RFC7296 | implement authentication algorithms of Section 4 of [RFC7296] by | |||
| by saying RSA key lengths of less than 2048 are SHOULD NOT. It does | saying RSA key lengths of less than 2048 SHOULD NOT be used. It does | |||
| not describe the cryptographic parameters of the AH or ESP protocols. | not describe the cryptographic parameters of the AH or ESP protocols. | |||
| 1.1. Updating Algorithm Implementation Requirements and Usage Guidance | 1.1. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
| document are to be interpreted as described in [RFC2119]. | ||||
| When used in the tables in this document, these terms indicate that | ||||
| the listed algorithm MUST, MUST NOT, SHOULD, SHOULD NOT or MAY be | ||||
| implemented as part of an IKEv2 implementation. Additional terms | ||||
| used in this document are: | ||||
| SHOULD+ This term means the same as SHOULD. However, it is likely | ||||
| that an algorithm marked as SHOULD+ will be promoted at | ||||
| some future time to be a MUST. | ||||
| SHOULD- This term means the same as SHOULD. However, an algorithm | ||||
| marked as SHOULD- may be deprecated to a MAY in a future | ||||
| version of this document. | ||||
| MUST- This term means the same as MUST. However, it is expected | ||||
| at some point that this algorithm will no longer be a MUST | ||||
| in a future document. Although its status will be | ||||
| determined at a later time, it is reasonable to expect that | ||||
| if a future revision of a document alters the status of a | ||||
| MUST- algorithm, it will remain at least a SHOULD or a | ||||
| SHOULD- level. | ||||
| IoT stands for Internet of Things. | ||||
| 1.2. Updating Algorithm Implementation Requirements and Usage Guidance | ||||
| The field of cryptography evolves continuously. 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 realityI The choices for algorithms must be | |||
| conservative to minimize the risk of algorithm compromise. | 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 a separate document. | the main IKEv2 specification and placed in this separate document. | |||
| 1.2. Updating Algorithm Requirement Levels | 1.3. Updating Algorithm Requirement Levels | |||
| The mandatory-to-implement algorithm of tomorrow should already be | The mandatory-to-implement algorithm of tomorrow should already be | |||
| available in most implementations of IKE by the time it is made | available in most implementations of IKE by the time it is made | |||
| mandatory. This document attempts to identify and introduce those | mandatory. This document attempts to identify and introduce those | |||
| algorithms for future mandatory-to-implement status. There is no | algorithms for future mandatory-to-implement status. There is no | |||
| guarantee that the algorithms in use today may become mandatory in | guarantee that the algorithms in use today may become mandatory in | |||
| the future. Published algorithms are continuously subjected to | the future. Published algorithms are continuously subjected to | |||
| cryptographic attack and may become too weak or could become | cryptographic attack and may become too weak or could become | |||
| completely broken before this document is updated. | completely broken before this document is updated. | |||
| skipping to change at page 4, line 33 ¶ | skipping to change at page 5, line 10 ¶ | |||
| requires this specific use case to be taken into account as well. | requires this specific use case to be taken into account as well. | |||
| IoT devices are resource constrained devices and their choice of | IoT devices are resource constrained devices and their choice of | |||
| algorithms are motivated by minimizing the footprint of the code, the | algorithms are motivated by minimizing the footprint of the code, the | |||
| computation effort and the size of the messages to send. This | computation effort and the size of the messages to send. This | |||
| document indicates "(IoT)" when a specified algorithm is specifically | document indicates "(IoT)" when a specified algorithm is specifically | |||
| listed for IoT devices. Requirement levels that are marked as "IoT" | listed for IoT devices. Requirement levels that are marked as "IoT" | |||
| apply to IoT devices and to server-side implementations that might | apply to IoT devices and to server-side implementations that might | |||
| presumably need to interoperate with them, including any general- | presumably need to interoperate with them, including any general- | |||
| purpose VPN gateways. | purpose VPN gateways. | |||
| 1.3. Document Audience | 1.4. Document Audience | |||
| The recommendations of this document mostly target IKEv2 implementers | The recommendations of this document mostly target IKEv2 implementers | |||
| as implementations need to meet both high security expectations as | as implementations need to meet both high security expectations as | |||
| well as high interoperability between various vendors and with | well as high interoperability between various vendors and with | |||
| different versions. Interoperability requires a smooth move to more | different versions. Interoperability requires a smooth move to more | |||
| secure cipher suites. This may differ from a user point of view that | secure cipher suites. This may differ from a user point of view that | |||
| may deploy and configure IKEv2 with only the safest cipher suite. | may deploy and configure IKEv2 with only the safest cipher suite. | |||
| This document does not give any recommendations for the use of | This document does not give any recommendations for the use of | |||
| algorithms, it only gives implementation recommendations for | algorithms, it only gives implementation recommendations for | |||
| implementations. The use of algorithms by users is dictated by the | implementations. The use of algorithms by users is dictated by the | |||
| security policy requirements for that specific user, and are outside | security policy requirements for that specific user, and are outside | |||
| the scope of this document. | the scope of this document. | |||
| IKEv1 is out of scope of this document. IKEv1 is deprecated and the | IKEv1 is out of scope of this document. IKEv1 is deprecated and the | |||
| recommendations of this document must not be considered for IKEv1, as | recommendations of this document must not be considered for IKEv1, as | |||
| most IKEv1 implementations have been "frozen" and will not be able to | most IKEv1 implementations have been "frozen" and will not be able to | |||
| update the list of mandatory-to-implement algorithms. | update the list of mandatory-to-implement algorithms. | |||
| 2. Conventions Used in This Document | 2. Algorithm Selection | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
| document are to be interpreted as described in [RFC2119]. | ||||
| We define some additional terms here: | ||||
| SHOULD+ This term means the same as SHOULD. However, it is likely | ||||
| that an algorithm marked as SHOULD+ will be promoted at | ||||
| some future time to be a MUST. | ||||
| SHOULD- This term means the same as SHOULD. However, an algorithm | ||||
| marked as SHOULD- may be deprecated to a MAY in a future | ||||
| version of this document. | ||||
| MUST- This term means the same as MUST. However, we expect at | ||||
| some point that this algorithm will no longer be a MUST in | ||||
| a future document. Although its status will be determined | ||||
| at a later time, it is reasonable to expect that if a | ||||
| future revision of a document alters the status of a MUST- | ||||
| algorithm, it will remain at least a SHOULD or a SHOULD- | ||||
| level. | ||||
| IoT stands for Internet of Things. | ||||
| 3. Algorithm Selection | ||||
| 3.1. Type 1 - IKEv2 Encryption Algorithm Transforms | 2.1. Type 1 - IKEv2 Encryption Algorithm Transforms | |||
| The algorithms in the below table are negotiated in the SA payload | The algorithms in the below table are negotiated in the SA payload | |||
| and used for the Encrypted Payload. References to the specification | and used for the Encrypted Payload. References to the specification | |||
| defining these algorithms and the ones in the following subsections | defining these algorithms and the ones in the following subsections | |||
| are in the IANA registry [IKEV2-IANA]. Some of these algorithms are | are in the IANA registry [IKEV2-IANA]. Some of these algorithms are | |||
| Authenticated Encryption with Associated Data (AEAD - [RFC5282]). | Authenticated Encryption with Associated Data (AEAD - [RFC5282]). | |||
| Algorithms that are not AEAD MUST be used in conjunction with an | Algorithms that are not AEAD MUST be used in conjunction with one of | |||
| integrity algorithms in Section 3.3. | the integrity algorithms in Section 2.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 | | | |||
| | ENCR_AES_GCM_16 | SHOULD | Yes | (1) | | | ENCR_AES_GCM_16 | SHOULD | Yes | (1) | | |||
| | ENCR_AES_CCM_8 | SHOULD | Yes | (IoT) | | | ENCR_AES_CCM_8 | SHOULD | Yes | (IoT) | | |||
| | ENCR_3DES | MAY | No | | | | ENCR_3DES | MAY | No | | | |||
| | ENCR_DES | MUST NOT | No | | | | ENCR_DES | MUST NOT | No | | | |||
| skipping to change at page 6, line 28 ¶ | skipping to change at page 6, line 28 ¶ | |||
| interoperability with IoT. Only 128-bit keys are at SHOULD level. | interoperability with IoT. Only 128-bit keys are at SHOULD level. | |||
| 192-bit and 256-bit remain at the MAY level. | 192-bit and 256-bit remain at the MAY level. | |||
| ENCR_AES_CBC is raised from SHOULD+ for 128-bit keys and MAY for | ENCR_AES_CBC is raised from SHOULD+ for 128-bit keys and MAY for | |||
| 256-bit keys in [RFC4307] to MUST. 192-bit keys remain at the MAY | 256-bit keys in [RFC4307] to MUST. 192-bit keys remain at the MAY | |||
| level. ENCR_AES_CBC is the only shared mandatory-to-implement | level. ENCR_AES_CBC is the only shared mandatory-to-implement | |||
| algorithm with RFC4307 and as a result it is necessary for | algorithm with RFC4307 and as a result it is necessary for | |||
| interoperability with IKEv2 implementation compatible with RFC4307. | interoperability with IKEv2 implementation 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 as an alternative to | RFC4307. It has been recommended by the Crypto Forum Research Group | |||
| AES-CBC and AES-GCM. It is also being standardized for IPsec for the | (CFRG) of the IRTF as an alternative to AES-CBC and AES-GCM. It is | |||
| same reasons. At the time of writing, there were not enough IKEv2 | also being standardized for IPsec for the same reasons. At the time | |||
| implementations supporting ENCR_CHACHA20_POLY1305 to be able to | of writing, there were not enough IKEv2 implementations supporting | |||
| introduce it at the SHOULD+ level. | ENCR_CHACHA20_POLY1305 to be able to introduce it at the SHOULD+ | |||
| level. | ||||
| ENCR_AES_GCM_16 was not considered in RFC4307. At the time RFC4307 | ENCR_AES_GCM_16 was not considered in RFC4307. At the time RFC4307 | |||
| was written, AES-GCM was not defined in an IETF document. AES-GCM | 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]. | was defined for ESP in [RFC4106] and later for IKEv2 in [RFC5282]. | |||
| The main motivation for adopting AES-GCM for ESP is encryption | The main motivation for adopting AES-GCM for ESP is encryption | |||
| performance compared to AES-CBC. This resulted in AES-GCM being | performance compared to AES-CBC. This resulted in AES-GCM being | |||
| widely implemented for ESP. As the computation load of IKEv2 is | widely implemented for ESP. As the computation load of IKEv2 is | |||
| relatively small compared to ESP, many IKEv2 implementations have not | relatively small compared to ESP, many IKEv2 implementations have not | |||
| implemented AES-GCM. For this reason, AES-GCM is not promoted to a | implemented AES-GCM. For this reason, AES-GCM is not promoted to a | |||
| greater status than SHOULD. The reason for promotion from MAY to | greater status than SHOULD. The reason for promotion from MAY to | |||
| skipping to change at page 7, line 4 ¶ | skipping to change at page 7, line 5 ¶ | |||
| SHOULD is to promote the slightly more secure AEAD method over the | SHOULD is to promote the slightly more secure AEAD method over the | |||
| traditional encrypt+auth method. Its status is expected to be raised | traditional encrypt+auth method. Its status is expected to be raised | |||
| once widely implemented. As the advantage of the shorter (and | once widely implemented. As the advantage of the shorter (and | |||
| weaker) ICVs is minimal, the 8 and 12 octet ICV's remain at the MAY | weaker) ICVs is minimal, the 8 and 12 octet ICV's remain at the MAY | |||
| level. | level. | |||
| ENCR_AES_CCM_8 was not considered in RFC4307. This document | ENCR_AES_CCM_8 was not considered in RFC4307. This document | |||
| considers it as 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 non-IoT VPNs, its status is expected to remain as SHOULD. | case for non-IoT VPNs, its status is expected to remain as SHOULD. | |||
| The 8 octet size of the ICV is expected to be sufficient for most use | The 8 octet size of the ICV is expected to be sufficient for most use | |||
| cases of IKEv2, as far less packets are exchanged on those cases, and | cases of IKEv2, as far less packets are exchanged in those cases, and | |||
| IoT devices want to make packets as small as possible. The SHOULD | IoT devices want to make packets as small as possible. The SHOULD | |||
| level is for 128-bit keys, 256-bit keys remains at MAY level. | level is for 128-bit keys, 256-bit keys remains at MAY level. | |||
| ENCR_3DES has been downgraded from RFC4307 MUST- to SHOULD NOT. All | ENCR_3DES has been downgraded from RFC4307 MUST- to SHOULD NOT. All | |||
| IKEv2 implementation already implement ENCR_AES_CBC, so there is no | IKEv2 implementations already implement ENCR_AES_CBC, so there is no | |||
| need to keep support for the much slower ENCR_3DES. In addition, | need to keep support for the much slower ENCR_3DES. In addition, | |||
| ENCR_CHACHA20_POLY1305 provides a more modern alternative to AES. | ENCR_CHACHA20_POLY1305 provides a more modern alternative to AES. | |||
| ENCR_DES can be brute-forced using of-the-shelves hardware. It | ENCR_DES can be brute-forced using off-the-shelf hardware. It | |||
| provides no meaningful security whatsoever and therefor MUST NOT be | provides no meaningful security whatsoever and therefore MUST NOT be | |||
| implemented. | implemented. | |||
| 3.2. Type 2 - IKEv2 Pseudo-random Function Transforms | 2.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 pseudo-random values when needed. | generate pseudo-random values when needed. | |||
| +-------------------+----------+---------+ | +-------------------+----------+---------+ | |||
| | 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- | | | | PRF_HMAC_SHA1 | MUST- | | | |||
| skipping to change at page 8, line 13 ¶ | skipping to change at page 8, line 13 ¶ | |||
| functions in order to avoid implementing SHA2. For the non-IoT VPN | functions in order to avoid implementing SHA2. For the non-IoT VPN | |||
| deployment it has been downgraded from SHOULD in RFC4307 to MAY as it | deployment it has been downgraded from SHOULD in RFC4307 to MAY as it | |||
| has not seen wide adoption. | has not seen wide adoption. | |||
| PRF_HMAC_MD5 has been downgraded from MAY in RFC4307 to MUST NOT. | PRF_HMAC_MD5 has been downgraded from MAY in RFC4307 to MUST NOT. | |||
| Cryptographic attacks against MD5, such as collision attacks | Cryptographic attacks against MD5, such as collision attacks | |||
| mentioned in [TRANSCRIPTION], are resulting in an industry-wide trend | mentioned in [TRANSCRIPTION], are resulting in an industry-wide trend | |||
| to deprecate and remove MD5 (and thus HMAC-MD5) from cryptographic | to deprecate and remove MD5 (and thus HMAC-MD5) from cryptographic | |||
| libraries. | libraries. | |||
| 3.3. Type 3 - IKEv2 Integrity Algorithm Transforms | 2.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 for the Encrypted Payload. References to the specification | 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 2.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 | MUST- | | | | AUTH_HMAC_SHA1_96 | MUST- | | | |||
| | AUTH_AES_XCBC_96 | SHOULD | (IoT) | | | AUTH_AES_XCBC_96 | SHOULD | (IoT) | | |||
| | AUTH_HMAC_MD5_96 | MUST NOT | | | | AUTH_HMAC_MD5_96 | MUST NOT | | | |||
| skipping to change at page 9, line 8 ¶ | skipping to change at page 9, line 8 ¶ | |||
| as cryptographic attacks against SHA1 are increasing, resulting in an | as cryptographic attacks against SHA1 are increasing, resulting in an | |||
| industry-wide trend to deprecate its usage | industry-wide trend to deprecate its usage | |||
| AUTH_AES_XCBC_96 is only recommended in the scope of IoT, as Internet | AUTH_AES_XCBC_96 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 non-IoT VPN | functions in order to avoid implementing SHA2. For the non-IoT VPN | |||
| deployment, it has been downgraded from SHOULD in RFC4307 to MAY as | deployment, it has been downgraded from SHOULD in RFC4307 to MAY as | |||
| it has not been widely adopted. | it has not been widely adopted. | |||
| AUTH_DES_MAC, AUTH_HMAC_MD5_96, and AUTH_KPDK_MD5 were not mentioned | AUTH_DES_MAC, AUTH_HMAC_MD5_96, and AUTH_KPDK_MD5 were not mentioned | |||
| in RFC4307 so their default status ware MAY. They have been | in RFC4307 so their default statuses were MAY. They have been | |||
| downgraded to MUST NOT. There is an industry-wide trend to deprecate | downgraded to MUST NOT. There is an industry-wide trend to deprecate | |||
| DES and MD5. MD5 support is being removed from cryptographic | DES and MD5. MD5 support is being removed from cryptographic | |||
| libraries in general because its non-HMAC use is known to be subject | libraries in general because its non-HMAC use is known to be subject | |||
| to collision attacks, for example as mentioned in [TRANSCRIPTION]. | to collision attacks, for example as mentioned in [TRANSCRIPTION]. | |||
| 3.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms | 2.4. Type 4 - IKEv2 Diffie-Hellman Group Transforms | |||
| There are several Modular Exponential (MODP) groups and several | There are several Modular Exponential (MODP) groups and several | |||
| Elliptic Curve groups (ECC) that are defined for use in IKEv2. These | Elliptic Curve groups (ECC) that are defined for use in IKEv2. These | |||
| groups are defined in both the [RFC7296] base document and in | groups are defined in both the [RFC7296] base document and in | |||
| extensions documents and are identified by group number. Note that | extensions documents and are identified by group number. Note that | |||
| it is critical to enforce a secure Diffie-Hellman exchange as this | it is critical to enforce a secure Diffie-Hellman exchange as this | |||
| exchange provides keys for the session. If an attacker can retrieve | exchange provides keys for the session. If an attacker can retrieve | |||
| one of the private numbers (a or b) and the complementary public | one of the private numbers (a or b) and the complementary public | |||
| value (g**a or g**b), then the attacker can compute the secret and | value (g**b or g**a), then the attacker can compute the secret and | |||
| the keys used and decrypt the exchange and IPsec SA created inside | the keys used and decrypt the exchange and IPsec SA created inside | |||
| the IKEv2 SA. Such an attack can be performed off-line on a | the IKEv2 SA. Such an attack can be performed off-line on a | |||
| previously recorded communication, years after the communication | previously recorded communication, years after the communication | |||
| happened. This differs from attacks that need to be executed during | happened. This differs from attacks that need to be executed during | |||
| the authentication which must be performed online and in near real- | the authentication which must be performed online and in near real- | |||
| time. | time. | |||
| +--------+---------------------------------------------+------------+ | +--------+---------------------------------------------+------------+ | |||
| | Number | Description | Status | | | Number | Description | Status | | |||
| +--------+---------------------------------------------+------------+ | +--------+---------------------------------------------+------------+ | |||
| skipping to change at page 10, line 6 ¶ | skipping to change at page 10, line 6 ¶ | |||
| | | Order Subgroup | | | | | Order Subgroup | | | |||
| | 24 | 2048-bit MODP Group with 256-bit Prime | SHOULD NOT | | | 24 | 2048-bit MODP Group with 256-bit Prime | SHOULD NOT | | |||
| | | Order Subgroup | | | | | Order Subgroup | | | |||
| +--------+---------------------------------------------+------------+ | +--------+---------------------------------------------+------------+ | |||
| Group 14 or 2048-bit MODP Group is raised from SHOULD+ in RFC4307 as | Group 14 or 2048-bit MODP Group is raised from SHOULD+ in RFC4307 as | |||
| a replacement for 1024-bit MODP Group. Group 14 is widely | a replacement for 1024-bit MODP Group. Group 14 is widely | |||
| implemented and considered secure. | implemented and considered secure. | |||
| Group 19 or 256-bit random ECP group was not specified in RFC4307, as | Group 19 or 256-bit random ECP group was not specified in RFC4307, as | |||
| this group were not defined at that time. Group 19 is widely | this group was not defined at that time. Group 19 is widely | |||
| implemented and considered secure. | implemented and considered secure. | |||
| Group 5 or 1536-bit MODP Group has been downgraded from MAY in | Group 5 or 1536-bit MODP Group has been downgraded from MAY in | |||
| RFC4307 to SHOULD NOT. It was specified earlier, but is now | RFC4307 to SHOULD NOT. It was specified earlier, but is now | |||
| considered to be vulnerable to be broken within the next few years by | considered to be vulnerable to being broken within the next few years | |||
| a nation state level attack, so its security margin is considered too | by a nation state level attack, so its security margin is considered | |||
| narrow. | too narrow. | |||
| Group 2 or 1024-bit MODP Group has been downgraded from MUST- in | Group 2 or 1024-bit MODP Group has been downgraded from MUST- in | |||
| RFC4307 to SHOULD NOT. It is known to be weak against sufficiently | RFC4307 to SHOULD NOT. It is known to be weak against sufficiently | |||
| funded attackers using commercially available mass-computing | funded attackers using commercially available mass-computing | |||
| resources, so its security margin is considered too narrow. It is | resources, so its security margin is considered too narrow. It is | |||
| expected in the near future to be downgraded to MUST NOT. | expected in the near future to be downgraded to MUST NOT. | |||
| Group 1 or 768-bit MODP Group was not mentioned in RFC4307 and so its | Group 1 or 768-bit MODP Group was not mentioned in RFC4307 and so its | |||
| status was MAY. It can be broken within hours using cheap of-the- | status was MAY. It can be broken within hours using cheap of-the- | |||
| shelves hardware. It provides no security whatsoever. | shelves hardware. It provides no security whatsoever. | |||
| Group 22, 23 and 24 are MODP Groups with Prime Order Subgroups thater | Group 22, 23 and 24 are MODP Groups with Prime Order Subgroups that | |||
| are not safe-primes. The seeds for these groups have not been | are not safe-primes. The seeds for these groups have not been | |||
| publicly released, resulting in reduced trust in these groups. These | publicly released, resulting in reduced trust in these groups. These | |||
| groups were proposed as alternatives for group 2 and 14 but never saw | groups were proposed as alternatives for group 2 and 14 but never saw | |||
| wide deployment. It has been shown that Group 22 with 1024-bit MODP | wide deployment. It has been shown that Group 22 with 1024-bit MODP | |||
| is too weak and academia have the resources to generate malicious | is too weak and academia have the resources to generate malicious | |||
| values at this size. This has resulted in Group 22 to be demoted to | values at this size. This has resulted in Group 22 to be demoted to | |||
| MUST NOT. Group 23 and 24 have been demoted to SHOULD NOT and are | MUST NOT. Group 23 and 24 have been demoted to SHOULD NOT and are | |||
| expected to be further downgraded in the near future to MUST NOT. | expected to be further downgraded in the near future to MUST NOT. | |||
| Since Group 23 and 24 have small subgroups, the checks specified in | Since Group 23 and 24 have small subgroups, the checks specified in | |||
| "Additional Diffie-Hellman Test for the IKEv2" [RFC6989] section 2.2 | "Additional Diffie-Hellman Test for the IKEv2" [RFC6989] section 2.2 | |||
| first bullet point MUST be done when these groups are used. | first bullet point MUST be done when these groups are used. | |||
| 3.5. Summary of Changes from RFC 4307 | 2.5. Summary of Changes from RFC 4307 | |||
| The following table summarizes the changes from RFC 4307. | The following table summarizes the changes from RFC 4307. | |||
| RFC EDITOR: PLEASE REMOVE THIS PARAGRAPH AND REPLACE XXXX IN THE | RFC EDITOR: PLEASE REMOVE THIS PARAGRAPH AND REPLACE XXXX IN THE | |||
| TABLE BELOW WITH THE NUMBER OF THIS RFC | TABLE BELOW WITH THE NUMBER OF THIS RFC | |||
| +---------------------+------------------+------------+ | +---------------------+------------------+------------+ | |||
| | Algorithm | RFC 4307 | RFC XXXX | | | Algorithm | RFC 4307 | RFC XXXX | | |||
| +---------------------+------------------+------------+ | +---------------------+------------------+------------+ | |||
| | ENCR_3DES | MUST- | MAY | | | ENCR_3DES | MUST- | MAY | | |||
| | ENCR_NULL | MUST NOT[errata] | MUST NOT | | | ENCR_NULL | MUST NOT[errata] | MUST NOT | | |||
| skipping to change at page 11, line 24 ¶ | skipping to change at page 11, line 24 ¶ | |||
| | AUTH_HMAC_MD5_96 | MAY | MUST NOT | | | AUTH_HMAC_MD5_96 | MAY | MUST NOT | | |||
| | AUTH_HMAC_SHA1_96 | MUST | MUST- | | | AUTH_HMAC_SHA1_96 | MUST | MUST- | | |||
| | AUTH_AES_XCBC_96 | SHOULD+ | SHOULD | | | AUTH_AES_XCBC_96 | SHOULD+ | SHOULD | | |||
| | Group 2 (1024-bit) | MUST- | SHOULD NOT | | | Group 2 (1024-bit) | MUST- | SHOULD NOT | | |||
| | Group 14 (2048-bit) | SHOULD+ | MUST | | | Group 14 (2048-bit) | SHOULD+ | MUST | | |||
| +---------------------+------------------+------------+ | +---------------------+------------------+------------+ | |||
| (*) This algorithm is not mentioned in the above sections, so it | (*) This algorithm is not mentioned in the above sections, so it | |||
| defaults to MAY. | defaults to MAY. | |||
| 4. IKEv2 Authentication | 3. 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. What is | certificate validation are out of scope of this document. What is | |||
| mandatory to implement is provided by the PKIX Community. This | mandatory to implement is provided by the PKIX Community. This | |||
| document is mostly concerned on signature verification and generation | document is mostly concerned with signature verification and | |||
| for the authentication. | generation for the authentication. | |||
| 4.1. IKEv2 Authentication Method | 3.1. IKEv2 Authentication Method | |||
| +--------+---------------------------------------+------------+ | +--------+---------------------------------------+------------+ | |||
| | Number | Description | Status | | | Number | Description | Status | | |||
| +--------+---------------------------------------+------------+ | +--------+---------------------------------------+------------+ | |||
| | 1 | RSA Digital Signature | MUST | | | 1 | RSA Digital Signature | MUST | | |||
| | 2 | Shared Key Message Integrity Code | MUST | | | 2 | Shared Key Message Integrity Code | MUST | | |||
| | 3 | DSS Digital Signature | SHOULD NOT | | | 3 | DSS Digital Signature | SHOULD NOT | | |||
| | 9 | ECDSA with SHA-256 on the P-256 curve | SHOULD | | | 9 | ECDSA with SHA-256 on the P-256 curve | SHOULD | | |||
| | 10 | ECDSA with SHA-384 on the P-384 curve | SHOULD | | | 10 | ECDSA with SHA-384 on the P-384 curve | SHOULD | | |||
| | 11 | ECDSA with SHA-512 on the P-521 curve | SHOULD | | | 11 | ECDSA with SHA-512 on the P-521 curve | SHOULD | | |||
| | 14 | Digital Signature | SHOULD | | | 14 | Digital Signature | SHOULD | | |||
| +--------+---------------------------------------+------------+ | +--------+---------------------------------------+------------+ | |||
| RSA Digital Signature is widely deployed and therefore kept for | RSA Digital Signature is widely deployed and therefore kept for | |||
| interoperability. It is expected to be downgraded in the future as | interoperability. It is expected to be downgraded in the future as | |||
| its signatures are based on the older RSASSA-PKCS1-v1.5 which is no | its signatures are based on the older RSASSA-PKCS1-v1.5 which is no | |||
| longer recommended. RSA authentication, as well as other specific | longer recommended. RSA authentication, as well as other specific | |||
| Authentication Methods, are expected to be replaced with the generic | Authentication Methods, are expected to be replaced with the generic | |||
| Digital Signature method of [RFC7427]. RSA Digital Signature is not | Digital Signature method of [RFC7427]. | |||
| 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. | ||||
| Shared Key Message Integrity Code is widely deployed and mandatory to | Shared Key Message Integrity Code is widely deployed and mandatory to | |||
| implement in the IKEv2 in the RFC7296. | implement in the IKEv2 in the RFC7296. | |||
| ECDSA based Authentication Methods are also expected to be downgraded | ECDSA based Authentication Methods are also expected to be downgraded | |||
| as it does not provide hash function agility. Instead, ECDSA (like | as these do not provide hash function agility. Instead, ECDSA (like | |||
| RSA) is expected to be performed using the generic Digital Signature | RSA) is expected to be performed using the generic Digital Signature | |||
| method. | method. | |||
| DSS Digital Signature is bound to SHA-1 and has the same level of | DSS Digital Signature is bound to SHA-1 and has the same level of | |||
| security as 1024-bit RSA. It is expected to be downgraded to MUST | security as 1024-bit RSA. It is expected to be downgraded to MUST | |||
| NOT in the future. | NOT in the future. | |||
| Digital Signature [RFC7427] is expected to be promoted as it provides | Digital Signature [RFC7427] is expected to be promoted as it provides | |||
| hash function, signature format and algorithm agility. | hash function, signature format and algorithm agility. | |||
| 4.1.1. Recommendations for RSA key length | 3.1.1. Recommendations for RSA key length | |||
| +-------------------------------------------+------------+ | +-------------------------------------------+------------+ | |||
| | Description | Status | | | Description | Status | | |||
| +-------------------------------------------+------------+ | +-------------------------------------------+------------+ | |||
| | RSA with key length 2048 | MUST | | | RSA with key length 2048 | MUST | | |||
| | RSA with key length 3072 and 4096 | SHOULD | | | RSA with key length 3072 and 4096 | SHOULD | | |||
| | RSA with key length between 2049 and 4095 | MAY | | | RSA with key length between 2049 and 4095 | MAY | | |||
| | RSA with key length smaller than 2048 | SHOULD NOT | | | RSA with key length smaller than 2048 | SHOULD NOT | | |||
| +-------------------------------------------+------------+ | +-------------------------------------------+------------+ | |||
| The IKEv2 RFC7296 mandates support for the RSA keys of size 1024 or | The IKEv2 RFC7296 mandates support for the RSA keys of size 1024 or | |||
| 2048 bits, but here we make key sizes less than 2048 SHOULD NOT as | 2048 bits, but key sizes less than 2048 are updated to SHOULD NOT as | |||
| there is industry-wide trend to deprecate key lengths less than 2048 | there is industry-wide trend to deprecate key lengths less than 2048 | |||
| bits. | bits. Since these signatures only have value in real-time, and need | |||
| no future protection, smaller keys were kept at SHOULD NOT instead of | ||||
| MUST NOT. | ||||
| 4.2. Digital Signature Recommendations | 3.2. Digital Signature Recommendations | |||
| When Digital Signature authentication method is implemented, then the | When a Digital Signature authentication method is implemented, the | |||
| following recommendations are applied for hash functions: | following recommendations are applied for hash functions: | |||
| +--------+-------------+----------+---------+ | +--------+-------------+----------+---------+ | |||
| | Number | Description | Status | Comment | | | Number | Description | Status | Comment | | |||
| +--------+-------------+----------+---------+ | +--------+-------------+----------+---------+ | |||
| | 1 | SHA1 | MUST NOT | | | | 1 | SHA1 | MUST NOT | | | |||
| | 2 | SHA2-256 | MUST | | | | 2 | SHA2-256 | MUST | | | |||
| | 3 | SHA2-384 | MAY | | | | 3 | SHA2-384 | MAY | | | |||
| | 4 | SHA2-512 | SHOULD | | | | 4 | SHA2-512 | SHOULD | | | |||
| +--------+-------------+----------+---------+ | +--------+-------------+----------+---------+ | |||
| When Digital Signature authentication method is used with RSA | When Digital Signature authentication method is used with RSA | |||
| signature algorithm, then RSASSA-PSS MUST be supported and RSASSA- | signature algorithm, RSASSA-PSS MUST be supported and RSASSA- | |||
| PKCS1-v1.5 MAY be supported. | PKCS1-v1.5 MAY be supported. | |||
| The following table lists recommendations for authentication methods | The following table lists recommendations for authentication methods | |||
| in RFC7427 [RFC7427] notation. These recommendations are applied | in RFC7427 [RFC7427] notation. These recommendations are applied | |||
| only if Digital Signature authentication method is implemented. | only if Digital Signature authentication method is implemented. | |||
| +------------------------------------+----------+---------+ | +------------------------------------+----------+---------+ | |||
| | Description | Status | Comment | | | Description | Status | Comment | | |||
| +------------------------------------+----------+---------+ | +------------------------------------+----------+---------+ | |||
| | RSASSA-PSS with SHA-256 | MUST | | | | RSASSA-PSS with SHA-256 | MUST | | | |||
| skipping to change at page 13, line 37 ¶ | skipping to change at page 13, line 37 ¶ | |||
| | sha1WithRSAEncryption | MUST NOT | | | | sha1WithRSAEncryption | MUST NOT | | | |||
| | dsa-with-sha1 | MUST NOT | | | | dsa-with-sha1 | MUST NOT | | | |||
| | ecdsa-with-sha1 | MUST NOT | | | | ecdsa-with-sha1 | MUST NOT | | | |||
| | RSASSA-PSS with Empty Parameters | MUST NOT | (*) | | | RSASSA-PSS with Empty Parameters | MUST NOT | (*) | | |||
| | RSASSA-PSS with Default Parameters | MUST NOT | (*) | | | RSASSA-PSS with Default Parameters | MUST NOT | (*) | | |||
| +------------------------------------+----------+---------+ | +------------------------------------+----------+---------+ | |||
| (*) Empty or Default parameters means it is using SHA1, which is at | (*) Empty or Default parameters means it is using SHA1, which is at | |||
| level MUST NOT. | level MUST NOT. | |||
| 5. Algorithms for Internet of Things | 4. Algorithms for Internet of Things | |||
| Some algorithms in this document are marked for use with the Internet | Some algorithms in this document are marked for use with the Internet | |||
| of Things (IoT). There are several reasons why IoT devices prefer a | of Things (IoT). There are several reasons why IoT devices prefer a | |||
| different set of algorithms from regular IKEv2 clients. IoT devices | different set of algorithms from regular IKEv2 clients. IoT devices | |||
| are usually very constrained, meaning the memory size and CPU power | are usually very constrained, meaning the memory size and CPU power | |||
| is so limited, that these clients only have resources to implement | is so limited, that these clients only have resources to implement | |||
| and run one set of algorithms. For example, instead of implementing | and run one set of algorithms. For example, instead of implementing | |||
| AES and SHA, these devices typically use AES_XCBC as integrity | AES and SHA, these devices typically use AES_XCBC as integrity | |||
| algorithm so SHA does not need to be implemented. | algorithm so SHA does not need to be implemented. | |||
| skipping to change at page 14, line 25 ¶ | skipping to change at page 14, line 25 ¶ | |||
| are usually quite low (in order of tens of kbits/s), and each bit | are usually quite low (in order of tens of kbits/s), and each bit | |||
| they transmit has an energy consumption cost associated with it and | they transmit has an energy consumption cost associated with it and | |||
| shortens their battery life. Therefore, shorter packets are | shortens their battery life. Therefore, shorter packets are | |||
| preferred. This is the reason for recommending the 8 octet ICV over | preferred. This is the reason for recommending the 8 octet ICV over | |||
| the 16 octet ICV. | the 16 octet ICV. | |||
| Because different IoT devices will have different constraints, this | Because different IoT devices will have different constraints, this | |||
| document cannot specify the one mandatory profile for IoT. Instead, | document cannot specify the one mandatory profile for IoT. Instead, | |||
| this document points out commonly used algorithms with IoT devices. | this document points out commonly used algorithms with IoT devices. | |||
| 6. 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 Group parameter is the most important one to | The Diffie-Hellman Group parameter is the most important one to | |||
| choose conservatively. Any party capturing all IKE and ESP traffic | choose conservatively. Any party capturing all IKE and ESP traffic | |||
| skipping to change at page 15, line 5 ¶ | skipping to change at page 15, line 5 ¶ | |||
| 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. | |||
| 7. IANA Considerations | 6. IANA Considerations | |||
| This document renames some of the names in the "Transform Type 1 - | This document renames some of the names in the "Transform Type 1 - | |||
| Encryption Algorithm Transform IDs" registry of the "Internet Key | Encryption Algorithm Transform IDs" registry of the "Internet Key | |||
| Exchange Version 2 (IKEv2) Parameters". All the other names have | Exchange Version 2 (IKEv2) Parameters". All the other names have | |||
| ENCR_ prefix except 3, and all other entries use names in format of | ENCR_ prefix except 3, and all other entries use names in format of | |||
| uppercase words separated with underscores except 6. This document | uppercase words separated with underscores except 6. This document | |||
| changes those names to match others. | changes those names to match others. | |||
| This document requests IANA to rename following entries for the AES- | This document requests IANA to rename following entries for the AES- | |||
| GCM cipher [RFC4106] and the Camellia cipher [RFC5529]: | GCM cipher [RFC4106] and the Camellia cipher [RFC5529]: | |||
| skipping to change at page 15, line 46 ¶ | skipping to change at page 15, line 46 ¶ | |||
| Number Name ESP Reference IKEv2 Reference | Number Name ESP Reference IKEv2 Reference | |||
| ... | ... | |||
| 18 ENCR_AES_GCM_8 [RFC4106][RFCXXXX] [RFC5282][RFCXXXX] | 18 ENCR_AES_GCM_8 [RFC4106][RFCXXXX] [RFC5282][RFCXXXX] | |||
| 19 ENCR_AES_GCM_12 [RFC4106][RFCXXXX] [RFC5282][RFCXXXX] | 19 ENCR_AES_GCM_12 [RFC4106][RFCXXXX] [RFC5282][RFCXXXX] | |||
| 20 ENCR_AES_GCM_16 [RFC4106][RFCXXXX] [RFC5282][RFCXXXX] | 20 ENCR_AES_GCM_16 [RFC4106][RFCXXXX] [RFC5282][RFCXXXX] | |||
| ... | ... | |||
| 25 ENCR_CAMELLIA_CCM_8 [RFC5529][RFCXXXX] - | 25 ENCR_CAMELLIA_CCM_8 [RFC5529][RFCXXXX] - | |||
| 26 ENCR_CAMELLIA_CCM_12 [RFC5529][RFCXXXX] - | 26 ENCR_CAMELLIA_CCM_12 [RFC5529][RFCXXXX] - | |||
| 27 ENCR_CAMELLIA_CCM_16 [RFC5529][RFCXXXX] - | 27 ENCR_CAMELLIA_CCM_16 [RFC5529][RFCXXXX] - | |||
| 8. 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 thank Paul Hoffman, Yaron Sheffer, John Mattsson and | We would like to thank Paul Hoffman, Yaron Sheffer, John Mattsson, | |||
| Tommy Pauly for their valuable feedback. | Tommy Pauly, Eric Rescorla and Pete Resnick for their valuable | |||
| feedback and reviews. | ||||
| 9. References | 8. References | |||
| 9.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <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 4106, DOI 10.17487/RFC4106, June 2005, | RFC 4106, DOI 10.17487/RFC4106, June 2005, | |||
| <http://www.rfc-editor.org/info/rfc4106>. | <http://www.rfc-editor.org/info/rfc4106>. | |||
| skipping to change at page 16, line 38 ¶ | skipping to change at page 16, line 39 ¶ | |||
| 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 10.17487/RFC5282, August 2008, | DOI 10.17487/RFC5282, August 2008, | |||
| <http://www.rfc-editor.org/info/rfc5282>. | <http://www.rfc-editor.org/info/rfc5282>. | |||
| 9.2. Informative References | 8.2. Informative References | |||
| [RFC7427] Kivinen, T. and J. Snyder, "Signature Authentication in | [RFC7427] Kivinen, T. and J. Snyder, "Signature Authentication in | |||
| the Internet Key Exchange Version 2 (IKEv2)", RFC 7427, | the Internet Key Exchange Version 2 (IKEv2)", RFC 7427, | |||
| DOI 10.17487/RFC7427, January 2015, | DOI 10.17487/RFC7427, January 2015, | |||
| <http://www.rfc-editor.org/info/rfc7427>. | <http://www.rfc-editor.org/info/rfc7427>. | |||
| [RFC6989] Sheffer, Y. and S. Fluhrer, "Additional Diffie-Hellman | [RFC6989] Sheffer, Y. and S. Fluhrer, "Additional Diffie-Hellman | |||
| Tests for the Internet Key Exchange Protocol Version 2 | Tests for the Internet Key Exchange Protocol Version 2 | |||
| (IKEv2)", RFC 6989, DOI 10.17487/RFC6989, July 2013, | (IKEv2)", RFC 6989, DOI 10.17487/RFC6989, July 2013, | |||
| <http://www.rfc-editor.org/info/rfc6989>. | <http://www.rfc-editor.org/info/rfc6989>. | |||
| End of changes. 46 change blocks. | ||||
| 103 lines changed or deleted | 106 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/ | ||||