During the IPsec Workshop last week, there was a talk about removing
old unused code from the kernel and AH came up. It reminded me that I
had an open action item for the WG to find old message threads over who
the people were who last objected to it becoming Deprecated.


One message thread was on draft-ietf-ipsecme-esp-ah-reqts discussion.
This draft became RFC 7321 and was obsoleted by RFC 8221:
https://mailarchive.ietf.org/arch/msg/ipsec/HoZYWhu_Sb_L_4RVqO_T1k8fo9w/

Another thread was during WESP discussion:
https://mailarchive.ietf.org/arch/msg/ipsec/FzNFom4GQ6bUuFmYMDGDnufDtbQ/

Note all the below quotes are in the time frame of around 2009 (WESP)
and 2014 (pre RFC 7321 discussion)



In these threads, there are the following bits related to AH:

Bhatia, Manav wrote:

        I agree that it is a trifle too early to start deprecating AH,
        though I wouldn't mind doing so. OTOH, don't most WGs already
        suggest AH as a MAY, and ESP-NULL as a MUST?

Steve Kent responded:

        Not always. For example, I believe that OSPF security makes use of
        AH, outside the IPsec context.

And Merike Kao responded to that:

        All of the standards I've seen that explicitly define how IPsec is to
        be used for authentication (including RFC 4552 - Authentication/
        Confidentiality for OSPFv3) say that for authentication ESP-Null MUST
        be used and AH MAY.

        Which RFCs specify AH specifically as a MUST for authentication/
        integrity?

        Now on the flip side, in practical implementations, most vendors I
        know of started off with AH being used for OSPFv3 and I doubt in
        practice people are using ESP-Null.  Would love to be wrong here :)

"Bhatia, Manav" followed up:

        The latest PIM-SM authentication document
        (http://tools.ietf.org/html/draft-ietf-pim-sm-linklocal-08)
        uses IPSec to authenticate link-local messages in PIM-SM. It
        too says that ESP is a MUST while use of AH is optional.

        > Which RFCs specify AH specifically as a MUST for authentication/
        > integrity?

        I am not aware of any that do that.

        > Now on the flip side, in practical implementations, most vendors I
        > know of started off with AH being used for OSPFv3 and I doubt in
        > practice people are using ESP-Null.  Would love to be wrong here :)

        I don't think this is really true. I know of at least two major
        vendors that use ESP-NULL and one of them doesn't even support AH.


RJ Atkinson wrote:

        Lastly, it is ALWAYS possible for an intermediate system (e.g. router
        with ACLs) to parse past the AH to see transport-layer headers,
        but even the best of the heuristics for parsing past an ESP header
        are not 100% reliable.

        [IMPORTANT NOTE: A previous employer of mine shipped IPv4/IPv6 routers
        with forwarding silicon that could parse AH and any other IPv4/IPv6
        options - at wire-speed for 10 Gbps interfaces - 10 years ago.  I am
        aware of 2 other very widely deployed implementations with the same
        ability to parse past AH to read TCP/UDP ports and apply ACLs at
        wire-speed.  So this is a widely deployed capability, rather than
        theory. :-]

Steve Kent wrote:

        I would have no problem deprecating AH in the context of the IPsec
        architecture document, if others agree. It is less efficient  than
        ESP-NULL. However, other WGs have cited AH as the IPsec protocol of
        choice for integrity/authentication in their environments, so there
        will be a need to coordinate with them, and it may be unacceptable to
        kill AH as a standalone protocol for them.

Bhatia, Manav (Manav)"  wrote:

        There are currently a lot of applications (routing/signaling for
        instance) where we use ESP-NULL for integrity protection

Steve Kent wrote:

        Whoops, I was wrong. I looked at 4552 and they do cite ESP-NULL
        (although they never refer to it that way) as a MUST, and AH as a MAY.

Manav wrote:

        In fact there was some discussion of using IPSec for OSPFv2
        authentication, and that proposal too uses ESP as a MUST and AH
        as a MAY.  http://tools.ietf.org/html/draft-gupta-ospf-ospfv2-sec-01

Daniel Migault wrote (at the time, would be interested in hearing his update)

        AH is a security feature we need to keep for header authentication.


Steven Bellovin wrote:

        I believe that most such uses date from the "just use IPsec"
        era of security design.  I further suspect that it is very rarely
        used or even implemented in practice, and that in many cases it
        wouldn't in fact have been usable.

        Yes, as a matter of due diligence someone needs to check if it's
        still mandated for anything, and if so figure out what to do.
        But I'd be very happy if AH were to go awa; I concluded in 1995
        that it was pretty useless.

