Network Working Group C. Madson
Request for Comments: 2403 Cisco Systems Inc.
Category: Standards Track R. Glenn
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 (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].
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",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
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].
[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]