RFC 4109

Algorithms for Internet Key Exchange version 1 (IKEv1)

πŸ“… published May 2005, from ietf

RFC 4109: Algorithms for Internet Key Exchange version 1 (IKEv1) ✨

okay bestie, this one is a Standards Track doc from May 2005 written by Paul Hoffman of the VPN Consortium πŸ’– It updates RFC 2409 πŸŽ€ and it's basically a glow-up for the algorithm list in IKEv1. Status is Standards Track, so it's a real protocol spec, not just vibes πŸ’…

The Status of This Memo says this is an Internet standards track protocol for the Internet community, and it asks for discussion and suggestions for improvements πŸ¦‹ For the current standardization state of this protocol, go check the "Internet Official Protocol Standards" (STD 1) 🌸 Distribution is unlimited, obviously 🫢

Copyright is The Internet Society, 2005 ✨

Abstract

okay so the algorithms that IKEv1 originally said were required and suggested don't match what IPsec people actually need anymore 😭 the original spec allowed weak security and suggested stuff that barely got implemented πŸ’€ this doc updates RFC 2409 and is meant for all IKEv1 implementations deployed today πŸ”₯

1. Introduction 🧚

the original IKEv1 definition, [RFC2409], has a bunch of MUST-level and SHOULD-level requirements that don't match what IPsec users need πŸ™ˆ so this doc updates RFC 2409 by changing those algorithm requirements πŸ’œ

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they show up in this document, are to be read as described in [RFC2119] 🌈

2. Old Algorithm Requirements πŸ’…

RFC 2409 has these MUST-level and SHOULD-level requirements:

  • DES for encryption MUST be supported. πŸ’€
  • MD5 and SHA-1 for hashing and HMAC functions MUST be supported.
  • Pre-shared secrets for authentication MUST be supported.
  • Diffie-Hellman MODP group 1 (discrete log 768 bits) MUST be supported.
  • TripleDES for encryption SHOULD be supported.
  • Tiger for hashing SHOULD be supported.
  • DSA and RSA for authentication with signatures SHOULD be supported.
  • RSA for authentication with encryption SHOULD be supported.
  • Diffie-Hellman MODP group 2 (discrete log 1024 bits) SHOULD be supported.

ngl RFC 2409 was a little contradictory about elliptic curves πŸ™ƒ Section 4 of that spec says "IKE implementations ... MAY support ECP and EC2N groups", but Sections 6.3 and 6.4 say that MODP groups 3 and 4 for EC2N groups SHOULD be supported 🌸

3. New Algorithm Requirements πŸŽ€

here are the new requirements for IKEv1 πŸ¦‹ some match RFC 2409 and some got changed, so read carefully bestie πŸ‘€

  • TripleDES for encryption MUST be supported.
  • AES-128 in CBC mode [RFC3602] for encryption SHOULD be supported.
  • SHA-1 for hashing and HMAC functions MUST be supported.
  • Pre-shared secrets for authentication MUST be supported.
  • AES-128 in XCBC mode for PRF functions ([RFC3566] and [RFC3664]) SHOULD be supported.
  • Diffie-Hellman MODP group 2 (discrete log 1024 bits) MUST be supported.
  • Diffie-Hellman MODP group 14 (discrete log 2048 bits) [RFC3526] SHOULD be supported.
  • RSA for authentication with signatures SHOULD be supported.

If additional updates are made to IKEv1 in the future, it is very likely that implementing AES-128 in CBC mode for encryption will become mandatory πŸ‘‘

The other algorithms that were MUST-level and SHOULD-level in RFC 2409 are now MAY-level πŸ₯Ί That includes DES for encryption, MD5 and Tiger for hashing, Diffie-Hellman MODP group 1, Diffie-Hellman MODP groups with elliptic curves, DSA for authentication with signatures, and RSA for authentication with encryption ✨

DES for encryption, MD5 for hashing, and Diffie-Hellman MODP group 1 got dropped to MAY because of cryptographic weakness πŸ’€

Tiger for hashing, Diffie-Hellman MODP groups with elliptic curves, DSA for authentication with signatures, and RSA for authentication with encryption got dropped because there's basically no real deployment or interop 😭

4. Summary πŸ“‹

here's the whole vibe check in one table πŸ’–

      Algorithm                     RFC 2409    This document
      ------------------------------------------------------------------
      DES for encryption            MUST        MAY (crypto weakness)
      TripleDES for encryption      SHOULD      MUST
      AES-128 for encryption        N/A         SHOULD
      MD5 for hashing and HMAC      MUST        MAY (crypto weakness)
      SHA1 for hashing and HMAC     MUST        MUST
      Tiger for hashing             SHOULD      MAY (lack of deployment)
      AES-XCBC-MAC-96 for PRF       N/A         SHOULD
      Pre-shared secrets            MUST        MUST
      RSA with signatures           SHOULD      SHOULD
      DSA with signatures           SHOULD      MAY (lack of deployment)
      RSA with encryption           SHOULD      MAY (lack of deployment)
      D-H Group 1 (768)             MUST        MAY (crypto weakness)
      D-H Group 2 (1024)            SHOULD      MUST
      D-H Group 14 (2048)           N/A         SHOULD
      D-H elliptic curves           SHOULD      MAY (lack of deployment)

5. Security Considerations 🚨

This document is all about security. 😱 All the algorithms that are either MUST-level or SHOULD-level in the "new algorithm requirements" section of this document are believed to be robust and secure at the time of this writing πŸ”

6. Normative References πŸ“š

  • [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.
  • [RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)", RFC 3526, May 2003.
  • [RFC3566] Frankel, S. and H. Herbert, "The AES-XCBC-MAC-96 Algorithm and Its Use With IPsec", RFC 3566, September 2003.
  • [RFC3602] Frankel, S., Glenn, R., and S. Kelly, "The AES-CBC Cipher Algorithm and Its Use with IPsec", RFC 3602, September 2003.
  • [RFC3664] Hoffman, P., "The AES-XCBC-PRF-128 Algorithm for the Internet Key Exchange Protocol (IKE)", RFC 3664, January 2004.

Author's Address 🏑

Paul Hoffman VPN Consortium 127 Segre Place Santa Cruz, CA 95060 US

EMail: paul.hoffman@vpnc.org

Copyright (C) The Internet Society (2005).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property πŸ¦‹

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- ipr@ietf.org.

Acknowledgement πŸ’œ

Funding for the RFC Editor function is currently provided by the Internet Society.

πŸ“¦ where this page comes from