<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?> 
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc linkmailto="no" ?>
<?rfc rfcedstyle="yes"?>
<?rfc-ext allow-markup-in-artwork="yes" ?>
<?rfc-ext include-references-in-index="yes" ?>

<!DOCTYPE rfc []>

<rfc
    category="std"
    docName="draft-herbert-deprecate-auth-header-02"
    ipr="trust200902"
    updates="RFC8200, RFC4303, and RFC4302"
    obsoletes=""
    consensus="true"
    submissionType="IETF" 
    tocInclude="true" tocDepth="4"
    symRefs="true"
    sortRefs="true"
    version="3"
    xmlns:xi="http://www.w3.org/2001/XInclude"
> 

<front>
    <title abbrev="Deprecate AH and IPCOMP">Deprecation of IP Authentication Header (AH) and IP Payload Compression Protocol (IPCOMP)</title>
    <author initials='T.' surname="Herbert" fullname='Tom Herbert'>
     <organization>XDPnet</organization>
     <address>
       <postal>
         <street/>
         <city>Los Gatos, CA</city>
         <region/>
         <code/>
         <country>USA</country>
       </postal>
       <email>tom@herbertland.com</email>
    </address>
    </author>
    <author initials="P." surname="Wouters" fullname="Paul Wouters">
    <organization>Aiven</organization>
    <address>
      <email>paul.wouters@aiven.io</email>
    </address>
    </author>
  <date/>
  <abstract>
  <t>
        IP Authentication Header (AH) and IP Payload Compression Protocol (IPCOMP)
        of the IPsec suite have been deprecated and RFC 3173 and RFC 4302 have been moved
        to Historic status. This document further updates the IANA IKEv2 Security Protocol
        Identifiers by adding a "Status" column where the deprecation status can be listed.
        This document also closes the IKEv2 Notification IPCOMP Transform IDs registry.
  </t>
</abstract>
</front>

<middle>
<section title="Introduction">
  <t>
        This document deprecates the IP Authentication Header. There are
        three motivations: 1) There is no compelling reason to use
        authentication without encryption, 2) The Authentication Header is
        incompatible with a number of other protocols and breaks when those
        protocols are also used, and 3) There is likely zero deployment of the
        Authentication Header.
  </t><t>
        If approved, this document chnages <xref target="RFC4302"/> to
          Historical Status, and it updates <xref target="RFC8200"/> and
        <xref target="RFC4303"/>.
  </t>
<section title="Requirements Language">
  <t>
        The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",
        and "OPTIONAL" in this document are to be interpreted as described in
        BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and
        only when, they appear in all capitals, as shown here.
   </t>
