The Use of HMAC-MD5-96 within ESP and AH
RFC 2403

Document Type RFC - Proposed Standard (November 1998; No errata)
Last updated 2013-03-02
Stream IETF
Formats plain text pdf html
Stream WG state (None)
Document shepherd No shepherd assigned
IESG IESG state RFC 2403 (Proposed Standard)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                          C. Madson
Request for Comments: 2403                            Cisco Systems Inc.
Category: Standards Track                                       R. Glenn
                                                           November 1998

                The Use of HMAC-MD5-96 within ESP and AH

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1998).  All Rights Reserved.


   This memo describes the use of the HMAC algorithm [RFC-2104] in
   conjunction with the MD5 algorithm [RFC-1321] as an authentication
   mechanism within the revised IPSEC Encapsulating Security Payload
   [ESP] and the revised IPSEC Authentication Header [AH]. HMAC with MD5
   provides data origin authentication and integrity protection.

   Further information on the other components necessary for ESP and AH
   implementations is provided by [Thayer97a].

1.  Introduction

   This memo specifies the use of MD5 [RFC-1321] combined with HMAC
   [RFC-2104] as a keyed authentication mechanism within the context of
   the Encapsulating Security Payload and the Authentication Header.
   The goal of HMAC-MD5-96 is to ensure that the packet is authentic and
   cannot be modified in transit.

   HMAC is a secret key authentication algorithm. Data integrity and
   data origin authentication as provided by HMAC are dependent upon the
   scope of the distribution of the secret key. If only the source and
   destination know the HMAC key, this provides both data origin
   authentication and data integrity for packets sent between the two
   parties; if the HMAC is correct, this proves that it must have been
   added by the source.

Madson & Glenn              Standards Track                     [Page 1]
RFC 2403        The Use of HMAC-MD5-96 within ESP and AH   November 1998

   In this memo, HMAC-MD5-96 is used within the context of ESP and AH.
   For further information on how the various pieces of ESP - including
   the confidentiality mechanism -- fit together to provide security
   services, refer to [ESP] and [Thayer97a]. For further information on
   AH, refer to [AH] and [Thayer97a].

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   document are to be interpreted as described in [RFC-2119].

2. Algorithm and Mode

   [RFC-1321] describes the underlying MD5 algorithm, while [RFC-2104]
   describes the HMAC algorithm. The HMAC algorithm provides a framework
   for inserting various hashing algorithms such as MD5.

   HMAC-MD5-96 operates on 64-byte blocks of data.  Padding requirements
   are specified in [RFC-1321] and are part of the MD5 algorithm.  If
   MD5 is built according to [RFC-1321], there is no need to add any
   additional padding as far as HMAC-MD5-96 is concerned.  With regard
   to "implicit packet padding" as defined in [AH], no implicit packet
   padding is required.

   HMAC-MD5-96 produces a 128-bit authenticator value.  This 128-bit
   value can be truncated as described in RFC 2104.  For use with either
   ESP or AH, a truncated value using the first 96 bits MUST be
   supported.  Upon sending, the truncated value is stored within the
   authenticator field.  Upon receipt, the entire 128-bit value is
   computed and the first 96 bits are compared to the value stored in
   the authenticator field.  No other authenticator value lengths are
   supported by HMAC-MD5-96.

   The length of 96 bits was selected because it is the default
   authenticator length as specified in [AH] and meets the security
   requirements described in [RFC-2104].

2.1  Performance

   [Bellare96a] states that "(HMAC) performance is essentially that of
   the underlying hash function".  [RFC-1810] provides some performance
   analysis and recommendations of the use of MD5 with Internet
   protocols.  As of this writing no performance analysis has been done
   of HMAC or HMAC combined with MD5.

   [RFC-2104] outlines an implementation modification which can improve
   per-packet performance without affecting interoperability.

Madson & Glenn              Standards Track                     [Page 2]
Show full document text