Cryptographic Algorithms for Use in the Internet Key Exchange Version 2 (IKEv2)
obsoleted by
- rfc-8247 — Algorithm Implementation Requirements and Usage Guidance for the Internet Key Exchange Protocol Version 2 (IKEv2)
Extracted elements (17)
Custom requirement levels SHOULD+, SHOULD-, and MUST- are introduced to signal the likely trajectory of algorithm status, allowing implementers to anticipate future mandatory or deprecated algorithms before formal updates.
The choice of mandatory-to-implement algorithms should be conservative to minimize the likelihood of compromise, while also considering performance for environments where it is a concern. Algorithms marked SHOULD+ are pre-identified as likely future mandatory algorithms so implementations can adopt them proactively.
The selection of mandatory-to-implement algorithms was removed from the main IKEv2 specification and placed in this separate document so that as algorithm choices change, only this document needs to be updated rather than the base IKEv2 specification.
Any Diffie-Hellman MODP groups not listed in Section 3.1.2 are considered 'MAY be implemented', meaning implementations need not support them but may do so for interoperability with peers that prefer those groups.
AUTH_AES_XCBC_96 (Transform Type 3, number 5) SHOULD+ be implemented and may be promoted to MUST in a future revision.
AUTH_HMAC_SHA1_96 (Transform Type 3, number 2) MUST be implemented for IKEv2 integrity protection.
Diffie-Hellman Group 14 (2048-bit MODP, RFC 3526) has SHOULD+ status and is likely to be promoted to MUST in a future revision.
Diffie-Hellman Group 2 (1024-bit MODP) has MUST- status for IKEv2, meaning it is currently required but expected to be downgraded in a future revision.
ENCR_3DES (Transform Type 1, number 3) MUST- be implemented; ENCR_AES_CBC (number 12) SHOULD+ be implemented for IKEv2 encryption.
For IKEv2 Encrypted Payload confidentiality, implementations MUST- implement 3DES-CBC and SHOULD+ implement AES-128-CBC.
For IKEv2 Encrypted Payload integrity, HMAC-SHA1 MUST be implemented.
PRF_AES128_CBC (Transform Type 2, number 4) SHOULD+ be implemented and is likely to become MUST in a future revision.
PRF_HMAC_SHA1 (Transform Type 2, number 2) MUST be implemented as the pseudo-random function for IKEv2.
IKEv2 Transform Type 1 (encryption) algorithm table: ENCR_3DES (number 3) is MUST-, ENCR_NULL (11) is MAY, ENCR_AES_CBC (12) is SHOULD+, ENCR_AES_CTR (13) is SHOULD.
IKEv2 Transform Type 2 (pseudo-random functions): PRF_HMAC_MD5 (1) is MAY, PRF_HMAC_SHA1 (2) is MUST, PRF_AES128_CBC (4) is SHOULD+.
IKEv2 Transform Type 3 (integrity algorithms): AUTH_HMAC_MD5_96 (1) is MAY, AUTH_HMAC_SHA1_96 (2) is MUST, AUTH_AES_XCBC_96 (5) is SHOULD+.
Security depends on both the strength of the chosen cryptographic algorithms and the strength of the keys used; algorithms currently identified as MUST or SHOULD implement are not known to be broken but may become compromised in the future, necessitating periodic revision of this document.