</section></section>

  <section title="Previous and current work to deprecate AH">
  <section title="Draft to move AH to historical status">
  <t>
        In 2011 <xref target="ah-to-hist"/> was posted for moving the
        Authentication Header to historical  status. The primary motivations
        were that AH breaks Network Address Translation (NAT), and ESP-NULL can
        do everything useful that can be done with AH.
  </t><t>
        The draft did point at that it is argued that ESP in the tunnel mode
        is equivalent to AH transport mode, however ESP tunnel mode SA
        applied to an IPv6 flow results in at least 50 bytes of additional
        overhead per packet. The draft suggests that the issue may be
        alleviated by header compression schemes.
  </t><t>
        The draft mentions that firewalls in the enterprise environments often
        require visibility into packets. This is easier in AH than ESP since
        packets are transmitted in the clear. The draft asserts that this is
        solved by <xref target="RFC5840"/>
  </t>
  </section><section title="Draft recommending to avoid AH">
  <t>
          <xref target="ah-to-hist"/> did not make progress in IETF so the
          author posted <xref target="ah-avoid"/>.  This draft recommends
          retiring AH, and in particular it recommends that AH must not be
          used for new applications and protocols.
  </t>
  <t>
        The motivations for retiring AH are the same as those given in
        <xref target="ah-to-hist"/>
  </t>

  </section><section title="Deprecating discussions during RFC7321 development">
  <t>During the 2014 discussion of <xref target="I-D.ietf-ipsecme-esp-ah-reqts"/>
     which became <xref target="RFC7321"/> there was a discussion about deprecating AH.
     See the mail thread at <xref target="ml-esp-ah-reqts"/>.
  </t>

  </section><section title="Deprecating discussions during WESP development">
  <t>During the 2009 discussion of <xref target="RFC5840"/> the topic of AH depreccation also
   came up. See the mail thread at <xref target="ml-wesp-roadmap"/>.
   Here too, it was mentioned it was needed by OSPFv3.
  </t>

  </section><section title="Detailed summary posting to the IPsecME Working Group">
  <t>A summary of arguments and why these likely no longer apply was posted to the IPsecME
     Working group in 2026, see <xref target="ml-ah-history"/>.
  </t>

  </section><section title="RFC8221">
  <t>
        <xref target="RFC8221"/> was published in 2017 and goes a long
        way towards deprecating the Authentication header. The RFC
        includes the following requirements:
  </t>
  <ul>
    <li>
      Using ESP with AH is NOT RECOMMENDED.
    </li>
    <li>
      ENCR_NULL is a MUST to enable the use of ESP with only
                authentication, which is preferred over AH due to NAT traversal
    </li>
    <li>
      It is NOT RECOMMENDED to use ESP with NULL authentication
                  (with non-authenticated encryption) in conjunction with AH;
                  some configurations of this combination of services have been
                  shown to be insecure
    </li>
  </ul>
  </section><section title="OSPv3 deprecating AH">
  <t>The only protocol left that currently has AH at the MAY level is OSPFv3 <xref target="RFC5340"/>.
     The reasoning at the time was that IPv6 had mandatory support for AH, and thus this would be the
     easiest way to enable authenticity of OSPFv3 packets. However, many routers did not have an IPsec
     stack, and did not want to implement the IPsec protocol and IKE protocol just for this feature. And
     IPv6 never obtained the mandatory status for IPsec for its core protocol. This lead to the creation
     of Authentication Trailer for OSPFv3 <xref target="RFC7166"/>. This alternative authentication support
     avoided the need to ship an entire IPsec and IKE stack in routers, and thus became the widespread
     method for OSPFv3 authentiation. There are plans underway at the moment to obsolete AH for OSPF,
     see <xref target="I-D.acee-lsr-ospfv3-deprecate-ah"/>.
  </t>

  </section></section>
  <section title="Motivation for deprecating AH">
  <t>
        This section gives the motivation for deprecating the IP
        Authentication Header. The conclusion of this document is that
        the Authentication Header can be deprecated with little or no ill
        effects.
  </t>
  <section title="No known protocols specify AH as an option to secure their protocol">
  <t>
   With the last known consumer of AH being deprecated, there seems to be little reason
   left to keep supporting AH.
  </t>
  </section><section title="Authentication without encryption is not compelling">
  <t>
        The Authentication Header only provides for authentication of packet
        data and not confidentiality, that it does not encrypt the data. In
        its nature, authenticating data but not encrypting it is weaker
        security then authenticating and encrypting the data.
  </t><t>
        The Encapsulating Security Payload header <xref target="RFC4303"/>
        (ESP) can provide both integrity and confidentiality. The primary
        difference between the integrity provided by ESP and AH is the extent
        of the coverage. Specifically, ESP does not protect any IP header
        fields unless those fields are encapsulated by ESP. The value in the
        additional coverage afforded by AH is marginal. If fields in the IP
        header itself are corrupted it's likely that ESP with authentication
        would fail to be authenticated at the receiver, or at least the packet
        would be dropped due to a corrupted IP header. Since the lookup for the
        Security Association in ESP includes the packet's source and destination
        addresses there is protection against spoofed or corrupted IP addresses.
  </t><t>
        AH also provides integrity for IPv4 options or for IPv6 extension
        headers that precede the Authentication Header whereas ESP does not.
        This is also of marginal value since the options or extension headers
        themselves are sent in plain text with no confidentiality thereby making
        end-to-end information visible to untrusted parties.  Besides that,
        IP options have been effectively deprecated and <xref target="depeh"/>
        proposes to deprecate the use of plain text extension headers in
        untrusted networks which is where AH is most applicable.
  </t><t>
        Ostensibly, an advantage of performing authentication without
        encryption is that the algorithms are simpler and lend themselves to
        practical and performant implementation. While this may have been true
        for legacy hardware twenty years ago, modern hardware has excellent
        support for computing AES at line rate so that the differences in
        algorithmic and implementation complexity between authentication
        and encryption is no longer pertinent.
  </t>
</section><section title="Incompatibility of AH with other protocols">
  <t>
        The Authentication Header does not provide integrity for data that
        might be modified in-flight. For this reason, when calculating the
        Integrity Check Value (IVC) for AH any fields that might be modified
        are removed from the calculation. For IPv4 this includes the TOS,
        Fragment Offset, TTL, and header checksum fields in the IPv4 header,
        as well as any mutable IP options; for IPv6 this includes the Hop
        Limit, Flow Label, and Traffic Class fields in the IPv6 header, as
        well as Hop-by-Hop and Destination options that are marked as
        modifiable. The same procedures must be followed by both the sender
        and the receiver, and the implementation for all this is rather complex.
        If fields are modified in-flight beyond those that AH allows to be
        modified then authentication will fail at the receiver. There are a
        number of protocols that make such modifications.
  </t><t>
        The Authentication Header is fundamentally incompatible with Network
        Address Translation (NAT) <xref target="RFC2663"/>. Network Address
        Translation modifies IP addresses and possibly port numbers of packets
        in-flight.  If a packet containing an Authentication Header goes
        through a NAT device where IP addresses or port numbers are modified
        then the packet will fail to be authenticated at the receiver. There is
        no workaround for this. Even if the NAT detected the presence of an
        Authentication Header there is no means to incrementally update it
        like the TCP checksum can be updated by NAT.
  </t><t>
        There are other protocols that modify packets in-flight in ways that
        are incompatible with the Authentication Header. For Segment Routing
        <xref target="RFC8754"/>, it is explicitly stated that use of the
        Segment Routing header with the Authentication Header is not supported.
        Similarly, In-flight removal of Hop-by-Hop Options header or the Routing
        header <xref target="inflrm"/> will not work if an Authentication
        Header is present in the packet.
  </t><t>
        Another issue is that the Authentication Header does not work with
        checksum offload. Checksum offload is a ubiquitous feature in
        Network Interface Cards (NICs) where a hardware device computes and
        sets the TCP or UDP checksum as packets are sent. From the point of
        view of AH the effect checksum offload is an unexpected in-flight
        modification to a packet, so packets with an Authentication Header
        that go through checksum offload will fail to be authenticated at the
        receiver.
  </t>
</section><section title="No deployment of AH">
  <t>
        It is a reasonable extrapolation that the Authentication Header is not
        used anywhere in deployment. There is no material advantage to using the
        Authentication Header instead of ESP even if the use case is just
        authentication. The prevalence of NAT and checksum offload that break
        the Authentication Header severely limit the environments in which AH
        could be productively deployed.
  </t>
</section></section>
<section title="Motivation for deprecating IPCOMP">
  <t>IPCOMP is a complicated feature. One has to create a regular IPsec SA and a
     Compression SA. For each packet, one has to compress it and check if the
     compression actually made the packet smaller. If so, send it out over the
     Compression SA. If the packet did not get smaller, throw away the compressed
     packet and send the original packet over the regular IPsec SA.</t>
  <t>With modern traffic consisting of mostly encryption streams (eg TLS, HTTPS)
     and other compressed data such as video and audio codexes, performing IPCOMP
     will actually lead to a loss of performance with no compression gain.
  </t>
  <t>On IoT devices, one might think this is a useful feature to transmit less bytes
     over the radio, but perhaps the added complexity is preventing those IoT
     devices from implementing IPCOMP.
  </t>
  <t>The TLS protocol used to support compression before encryption, but that has
     since been deprecated due to cryptographic attacks such as <xref target="CRIME"/>
     and <xref target="BREACH"/>. Additionally, the choice of sending it through the
     regular or the compression IPsec SA is another oracle that could be exploited
     by attackers.
  </t>
  <t>
   All in all, IPCOMP is a complicated and risky feature, that sees little to no
   deployment and might be suffering from uncovered cryptographic attacks. With the
   current wave of AI assisted software vulnerability discoveries, there is a push
   to remove old unused and defacto obsoleted code.
  </t>
</section>

<section title="Updates to RFC8200 for AH deprecation">
  <t>
          <xref target="RFC8200"/> is updated to remove references to the
          Authentication header.
  </t><t>
          The following text replaces the list and the note following the
          list of
          <xref target="RFC8200" sectionFormat="of" section="4"/>.
  </t><t>
        OLD (RFC8200)
  </t>

<blockquote>
 <ul empty="true">
   <li>
        <ul empty="true" spacing="compact">
            <li>Hop-by-Hop Options
            </li><li>Fragment
            </li><li>Destination Options
            </li><li>Routing
            </li><li>Authentication
            </li><li>Encapsulating Security Payload
            </li>
        </ul>
    </li><li>
    <ul empty="true"><li>
          <t>
                The first four are specified in this document; the last two are
                specified in [RFC4302] and [RFC4303], respectively. The
                current list of IPv6 extension headers can be found at
                [IANA-EH].
          </t>
    </li>
      </ul>
    </li>
      </ul>
        </blockquote>
  <t>
        NEW:
  </t>
<blockquote>
 <ul empty="true">
   <li>
        <ul empty="true" spacing="compact">
            <li>Hop-by-Hop Options
            </li><li>Fragment
            </li><li>Destination Options
            </li><li>Routing
            </li><li>Encapsulating Security Payload
            </li>
        </ul>
    </li><li>
    <ul empty="true"><li>
          <t>
                The first four are specified in this document; the last one is
                specified in [RFC4303]. The current list of IPv6 extension
                headers can be found at [IANA-EH].
          </t>
    </li>
      </ul>
    </li>
      </ul>
        </blockquote>

  <t>
          The following text replaces the list and the paragraph following the
          list of
          <xref target="RFC8200" sectionFormat="of" section="4.1"/>.
  </t><t>
        OLD (RFC8200)
  </t>
<blockquote>
 <ul empty="true">
   <li>
        <ul empty="true" spacing="compact">
          <li>IPv6 header
            </li><li>Hop-by-Hop Options header
            </li><li>Destination Options header (note 1)
            </li><li>Routing header
            </li><li>Fragment header
            </li><li>Authentication header (note 2)
            </li><li>Encapsulating Security Payload header (note 2)
            </li><li>Destination Options header (note 3)
            </li><li>Upper-Layer header
            </li>
        </ul>
    </li><li>
    <ul empty="true"><li><dl indent="9">
          <dt>note 1:</dt><dd>
                for options to be processed by the first destination that
                appears in the IPv6 Destination Address field plus
                subsequent destinations listed in the Routing header.
          </dd><dt>note 2:</dt><dd>
                additional recommendations regarding the relative order of
                the Authentication and Encapsulating Security Payload
                headers are given in [RFC4303].
          </dd><dt>note 3:</dt><dd>
                for options to be processed only by the final destination
                of the packet.
          </dd>
      </dl></li></ul>
    </li>
  </ul>
        </blockquote>
  <t>
        NEW:
  </t>

<blockquote>
 <ul empty="true">
   <li>
        <ul empty="true" spacing="compact">
          <li>IPv6 header
            </li><li>Hop-by-Hop Options header
            </li><li>Destination Options header (note 1)
            </li><li>Routing header
            </li><li>Fragment header
            </li><li>Encapsulating Security Payload header
            </li><li>Destination Options header (note 2)
            </li><li>Upper-Layer header
            </li>
        </ul>
    </li><li>
    <ul empty="true"><li><dl indent="9">
          <dt>note 1:</dt><dd>
                for options to be processed by the first destination that
                appears in the IPv6 Destination Address field plus
                subsequent destinations listed in the Routing header.
          </dd><dt>note 2:</dt><dd>
                for options to be processed only by the final destination
                of the packet.
          </dd>
      </dl></li></ul>
    </li>
  </ul>
</blockquote>
  <t>
          The following text replaces the fourth paragraph of
          <xref target="RFC8200" sectionFormat="of" section="4.2"/>.
  </t>
  <t>
        OLD (RFC8200)
  </t>
<blockquote>
  <ul empty="true"><li>
   The third-highest-order bit of the Option Type specifies whether or
   not the Option Data of that option can change en route to the
   packet's final destination.  When an Authentication header is present
   in the packet, for any option whose data may change en route, its
   entire Option Data field must be treated as zero-valued octets when
   computing or verifying the packet's authenticating value.
  </li></ul>
</blockquote>
  <t>
        NEW:
  </t>
<blockquote>
  <ul empty="true"><li>
   The third-highest-order bit of the Option Type specifies whether or
   not the Option Data of that option can change en route to the
          packet's final destination.
  </li></ul>
</blockquote>
  <t>
          The following text replaces the third paragraph after the list and
          notes of <xref target="RFC8200" sectionFormat="of" section="4.6"/>.
  </t>
  <t>
        OLD (RFC8200)
  </t>
<blockquote>
  <ul empty="true"><li>
   Note that there are two possible ways to encode optional destination
   information in an IPv6 packet: either as an option in the Destination
   Options header or as a separate extension header.  The Fragment
   header and the Authentication header are examples of the latter
   approach.  Which approach can be used depends on what action is
   desired of a destination node that does not understand the optional
   information:
  </li></ul>
</blockquote>
  <t>
        NEW:
  </t>
<blockquote>
  <ul empty="true"><li>
   Note that there are two possible ways to encode optional destination
   information in an IPv6 packet: either as an option in the Destination
   Options header or as a separate extension header.  The Fragment
   is an example of the latter approach.  Which approach can be used depends
   on what action is desired of a destination node that does not understand
   the optional information:
  </li></ul>
</blockquote>
  <t>
          The following text replaces the first paragraph
          of <xref target="RFC8200" sectionFormat="of" section="8.4"/>.
  </t>
  <t>
        OLD (RFC8200)
  </t>
<blockquote>
  <ul empty="true"><li>
   When an upper-layer protocol sends one or more packets in response to
   a received packet that included a Routing header, the response
   packet(s) must not include a Routing header that was automatically
   derived by "reversing" the received Routing header UNLESS the
   integrity and authenticity of the received Source Address and Routing
   header have been verified (e.g., via the use of an Authentication
   header in the received packet).  In other words, only the following
   kinds of packets are permitted in response to a received packet
   bearing a Routing header:
  </li></ul>
</blockquote>
  <t>
        NEW:
  </t>
<blockquote>
  <ul empty="true"><li>
   When an upper-layer protocol sends one or more packets in response to
   a received packet that included a Routing header, the response
   packet(s) must not include a Routing header that was automatically
   derived by "reversing" the received Routing header UNLESS the
   integrity and authenticity of the received Source Address and Routing
   header have been verified.  In other words, only the following
   kinds of packets are permitted in response to a received packet
   bearing a Routing header:
  </li></ul>
</blockquote>

  <t>
          The following reference should be removed from
          <xref target="RFC8200" sectionFormat="of" section="10.2"/>.
  </t><t>
        REMOVE (from RFC8200):
  </t>
<blockquote>
  <ul empty="true" indent="3"><li><dl indent="11">
          <dt>[RFC4302] </dt><dd>
        Kent, S., "IP Authentication Header", RFC 4302,
        DOI 10.17487/RFC4302, December 2005,
        &lt;http://www.rfc-editor.org/info/rfc4302\&gt;.
        </dd></dl>
  </li></ul>
</blockquote>

</section>

<section title="Updates to RFC4303 for AH deprecation">
  <t>
          <xref target="RFC4303"/> is updated to remove references to the
          Authentication header.
  </t>
  <t>
          The following text replaces the first paragraph
          of <xref target="RFC4303" sectionFormat="of" section="1"/>.
  </t>
  <t>
        OLD (RFC4303)
  </t>
<blockquote>
  <ul empty="true"><li>
   This document assumes that the reader is familiar with the terms and
   concepts described in the "Security Architecture for the Internet
   Protocol" [Ken-Arch], hereafter referred to as the Security
   Architecture document.  In particular, the reader should be familiar
   with the definitions of security services offered by the
   Encapsulating Security Payload (ESP) and the IP Authentication Header
   (AH), the concept of Security Associations, the ways in which ESP can
   be used in conjunction with AH, and the different key management
   options available for ESP and AH.
  </li></ul>
</blockquote>
  <t>
        NEW
  </t>
<blockquote>
  <ul empty="true"><li>
   This document assumes that the reader is familiar with the terms and
   concepts described in the "Security Architecture for the Internet
   Protocol" [Ken-Arch], hereafter referred to as the Security
   Architecture document.  In particular, the reader should be familiar
   with the definitions of security services offered by the
   Encapsulating Security Payload (ESP), the concept of Security Associations,
   and the different key management options available for ESP.
  </li></ul>
</blockquote>

  <t>
          The following text replaces the third paragraph
          of <xref target="RFC4303" sectionFormat="of" section="1"/>.
  </t>
  <t>
        OLD (RFC4303)
  </t>
<blockquote>
  <ul empty="true"><li>
   The Encapsulating Security Payload (ESP) header is designed to
   provide a mix of security services in IPv4 and IPv6 [DH98].  ESP may
   be applied alone, in combination with AH [Ken-AH], or in a nested
   fashion (see the Security Architecture document [Ken-Arch]).
   Security services can be provided between a pair of communicating
   hosts, between a pair of communicating security gateways, or between
   a security gateway and a host.  For more details on how to use ESP
   and AH in various network environments, see the Security Architecture
   document [Ken-Arch].
  </li></ul>
