<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" updates="8221,8247" obsoletes="" docName="draft-ietf-ipsecme-ikev1-algo-to-historic-09" number="9395"
submissionType="IETF" category="std" consensus="true" xml:lang="en" tocInclude="true"
tocDepth="4" symRefs="true" sortRefs="true" version="3">

  <front>
    <title abbrev="IKEv1 Deprecation">Deprecation of the Internet Key Exchange Version 1 (IKEv1) Protocol and Obsoleted Algorithms</title>
    <seriesInfo name="RFC" value="9395"/>
    <author initials="P." surname="Wouters" fullname="Paul Wouters" role="editor">
      <organization>Aiven</organization>
      <address>
        <email>paul.wouters@aiven.io</email>
      </address>
    </author>
    <date year="2023" month="April"/>
    <area>sec</area>
    <workgroup>ipsecme</workgroup>
    <keyword>IKEv1</keyword>
    <keyword>IKEv2</keyword>
    <keyword>IPsec</keyword>
    <keyword>IKE</keyword>
    <abstract>
      <t>
      Internet Key Exchange Version 1 (IKEv1) has been deprecated, and RFCs
      2407, 2408, and 2409 have been moved to Historic status. This document
      updates RFCs 8221 and 8247 to reflect the usage guidelines of old
      algorithms that are associated with IKEv1 and are not specified or
      commonly implemented for IKEv2. This document further updates the IANA registries
      for IKEv2 "Transform Type Values" by adding a "Status" column where the deprecation
      status can be listed.
      </t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>
      IKEv1 has been moved to Historic status. IKEv1 <xref target="RFC2409"
      format="default"/> and its related documents for the Internet Security
      Association and Key Management Protocol (ISAKMP) <xref target="RFC2408"
      format="default"/> and IPsec DOI <xref target="RFC2407"
      format="default"/> were obsoleted by IKEv2 <xref target="RFC4306"
      format="default"/> in December 2005. The latest version of IKEv2 at the
      time of writing was published in 2014 <xref target="RFC7296"
      format="default"/>.  Since IKEv2 replaced IKEv1 over 15 years ago, IKEv2
      has now seen wide deployment, and it provides a full replacement for all
      IKEv1 functionality. No new modifications or new algorithms have been
      accepted for IKEv1 for at least a decade. IKEv2 addresses various issues
      present in IKEv1, such as IKEv1 being vulnerable to amplification
      attacks.
      </t>
      <t>
       Algorithm implementation requirements and usage guidelines
       for IKEv2 <xref target="RFC8247" format="default"/> and Encapsulating Security Payload (ESP) and Authentication Header (AH) <xref target="RFC8221" format="default"/>
       gives guidance to implementors but limits that guidance to avoid
       broken or weak algorithms. These two RFCs do not deprecate algorithms that
       have aged and are not in use. Instead, they leave these algorithms in
       a state of "<bcp14>MAY</bcp14> be used" by not mentioning them. This document deprecates
       those unmentioned algorithms that are no longer advised but for which
       there are no known attacks resulting in their earlier deprecation.
      </t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements Language</name>
        <t>
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
    NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
    </section>
    <section anchor="ikev1_historic" numbered="true" toc="default">
      <name>RFCs 2407, 2408, and 2409 Are Historic</name>
      <t>
     As IKEv1 is deprecated, systems running IKEv1 should be upgraded and
     reconfigured to run IKEv2. Systems that support IKEv1 but not
     IKEv2 are most likely also unsuitable candidates for continued
     operation for the following reasons:
      </t>
      <ul spacing="normal">
        <li>
     IKEv1 development ceased over a decade ago, and no new work will
     happen. This poses the risk of unmaintained code in an otherwise
     supported product, which can result in security vulnerabilities.
   </li>
        <li>
     A number of IKEv1 systems have reached their End of Life and,
     therefore, will never be patched by the vendor if a vulnerability
     is found.
   </li>
        <li>
     There are vendors that still provide updates for their equipment
     that supports IKEv1 and IKEv2 but have "frozen" their IKEv1
     implementation. Such users might not be aware that they are
     running unmaintained code with its associated security risks.
   </li>
        <li>
     IKEv1 systems can be abused for packet amplification attacks, as
     documented in the Security Bulletin <xref target="CVE-2016-5361" format="default"/>.
   </li>
        <li>
     Great strides have been made in cryptography since IKEv1 development
     ceased. While some modern cryptographic algorithms were added to
     IKEv1, interoperability concerns mean that the defacto algorithms
     negotiated by IKEv1 will consist of dated or deprecated algorithms,
     like AES-CBC, SHA1, and Diffie-Hellman groups 1 or 2. IKEv2 provides
     a state-of-the-art suite of cryptographic algorithms that IKEv1 lacks.
   </li>
      </ul>
      <t>
     IKEv2 is a more secure protocol than IKEv1. For example, IKEv2 offers more
     modern cryptographic primitives, proper defense against denial-of-service
     attacks, improved authentication via Extensible Authentication Protocol (EAP) methods, and password-authenticated key exchange (PAKE) support. Also, IKEv2 is
     actively worked on with respect to defending against quantum-computer attacks.
      </t>
      <t>
     IKEv1-only systems should be upgraded or replaced by systems supporting
     IKEv2. IKEv2 implementations <bcp14>SHOULD NOT</bcp14> directly import IKEv1 configurations
     without updating the cryptographic algorithms used.
      </t>
    </section>
    <section anchor="feature_eq" numbered="true" toc="default">
      <name>IKEv1 Feature Equivalents for IKEv2</name>
      <t>
      A few notable IKEv1 features are not present in the IKEv2 core specification
      <xref target="RFC7296" format="default"/> but are available for IKEv2 via an additional specification.
      </t>
      <section anchor="ikev2_postq" numbered="true" toc="default">
        <name>IKEv2 Post-Quantum Support</name>
        <t>
       IKEv1 and its way of using Preshared Keys (PSKs) protects against
       quantum-computer-based attacks. IKEv2 updated its use of PSKs to improve
       the error reporting but at the expense of post-quantum security. If
       post-quantum security is required, these systems should be migrated
       to use IKEv2 Post-quantum Preshared Keys (PPKs) <xref target="RFC8784" format="default"/>.
        </t>
      </section>
      <section anchor="ikev2_labeled" numbered="true" toc="default">
        <name>IKEv2 Labeled IPsec Support</name>
        <t>
       Some IKEv1 implementations support Labeled IPsec, a method
       to negotiate an additional Security Context selector to the
       Security Policy Database (SPD), but this method was never standardized in IKEv1. Those IKEv1
       systems that require Labeled IPsec should migrate to an
       IKEv2 system supporting Labeled IPsec as specified in
       <xref target="I-D.ietf-ipsecme-labeled-ipsec" format="default"/>.
        </t>
      </section>
      <section anchor="ikev2_groupsa" numbered="true" toc="default">
        <name>IKEv2 Group SA and Multicast Support</name>
        <t>
       The Group Domain of Interpretation (GDOI) protocol <xref target="RFC6407" format="default"/>,
       which is based on IKEv1, defines the support for Multicast Group SAs. For IKEv2, this
       work is currently in progress via <xref target="I-D.ietf-ipsecme-g-ikev2" format="default"/>.
        </t>
      </section>
    </section>
    <section anchor="deprecating_algos" numbered="true" toc="default">
      <name>Deprecating Obsolete Algorithms</name>
      <t>This document deprecates the following algorithms:
      </t>
      <ul spacing="normal">
        <li> Encryption Algorithms: RC5, IDEA, CAST, Blowfish, and the unspecified 3IDEA,
           ENCR_DES_IV64, and ENCR_DES_IV32</li>
        <li> PRF Algorithms: the unspecified PRF_HMAC_TIGER</li>
        <li> Integrity Algorithms: HMAC-MD5-128</li>
        <li> Diffie-Hellman groups: none</li>
      </ul>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>There are only security benefits if IKEv1 is deprecated and IKEv2 is used.
      </t>
      <t>
     The deprecated algorithms have long been in disuse and are no longer
     actively deployed or researched; this presents an unknown security
     risk that is best avoided. Additionally, these algorithms not being
     supported in implementations simplifies those implementations and
     reduces the accidental use of deprecated algorithms through
     misconfiguration or downgrade attacks.
      </t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>IANA has added the following line at the top
      of the Notes section of the "Internet Key Exchange (IKE) Attributes"
      and '"Magic Numbers" for ISAKMP Protocol' registries: "All
      registries listed below have been closed. See RFC 9395." In addition, this document has been added to the "Reference" column in these two registries, and their registration procedures have been changed to "Registry closed".
      </t>
      <t>IANA has added a "Status" column to the following IKEv2 "Transform Type Values" registries:
      </t>
      <ul empty="true" spacing="compact">
	<li>Transform Type 1 - Encryption Algorithm Transform IDs</li>
 	<li>Transform Type 2 - Pseudorandom Function Transform IDs</li>
 	<li>Transform Type 3 - Integrity Algorithm Transform IDs</li>
	<li>Transform Type 4 - Key Exchange Method Transform IDs</li>
      </ul>
