RFC 9829

Handling of Resource Public Key Infrastructure (RPKI) Certificate Revocation List (CRL) Number Extensions

๐Ÿ“… published July 2025, from ietf

RFC 9829: Handling of Resource Public Key Infrastructure (RPKI) Certificate Revocation List (CRL) Number Extensions ๐ŸŽ€

Okay bestie, the header is giving: J. Snijders, B. Maddison (Workonline), and T. Buehler (OpenBSD) wrote this one ๐Ÿงš. It's a Standards Track doc, so it's a real Internet Standard and not just vibes โœจ. It's dated July 2025, it's published under ISSN 2070-1721, and it updates RFC 6487. The header doesn't list anything it obsoletes ๐Ÿ’….

Abstract โœจ

Okay so this doc is all about how the Resource Public Key Infrastructure (RPKI) deals with the Certificate Revocation List (CRL) Number extension ๐Ÿฆ‹. It revises that handling and updates RFC 6487. Bestie, this is a glow-up for the whole RPKI ecosystem ๐Ÿ’–.

Status of This Memo

This is an Internet Standards Track document ๐ŸŒธ.

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). If you want more info on Internet Standards, check out Section 2 of RFC 7841 ๐Ÿ“š.

For the current status of this document, any errata, and how to send feedback, go to https://www.rfc-editor.org/info/rfc9829 ๐Ÿ”—.

Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved ยฉ๏ธ.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they're in effect on the date of publication. Please actually read these, bestie, because they explain your rights and restrictions for this document ๐Ÿ“œ. Code Components pulled out of this document must include Revised BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Revised BSD License โš ๏ธ.

Table of Contents ๐Ÿ—บ๏ธ

1.  Introduction
  1.1.  Requirements Language
  1.2.  Related Work
  1.3.  Changes from RFC 6487
2.  Summary
3.  Updates to RFC 6487
  3.1.  Updates to Section 5
  3.2.  Update to Section 7.2
4.  Operational Considerations
5.  Security Considerations
6.  IANA Considerations
7.  References
  7.1.  Normative References
  7.2.  Informative References
Acknowledgements
Authors' Addresses

1. Introduction ๐ŸŒˆ

Okay so Section 5.2.3 of [RFC5280] describes the CRL Number extension as a monotonically increasing sequence number, and it says it "allows users to easily determine when a particular CRL supersedes another CRL" ๐Ÿ”ข. Basically, in Public Key Infrastructures (PKIs) where Relying Parties (RPs) might run into multiple usable CRLs, the CRL Number is how an RP figures out which CRL to trust ๐Ÿ•ต๏ธโ€โ™€๏ธ.

Now here's the tea โ˜•. In the RPKI, a well-formed manifest fileList has exactly one entry for its associated CRL, plus a collision-resistant message digest of that CRL's contents (see Section 2.2 of [RFC6481] and Section 2 of [RFC9286]). On top of that, the target of the CRL Distribution Points extension in an RPKI Resource Certificate is the same CRL object listed on the issuing Certification Authority's (CA's) current manifest (see Section 4.8.6 of [RFC6487]). Put together, these properties mean RPKI RPs can always pin down exactly one current CRL for each RPKI CA ๐Ÿ’ฏ. So in the RPKI, the ordering that CRL Numbers give you is fully covered by monotonically increasing manifest numbers (Section 4.2.1 of [RFC9286]), which means RPKI RPs don't even need to process CRL Number extensions at all ๐Ÿ™Œ.

So yeah, even though the CRL Number extension is mandatory in RPKI CRLs for compliance with the X.509 v2 CRL Profile (Section 5 of [RFC5280]), any use of it by RPKI RPs just adds complexity and fragility to RPKI Resource Certificate path validation ๐Ÿ˜ค. This document says RPKI RPs ignore the CRL Number extension ๐Ÿšซ.

This document updates [RFC6487]. Check out Section 3 for the deets ๐Ÿ‘€.

1.1. Requirements Language

Okay so the BCP 14 key words are "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" ๐Ÿ”‘. In this document they get read as described in BCP 14 [RFC2119] [RFC8174], but only when they show up in all capitals, exactly like that ๐Ÿ” .

To keep up, you should already know the terms and concepts from "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile" [RFC5280], "A Profile for Resource Certificate Repository Structure" [RFC6481], and "Manifests for the Resource Public Key Infrastructure (RPKI)" [RFC9286] ๐Ÿ“–.

1.3. Changes from RFC 6487

This section is the highlight reel of the big changes between [RFC6487] and this document ๐ŸŽฌ.

  • Revision of CRL Number handling ๐Ÿ”„.
  • Adjustment of step 5 of the Resource Certification Path Validation ๐Ÿ› ๏ธ.
  • Integration of Errata 3205 [Err3205] ๐Ÿฉน.

2. Summary ๐Ÿ’Ž

Bestie, this section is the main takeaway. This document makes it clear that in the RPKI there is exactly one CRL that's appropriate and relevant for working out the revocation status of a given resource certificate ๐ŸŽฏ. It's the unique CRL object that is at the same time:

  • the target of the certificate's CRL Distribution Points extension, and
  • listed in the issuing CA's current manifest fileList and has a matching hash (see Section 4.2.1 of [RFC9286]).

And here's the kicker ๐Ÿ˜ญ: a resource certificate can't be validated without checking the current manifest of the certificate's issuer.

3. Updates to RFC 6487 ๐Ÿงฉ

Bestie, this is where the actual edits to [RFC6487] live, so pay attention ๐Ÿค“.

3.1. Updates to Section 5

This section updates Section 5 of [RFC6487] like this ๐Ÿ“.

  • First change:
OLD

|  Where two or more CRLs are issued by the same CA, the CRL with
|  the highest value of the "CRL Number" field supersedes all
|  other CRLs issued by this CA.

NEW

|  Per Section 5.2.3 of [RFC5280], CAs issue new CRLs using a
|  monotonically increasing sequence number in the "CRL Number"
|  extension.  It is RECOMMENDED that the "CRL Number" match the
|  "manifestNumber" of the manifest that will include this CRL
|  (see Section 4.2.1 of [RFC9286]).
  • Second change:
OLD

|  An RPKI CA MUST include the two extensions, Authority Key
|  Identifier and CRL Number, in every CRL that it issues.  RPs
|  MUST be prepared to process CRLs with these extensions.  No
|  other CRL extensions are allowed.

NEW

|  An RPKI CA MUST include exactly two extensions in every CRL
|  that it issues: an Authority Key Identifier (AKI) and a CRL
|  Number.  No other CRL extensions are allowed.
|
|  -  RPs MUST process the AKI extension.
|
|  -  RPs MUST ignore the CRL Number extension except for checking
|     that it is marked as non-critical and contains a non-
|     negative integer less than or equal to 2^159-1.

3.2. Update to Section 7.2

This section updates Section 7.2 of [RFC6487] like this ๐Ÿ”ง.

OLD

|  5.  The issuer has not revoked the certificate.  A revoked
|      certificate is identified by the certificate's serial number
|      being listed on the issuer's current CRL, as identified by the
|      CRLDP of the certificate, the CRL is itself valid, and the
|      public key used to verify the signature on the CRL is the same
|      public key used to verify the certificate itself.

NEW

|  5.  The issuer has not revoked the certificate.  A revoked
|      certificate is identified by the certificate's serial number
|      being listed on the issuer's current CRL, as identified by the
|      issuer's current manifest and the CRLDP of the certificate.
|      The CRL is itself valid and the public key used to verify the
|      signature on the CRL is the same public key used to verify the
|      certificate itself.

4. Operational Considerations ๐Ÿ›Ž๏ธ

This doc doesn't add any new operational considerations beyond the ones in Section 9 of [RFC6487] ๐Ÿ™‚.

5. Security Considerations ๐Ÿ”

Bestie, this part is serious, so read it carefully ๐Ÿ˜ฑ. The Security Considerations of [RFC3779], [RFC5280], and [RFC6487] all apply to Resource Certificates and CRLs ๐Ÿ›ก๏ธ.

This document spells out that in the RPKI, the CRL listed on the certificate issuer's current manifest is the one that matters for working out the revocation status of a resource certificate ๐ŸŽฏ. The hash in the manifest's fileList gives a cryptographic guarantee of the Certification Authority's intent that this is the most recent CRL, and that shuts down possible replay vectors ๐Ÿšจ. Replay attacks are not it, bestie ๐Ÿ’€.

6. IANA Considerations ๐Ÿ“‡

This document has no IANA actions ๐Ÿซถ.

7. References ๐Ÿ“š

7.1. Normative References

7.2. Informative References

Acknowledgements ๐Ÿ’œ

The authors thank Tom Harrison, whose observations kicked off this doc ๐ŸŒŸ. They also thank Alberto Leiva, Tim Bruijnzeels, Mohamed Boucadair, Geoff Huston, and the IESG for their super valuable comments and feedback ๐Ÿ™.

Authors' Addresses ๐Ÿ“ฎ

Job Snijders Amsterdam The Netherlands Email: job@sobornost.net

Ben Maddison Workonline Cape Town South Africa Email: benm@workonline.africa

Theo Buehler OpenBSD Switzerland Email: tb@openbsd.org

๐Ÿ“ฆ where this page comes from