RFC 4869

Suite B Cryptographic Suites for IPsec

πŸ“… published May 2007, from ietf

RFC 4869 πŸ’– Suite B Cryptographic Suites for IPsec πŸŽ€

Okay bestie, this one is RFC 4869, and it's titled Suite B Cryptographic Suites for IPsec ✨. It was written by L. Law and J. Solinas from the NSA πŸ’…, it's filed as Informational (so it's sharing info, not setting a formal internet standard 🌸), and it's dated May 2007 πŸ“…. Its title block doesn't list anything it obsoletes or updates, so it's standing on its own πŸ‘‘.


Status of This Memo ✨

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

Copyright (C) The IETF Trust (2007).

Abstract πŸ’œ

This document proposes four optional cryptographic user interface suites ("UI suites") for IPsec, similar to the two suites specified in RFC 4308. The four new suites provide compatibility with the United States National Security Agency's Suite B specifications. Basically, four new bundles of IPsec settings, all built to play nicely with Suite B πŸ¦‹.

Table of Contents 🧚

1. Introduction ....................................................2
2. Requirements Terminology ........................................2
3. New UI Suites ...................................................2
   3.1. Suite "Suite-B-GCM-128" ....................................2
   3.2. Suite "Suite-B-GCM-256" ....................................3
   3.3. Suite "Suite-B-GMAC-128" ...................................4
   3.4. Suite "Suite-B-GMAC-256" ...................................5
4. Security Considerations .........................................5
5. IANA Considerations .............................................6
6. References ......................................................6
   6.1. Normative References .......................................6
   6.2. Informative References .....................................7

1. Introduction πŸŽ€

[RFC4308] proposes two optional cryptographic user interface suites ("UI suites") for IPsec. The two suites, VPN-A and VPN-B, represent commonly used present-day corporate VPN security choices and anticipated future choices, respectively. This document proposes four new UI suites based on implementations of the United States National Security Agency's Suite B algorithms (see [SuiteB]) πŸ’….

As with the VPN suites, the Suite B suites are simply collections of values for some options in IPsec. Use of UI suites does not change the IPsec protocols in any way 🫢. Nothing about the protocol itself is changing, just the settings you pick from the menu ✨.

2. Requirements Terminology πŸ’…

The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this document are to be interpreted as described in [RFC2119]. So when you see those capitalised words, they're doing the heavy lifting πŸ”₯.

3. New UI Suites 🌸

Each of the following UI suites provides choices for ESP (see [RFC4303]) and for IKEv1 and IKEv2 (see [RFC2409] and [RFC4306]). The four suites are differentiated by the choice of cryptographic algorithm strengths and a choice of whether the Encapsulating Security Payload (ESP) is to provide both confidentiality and integrity or integrity only. The suite names are based on the Advanced Encryption Standard [AES] mode and AES key length specified for ESP 🧚.

IPsec implementations that use these UI suites SHOULD use the suite names listed here. IPsec implementations SHOULD NOT use names different than those listed here for the suites that are described, and MUST NOT use the names listed here for suites that do not match these values. These requirements are necessary for interoperability 🫢. So: same names, same meaning, or everyone gets confused, periodt πŸ’€.

3.1. Suite "Suite-B-GCM-128" πŸ’–

This suite provides ESP integrity protection and confidentiality using 128-bit AES-GCM (see [RFC4106]). This suite or the following suite should be used when ESP integrity protection and encryption are both needed 🌈.

ESP:
  Encryption     AES with 128-bit keys and 16-octet Integrity
                   Check Value (ICV) in GCM mode [RFC4106]
  Integrity      NULL

IKEv1:
  Encryption                   AES with 128-bit keys in CBC mode
                                 [RFC3602]
  Pseudo-random function       HMAC-SHA-256 [RFC4868]
  Hash                         SHA-256 [FIPS-180-2] [RFC4634]
  Diffie-Hellman group         256-bit random ECP group [RFC4753]
  Group Type                   ECP

IKEv2:
  Encryption                   AES with 128-bit keys in CBC mode
                                 [RFC3602]
  Pseudo-random function       HMAC-SHA-256 [RFC4868]
  Integrity                    HMAC-SHA-256-128 [RFC4868]
  Diffie-Hellman group         256-bit random ECP group [RFC4753]
  Authentication               ECDSA-256 [RFC4754]

For IKEv1, Phase 1 SHOULD use Main mode. IKEv1 implementations MUST support pre-shared key authentication [RFC2409] for interoperability. The authentication method used with IKEv1 MAY be either pre-shared key [RFC2409] or ECDSA-256 [RFC4754] πŸ”₯.

Rekeying of Phase 2 (for IKEv1) or the CREATE_CHILD_SA (for IKEv2) MUST be supported by both parties in this suite ✨.

3.2. Suite "Suite-B-GCM-256" πŸ‘‘

This suite provides ESP integrity protection and confidentiality using 256-bit AES-GCM (see [RFC4106]). This suite or the preceding suite should be used when ESP integrity protection and encryption are both needed πŸ¦‹.

ESP:
  Encryption     AES with 256-bit keys and 16-octet ICV in GCM mode
                   [RFC4106]
  Integrity      NULL

IKEv1:
  Encryption                   AES with 256-bit keys in CBC mode
                                 [RFC3602]
  Pseudo-random function       HMAC-SHA-384 [RFC4868]
  Hash                         SHA-384 [FIPS-180-2] [RFC4634]
  Diffie-Hellman group         384-bit random ECP group [RFC4753]
  Group Type                   ECP

IKEv2:
  Encryption                   AES with 256-bit keys in CBC mode
                                 [RFC3602]
  Pseudo-random function       HMAC-SHA-384 [RFC4868]
  Integrity                    HMAC-SHA-384-192 [RFC4868]
  Diffie-Hellman group         384-bit random ECP group [RFC4753]
  Authentication               ECDSA-384 [RFC4754]

For IKEv1, Phase 1 SHOULD use Main mode. IKEv1 implementations MUST support pre-shared key authentication [RFC2409] for interoperability. The authentication method used with IKEv1 MAY be either pre-shared key [RFC2409] or ECDSA-384 [RFC4754] πŸ’œ.

Rekeying of Phase 2 (for IKEv1) or the CREATE_CHILD_SA (for IKEv2) MUST be supported by both parties in this suite 🌸.

3.3. Suite "Suite-B-GMAC-128" πŸ“

This suite provides ESP integrity protection using 128-bit AES-GMAC (see [RFC4543]) but does not provide confidentiality. This suite or the following suite should be used only when there is no need for ESP encryption πŸ™ˆ.

ESP:
  Encryption     NULL
  Integrity      AES with 128-bit keys in GMAC mode [RFC4543]

IKEv1:
  Encryption                   AES with 128-bit keys in CBC mode
                                 [RFC3602]
  Pseudo-random function       HMAC-SHA-256 [RFC4868]
  Hash                         SHA-256 [FIPS-180-2] [RFC4634]
  Diffie-Hellman group         256-bit random ECP group [RFC4753]
  Group Type                   ECP

IKEv2:
  Encryption                   AES with 128-bit keys in CBC mode
                                 [RFC3602]
  Pseudo-random function       HMAC-SHA-256 [RFC4868]
  Integrity                    HMAC-SHA-256-128 [RFC4868]
  Diffie-Hellman group         256-bit random ECP group [RFC4753]
  Authentication               ECDSA-256 [RFC4754]

For IKEv1, Phase 1 SHOULD use Main mode. IKEv1 implementations MUST support pre-shared key authentication [RFC2409] for interoperability. The authentication method used with IKEv1 MAY be either pre-shared key [RFC2409] or ECDSA-256 [RFC4754] 🌈.

Rekeying of Phase 2 (for IKEv1) or the CREATE_CHILD_SA (for IKEv2) MUST be supported by both parties in this suite 🧚.

3.4. Suite "Suite-B-GMAC-256" πŸ¦‹

This suite provides ESP integrity protection using 256-bit AES-GMAC (see [RFC4543]) but does not provide confidentiality. This suite or the preceding suite should be used only when there is no need for ESP encryption πŸ’€.

ESP:
  Encryption     NULL
  Integrity      AES with 256-bit keys in GMAC mode [RFC4543]

IKEv1:
  Encryption                   AES with 256-bit keys in CBC mode
                                 [RFC3602]
  Pseudo-random function       HMAC-SHA-384 [RFC4868]
  Hash                         SHA-384 [FIPS-180-2] [RFC4634]
  Diffie-Hellman group         384-bit random ECP group [RFC4753]
  Group Type                   ECP

IKEv2:
  Encryption                   AES with 256-bit keys in CBC mode
                                 [RFC3602]
  Pseudo-random function       HMAC-SHA-384 [RFC4868]
  Integrity                    HMAC-SHA-384-192 [RFC4868]
  Diffie-Hellman group         384-bit random ECP group [RFC4753]
  Authentication               ECDSA-384 [RFC4754]

For IKEv1, Phase 1 SHOULD use Main mode. IKEv1 implementations MUST support pre-shared key authentication [RFC2409] for interoperability. The authentication method used with IKEv1 MAY be either pre-shared key [RFC2409] or ECDSA-384 [RFC4754] ⭐.

Rekeying of Phase 2 (for IKEv1) or the CREATE_CHILD_SA (for IKEv2) MUST be supported by both parties in this suite 🫢.

4. Security Considerations πŸ”₯

This is the serious bit, bestie. Read it properly πŸ™ˆ.

This document inherits all of the security considerations of the IPsec, IKEv1, and IKEv2 documents. See [CNSSP-15] for guidance on the use of AES in these suites for the protection of U.S. Government information.

Some of the security options specified in these suites may be found in the future to have properties significantly weaker than those that were believed at the time this document was produced πŸ’€.

5. IANA Considerations 🌸

IANA has created and will maintain a registry called "Cryptographic Suites for IKEv1, IKEv2, and IPsec" (see [IANA-Suites]). The registry consists of a text string and an RFC number that lists the associated transforms. The four new suites in this document have been added to this registry after approval by an expert designated by the IESG 🧚.

The new values for the registry are:

Identifier              Defined in
Suite-B-GCM-128         RFC 4869
Suite-B-GCM-256         RFC 4869
Suite-B-GMAC-128        RFC 4869
Suite-B-GMAC-256        RFC 4869

6. References πŸŽ€

The reference lists for this document continue in the next part, so stay tuned, bestie πŸ«ΆπŸ’–

6.1. Normative References ✨

okay so these are the docs this spec literally can't work without πŸ“š you need them to implement it, no cap

  • [FIPS-180-2] FIPS 180-2 with change notice, "Secure Hash Standard", National Institute of Standards and Technology, February 2004.
  • [IANA-Suites] Internet Assigned Numbers Authority, "Cryptographic Suites for IKEv1, IKEv2, and IPsec", <http://www.iana.org/assignments/crypto-suites>.
  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 🫢
  • [RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange (IKE)", RFC 2409, November 1998.
  • [RFC3602] Frankel, S., Glenn, R., and S. Kelly, "The AES-CBC Cipher Algorithm and Its Use with IPsec", RFC 3602, September 2003.
  • [RFC4106] Viega, J. and D. McGrew, "The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP)", RFC 4106, June 2005.
  • [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC 4303, December 2005.
  • [RFC4306] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306, December 2005.
  • [RFC4308] Hoffman, P., "Cryptographic Suites for IPsec", RFC 4308, December 2005.
  • [RFC4543] McGrew, D. and J. Viega, "The Use of Galois Message Authentication Code (GMAC) in IPsec ESP and AH", RFC 4543, May 2006. πŸ’œ
  • [RFC4753] Fu, D. and J. Solinas, "ECP Groups for IKE and IKEv2", RFC 4753, November 2006.
  • [RFC4754] Fu, D. and J. Solinas, "IKE and IKEv2 Authentication Using ECDSA", RFC 4754, November 2006.
  • [RFC4868] Kelly, S. and S. Frankel, "Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec", RFC 4868, May 2007.

6.2. Informative References 🌸

these ones aren't required reading, but they're super good for background and context, bestie 🧚


Authors' Addresses πŸŽ€

the two people who wrote this, and how to reach them πŸ’Œ

Laurie E. Law
National Information Assurance Research Laboratory
National Security Agency

EMail: lelaw@orion.ncsc.mil


Jerome A. Solinas
National Information Assurance Research Laboratory
National Security Agency

EMail: jasolin@orion.ncsc.mil

the legal bit, but make it cute πŸ₯Ή the IETF Trust holds the 2007 copyright here. This document is subject to the rights, licenses and restrictions in BCP 78, and apart from what's set out there, the authors keep all their own rights.

Heads up: this whole document (and the info in it) is handed over "AS IS". The contributor, the organization they represent or are sponsored by (if any), the Internet Society, the IETF Trust, and the Internet Engineering Task Force all disclaim every warranty, express or implied. That includes, but isn't limited to, any promise that using the info won't infringe rights, and any implied warranty of merchantability or fitness for a particular purpose. πŸ™ˆ

Intellectual Property πŸ”₯

the IETF doesn't take a side on whether any IPR or other rights claimed about this tech are valid or how far they go, and it doesn't say whether licenses are available. It also doesn't claim it has searched for any rights itself. Info on how RFC rights work lives in BCP 78 and BCP 79 πŸ“–

if you have IPR disclosures, they go to the IETF Secretariat, and any licensing assurances, or the outcome of trying to get a general license for implementers or users, can be found in the IETF online IPR repository at http://www.ietf.org/ipr.

the IETF also invites anyone to flag copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. send those to ietf-ipr@ietf.org πŸ’…


Acknowledgement 🌈

funding for the RFC Editor function is currently provided by the Internet Society. thank you, legends 🫢

πŸ“¦ where this page comes from