<t>
      Also, the following entries have been marked as DEPRECATED:
      </t>

<table anchor="iana_requests_type1" align="center">
  <name>Transform Type 1 - Encryption Algorithm Transform IDs</name>
  <thead>
    <tr>
      <th>Number</th>
      <th>Name</th>
      <th>Status</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>ENCR_DES_IV64</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
    <tr>
      <td>2</td>
      <td>ENCR_DES</td>
      <td>DEPRECATED <xref target="RFC8247" format="default"/></td>
    </tr>
    <tr>
      <td>4</td>
      <td>ENCR_RC5</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
    <tr>
      <td>5</td>
      <td>ENCR_IDEA</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
    <tr>
      <td>6</td>
      <td>ENCR_CAST</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
    <tr>
      <td>7</td>
      <td>ENCR_BLOWFISH</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
    <tr>
      <td>8</td>
      <td>ENCR_3IDEA</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
    <tr>
      <td>9</td>
      <td>ENCR_DES_IV32</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
  </tbody>
</table>

<table anchor="iana_requests_type2" align="center">
  <name>Transform Type 2 - Pseudorandom Function Transform IDs</name>
  <thead>
    <tr>
      <th>Number</th>
      <th>Name</th>
      <th>Status</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>PRF_HMAC_MD5</td>
      <td>DEPRECATED <xref target="RFC8247" format="default"/></td>
    </tr>
    <tr>
      <td>3</td>
      <td>PRF_HMAC_TIGER</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
  </tbody>
