RFC 4307
Cryptographic Algorithms for Use in the Internet Key Exchange Version 2 (IKEv2)
RFC 4307 π Cryptographic Algorithms for Use in the Internet Key Exchange Version 2 (IKEv2)
okay bestie, this is the RFC that picks which crypto algorithms IKEv2 implementations have to support, so they can always find at least one thing to agree on πβ¨
- Series: Network Working Group
- Author: Jeffrey I. Schiller, Massachusetts Institute of Technology
- Category: Standards Track
- Date: December 2005
- Obsoletes / Updates: the title block doesn't list anything this document obsoletes or updates π§
Status of This Memo π
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice Β©οΈ
Copyright (C) The Internet Society (2005).
Abstract π
The IPsec series of protocols uses a bunch of cryptographic algorithms to deliver security services π The Internet Key Exchange (IKE (RFC 2409) and IKEv2) gives you a way to negotiate which algorithms get used in any given association π€ But to make sure different implementations can actually talk to each other, you need a set of mandatory-to-implement algorithms, so there's always at least one algorithm everyone has available β¨ This document defines the current set of algorithms that are mandatory to implement as part of IKEv2, plus the algorithms that should be implemented because they might get promoted to mandatory later π¦
1. Introduction πΈ
The Internet Key Exchange protocol lets both endpoints of a cryptographic association negotiate which cryptographic algorithms to use π Different IPsec and IKE implementations might offer different algorithms. But the IETF really wants everything to be able to interoperate, so IKE has to define a set of mandatory-to-implement algorithms, since IKE itself uses those algorithms as part of its own negotiations π§ That means some set of algorithms has to be specified as "mandatory-to-implement" for IKE.
Cryptography is a constant plot twist π New algorithms keep showing up and existing ones keep getting attacked. An algorithm that's strong today could be shown to be weak tomorrow π So the choice of mandatory-to-implement algorithm should be conservative, to lower the odds that it gets compromised quickly. Performance matters too, because lots of IPsec deployments are in environments where speed is a real concern π₯
Finally, the mandatory-to-implement algorithm(s) may need to change over time as the world changes π That's why the choice of mandatory-to-implement algorithms got pulled out of the main IKEv2 specification and moved into this document. When the choice of algorithm changes, only this document should need updating π
Ideally, tomorrow's mandatory-to-implement algorithm is already sitting in most IPsec implementations by the time it becomes mandatory π So we'll try to list the algorithms we know about today in this document. There's no guarantee that the algorithms we think might be mandatory later will actually end up that way. Every algorithm we know today is subject to cryptographic attack and could be broken in the future π¬
2. Requirements Terminology π
Keywords "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", and "MAY" that appear in this document are to be interpreted as described in [RFC2119].
We define some extra terms here, bestie:
SHOULD+: This term means the same as SHOULD. However, it's 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. Its status will be decided later, but it's reasonable to expect that if a future revision changes the status of a MUST- algorithm, it will stay at least a SHOULD or a SHOULD-. π₯Ί
3. Algorithm Selection π
3.1. IKEv2 Algorithm Selection π
3.1.1. Encrypted Payload Algorithms π
The IKEv2 Encrypted Payload needs both a confidentiality algorithm and an integrity algorithm π«Ά For confidentiality, implementations MUST- implement 3DES-CBC and SHOULD+ implement AES-128-CBC. For integrity, HMAC-SHA1 MUST be implemented.
3.1.2. Diffie-Hellman Groups π§
There are several Modular Exponential (MODP) groups defined for use in IKEv2. They're defined in both the [IKEv2] base document and in the MODP extensions document, and they're identified by group number. Any groups not listed here are considered as "MAY be implemented" π
Group Number Bit Length Status Defined
2 1024 MODP Group MUST- [RFC2409]
14 2048 MODP Group SHOULD+ [RFC3526]
3.1.3. IKEv2 Transform Type 1 Algorithms π
IKEv2 defines several possible algorithms for Transfer Type 1 (encryption). They're listed below with their implementation status π
Name Number Defined In Status
RESERVED 0
ENCR_3DES 3 [RFC2451] MUST-
ENCR_NULL 11 [RFC2410] MAY
ENCR_AES_CBC 12 [AES-CBC] SHOULD+
ENCR_AES_CTR 13 [AES-CTR] SHOULD
3.1.4. IKEv2 Transform Type 2 Algorithms π²
Transfer Type 2 Algorithms are pseudo-random functions used to generate random values when they're needed β¨
Name Number Defined In Status
RESERVED 0
PRF_HMAC_MD5 1 [RFC2104] MAY
PRF_HMAC_SHA1 2 [RFC2104] MUST
PRF_AES128_CBC 4 [AESPRF] SHOULD+
3.1.5. IKEv2 Transform Type 3 Algorithms π‘οΈ
Transfer Type 3 Algorithms are integrity algorithms used to protect data against tampering π«‘
Name Number Defined In Status
NONE 0
AUTH_HMAC_MD5_96 1 [RFC2403] MAY
AUTH_HMAC_SHA1_96 2 [RFC2404] MUST
AUTH_AES_XCBC_96 5 [AES-MAC] SHOULD+
4. Security Considerations π¨
The security of cryptographic-based systems depends on both the strength of the cryptographic algorithms chosen and the strength of the keys used with those algorithms. It also depends on the engineering of the protocol used by the system, to make sure there are no non-cryptographic ways to get around the security of the overall system. π
This document is about selecting cryptographic algorithms for IKEv2, specifically the selection of "mandatory-to-implement" algorithms π The algorithms identified in this document as "MUST implement" or "SHOULD implement" aren't known to be broken right now, and cryptographic research so far suggests they'll likely stay secure for the foreseeable future. But it isn't necessarily forever π So we'd expect new revisions of this document to come out from time to time, reflecting the current best practice in this area π¦
Intellectual Property β¨
okay so bestie, the IETF is NOT taking a position on whether any Intellectual Property Rights or other rights could apply to the tech in this doc, or whether any license for them is actually available. it also hasn't done any independent digging to find such rights π for the rules on rights in RFC docs, check out BCP 78 and BCP 79 π
the IETF on-line IPR repository at http://www.ietf.org/ipr is where you'd find copies of IPR disclosures sent to the IETF Secretariat, any licensing assurances that were promised, and the results of anyone trying to get a general license or permission to use those proprietary rights π
and if you know about any copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to implement this standard, the IETF wants to hear about it! send that info to ietf-ipr@ietf.org π«Ά
Acknowledgement πΈ
the RFC Editor function is currently funded by the Internet Society, so a big thank you to them π§π
π¦ where this page comes from
- ietf: rfc4307 2005-12
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms