| 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 | |||
| [RFC9286]), thereby obviating the need for RPKI RPs to process CRL | [RFC9286]), thereby obviating the need for RPKI RPs to process CRL | |||
| Number extensions at all. | Number extensions at all. | |||
| Therefore, although the CRL Number extension is mandatory in RPKI | Therefore, although the CRL Number extension is mandatory in RPKI | |||
| CRLs for compliance with the X.509 v2 CRL Profile (Section 5 of | CRLs for compliance with the X.509 v2 CRL Profile (Section 5 of | |||
| [RFC5280]), any use of this extension by RPKI RPs merely adds | [RFC5280]), any use of this extension by RPKI RPs merely adds | |||
| complexity and fragility to RPKI Resource Certificate path | complexity and fragility to RPKI Resource Certificate path | |||
| validation. This document mandates that RPKI RPs ignore the CRL | validation. This document mandates that RPKI RPs ignore the CRL | |||
| Number extension. | Number extension. | |||
| 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. | consulting 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: | |||
| * First change: | * First change: | |||
| 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 32 ¶ | skipping to change at line 208 ¶ | |||
| | being listed on the issuer's current CRL, as identified by the | | being listed on the issuer's current CRL, as identified by the | |||
| | CRLDP of the certificate, the CRL is itself valid, 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 signature on the CRL is the same | |||
| | public key used to verify the certificate itself. | | public key used to verify the certificate itself. | |||
| NEW | NEW | |||
| | 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 | |||
| | issuer's current Manifest and the CRLDP of the certificate. | | issuer's current manifest and the CRLDP of the certificate. | |||
| | The CRL is itself valid and the public key used to verify the | | 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 | | signature on the CRL is the same public key used to verify the | |||
| | certificate itself. | | certificate itself. | |||
| 4. Operational Considerations | 4. Operational Considerations | |||
| This document has no additional operational considerations compared | This document has no additional operational considerations beyond | |||
| to Section 9 of [RFC6487]. | those described in 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. The hash in the manifest's fileList provides a | |||
| provides a cryptographic guarantee on the Certification Authority's | cryptographic guarantee on the Certification Authority's intent that | |||
| intent that this is the most recent CRL and removes possible replay | 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 | |||
| 7.1. Normative References | 7.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| skipping to change at page 6, line 47 ¶ | skipping to change at line 264 ¶ | |||
| 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. 22 change blocks. | ||||
| 101 lines changed or deleted | 58 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||