rfc-9045

Algorithm Requirements Update to the Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)

R. Housley
date2021-06 streamIETF areasec wglamps statusPROPOSED STANDARD pages9 canonicalhttps://www.rfc-editor.org/rfc/rfc9045 doi10.17487/RFC9045
This document updates the cryptographic algorithm requirements for the Password-Based Message Authentication Code in the Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF) specified in RFC 4211.

updates

Extracted elements (22)

design-rationale §4.4

AES-GMAC with a 128-bit key was chosen as the SHOULD-level MAC replacement because it is a NIST-standardized authenticated encryption primitive providing strong integrity guarantees and broad hardware support, in contrast to the deprecated DES-MAC and Triple-DES-MAC.

crypto, security

design-rationale §1

RFC 4211's original algorithm choices (HMAC-SHA1, DES-MAC, Triple-DES-MAC) were appropriate in 2005 but are no longer best choices: HMAC-SHA1 has stronger alternatives, DES-MAC provides only 56 bits of security (withdrawn by NIST), and Triple-DES-MAC provides only 112 bits (deprecated by NIST SP 800-131A).

crypto, security, pkix

design-rationale §4.2

SHA-1 was replaced by SHA-256 as the mandatory one-way function because stronger alternatives exist and SHA-1's security margin has diminished, per RFC 6194 security considerations.

crypto, security

design-rationale §4.3

The iteration count recommendation was raised from a minimum of 100 to typically at least 10,000 (per NIST SP 800-63B), while allowing lower counts when automated generation produces high-entropy secrets, reflecting the trade-off between brute-force resistance and server CPU cost.

crypto, security

interoperability-note §3

All implementations MUST continue to support id-PasswordBasedMAC from RFC 4211 for backward compatibility. Support for PBMAC1 (RFC 8018, Section 7.1) is optional (MAY), enabling a migration path to the newer algorithm.

crypto, pkix

normative-requirement §4.4 RECOMMENDED

A nonce value of 12 octets can be processed more efficiently, so that length for the nonce value is RECOMMENDED. For use with CRMF, the maximum MAC length of 16 octets MUST be used.

crypto, pkix

normative-requirement §4.4 MUST

All implementations MUST support HMAC-SHA256 as the MAC algorithm, replacing the previous requirement for HMAC-SHA1. All implementations SHOULD support AES-GMAC with a 128-bit key.

crypto, security, pkix

normative-requirement §3 MUST

All implementations MUST support id-PasswordBasedMAC as presented in Section 4.4 of RFC 4211. Implementations MAY also support PBMAC1 as presented in Section 7.1 of RFC 8018.

crypto, pkix, security

normative-requirement §4.2 MUST

All implementations MUST support SHA-256 as the one-way function (owf) used to compute the key in the MAC process, replacing the previous requirement for SHA-1.

crypto, security, pkix

normative-requirement §4.4 MUST

The GMACParameters nonce may have any number of bits between 8 and (2^64)-1, but it MUST be a multiple of 8 bits. Within the scope of any GMAC key, the nonce value MUST be unique.

crypto, security

normative-requirement §4.3 MUST

The iterationCount MUST be a minimum of 100; however, it SHOULD be as large as server performance will allow, typically at least 10,000 per NIST SP 800-63B. An iteration count smaller than 10,000 may be used when automated generation produces shared secrets with high entropy.

crypto, security

normative-requirement §4.1 SHOULD NOT

The password used to compute the Password-Based MAC SHOULD NOT be used for any other purpose, to prevent cross-protocol compromise of the shared secret.

crypto, security

normative-requirement §4.4 MUST

When the AES-GMAC algorithm identifier (id-aes128-GMAC) is used, the parameters MUST be present and MUST contain a GMACParameters structure with a nonce and optional length field.

crypto, pkix

normative-requirement §4.4 MUST

When the HMAC-SHA256 algorithm identifier (id-hmacWithSHA256) is used, parameters SHOULD be present, and when present, they MUST contain a type of NULL as specified in RFC 4231.

crypto, pkix

protocol-element §4.4

The ASN.1 OID for AES-GMAC with a 128-bit key is id-aes128-GMAC ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithm(4) aes(1) 9 }, defined in RFC 9044.

crypto, pkix

protocol-element §4.4

The ASN.1 OID for HMAC-SHA256 is id-hmacWithSHA256 ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 9 }, defined in RFC 4231 and used as the mandatory MAC algorithm in updated CRMF.

crypto, pkix

protocol-element §4

The Password-Based MAC (id-PasswordBasedMAC) computes a symmetric key from a shared password using a one-way function iterated multiple times, then applies a MAC algorithm over the data. It is designed to resist dictionary attacks against the password.

crypto, pkix, security

security-consideration §6

Cryptographic algorithms age as cryptanalysis improves and computing power increases; the algorithm requirements for CRMF are updated by this specification to replace algorithms no longer considered adequate for security.

crypto, security

security-consideration §6

Hardware support for hash computation is available at very low cost, which reduces the protection provided by a high iterationCount value, making password entropy the dominant security factor for the Password-Based MAC.

crypto, security

security-consideration §6

Implementations must protect both the password and the MAC key; compromise of either may allow an attacker to undermine authentication. Using a one-time password increases security, assuming the integrity-protected transaction completes before an attacker can mount an offline attack.

crypto, security, pkix

security-consideration §6

The entropy of the password is crucial for Password-Based MAC security because hardware hash acceleration is available at low cost, reducing the protection afforded by high iteration counts. Real-world passwords have a median entropy of only ~27 bits; randomly generated strings of 10+ characters from a large alphabet are recommended.

crypto, security

wire-format §4.4

GMACParameters is an ASN.1 SEQUENCE containing a nonce (OCTET STRING) and an optional length (MACLength, DEFAULT 12). MACLength is an INTEGER constrained to values 12, 13, 14, 15, or 16 octets.

crypto, pkix