</blockquote>
  <t>
        NEW
  </t>
<blockquote>
  <ul empty="true"><li>
        The Encapsulating Security Payload (ESP) header is designed to
        provide a mix of security services in IPv4 and IPv6 [DH98].
        Security services can be provided between a pair of
        communicating hosts, between a pair of communicating security
        gateways, or between a security gateway and a host.  For more
        details on how to use ESP in various network environments, see
        the Security Architecture document [Ken-Arch].
  </li></ul>
</blockquote>

  <t>
          The following text replaces the sixth paragraph
          of <xref target="RFC4303" sectionFormat="of" section="1"/>.
  </t>
  <t>
        OLD (RFC4303)
  </t>
<blockquote>
  <ul empty="true"><li>
   Using encryption-only for confidentiality is allowed by ESP.
   However, it should be noted that in general, this will provide
   defense only against passive attackers.  Using encryption without a
   strong integrity mechanism on top of it (either in ESP or separately
   via AH) may render the confidentiality service insecure against some
   forms of active attacks [Bel96, Kra01].  Moreover, an underlying
   integrity service, such as AH, applied before encryption does not
   necessarily protect the encryption-only confidentiality against
   active attackers [Kra01].  ESP allows encryption-only SAs because
   this may offer considerably better performance and still provide
   adequate security, e.g., when higher-layer authentication/integrity
   protection is offered independently.  However, this standard does not
   require ESP implementations to offer an encryption-only service.
  </li></ul>
</blockquote>
  <t>
        NEW
  </t>
<blockquote>
  <ul empty="true"><li>
   Using encryption-only for confidentiality is allowed by ESP.
   However, it should be noted that in general, this will provide
   defense only against passive attackers.  Using encryption without a
   strong integrity mechanism on top of it (either in ESP or separately
   via another protocol) may render the confidentiality service insecure
   against some forms of active attacks [Bel96, Kra01].  Moreover, an
   underlying integrity service applied before encryption does not
   necessarily protect the encryption-only confidentiality against
   active attackers [Kra01].  ESP allows encryption-only SAs because
   this may offer considerably better performance and still provide
   adequate security, e.g., when higher-layer authentication/integrity
   protection is offered independently.  However, this standard does not
   require ESP implementations to offer an encryption-only service.
  </li></ul>
</blockquote>

  <t>
          The following text replaces the sixth paragraph
          of <xref target="RFC4303" sectionFormat="of" section="1"/>.
  </t>
  <t>
        OLD (RFC4303)
  </t>
<blockquote>
  <ul empty="true"><li>
        Data origin authentication and connectionless integrity are joint
        services, hereafter referred to jointly as "integrity".  (This term
        is employed because, on a per-packet basis, the computation being
        performed provides connectionless integrity directly; data origin
        authentication is provided indirectly as a result of binding the key
        used to verify the integrity to the identity of the IPsec peer.
        Typically, this binding is effected through the use of a shared,
        symmetric key.)  Integrity-only ESP MUST be offered as a service
        selection option, e.g., it must be negotiable in SA management
        protocols and MUST be configurable via management interfaces.
        Integrity-only ESP is an attractive alternative to AH in many
        contexts, e.g., because it is faster to process and more amenable to
        pipelining in many implementations.
  </li></ul>
</blockquote>
  <t>
        NEW
  </t>
<blockquote>
  <ul empty="true"><li>
        Data origin authentication and connectionless integrity are joint
        services, hereafter referred to jointly as "integrity".  (This term
        is employed because, on a per-packet basis, the computation being
        performed provides connectionless integrity directly; data origin
        authentication is provided indirectly as a result of binding the key
        used to verify the integrity to the identity of the IPsec peer.
        Typically, this binding is effected through the use of a shared,
        symmetric key.)  Integrity-only ESP MUST be offered as a service
        selection option, e.g., it must be negotiable in SA management
        protocols and MUST be configurable via management interfaces.
  </li></ul>
</blockquote>

  <t>
          The following text replaces the third list item
          of <xref target="RFC4303" sectionFormat="of" section="2.1"/>.
  </t>
  <t>
        OLD (RFC4303)
  </t>
<blockquote>
  <ul empty="true" indent="3"><li><dl indent="4">
        <dt>3:</dt><dd>
        Search the SAD for a match on only {SPI} if the receiver has
        chosen to maintain a single SPI space for AH and ESP, or on
        {SPI, protocol} otherwise.  If an SAD entry matches, then
        process the inbound ESP packet with that matching SAD entry.
        Otherwise, discard the packet and log an auditable event.
        </dd></dl>
  </li></ul>
