rfc9829.original | rfc9829.txt | |||
---|---|---|---|---|
SIDROPS J. Snijders | Internet Engineering Task Force (IETF) J. Snijders | |||
Internet-Draft | Request for Comments: 9829 | |||
Updates: 6487 (if approved) B. Maddison | Updates: 6487 B. Maddison | |||
Intended status: Standards Track Workonline | Category: Standards Track Workonline | |||
Expires: 23 November 2025 T. Buehler | ISSN: 2070-1721 T. Buehler | |||
OpenBSD | OpenBSD | |||
22 May 2025 | July 2025 | |||
Handling of Resource Public Key Infrastructure (RPKI) Certificate | Handling of Resource Public Key Infrastructure (RPKI) Certificate | |||
Revocation List (CRL) Number Extensions | Revocation List (CRL) Number Extensions | |||
draft-ietf-sidrops-rpki-crl-numbers-05 | ||||
Abstract | Abstract | |||
This document revises how the Resource Public Key Infrastructure | This document revises how the Resource Public Key Infrastructure | |||
(RPKI) handles Certificate Revocation List (CRL) Number extensions. | (RPKI) handles Certificate Revocation List (CRL) Number extensions. | |||
This document updates RFC 6487. | This document updates RFC 6487. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 23 November 2025. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9829. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language | |||
1.2. Related Work . . . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Related Work | |||
1.3. Changes from RFC 6487 . . . . . . . . . . . . . . . . . . 3 | 1.3. Changes from RFC 6487 | |||
2. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Summary | |||
3. Updates to RFC 6487 . . . . . . . . . . . . . . . . . . . . . 4 | 3. Updates to RFC 6487 | |||
3.1. Updates to Section 5 . . . . . . . . . . . . . . . . . . 4 | 3.1. Updates to Section 5 | |||
3.2. Update to Section 7.2 . . . . . . . . . . . . . . . . . . 5 | 3.2. Update to Section 7.2 | |||
4. Operational Considerations . . . . . . . . . . . . . . . . . 5 | 4. Operational Considerations | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 | 5. Security Considerations | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 6. IANA Considerations | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 7. References | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 6 | 7.1. Normative References | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 6 | 7.2. Informative References | |||
Appendix A. Implementation status - RFC EDITOR: REMOVE BEFORE | Acknowledgements | |||
PUBLICATION . . . . . . . . . . . . . . . . . . . . . . . 7 | Authors' Addresses | |||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
1. Introduction | 1. Introduction | |||
Section 5.2.3 of [RFC5280] describes the value of the Certificate | Section 5.2.3 of [RFC5280] describes the value of the Certificate | |||
Revocation List (CRL) Number extension as a monotonically increasing | Revocation List (CRL) Number extension as a monotonically increasing | |||
sequence number, which "allows users to easily determine when a | sequence number, which "allows users to easily determine when a | |||
particular CRL supersedes another CRL". In other words, in Public | particular CRL supersedes another CRL". In other words, in Public | |||
Key Infrastructures (PKIs) in which it is possible for Relying | Key Infrastructures (PKIs) in which it is possible for Relying | |||
Parties (RPs) to encounter multiple usable CRLs, the CRL Number | Parties (RPs) to encounter multiple usable CRLs, the CRL Number | |||
extension is a means for an RP to determine which CRLs to rely upon. | extension is a means for an RP to determine which CRLs to rely upon. | |||
In the Resource Public Key Infrastructure (RPKI), a well-formed | In the Resource Public Key Infrastructure (RPKI), a well-formed | |||
Manifest FileList contains exactly one entry for its associated CRL, | Manifest fileList contains exactly one entry for its associated CRL, | |||
together with a collision-resistant message digest of that CRL's | together with a collision-resistant message digest of that CRL's | |||
contents (see Section 2.2 of [RFC6481] and Section 2 of [RFC9286]). | contents (see Section 2.2 of [RFC6481] and Section 2 of [RFC9286]). | |||
Additionally, the target of the CRL Distribution Points extension in | Additionally, the target of the CRL Distribution Points extension in | |||
an RPKI Resource Certificate is the same CRL object listed on the | an RPKI Resource Certificate is the same CRL object listed on the | |||
issuing Certification Authorities (CAs) current manifest (see | issuing Certification Authorities (CAs) current manifest (see | |||
Section 4.8.6 of [RFC6487]). Together, these properties guarantee | Section 4.8.6 of [RFC6487]). Together, these properties guarantee | |||
that RPKI RPs will always be able to unambiguously identify exactly | that RPKI RPs will always be able to unambiguously identify exactly | |||
one current CRL for each RPKI CA. Thus, in the RPKI, the ordering | one current CRL for each RPKI CA. Thus, in the RPKI, the ordering | |||
functionality provided by CRL Numbers is fully subsumed by | functionality provided by CRL Numbers is fully subsumed by | |||
monotonically increasing Manifest Numbers (Section 4.2.1 of | monotonically increasing Manifest Numbers (Section 4.2.1 of | |||
skipping to change at page 3, line 31 ¶ | skipping to change at line 112 ¶ | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
1.2. Related Work | 1.2. Related Work | |||
It is assumed that the reader is familiar with the terms and concepts | The reader is assumed to be familiar with the terms and concepts | |||
described in "Internet X.509 Public Key Infrastructure Certificate | described in "Internet X.509 Public Key Infrastructure Certificate | |||
and Certificate Revocation List (CRL) Profile" [RFC5280], "A Profile | and Certificate Revocation List (CRL) Profile" [RFC5280], "A Profile | |||
for Resource Certificate Repository Structure" [RFC6481], and | for Resource Certificate Repository Structure" [RFC6481], and | |||
"Manifests for the Resource Public Key Infrastructure (RPKI)" | "Manifests for the Resource Public Key Infrastructure (RPKI)" | |||
[RFC9286]. | [RFC9286]. | |||
1.3. Changes from RFC 6487 | 1.3. Changes from RFC 6487 | |||
This section summarizes the significant changes between [RFC6487] and | This section summarizes the significant changes between [RFC6487] and | |||
this document. | this document. | |||
* Revision of CRL Number handling. | * Revision of CRL Number handling. | |||
* Adjustment of step 5 of the Resource Certification Path | * Adjustment of step 5 of the Resource Certification Path | |||
Validation. | Validation. | |||
* Integration of RFC 6487 Errata 3205. | * Integration of Errata 3205 [Err3205]. | |||
2. Summary | 2. Summary | |||
This document clarifies that, in the RPKI, there is exactly one CRL | This document clarifies that, in the RPKI, there is exactly one CRL | |||
appropriate and relevant for determining the revocation status of a | that is appropriate and relevant for determining the revocation | |||
given resource certificate. It is the unique CRL object that is | status of a given resource certificate. It is the unique CRL object | |||
simultaneously: | that is simultaneously: | |||
* the target of the certificate's CRL Distribution Points extension, | * the target of the certificate's CRL Distribution Points extension, | |||
and | and | |||
* listed in the issuing CA's current Manifest FileList and has | * listed in the issuing CA's current Manifest fileList and has a | |||
matching hash (see Section 4.2.1 of [RFC9286]). | matching hash (see Section 4.2.1 of [RFC9286]). | |||
In particular, a resource certificate cannot be validated without | In particular, a resource certificate cannot be validated without | |||
recourse to the current Manifest of the certificate's issuer. | recourse to the current Manifest of the certificate's issuer. | |||
3. Updates to RFC 6487 | 3. Updates to RFC 6487 | |||
3.1. Updates to Section 5 | 3.1. Updates to Section 5 | |||
This section updates Section 5 of [RFC6487] as follows: | This section updates Section 5 of [RFC6487] as follows: | |||
skipping to change at page 4, line 39 ¶ | skipping to change at line 165 ¶ | |||
OLD | OLD | |||
| Where two or more CRLs are issued by the same CA, the CRL with | | Where two or more CRLs are issued by the same CA, the CRL with | |||
| the highest value of the "CRL Number" field supersedes all | | the highest value of the "CRL Number" field supersedes all | |||
| other CRLs issued by this CA. | | other CRLs issued by this CA. | |||
NEW | NEW | |||
| Per Section 5.2.3 of [RFC5280], CAs issue new CRLs using a | | Per Section 5.2.3 of [RFC5280], CAs issue new CRLs using a | |||
| monotonically increasing sequence number in the "CRL Number" | | monotonically increasing sequence number in the "CRL Number" | |||
| extension. It is RECOMMENDED that the "CRL Number" matches the | | extension. It is RECOMMENDED that the "CRL Number" match the | |||
| "manifestNumber" of the manifest that will include this CRL | | "manifestNumber" of the manifest that will include this CRL | |||
| (see Section 4.2.1 of [RFC9286]). | | (see Section 4.2.1 of [RFC9286]). | |||
* Second change: | * Second change: | |||
OLD | OLD | |||
| An RPKI CA MUST include the two extensions, Authority Key | | An RPKI CA MUST include the two extensions, Authority Key | |||
| Identifier and CRL Number, in every CRL that it issues. RPs | | Identifier and CRL Number, in every CRL that it issues. RPs | |||
| MUST be prepared to process CRLs with these extensions. No | | MUST be prepared to process CRLs with these extensions. No | |||
skipping to change at page 5, line 4 ¶ | skipping to change at line 179 ¶ | |||
* Second change: | * Second change: | |||
OLD | OLD | |||
| An RPKI CA MUST include the two extensions, Authority Key | | An RPKI CA MUST include the two extensions, Authority Key | |||
| Identifier and CRL Number, in every CRL that it issues. RPs | | Identifier and CRL Number, in every CRL that it issues. RPs | |||
| MUST be prepared to process CRLs with these extensions. No | | MUST be prepared to process CRLs with these extensions. No | |||
| other CRL extensions are allowed. | | other CRL extensions are allowed. | |||
NEW | NEW | |||
| An RPKI CA MUST include exactly two extensions in every CRL | | An RPKI CA MUST include exactly two extensions in every CRL | |||
| that it issues: an Authority Key Identifier (AKI) and a CRL | | that it issues: an Authority Key Identifier (AKI) and a CRL | |||
| Number. No other CRL extensions are allowed. | | Number. No other CRL extensions are allowed. | |||
| | | | |||
| - RPs MUST process the AKI extension. | | - RPs MUST process the AKI extension. | |||
| | | | |||
| - RPs MUST ignore the CRL Number extension except for checking | | - RPs MUST ignore the CRL Number extension except for checking | |||
| that it is marked as non-critical and contains a non- | | that it is marked as non-critical and contains a non- | |||
| negative integer less than or equal to 2^159-1. | | negative integer less than or equal to 2^(159-1). | |||
3.2. Update to Section 7.2 | 3.2. Update to Section 7.2 | |||
This section updates Section 7.2 of [RFC6487] as follows: | This section updates Section 7.2 of [RFC6487] as follows: | |||
OLD | OLD | |||
| 5. The issuer has not revoked the certificate. A revoked | | 5. The issuer has not revoked the certificate. A revoked | |||
| certificate is identified by the certificate's serial number | | certificate is identified by the certificate's serial number | |||
| being listed on the issuer's current CRL, as identified by the | | being listed on the issuer's current CRL, as identified by the | |||
skipping to change at page 6, line 8 ¶ | skipping to change at line 226 ¶ | |||
to Section 9 of [RFC6487]. | to Section 9 of [RFC6487]. | |||
5. Security Considerations | 5. Security Considerations | |||
The Security Considerations of [RFC3779], [RFC5280], and [RFC6487] | The Security Considerations of [RFC3779], [RFC5280], and [RFC6487] | |||
apply to Resource Certificates and CRLs. | apply to Resource Certificates and CRLs. | |||
This document explicates that, in the RPKI, the CRL listed on the | This document explicates that, in the RPKI, the CRL listed on the | |||
certificate issuer's current Manifest is the one relevant and | certificate issuer's current Manifest is the one relevant and | |||
appropriate for determining the revocation status of a resource | appropriate for determining the revocation status of a resource | |||
certificate. By way of the hash in the manifest's FileList this | certificate. By way of the hash in the manifest's fileList this | |||
provides a cryptographic guarantee on the Certification Authority's | provides a cryptographic guarantee on the Certification Authority's | |||
intent that this is the most recent CRL and removes possible replay | intent that this is the most recent CRL and removes possible replay | |||
vectors. | vectors. | |||
6. IANA Considerations | 6. IANA Considerations | |||
This document has no IANA actions. | This document has no IANA actions. | |||
7. References | 7. References | |||
skipping to change at page 6, line 47 ¶ | skipping to change at line 265 ¶ | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC9286] Austein, R., Huston, G., Kent, S., and M. Lepinski, | [RFC9286] Austein, R., Huston, G., Kent, S., and M. Lepinski, | |||
"Manifests for the Resource Public Key Infrastructure | "Manifests for the Resource Public Key Infrastructure | |||
(RPKI)", RFC 9286, DOI 10.17487/RFC9286, June 2022, | (RPKI)", RFC 9286, DOI 10.17487/RFC9286, June 2022, | |||
<https://www.rfc-editor.org/info/rfc9286>. | <https://www.rfc-editor.org/info/rfc9286>. | |||
7.2. Informative References | 7.2. Informative References | |||
[FORT] Leiva, A., "FORT validator", | [Err3205] RFC Errata, Erratum ID 3205, RFC 6487, | |||
<https://fortproject.net/en/validator>. | <https://www.rfc-editor.org/errata/eid3205>. | |||
[RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP | [RFC3779] Lynn, C., Kent, S., and K. Seo, "X.509 Extensions for IP | |||
Addresses and AS Identifiers", RFC 3779, | Addresses and AS Identifiers", RFC 3779, | |||
DOI 10.17487/RFC3779, June 2004, | DOI 10.17487/RFC3779, June 2004, | |||
<https://www.rfc-editor.org/info/rfc3779>. | <https://www.rfc-editor.org/info/rfc3779>. | |||
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
Housley, R., and W. Polk, "Internet X.509 Public Key | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, | |||
<https://www.rfc-editor.org/info/rfc5280>. | <https://www.rfc-editor.org/info/rfc5280>. | |||
[routinator] | ||||
NLnetLabs, "Routinator", | ||||
<https://github.com/NLnetLabs/routinator>. | ||||
[rpki-client] | ||||
Jeker, C., Snijders, J., Dzonsons, K., and T. Buehler, | ||||
"rpki-client", June 2024, <https://www.rpki-client.org/>. | ||||
Appendix A. Implementation status - RFC EDITOR: REMOVE BEFORE | ||||
PUBLICATION | ||||
This section records the status of known implementations of the | ||||
protocol defined by this specification at the time of posting of this | ||||
Internet-Draft, and is based on a proposal described in RFC 7942. | ||||
The description of implementations in this section is intended to | ||||
assist the IETF in its decision processes in progressing drafts to | ||||
RFCs. Please note that the listing of any individual implementation | ||||
here does not imply endorsement by the IETF. Furthermore, no effort | ||||
has been spent to verify the information presented here that was | ||||
supplied by IETF contributors. This is not intended as, and must not | ||||
be construed to be, a catalog of available implementations or their | ||||
features. Readers are advised to note that other implementations may | ||||
exist. | ||||
According to RFC 7942, "this will allow reviewers and working groups | ||||
to assign due consideration to documents that have the benefit of | ||||
running code, which may serve as evidence of valuable experimentation | ||||
and feedback that have made the implemented protocols more mature. | ||||
It is up to the individual working groups to use this information as | ||||
they see fit". | ||||
* OpenBSD [rpki-client] | ||||
* [FORT] | ||||
* [routinator] | ||||
Acknowledgements | Acknowledgements | |||
The authors wish to thank Tom Harrison whose observations prompted | The authors wish to thank Tom Harrison whose observations prompted | |||
this document, Alberto Leiva, Tim Bruijnzeels, Mohamed Boucadair, | this document, Alberto Leiva, Tim Bruijnzeels, Mohamed Boucadair, | |||
Geoff Huston, and the IESG for their valuable comments and feedback. | Geoff Huston, and the IESG for their valuable comments and feedback. | |||
Authors' Addresses | Authors' Addresses | |||
Job Snijders | Job Snijders | |||
Amsterdam | Amsterdam | |||
End of changes. 19 change blocks. | ||||
93 lines changed or deleted | 52 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |