rfc-7321

Cryptographic Algorithm Implementation Requirements and Usage Guidance for Encapsulating Security Payload (ESP) and Authentication Header (AH)

D. McGrew, P. Hoffman
date2014-08 streamIETF areasec wgipsecme statusPROPOSED STANDARD pages11 canonicalhttps://www.rfc-editor.org/rfc/rfc7321 doi10.17487/RFC7321
This document updates the Cryptographic Algorithm Implementation Requirements for the Encapsulating Security Payload (ESP) and Authentication Header (AH). It also adds usage guidance to help in the selection of these algorithms. ESP and AH protocols make use of various cryptographic algorithms to provide confidentiality and/or data origin authentication to protected data communications in the IP Security (IPsec) architecture. To ensure interoperability between disparate implementations, the IPsec standard specifies a set of mandatory-to- implement algorithms. This document specifies the current set of mandatory-to-implement algorithms for ESP and AH, specifies algorithms that should be implemented because they may be promoted to mandatory at some future time, and also recommends against the implementation of some obsolete algorithms. Usage guidance is also provided to help the user of ESP and AH best achieve their security goals through appropriate choices of cryptographic algorithms.

obsoleted by

obsoletes

Extracted elements (24)

design-rationale §4.2

AES-CTR is demoted from SHOULD to MAY because AES-GCM has all the advantages of AES-CTR (efficient counter mode) while also providing authentication, making AES-CTR a strictly inferior choice when AES-GCM is available.

ipsec, crypto

design-rationale §4.3

AES-XCBC-MAC-96 is downgraded from SHOULD+ to SHOULD because despite previous promotion in RFC 4835, it has not seen widespread deployment.

ipsec, crypto

design-rationale §4.1

Authenticated encryption algorithms (like AES-GCM) are encouraged because they provide significant efficiency and throughput advantages, and the tight binding between authentication and encryption is a security advantage over separately applied transforms.

ipsec, crypto, security

design-rationale §4.2

DES-CBC is elevated from SHOULD NOT to MUST NOT because of its small key size, small 64-bit block size, and the existence of publicly demonstrated open-design special-purpose cracking hardware.

ipsec, crypto, security

design-rationale §4.3

HMAC-SHA-256/384/512 are not recommended for new implementations despite good security margins because HMAC-SHA-1 has widespread support and adequate security, AES-GMAC offers better performance, and authenticated encryption algorithms remove the need for separate authentication.

ipsec, crypto

design-rationale §4.2

NULL encryption is required (MUST implement) to maintain consistency with the way services are negotiated in ESP, since ESP encryption is optional and negotiation must be able to express the no-encryption case.

ipsec, crypto

design-rationale §5

The rationale for retaining Triple-DES to provide algorithm diversity against AES failure is disappearing because Triple-DES cannot serve as an AES alternative in high data rate environments or performance-constrained settings; backwards compatibility remains the sole justification.

ipsec, crypto, security

design-rationale §4.2

Triple-DES is demoted from MUST- to MAY due to its small 64-bit block size causing information leakage above the birthday bound, worse performance than AES, and smaller key size than AES; it is retained only for backwards compatibility.

ipsec, crypto

interoperability-note §3

The IPsec community generally prefers ESP with NULL encryption over AH for authentication-only use cases. AH is still required in some protocols and environments where IP header options like source routing headers must be protected, since ESP inherently cannot protect those IP options.

ipsec, security

interoperability-note §2.5

This document obsoletes RFC 4835 and summarizes changes: AES-GCM and AES-GMAC are promoted from MAY to SHOULD+; TripleDES-CBC is demoted from MUST- to MAY; DES-CBC is promoted from SHOULD NOT to MUST NOT; AES-XCBC-MAC-96 is demoted from SHOULD+ to SHOULD; AES-CTR is demoted from SHOULD to MAY.

ipsec, crypto, security

normative-requirement §2.1 SHOULD

AES-GCM with a 16 octet ICV (RFC 4106) SHOULD+ be implemented for ESP authenticated encryption (combined mode). AES-CCM (RFC 4309) MAY be implemented.

ipsec, crypto, security

normative-requirement §2.4 MUST

AH authentication algorithm requirements are identical to ESP authentication algorithm requirements, except that NULL authentication is inapplicable to AH.

ipsec, crypto, security

normative-requirement §2 MAY

All AES mode requirements specified in this document are for 128-bit AES. 192-bit and 256-bit AES MAY be supported for those modes.

ipsec, crypto

normative-requirement §3 MUST NOT

An encryption transform MUST NOT be used with a NULL authentication transform, unless the encryption transform is an authenticated encryption transform from Section 2.1. NULL authentication and NULL encryption MUST NOT both be used simultaneously.

ipsec, crypto, security

normative-requirement §3 SHOULD NOT

Confidentiality without authentication SHOULD NOT be used because the lack of authentication undermines the trustworthiness of encryption.

ipsec, crypto, security

normative-requirement §2.3 MUST

For ESP authentication, HMAC-SHA1-96 (RFC 2404) MUST be implemented. AES-GMAC with AES-128 (RFC 4543) SHOULD+ be implemented. AES-XCBC-MAC-96 (RFC 3566) SHOULD be implemented. NULL authentication MAY be implemented.

ipsec, crypto, security

normative-requirement §2.2 MUST

For ESP encryption, NULL (RFC 2410) and AES-CBC (RFC 3602) MUST be implemented. AES-CTR (RFC 3686) and TripleDES-CBC (RFC 2451) MAY be implemented. DES-CBC (RFC 2405) MUST NOT be implemented.

ipsec, crypto, security

normative-requirement §3 RECOMMENDED

It is NOT RECOMMENDED to use ESP with NULL authentication in conjunction with AH; some configurations of this combination have been shown to be insecure.

ipsec, crypto, security

normative-requirement §3 SHOULD

To provide both confidentiality and authentication, an authenticated encryption transform from Section 2.1 SHOULD be used in ESP with NULL authentication. Alternatively, an ESP encryption transform and ESP authentication transform MAY be used together.

ipsec, crypto, security

normative-requirement §3 SHOULD NOT

Triple-DES SHOULD NOT be used in any scenario in which multiple gigabytes of data will be encrypted with a single key due to the birthday bound of its 64-bit block size.

ipsec, crypto, security

protocol-element §2.1

ESP combined mode (authenticated encryption) algorithms provide both confidentiality and authentication in a single transform and are listed in the ESP encryption transforms IANA registry. These are preferred over separate encryption and authentication transforms.

ipsec, crypto, registry

protocol-element §1.1

The document defines extended requirement keywords MUST- (currently MUST but expected to be demoted) and SHOULD+ (currently SHOULD but likely to be promoted to MUST) to signal anticipated future changes in algorithm requirements.

ipsec, crypto

security-consideration §4.3

SHA-1 has been found to not meet its collision resistance goal; however, HMAC-SHA-1 does not rely on collision resistance and is believed to remain secure. MD5's collision resistance is broken, making its use in digital signatures highly discouraged, though HMAC-MD5 has no known practical vulnerability.

ipsec, crypto, security

security-consideration §7

The security of a cryptographic system depends on the strength of the chosen algorithms, the strength of the keys, and the engineering and administration of the protocol to prevent non-cryptographic bypasses. The algorithms identified as MUST or SHOULD implement are not known to be broken at time of publication but may need revision as cryptographic research advances.

ipsec, crypto, security