</blockquote>
  <t>
        NEW
  </t>
<blockquote>
  <ul empty="true" indent="3"><li><dl indent="4">
          <dt>3:</dt><dd>
          Search the SAD for a match on {SPI, protocol}.  If an SAD
          entry matches, then process the inbound ESP packet with that
          matching SAD entry.  Otherwise, discard the packet and log an
          auditable event.
        </dd></dl>
  </li></ul>
</blockquote>

  <t>
          The following text replaces the first paragraph
          of <xref target="RFC4303" sectionFormat="of" section="3.1.1"/>.
  </t>
  <t>
        OLD (RFC4303)
  </t>
<blockquote>
  <ul empty="true"><li>
        In transport mode, ESP is inserted after the IP header and before a
        next layer protocol, e.g., TCP, UDP, ICMP, etc.  In the context of
        IPv4, this translates to placing ESP after the IP header (and any
        options that it contains), but before the next layer protocol.  (If
        AH is also applied to a packet, it is applied to the ESP header,
        Payload, ESP trailer, and ICV, if present.)  (Note that the term
        "transport" mode should not be misconstrued as restricting its use to
        TCP and UDP.)  The following diagram illustrates ESP transport mode
        positioning for a typical IPv4 packet, on a "before and after" basis.
        (This and subsequent diagrams in this section show the ICV field, the
        presence of which is a function of the security services and the
        algorithm/mode selected.)
  </li></ul>
</blockquote>
  <t>
        NEW
  </t>
<blockquote>
  <ul empty="true"><li>
        In transport mode, ESP is inserted after the IP header and before a
        next layer protocol, e.g., TCP, UDP, ICMP, etc.  In the context of
        IPv4, this translates to placing ESP after the IP header (and any
        options that it contains), but before the next layer protocol.
        (Note that the term "transport" mode should not be misconstrued as
        restricting its use to TCP and UDP.)  The following diagram
        illustrates ESP transport mode positioning for a typical IPv4
        packet, on a "before and after" basis.  (This and subsequent
        diagrams in this section show the ICV field, the presence of
        which is a function of the security services and the algorithm/mode
        selected.)
  </li></ul>
</blockquote>

  <t>
          The following reference should be removed from
          <xref target="RFC4303" sectionFormat="of" section="10.2"/>.
  </t>
  <t>
        REMOVE
  </t>
<blockquote>
  <ul empty="true" indent="3"><li><dl indent="10">
        <dt>[Ken-AH]</dt><dd>
          Kent, S., "IP Authentication Header", RFC 4302, December 2005.
        </dd></dl>
  </li></ul>
</blockquote>

</section>
<section title="IANA Considerations"><t>

        IANA is requested to mark "Authentication Header" in the "Protocol
        Numbers registry <xref target="IANA-PROTO-NUMS"/> as "Deprecated",
        and to mark "Authentication Header" in the "Internet
        Protocol Version 6 (IPv6) Parameters"  registry
        <xref target="IANA-IPV6-PARAMS"/> as "Deprecated".
</t>
<t>
        IANA is requested to add a Status field to the IKEv2 Security Protocol
        Identifiers registry, and to mark AH as deprecated with a reference of
        this document.
</t>
<t>
        IANA is requested to close the IKEv2 Notification IPCOMP Transform IDs registry.
</t>

</section>

<section title="Security Considerations" anchor="security"><t>
        This entire document is a proposal to enhance security by obsoleting the
        largely unused and deprecated AH and IPCOMP protocols from the IPsec suite.
</t>
</section>

</middle>

<?rfc needLines="20"?>
<back>
<references title="Normative References">
  <?rfc include="reference.RFC.2119"?>
  <?rfc include="reference.RFC.8200"?>
  <?rfc include="reference.RFC.8174"?>
  <?rfc include="reference.RFC.4302"?>
  <?rfc include="reference.RFC.4303"?>
  <?rfc include="reference.RFC.2663"?>
  <?rfc include="reference.RFC.8221"?>
  <?rfc include="reference.RFC.5840"?>