</table>

<table anchor="iana_requests_typ3" align="center">
  <name>Transform Type 3 - Integrity Algorithm Transform IDs</name>
  <thead>
    <tr>
      <th>Number</th>
      <th>Name</th>
      <th>Status</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>AUTH_HMAC_MD5_96</td>
      <td>DEPRECATED <xref target="RFC8247" format="default"/></td>
    </tr>
    <tr>
      <td>3</td>
      <td>AUTH_DES_MAC</td>
      <td>DEPRECATED <xref target="RFC8247" format="default"/></td>
    </tr>
    <tr>
      <td>4</td>
      <td>AUTH_KPDK_MD5</td>
      <td>DEPRECATED <xref target="RFC8247" format="default"/></td>
    </tr>
    <tr>
      <td>6</td>
      <td>AUTH_HMAC_MD5_128</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
    <tr>
      <td>7</td>
      <td>AUTH_HMAC_SHA1_160</td>
      <td>DEPRECATED (RFC 9395)</td>
    </tr>
  </tbody>
</table>

<table anchor="iana_requests_type4" align="center">
  <name>Transform Type 4 - Key Exchange Method Transform IDs</name>
  <thead>
    <tr>
      <th>Number</th>
      <th>Name</th>
      <th>Status</th>
     </tr>
   </thead>
   <tbody>
     <tr>
       <td>1</td>
       <td>768-bit MODP Group</td>
       <td>DEPRECATED <xref target="RFC8247" format="default"/></td>
     </tr>
     <tr>
       <td>22</td>
       <td>1024-bit MODP Group with 160-bit Prime Order Subgroup</td>
       <td>DEPRECATED <xref target="RFC8247" format="default"/></td>
     </tr>
   </tbody>
</table>
      <t>
        All entries not mentioned here should receive no value in the new Status field.
      </t>
    </section>
  </middle>
  <back>

<displayreference target="I-D.ietf-ipsecme-labeled-ipsec" to="LABELED-IPSEC"/>
<displayreference target="I-D.ietf-ipsecme-g-ikev2" to="G-IKEV2"/>

    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8247.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2407.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2408.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2409.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6407.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4306.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8221.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8784.xml"/>

<!-- [I-D.ietf-ipsecme-labeled-ipsec] IESG state Publication Requested as of 4/21/23 -->
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-ipsecme-labeled-ipsec.xml"/>

<!-- [I-D.ietf-ipsecme-g-ikev2] IESG state I-D Exists as of 4/21/23 -->
        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.draft-ietf-ipsecme-g-ikev2.xml"/>

        <reference anchor="CVE-2016-5361" target="https://nvd.nist.gov/vuln/detail/CVE-2016-5361">
          <front>
            <title>CVE-2016-5361 Detail</title>
            <author>
              <organization>NIST National Vulnerability Database</organization>
            </author>
            <date day="16" month="June" year="2016"/>
          </front>
        </reference>


      </references>
    </references>
  </back>
</rfc>