"Bhatia, Manav wrote:

        > AH is a security feature we need to keep for header authentication

        Am really not sure about the value that AH adds even in case of
        header authentication.

        So what fields does AH protect:

        Version, Payload length, Next Header, Source IP and dest IP

        The only field worth modifying is the source and the dest IP. Now
        note that an IPSec SA is established between a pair of source IP
        and dest IP. Upon receipt of a packet containing an AH header,
        the receiver determines the appropriate (unidirectional) SA,
        based on the dest IP, security protocol (AH), and the SPI (it
        could also include the source IP). If the attacker modifies (or
        spoofs) either of the source or the dest IP, the SA lookup will
        fail and the receiver will regardless discard the packet. So
        what are we gaining by AH "header authentication"?

        AH can only add value over ESP-NULL if there are instances
        where despite address spoofing we erroneously process the IPSec
        packet. I don't see that happening, so is this really an issue?

Richard Graveman followed up with:

        I think this argument implicitly assumes unicast.

and Steve Kent followed up with:

        you forgot IPv4 and IPv6  options that have predictable values
        at the destination

And Manav followed up again:

        Lets start with the IPv6 Type 0 Route Header (aka "Source Routing"
        in v4 parlance), which is a mutable but a predictable extension
        header. It has been discovered and is widely known that these
        functionalities can be exploited in order to perform remote
        network discovery, can be used to bypass firewalls and can be
        used for DoS attacks. RFC 5095 has more details on this. This
        has been deprecated and nobody is really using this.

        Hop-by-Hop Options and Destination Extension Headers

        These options contain a bit that indicates whether the option
        might change (unpredictably) during transit.  For any option for
        which contents may change en-route, the entire "Option Data"
        field must be treated as zero-valued octets when computing or
        verifying the ICV.  The Option Type and Opt Data Len are included
        in the ICV calculation. All options for which the bit indicates
        immutability are included in the ICV calculation.

        If we were to use ESP-NULL instead then there is no way to
        validate whether the Option Type and Opt Data Len is valid or
        not till the processing is done at the receiving end.

        So, what kind of attack can be possibly done by changing these
        values? What is the real risk involved here?

        Fragmentation Header

        Fragmentation occurs after AH processing and the reassembly,
        before AH processing on the other end. So, there is really no
        gain there too.

Manav also wrote:

        Yup, that's correct I had not considered multicast.

        SSM groups would use a 3-tuple SA identifier composed of an SPI,
        a dest mcast address, and the source IP. An Any-Source Multicast
        group SA would only require an SPI and a dest mcast identifier. If
        either of the IPs change, wouldn't the SAD lookup fail?

Steven Bellovin also wrote:

        I did go through the analysis you suggest for IPv4 and concluded
        that nothing was both protectable and useful.  I also noted the
        following issue:

        Furthermore, the AH spec says that we can't
        enumerate the v4 options, and hence whether or not they should
        be included or not -- but RFC1122 says that unknown IP options
        MUST be silently ignored.  So an implementation can receive an
        option that it doesn't recognize, doesn't know if it changes
        en route, must be ignored anyway -- but may or may not be included
        in the AH calculation, and the receiver doesn't know.

        Note, of course, that that was from 1995; I have not repeated
        the analysis for newer AH or IPv6 specs.




I asked Gemini to give me a list of RFCs that mandated AH and that had
AH and MAY and it gave me:

Summary Table
RFC             Title                           AH Status Requirement
RFC 4301        IP Security Architecture        MUST support AH in IPsec 
implementations
RFC 4302        IP Authentication Header        MUST follow for AH header 
implementations
RFC 8221        Cryptographic Algorithm Requirements for ESP & AH   MUST 
implement specific AH algorithms if AH is built
RFC 4552        OSPFv3 Security MAY support AH (MUST support ESP)
RFC 5796        PIM-SM Link-Local Security      MAY support AH (MUST support 
ESP)
RFC 8213        DHCP Relay/Server Security      MAY support AH (MUST support 
ESP)



When working on the IKEv1 deprecation in draft-pwouters-ikev1-ipsec-graveyard,
I tried to also deprecate AH. But that effort seems to have mostly been done
in the hallways and a single line on one presentation by me during the
IETF104, but I suspect I was told that AH deprecation should go into
an 8221bis document.

https://datatracker.ietf.org/meeting/104/materials/slides-104-ipsecme-ikev1-graveyard-00




I am still asking some routing people:

        Do people really deploy IPsec AH protection for OSPFv3 as claimed
        12 years ago? Did they switch to IPsec ESP NULL? MacSEC? TCP-OA? Or
        something else ?


But from what I can find, and based on the discussion bits I found,
there was already no expectation of much AH deployment and a trend
towards wanting to deprecate it. It is now 17 and 15 years since those
discussions.

Paul

_______________________________________________
IPsec mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to