</references>
<references title="Informative References">
  <?rfc include="reference.RFC.8754"?>
  <?rfc include="reference.RFC.5340"?>
  <?rfc include="reference.RFC.7166"?>
  <?rfc include="reference.RFC.7321"?>
  <?rfc include="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.acee-lsr-ospfv3-deprecate-ah.xml"?>
  <?rfc include="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ipsecme-esp-ah-reqts.xml"?>
  <reference anchor="CRIME">
    <front>
      <title>The CRIME attack</title>
      <author initials="J." surname="Rizzo" fullname="Juliano Rizzo"/>
      <author initials="T." surname="Duong" fullname="Thai Duong"/>
      <date month="September" year="2012"/>
    </front>
    <seriesInfo name="Ekoparty Security Conference" value="2012"/>
  </reference>
  <reference anchor="BREACH" target="http://breachattack.com/resources/BREACH%20-%20SSL,%20gone%20in%2030%20seconds.pdf">
    <front>
      <title>BREACH: Reviving the CRIME Attack</title>
      <author initials="Y." surname="Gluck" fullname="Yoel Gluck"/>
      <author initials="N." surname="Harris" fullname="Neal Harris"/>
      <author initials="A." surname="Prado" fullname="Angelo Prado"/>
      <date month="July" year="2013"/>
    </front>
  </reference>
        <reference anchor="IANA-IPV6-PARAMS" target="https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml">
    <front>
      <title>Internet Protocol Version 6 (IPv6) Parameters: IPv6 Extension Header Types"
</title>
      <author/>
      <date/>
    </front>
</reference>

        <reference anchor="IANA-PROTO-NUMS" target="https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml">
    <front>
      <title>Protocol Numbers</title>
      <author/>
      <date/>
    </front>
</reference>

<reference anchor="depeh"
        target="https://www.ietf.org/archive/id/draft-herbert-deprecate-eh-00.txt">
          <front>
            <title>Infight Removal of IPv6 Hop-by-Hop and Routing Headers</title>
            <author surname="Herbert" fullname="Tom Herbert"/>
            <date month="February" year="2024"/>
          </front>
  </reference>
  <reference anchor="inflrm"
       target="https://www.ietf.org/archive/id/draft-herbert-eh-inflight-removal-04.txt">
          <front>
            <title>Infight Removal of IPv6 Hop-by-Hop and Routing Headers</title>
            <author surname="Herbert" fullname="Tom Herbert"/>
            <date month="February" year="2024"/>
          </front>
</reference>
  <reference anchor="ah-to-hist"
       target="https://https://www.ietf.org/archive/id/draft-bhatia-moving-ah-to-historic-00.txt">
          <front>
            <title>Moving Authentication Header (AH) to Historic</title>
            <author surname="Bhatia" fullname="M. Bhatia"/>
            <date month="December" year="2011"/>
          </front>
</reference>
  <reference anchor="ah-avoid"
       target="https://www.ietf.org/archive/id/draft-bhatia-ipsecme-avoiding-ah-00.txt">
          <front>
            <title>Avoiding Authentication Header (AH)</title>
            <author surname="Bhatia" fullname="M. Bhatia"/>
            <date month="December" year="2011"/>
          </front>
</reference>

  <reference anchor="ml-esp-ah-reqts" target="https://mailarchive.ietf.org/arch/msg/ipsec/HoZYWhu_Sb_L_4RVqO_T1k8fo9w/">
    <front>
      <title>[IPsec] I-D Action: draft-ietf-ipsecme-esp-ah-reqts-03.txt</title>
      <author/>
      <date day="31" month="March" year="2014"/>
    </front>
    <refcontent>IPsec mailing list</refcontent>
  </reference>
  <reference anchor="ml-wesp-roadmap" target="https://mailarchive.ietf.org/arch/msg/ipsec/FzNFom4GQ6bUuFmYMDGDnufDtbQ/">
    <front>
      <title>Re: [IPsec] WESP - Roadmap Ahead</title>
      <author/>
      <date day="11" month="November" year="2009"/>
    </front>
    <refcontent>IPsec mailing list</refcontent>
  </reference>
  <reference anchor="ml-ah-history" target="https://mailarchive.ietf.org/arch/msg/ipsec/bSo90nasKyApHKVt6iEA0TkZrbU/">
    <front>
      <title>[IPsec] On the history of requiring / deprecating AH support</title>
      <author fullname="Paul Wouters"/>
      <date day="20" month="July" year="2026"/>
    </front>
    <refcontent>IPsec mailing list</refcontent>
  </reference>
</references>

</back>

</rfc>

<!-- Local Variables: -->
<!-- fill-column:72 -->
<!-- End: -->
