Network Working Group A. Keromytis Request for Comments: 2857 University of Pennsylvania Category: Standards Track N. Provos Center for Information Technology Integration June 2000 The Use of HMAC-RIPEMD-160-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 (2000). All Rights Reserved.
AbstractThis memo describes the use of the HMAC algorithm [RFC 2104] in conjunction with the RIPEMD-160 algorithm [RIPEMD-160] as an authentication mechanism within the revised IPSEC Encapsulating Security Payload [ESP] and the revised IPSEC Authentication Header [AH]. HMAC with RIPEMD-160 provides data origin authentication and integrity protection. Further information on the other components necessary for ESP and AH implementations is provided by [Thayer97a]. RIPEMD-160] 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-RIPEMD-160-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.
In this memo, HMAC-RIPEMD-160-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]. RIPEMD-160] describes the underlying RIPEMD-160 algorithm, while [RFC 2104] describes the HMAC algorithm. The HMAC algorithm provides a framework for inserting various hashing algorithms such as RIPEMD- 160. HMAC-RIPEMD-160-96 operates on 64-byte blocks of data. Padding requirements are specified in [RIPEMD-160] and are part of the RIPEMD-160 algorithm. Padding bits are only necessary in computing the HMAC-RIPEMD-160 authenticator value and MUST NOT be included in the packet. HMAC-RIPEMD-160-96 produces a 160-bit authenticator value. This 160-bit value can be truncated as described in RFC2104. 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 160-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-RIPEMD-160-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". [RIPEMD-160] provides some performance analysis. As of this writing no detailed performance analysis has been done of HMAC or HMAC combined with RIPEMD-160. [RFC 2104] outlines an implementation modification which can improve per-packet performance without affecting interoperability.
RFC 2104], for use with either ESP or AH a fixed key length of 160-bits MUST be supported. Key lengths other than 160-bits SHALL NOT be supported. A key length of 160-bits was chosen based on the recommendations in [RFC 2104] (i.e. key lengths less than the authenticator length decrease security strength and keys longer than the authenticator length do not significantly increase security strength). [RFC 2104] discusses requirements for key material, which includes a discussion on requirements for strong randomness. A strong pseudo- random function MUST be used to generate the required 160-bit key. Implementors should refer to RFC 1750 for guidance on the requirements for such functions. At the time of this writing there are no specified weak keys for use with HMAC. This does not mean to imply that weak keys do not exist. If, at some point, a set of weak keys for HMAC are identified, the use of these weak keys must be rejected followed by a request for replacement keys or a newly negotiated Security Association. [ESP] describes the general mechanism to obtain keying material for the ESP transform. The derivation of the key from some amount of keying material does not differ between the manual and automatic key management mechanisms. In order to provide data origin authentication, the key distribution mechanism must ensure that unique keys are allocated and that they are distributed only to the parties participating in the communication. [RFC 2104] states that for "minimally reasonable hash functions" the "birthday attack" is impractical. For a 64-byte block hash such as HMAC-RIPEMD-160-96, an attack involving the successful processing of 2**64 blocks would be infeasible unless it were discovered that the underlying hash had collisions after processing 2**30 blocks. (A hash with such weak collision-resistance characteristics would generally be considered to be unusable.) No time-based attacks are discussed in the document. While it it still cryptographically prudent to perform frequent rekeying, current literature does not include any recommended key lifetimes for HMAC-RIPEMD. When recommendations for HMAC-RIPEMD key lifetimes become available they will be included in a revised version of this document.
RFC 2104] also discusses the potential additional security which is provided by the truncation of the resulting hash. Specifications which include HMAC are strongly encouraged to perform this hash truncation. As [RFC 2104] provides a framework for incorporating various hash algorithms with HMAC, it is possible to replace RIPEMD-160 with other algorithms such as SHA-1. [RFC 2104] contains a detailed discussion on the strengths and weaknesses of HMAC algorithms. As is true with any cryptographic algorithm, part of its strength lies in the correctness of the algorithm implementation, the security of the key management mechanism and its implementation, the strength of the associated secret key, and upon the correctness of the implementation in all of the participating systems. [Kapp97] contains test vectors and example code to assist in verifying the correctness of HMAC-RIPEMD-160-96 code. [RIPEMD-160] 3.ISO/IEC 10118-3:1998, "Information technology - Security techniques - Hash-functions - Part 3: Dedicated hash-functions," International Organization for Standardization, Geneva, Switzerland, 1998.
[RFC 2104] Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, September, 1997. [Bellare96a] Bellare, M., Canetti, R., Krawczyk, H., "Keying Hash Functions for Message Authentication", Advances in Cryptography, Crypto96 Proceeding, June 1996. [ESP] Kent, S. and R. Atkinson, "IP Encapsulating Security Payload (ESP)", RFC 2406, November 1998. [AH] Kent, S. and R. Atkinson, "IP Authentication Header", RFC 2402, November 1998. [Thayer97a] Thayer, R., Doraswamy, N. and R. Glenn, "IP Security Document Roadmap", RFC 2411, November 1998. [Kapp97] Kapp, J., "Test Cases for HMAC-RIPEMD160 and HMAC- RIPEMD128", RFC 2286, March 1998. [RFC 1750] Eastlake 3rd, D., Crocker, S. and J. Schiller, "Randomness Recommendations for Security", RFC 1750, December 1994. [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
The IPsec working group can be contacted through the chairs: Robert Moskowitz International Computer Security Association EMail: email@example.com Ted T'so VA Linux Systems EMail: firstname.lastname@example.org
Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society.