rfc-4305

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

D. Eastlake 3rd
date2005-12 streamIETF areasec wgipsec statusPROPOSED STANDARD pages9 canonicalhttps://www.rfc-editor.org/rfc/rfc4305 doi10.17487/RFC4305 errataview
The IPsec series of protocols makes use of various cryptographic algorithms in order to provide security services. The Encapsulating Security Payload (ESP) and the Authentication Header (AH) provide two mechanisms for protecting data being sent over an IPsec Security Association (SA). To ensure interoperability between disparate implementations, it is necessary to specify a set of mandatory-to-implement algorithms to ensure that there is at least one algorithm that all implementations will have available. This document defines the current set of mandatory-to-implement algorithms for ESP and AH as well as specifying algorithms that should be implemented because they may be promoted to mandatory at some future time. [STANDARDS-TRACK]

obsoleted by

obsoletes

Extracted elements (21)

design-rationale §6

DES-CBC is marked SHOULD NOT (downgraded from MUST in RFC 2406) because the IETF deprecated single DES years ago; this document is the first standards-track recognition of that deprecation. NIST also formally proposed withdrawal of single DES in July 2004.

ipsec, security, crypto

design-rationale §1

Future mandatory algorithms are identified today (marked SHOULD+) so they will already be widely implemented by the time they are promoted to MUST, facilitating smooth transitions.

ipsec, security, process

design-rationale §6

HMAC-MD5-96 was downgraded from MUST (in RFC 2402/2406) to MAY because weaknesses have appeared in MD5, even though those weaknesses are not considered to directly affect HMAC-MD5.

ipsec, security, crypto

design-rationale §1

Mandatory-to-implement algorithm requirements are placed in this separate document rather than the main IPsec, ESP, or AH specifications so that as algorithm choices change over time, only this document needs to be updated.

ipsec, security, process

design-rationale §1

The choice of mandatory-to-implement algorithms should be conservative to minimize the likelihood of compromise, while also considering performance since many IPsec deployments are performance-sensitive.

ipsec, security, crypto

interoperability-note §3

For IPsec implementations to interoperate, they must support one or more security algorithms in common; this document defines the minimum common set for ESP and AH to guarantee at least one shared algorithm across all conformant implementations.

ipsec, security

interoperability-note §6

This document obsoletes RFC 2404 and RFC 2406, consolidating algorithm requirements for both AH and ESP that were previously split across the two protocol specifications.

ipsec, security

normative-requirement §3.2 MAY

AH implementations MAY implement HMAC-MD5-96 (RFC 2403); MD5 weaknesses are noted but do not affect HMAC-MD5.

ipsec, security, crypto

normative-requirement §3.2 MUST

AH implementations MUST support HMAC-SHA1-96 (RFC 2404) for authentication.

ipsec, security, crypto

normative-requirement §3.2 SHOULD

AH implementations SHOULD+ implement AES-XCBC-MAC-96 (RFC 3566), which is likely to be promoted to MUST in a future revision.

ipsec, security, crypto

normative-requirement §3.1.1 MAY

ESP implementations MAY implement HMAC-MD5-96 (RFC 2403) for authentication; weaknesses in MD5 are noted but considered not to affect the HMAC construction.

ipsec, security, crypto

normative-requirement §3.1.1 MUST

ESP implementations MUST support HMAC-SHA1-96 for authentication and MUST support NULL authentication.

ipsec, security, crypto

normative-requirement §3.1.1 MUST

ESP implementations MUST support the NULL encryption algorithm to maintain consistency with service negotiation, but encryption and authentication MUST NOT both be NULL simultaneously.

ipsec, security, crypto

normative-requirement §3.1.1 MUST

ESP implementations MUST- support TripleDES-CBC encryption (RFC 2451); this algorithm is currently mandatory but expected to eventually lose that status.

ipsec, security, crypto

normative-requirement §3.1.1 SHOULD

ESP implementations SHOULD+ implement AES-CBC with 128-bit keys (RFC 3602), indicating this algorithm is likely to be promoted to MUST in the future.

ipsec, security, crypto

normative-requirement §3.1.1 SHOULD

ESP implementations SHOULD implement AES-CTR (RFC 3686) for encryption.

ipsec, security, crypto

normative-requirement §3.1.1 SHOULD

ESP implementations SHOULD+ implement AES-XCBC-MAC-96 (RFC 3566) for authentication, as it is likely to be promoted to MUST.

ipsec, security, crypto

normative-requirement §3.1.1 SHOULD NOT

ESP implementations SHOULD NOT implement DES-CBC (RFC 2405) due to its small key size and demonstrated vulnerability to special-purpose cracking hardware.

ipsec, security, crypto

protocol-element §3

Algorithm selection for a particular ESP or AH security association is determined by a negotiation mechanism such as IKE (RFC 2409, IKEv2) or pre-establishment, not hardcoded.

ipsec, security

protocol-element §3.1.2

ESP combined mode algorithms provide both confidentiality and authentication in a single algorithm, requiring proper ESP implementation structuring. No combined algorithm is currently required, but AES-CCM is identified as likely to be of near-future interest.

ipsec, security, crypto

security-consideration §4

Security of cryptographic systems depends on both the strength of the chosen algorithms and the keys used; it also depends on correct protocol engineering to eliminate non-cryptographic bypass paths. All algorithms currently specified are believed unbroken but may be compromised in the future, necessitating periodic document updates.

ipsec, security, crypto