rfc-2404

The Use of HMAC-SHA-1-96 within ESP and AH

C. Madson, R. Glenn
date1998-11 streamIETF areasec wgipsec statusPROPOSED STANDARD pages7 canonicalhttps://www.rfc-editor.org/rfc/rfc2404 doi10.17487/RFC2404
This memo describes the use of the HMAC algorithm in conjunction with the SHA-1 algorithm as an authentication mechanism within the revised IPSEC Encapsulating Security Payload and the revised IPSEC Authentication Header. [STANDARDS-TRACK]

Extracted elements (15)

design-rationale §3

A key length of 160-bits was chosen based on RFC-2104 recommendations: key lengths less than the authenticator length decrease security strength, while keys longer than the authenticator length do not significantly increase security strength.

ipsec, crypto, security

design-rationale §5

SHA-1 was never developed to be used as a keyed hash algorithm, whereas HMAC had that design criteria from the onset, making the HMAC wrapper essential for security rather than optional.

ipsec, crypto, security

design-rationale §2

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

ipsec, crypto, security

interoperability-note §4

As of the time of writing, there are no known issues which preclude the use of the HMAC-SHA-1-96 algorithm with any specific ESP cipher algorithm.

ipsec, crypto

interoperability-note §2.1

RFC-2104 outlines an implementation modification that can improve per-packet performance without affecting interoperability with other HMAC-SHA-1-96 implementations.

ipsec, crypto

normative-requirement §3 MUST

A strong pseudo-random function MUST be used to generate the required 160-bit key for HMAC-SHA-1-96.

ipsec, crypto, security

normative-requirement §3 MUST

For use with either ESP or AH, a fixed key length of 160-bits MUST be supported. Key lengths other than 160-bits MUST NOT be supported.

ipsec, crypto, security

protocol-element §2

HMAC-SHA-1-96 operates on 64-byte blocks of data. Padding requirements are specified in FIPS-180-1 and are part of the SHA-1 algorithm; no implicit packet padding is required as defined in AH.

ipsec, crypto

protocol-element §2

HMAC-SHA-1-96 produces a 160-bit authenticator value which is truncated to the first 96 bits for storage in the authenticator field of ESP or AH. Upon receipt, the full 160-bit value is computed and the first 96 bits are compared to the stored value.

ipsec, crypto, security

security-consideration §5

For a 64-byte block hash such as HMAC-SHA-1-96, a birthday attack would require successfully processing 2**80 blocks, which is infeasible unless the underlying hash had collisions after processing only 2**30 blocks.

ipsec, crypto, security

security-consideration §3

If weak keys for HMAC are ever identified, use of those weak keys must be rejected and replacement keys or a newly negotiated Security Association must be requested. At the time of writing, no weak keys for HMAC were specified.

ipsec, crypto, security

security-consideration §3

Periodic key refreshment is a fundamental security practice recommended for HMAC-SHA-1-96 to guard against potential weaknesses, reduce information available to cryptanalysts, and limit damage from exposed keys, even though current attacks do not indicate a specific rekeying frequency.

ipsec, crypto, security

security-consideration §5

Security strength depends on the correctness of the algorithm implementation, key management security, strength of the secret key, and correctness of all participating system implementations. RFC-2202 provides test vectors to verify HMAC-SHA-1-96 correctness.

ipsec, crypto, security

security-consideration §5

The security of HMAC-SHA-1-96 is based upon the strength of HMAC and, to a lesser degree, SHA-1. At the time of writing there were no practical cryptographic attacks against HMAC-SHA-1-96.

ipsec, crypto, security

wire-format §2

The HMAC-SHA-1-96 authenticator field carries the first 96 bits (12 bytes) of the 160-bit HMAC-SHA-1 output, stored upon sending and compared upon receipt.

ipsec, crypto, security