rfc-8954

Online Certificate Status Protocol (OCSP) Nonce Extension

M. Sahni (Editor)
date2020-11 streamIETF areasec wglamps statusPROPOSED STANDARD pages6 canonicalhttps://www.rfc-editor.org/rfc/rfc8954 doi10.17487/RFC8954
This document specifies the updated format of the Nonce extension in the Online Certificate Status Protocol (OCSP) request and response messages. OCSP is used to check the status of a certificate, and the Nonce extension is used to cryptographically bind an OCSP response message to a particular OCSP request message. This document updates RFC 6960.

obsoleted by

updates

Extracted elements (14)

design-rationale §1

RFC 6960 did not specify minimum or maximum nonce lengths, leaving OCSP responders vulnerable to Denial-of-Service attacks, chosen-prefix attacks, and possible evasions. This document introduces a 1-to-32 octet range to address these vulnerabilities.

pkix, security

design-rationale §2.1

The minimum nonce length of 1 octet is defined to provide backward compatibility with older OCSP clients that follow RFC 6960, which specified no minimum or maximum nonce length.

pkix, security

interoperability-note §2.1

OCSP responders MAY ignore the Nonce extension for requests where the nonce length is less than 16 octets, providing a transition path while still accepting the minimum 1-octet nonces required for backward compatibility with RFC 6960 clients.

pkix, security

normative-requirement §2.1 MUST

A server MUST reject any OCSP request with a nonce of either 0 octets or more than 32 octets with the malformedRequest OCSPResponseStatus.

security, pkix

normative-requirement §2.1 MUST

If the Nonce extension is present, the length of the nonce MUST be at least 1 octet and can be up to 32 octets.

security, pkix

normative-requirement §2.1 MUST

Newer OCSP clients that support this document MUST use a length of 32 octets for the nonce in the Nonce extension.

security, pkix

normative-requirement §2.1 MUST

OCSP responders MUST accept nonce lengths of at least 16 octets and MAY choose to ignore the Nonce extension for requests where the nonce length is less than 16 octets.

security, pkix

normative-requirement §3.2 MUST

The nonce value in the OCSP request MUST contain cryptographically strong randomness and MUST be freshly generated at the time of creation of the OCSP request.

security, crypto, pkix

normative-requirement §2.1 MUST

The value of the nonce MUST be generated using a cryptographically strong pseudorandom number generator (RFC 4086).

security, crypto, pkix

protocol-element §2.1

The Nonce extension cryptographically binds an OCSP request to a response to prevent replay attacks. It is included as a requestExtension in requests and as a responseExtension in responses, identified by id-pkix-ocsp-nonce.

pkix, security

security-consideration §3.1

An on-path attacker can intercept an OCSP request and respond with an earlier response lacking the Nonce extension, since responders may omit the Nonce even when clients include it. This can be mitigated by configuring short thisUpdate-to-nextUpdate intervals.

security, pkix

security-consideration §3.2

If the nonce value is predictable, an attacker may prefetch responses with the predicted nonce and replay them. If the nonce is too small (e.g., 1 octet), an attacker can prefetch responses for all possible nonce values.

security, pkix

wire-format §2.1

The Nonce extension value is an OCTET STRING constrained to SIZE(1..32), identified by OID id-pkix-ocsp-nonce { id-pkix-ocsp 2 }. It appears in requestExtensions in requests and responseExtensions in responses.

pkix, security

wire-format §5

Updated ASN.1 1998 syntax defines Nonce as OCTET STRING(SIZE(1..32)). Updated ASN.1 2008 syntax changes re-ocsp-nonce EXTENSION to use SYNTAX OCTET STRING(SIZE(1..32)) IDENTIFIED BY id-pkix-ocsp-nonce.

pkix, security