| rfc9323.original | rfc9323.txt | |||
|---|---|---|---|---|
| Network Working Group J. Snijders | Internet Engineering Task Force (IETF) J. Snijders | |||
| Internet-Draft Fastly | Request for Comments: 9323 Fastly | |||
| Intended status: Standards Track T. Harrison | Category: Standards Track T. Harrison | |||
| Expires: 12 March 2023 APNIC | ISSN: 2070-1721 APNIC | |||
| B. Maddison | B. Maddison | |||
| Workonline | Workonline | |||
| 8 September 2022 | November 2022 | |||
| A profile for Resource Public Key Infrastructure (RPKI) Signed | A Profile for RPKI Signed Checklists (RSCs) | |||
| Checklists (RSC) | ||||
| draft-ietf-sidrops-rpki-rsc-11 | ||||
| Abstract | Abstract | |||
| This document defines a Cryptographic Message Syntax (CMS) protected | This document defines a Cryptographic Message Syntax (CMS) protected | |||
| content type for use with the Resource Public Key Infrastructure | content type for use with the Resource Public Key Infrastructure | |||
| (RPKI) to carry a general purpose listing of checksums (a | (RPKI) to carry a general-purpose listing of checksums (a | |||
| 'checklist'). The objective is to allow an attestation, termed an | 'checklist'). The objective is to allow for the creation of an | |||
| RPKI Signed Checklist (RSC), which contains one or more checksums of | attestation, termed an "RPKI Signed Checklist (RSC)", which contains | |||
| arbitrary digital objects (files) that are signed "with resources", | one or more checksums of arbitrary digital objects (files) that are | |||
| and which, when validated, confirms that the respective Internet | signed with a specific set of Internet Number Resources. When | |||
| Resource Holder produced the RSC. | validated, an RSC confirms that the respective Internet resource | |||
| holder produced the RSC. | ||||
| Requirements Language | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in BCP | ||||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| 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 12 March 2023. | 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/rfc9323. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 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 . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 2. RSC Profile and Distribution . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language | |||
| 2.1. RSC End-Entity Certificates . . . . . . . . . . . . . . . 4 | 2. RSC Profile and Distribution | |||
| 3. The RSC ContentType . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. RSC EE Certificates | |||
| 4. The RSC eContent . . . . . . . . . . . . . . . . . . . . . . 4 | 3. The RSC eContentType | |||
| 4.1. version . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. The RSC eContent | |||
| 4.2. resources . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.1. Version | |||
| 4.2.1. ConstrainedASIdentifiers type . . . . . . . . . . . . 6 | 4.2. Resources | |||
| 4.2.2. ConstrainedIPAddrBlocks type . . . . . . . . . . . . 6 | 4.2.1. ConstrainedASIdentifiers Type | |||
| 4.3. digestAlgorithm . . . . . . . . . . . . . . . . . . . . . 7 | 4.2.2. ConstrainedIPAddrBlocks Type | |||
| 4.4. checkList . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4.3. digestAlgorithm | |||
| 4.4.1. FileNameAndHash . . . . . . . . . . . . . . . . . . . 7 | 4.4. checkList | |||
| 5. RSC Validation . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.4.1. FileNameAndHash | |||
| 6. Verifying files or data using RSC . . . . . . . . . . . . . . 9 | 5. RSC Validation | |||
| 7. Operational Considerations . . . . . . . . . . . . . . . . . 10 | 6. Verifying Files or Data Using RSC | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 7. Operational Considerations | |||
| 9. Implementation status . . . . . . . . . . . . . . . . . . . . 11 | 8. Security Considerations | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 9. IANA Considerations | |||
| 10.1. SMI Security for S/MIME CMS Content Type | 9.1. SMI Security for S/MIME CMS Content Type | |||
| (1.2.840.113549.1.9.16.1) . . . . . . . . . . . . . . . 12 | (1.2.840.113549.1.9.16.1) | |||
| 10.2. RPKI Signed Objects sub-registry . . . . . . . . . . . . 12 | 9.2. RPKI Signed Objects | |||
| 10.3. File Extension . . . . . . . . . . . . . . . . . . . . . 13 | 9.3. RPKI Repository Name Schemes | |||
| 10.4. SMI Security for S/MIME Module Identifier | 9.4. SMI Security for S/MIME Module Identifier | |||
| (1.2.840.113549.1.9.16.0) . . . . . . . . . . . . . . . 13 | (1.2.840.113549.1.9.16.0) | |||
| 10.5. Media Type . . . . . . . . . . . . . . . . . . . . . . . 13 | 9.5. Media Types | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 10. References | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 10.1. Normative References | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 15 | 10.2. Informative References | |||
| Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 16 | Acknowledgements | |||
| Appendix B. Document changelog . . . . . . . . . . . . . . . . . 17 | Authors' Addresses | |||
| B.1. changes from -10 -> -11 . . . . . . . . . . . . . . . . . 17 | ||||
| B.2. changes from -09 -> -10 . . . . . . . . . . . . . . . . . 17 | ||||
| B.3. changes from -08 -> -09 . . . . . . . . . . . . . . . . . 17 | ||||
| B.4. changes from -07 -> -08 . . . . . . . . . . . . . . . . . 17 | ||||
| B.5. changes from -06 -> -07 . . . . . . . . . . . . . . . . . 18 | ||||
| B.6. changes from -05 -> -06 . . . . . . . . . . . . . . . . . 18 | ||||
| B.7. changes from -04 -> -05 . . . . . . . . . . . . . . . . . 18 | ||||
| B.8. changes from -03 -> -04 . . . . . . . . . . . . . . . . . 18 | ||||
| B.9. changes from -02 -> -03 . . . . . . . . . . . . . . . . . 18 | ||||
| B.10. changes from -01 -> -02 . . . . . . . . . . . . . . . . . 18 | ||||
| B.11. changes from -00 -> -01 . . . . . . . . . . . . . . . . . 18 | ||||
| B.12. individual submission phase . . . . . . . . . . . . . . . 18 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
| 1. Introduction | 1. Introduction | |||
| This document defines a Cryptographic Message Syntax (CMS) [RFC5652] | This document defines a Cryptographic Message Syntax (CMS) [RFC5652] | |||
| [RFC6268] protected content type for a general purpose listing of | [RFC6268] protected content type for a general-purpose listing of | |||
| checksums (a 'checklist'), for use with the Resource Public Key | checksums (a 'checklist'), for use with the Resource Public Key | |||
| Infrastructure (RPKI) [RFC6480]. The protected CMS content type is | Infrastructure (RPKI) [RFC6480]. The CMS protected content type is | |||
| intended to provide for the creation and validation of an RPKI Signed | intended to provide for the creation and validation of an RPKI Signed | |||
| Checklist (RSC): a checksum listing signed with a specific set of | Checklist (RSC), a checksum listing signed with a specific set of | |||
| Internet Number Resources. The objective is to allow an attestation | Internet Number Resources. The objective is to allow for the | |||
| that, when validated, provides a means to confirm a given Internet | creation of an attestation that, when validated, provides a means to | |||
| Resource Holder produced the RPKI Signed Checklist (RSC). | confirm a given Internet resource holder produced the RSC. | |||
| Signed Checklists are expected to facilitate inter-domain business | RPKI Signed Checklists are expected to facilitate inter-domain | |||
| use-cases which depend on an ability to verify resource holdership. | business use cases that depend on an ability to verify resource | |||
| RPKI-based validation processes are expected to become the industry | holdership. RPKI-based validation processes are expected to become | |||
| norm for automated Bring Your Own IP (BYOIP) on-boarding or | the industry norm for automated Bring Your Own IP (BYOIP) on-boarding | |||
| establishment of physical interconnection between Autonomous Systems. | or establishment of physical interconnections between Autonomous | |||
| Systems (ASes). | ||||
| The RSC concept borrows heavily from RTA [I-D.ietf-sidrops-rpki-rta], | The RSC concept borrows heavily from Resource Tagged Attestation | |||
| Manifests [RFC9286], and OpenBSD's [signify] utility. The main | (RTA) [RPKI-RTA], Manifests [RFC9286], and OpenBSD's signify utility | |||
| difference between RSC and RTA is that the RTA profile allows | [signify]. The main difference between an RSC and RTA is that the | |||
| multiple signers to attest a single digital object through a checksum | RTA profile allows multiple signers to attest a single digital object | |||
| of its content, while the RSC profile allows a single signer to | through a checksum of its content, while the RSC profile allows a | |||
| attest the content of multiple digital objects. A single signer | single signer to attest the content of multiple digital objects. A | |||
| profile is considered a simplification for both implementers and | single signer profile is considered a simplification for both | |||
| operators. | implementers and operators. | |||
| 1.1. Requirements Language | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in | ||||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| 2. RSC Profile and Distribution | 2. RSC Profile and Distribution | |||
| RSC follows the Signed Object Template for the RPKI [RFC6488] with | RSC follows the Signed Object Template for the RPKI [RFC6488] with | |||
| one exception: because RSCs MUST NOT be distributed through the | one exception: because RSCs MUST NOT be distributed through the | |||
| global RPKI Repository system, the Subject Information Access (SIA) | global RPKI repository system, the Subject Information Access (SIA) | |||
| extension MUST be omitted from the RSC's X.509 End-Entity (EE) | extension MUST be omitted from the RSC's X.509 End-Entity (EE) | |||
| certificate. | certificate. | |||
| What constitutes suitable transport for RSC files is deliberately | What constitutes suitable transport for RSC files is deliberately | |||
| unspecified. For example, it might be a USB stick, a web interface | unspecified. For example, it might be a USB stick, a web interface | |||
| secured with HTTPS, a PGP-signed email, a T-shirt printed with a QR | secured with HTTPS, an email signed with Pretty Good Privacy (PGP), a | |||
| code, or a carrier pigeon. | T-shirt printed with a QR code, or a carrier pigeon. | |||
| 2.1. RSC End-Entity Certificates | 2.1. RSC EE Certificates | |||
| The Certification Authority (CA) MUST only sign one RSC with each | The Certification Authority (CA) MUST only sign one RSC with each EE | |||
| End-Entity (EE) Certificate, and MUST generate a new key pair for | certificate and MUST generate a new key pair for each new RSC. This | |||
| each new RSC. This form of use of the associated EE Certificate is | type of EE certificate is termed a "one-time-use" EE certificate (see | |||
| termed a "one-time-use" EE certificate Section 3 of [RFC6487]. | Section 3 of [RFC6487]). | |||
| 3. The RSC ContentType | 3. The RSC eContentType | |||
| The ContentType for an RSC is defined as rpkiSignedChecklist, with | The eContentType for an RSC is defined as id-ct-signedChecklist, with | |||
| Object Identifier (OID) 1.2.840.113549.1.9.16.1.48. | Object Identifier (OID) 1.2.840.113549.1.9.16.1.48. | |||
| This OID MUST appear both within the eContentType in the | This OID MUST appear within both the eContentType in the | |||
| encapContentInfo object as well as the ContentType signed attribute | encapContentInfo object and the ContentType signed attribute in the | |||
| in the signerInfo object (see [RFC6488]). | signerInfo object (see [RFC6488]). | |||
| 4. The RSC eContent | 4. The RSC eContent | |||
| The content of an RSC indicates that a checklist for arbitrary | The content of an RSC indicates that a checklist for arbitrary | |||
| digital objects has been signed "with resources". An RSC is formally | digital objects has been signed with a specific set of Internet | |||
| defined as: | Number Resources. An RSC is formally defined as follows: | |||
| RpkiSignedChecklist-2022 | RpkiSignedChecklist-2022 | |||
| { iso(1) member-body(2) us(840) rsadsi(113549) | { iso(1) member-body(2) us(840) rsadsi(113549) | |||
| pkcs(1) pkcs9(9) smime(16) mod(0) | pkcs(1) pkcs9(9) smime(16) mod(0) | |||
| id-mod-rpkiSignedChecklist-2022(73) } | id-mod-rpkiSignedChecklist-2022(73) } | |||
| DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
| BEGIN | BEGIN | |||
| IMPORTS | IMPORTS | |||
| skipping to change at page 5, line 43 ¶ | skipping to change at line 217 ¶ | |||
| ConstrainedIPAddressFamily ::= SEQUENCE { | ConstrainedIPAddressFamily ::= SEQUENCE { | |||
| addressFamily OCTET STRING (SIZE(2)), | addressFamily OCTET STRING (SIZE(2)), | |||
| addressesOrRanges SEQUENCE (SIZE(1..MAX)) OF IPAddressOrRange } | addressesOrRanges SEQUENCE (SIZE(1..MAX)) OF IPAddressOrRange } | |||
| ConstrainedASIdentifiers ::= SEQUENCE { | ConstrainedASIdentifiers ::= SEQUENCE { | |||
| asnum [0] SEQUENCE (SIZE(1..MAX)) OF ASIdOrRange } | asnum [0] SEQUENCE (SIZE(1..MAX)) OF ASIdOrRange } | |||
| END | END | |||
| 4.1. version | 4.1. Version | |||
| The version number of the RpkiSignedChecklist MUST be 0. | The version number of the RpkiSignedChecklist MUST be 0. | |||
| 4.2. resources | 4.2. Resources | |||
| The resources contained here are the resources used to mark the | The resources contained here are the resources used to mark the | |||
| attestation, and MUST be a subset of the set of resources listed by | attestation and MUST be a subset of the set of resources listed by | |||
| the EE Certificate carried in the CMS certificates field. | the EE certificate carried in the CMS certificates field. | |||
| If the asID field is present, it MUST contain an instance of | If the asID field is present, it MUST contain an instance of | |||
| ConstrainedASIdentifiers. | ConstrainedASIdentifiers. | |||
| If the ipAddrBlocks field is present, it MUST contain an instance of | If the ipAddrBlocks field is present, it MUST contain an instance of | |||
| ConstrainedIPAddrBlocks. | ConstrainedIPAddrBlocks. | |||
| At least one of asID or ipAddrBlocks MUST be present. | At least one of asID or ipAddrBlocks MUST be present. | |||
| Each of ConstrainedASIdentifiers and ConstrainedIPAddrBlocks are | ConstrainedASIdentifiers and ConstrainedIPAddrBlocks are specified | |||
| specified such that the resulting DER-encoded data instances are | such that the resulting DER-encoded data instances are binary | |||
| binary compatible with, respectively, ASIdentifiers and IPAddrBlocks | compatible with ASIdentifiers and IPAddrBlocks (defined in | |||
| defined in [RFC3779]. | [RFC3779]), respectively. | |||
| Implementations encountering decoding errors whilst attempting to | Implementations encountering decoding errors whilst attempting to | |||
| read DER-encoded data using this specification should be aware of the | read DER-encoded data using this specification should be aware of the | |||
| possibility that the data may have been encoded using an | possibility that the data may have been encoded using an | |||
| implementation intended for use with [RFC3779]. Such data may | implementation intended for use with [RFC3779]. Such data may | |||
| contain elements prohibited by the current specification. | contain elements prohibited by the current specification. | |||
| Attempting to decode the errored data using the more permissive | Attempting to decode the errored data using the more permissive | |||
| specification contained in [RFC3779] may enable implementors to | specification contained in [RFC3779] may enable implementors to | |||
| gather additional context for use when reporting errors to the user. | gather additional context for use when reporting errors to the user. | |||
| However, implementations MUST NOT ignore errors resulting from the | However, implementations MUST NOT ignore errors resulting from the | |||
| more restrictive definitions contained herein: in particular, such | more restrictive definitions contained herein; in particular, such | |||
| errors MUST cause the validation procedure described in Section 5 to | errors MUST cause the validation procedure described in Section 5 to | |||
| fail. | fail. | |||
| 4.2.1. ConstrainedASIdentifiers type | 4.2.1. ConstrainedASIdentifiers Type | |||
| ConstrainedASIdentifiers is a SEQUENCE, consisting of a single field | ConstrainedASIdentifiers is a SEQUENCE consisting of a single field, | |||
| "asnum", itself containing a SEQUENCE OF one or more ASIdOrRange | asnum, which in turn contains a SEQUENCE OF one or more ASIdOrRange | |||
| instances as defined in [RFC3779]. | instances as defined in [RFC3779]. | |||
| ConstrainedASIdentifiers is defined such that the resulting DER- | ConstrainedASIdentifiers is defined such that the resulting DER- | |||
| encoded data are binary compatible with ASIdentifiers defined in | encoded data are binary compatible with ASIdentifiers defined in | |||
| [RFC3779]. | [RFC3779]. | |||
| 4.2.2. ConstrainedIPAddrBlocks type | 4.2.2. ConstrainedIPAddrBlocks Type | |||
| ConstrainedIPAddrBlocks is a SEQUENCE OF one or more instances of | ConstrainedIPAddrBlocks is a SEQUENCE OF one or more instances of | |||
| ConstrainedIPAddressFamily. | ConstrainedIPAddressFamily. | |||
| There MUST be only one instance of ConstrainedIPAddressFamily per | There MUST be only one instance of ConstrainedIPAddressFamily per | |||
| unique AFI. | unique Address Family Identifier (AFI). | |||
| The elements of ConstrainedIPAddressFamily MUST be ordered by | The elements of ConstrainedIPAddressFamily MUST be ordered by | |||
| ascending addressFamily values (treating the octets as unsigned | ascending addressFamily values (treating the octets as unsigned | |||
| numbers). Thus, when both IPv4 and IPv6 addresses are specified, the | numbers). Thus, when both IPv4 and IPv6 addresses are specified, the | |||
| IPv4 addresses MUST precede the IPv6 addresses (since the IPv4 AFI of | IPv4 addresses MUST precede the IPv6 addresses (since the IPv4 AFI of | |||
| 0001 is less than the IPv6 AFI of 0002). | 0001 is less than the IPv6 AFI of 0002). | |||
| ConstrainedIPAddrBlocks is defined such that the resulting DER- | ConstrainedIPAddrBlocks is defined such that the resulting DER- | |||
| encoded data are binary compatible with IPAddrBlocks defined in | encoded data are binary compatible with IPAddrBlocks defined in | |||
| [RFC3779]. | [RFC3779]. | |||
| 4.2.2.1. ConstrainedIPAddressFamily type | 4.2.2.1. ConstrainedIPAddressFamily Type | |||
| 4.2.2.1.1. addressFamily field | 4.2.2.1.1. addressFamily Field | |||
| The addressFamily field is an OCTET STRING containing a two-octet | The addressFamily field is an OCTET STRING containing a 2-octet AFI, | |||
| Address Family Identifier (AFI), in network byte order. Unlike | in network byte order. Unlike IPAddrBlocks [RFC3779], a third octet | |||
| IPAddrBlocks [RFC3779], a third octet containing a Subsequent Address | containing a Subsequent Address Family Identifier (SAFI) MUST NOT be | |||
| Family Identifier (SAFI) MUST NOT be present. AFIs are specified in | present. AFIs are specified in the "Address Family Numbers" registry | |||
| the Address Family Numbers registry [IANA.ADDRESS-FAMILY-NUMBERS] | [IANA.ADDRESS-FAMILY-NUMBERS] maintained by IANA. | |||
| maintained by IANA. | ||||
| 4.2.2.1.2. addressesOrRanges field | 4.2.2.1.2. addressesOrRanges Field | |||
| The addressesOrRanges element is a SEQUENCE OF one or more | The addressesOrRanges element is a SEQUENCE OF one or more | |||
| IPAddressOrRange values, as defined in [RFC3779]. The rules for | IPAddressOrRange values, as defined in [RFC3779]. The rules for | |||
| canonicalization and encoding defined in Section 2.2.3.6 of [RFC3779] | canonicalization and encoding defined in Section 2.2.3.6 of [RFC3779] | |||
| apply to the value of addressesOrRanges. | apply to the value of addressesOrRanges. | |||
| 4.3. digestAlgorithm | 4.3. digestAlgorithm | |||
| The digest algorithm used to create the message digest of the | The digest algorithm is used to create the message digest of the | |||
| attested digital object(s). This algorithm MUST be a hashing | attested digital object(s). This algorithm MUST be a hashing | |||
| algorithm defined in [RFC7935]. | algorithm defined in [RFC7935]. | |||
| 4.4. checkList | 4.4. checkList | |||
| This field is a SEQUENCE OF one or more FileNameAndHash values. | This field is a SEQUENCE OF one or more FileNameAndHash values. | |||
| There is one FileNameAndHash entry for each digital object referenced | There is one FileNameAndHash entry for each digital object referenced | |||
| on the Signed Checklist. | on the RSC. | |||
| 4.4.1. FileNameAndHash | 4.4.1. FileNameAndHash | |||
| Each FileNameAndHash is an ordered pair of the name of the directory | Each FileNameAndHash is an ordered pair of the name of the directory | |||
| entry containing the digital object, and the message digest of the | entry containing the digital object and the message digest of the | |||
| digital object. | digital object. | |||
| The hash field is mandatory. The value of the hash field is the | The hash field is mandatory. The value of the hash field is the | |||
| calculated message digest of the digital object. The hashing | calculated message digest of the digital object. The hashing | |||
| algorithm is specified in the digestAlgorithm field. | algorithm is specified in the digestAlgorithm field. | |||
| The fileName field is OPTIONAL. This is to allow Signed Checklists | The fileName field is OPTIONAL. This is to allow RSCs to be used in | |||
| to be used in a "stand-alone" fashion in which nameless digital | a "stand-alone" fashion in which nameless digital objects are | |||
| objects are addressed directly through their respective message | addressed directly through their respective message digest rather | |||
| digest rather than through a file system abstraction. | than through a file system abstraction. | |||
| If the fileName field is present then its value: | If the fileName field is present, then its value: | |||
| * MUST contain only characters specified in the Portable Filename | * MUST contain only characters specified in the Portable Filename | |||
| Character Set as defined in [POSIX]. | Character Set as defined in [POSIX]. | |||
| * MUST be unique with respect to the other FileNameAndHash elements | * MUST be unique with respect to the other FileNameAndHash elements | |||
| of checkList for which the fileName field is also present. | of checkList for which the fileName field is also present. | |||
| Conversely, if the fileName field is omitted, then the value of the | Conversely, if the fileName field is omitted, then the value of the | |||
| hash field MUST be unique with respect to the other FileNameAndHash | hash field MUST be unique with respect to the other FileNameAndHash | |||
| elements of checkList for which the fileName field is also omitted. | elements of checkList for which the fileName field is also omitted. | |||
| 5. RSC Validation | 5. RSC Validation | |||
| Before a Relying Party can use an RSC to validate a set of digital | Before a Relying Party (RP) can use an RSC to validate a set of | |||
| objects, the Relying Party MUST first validate the RSC. To validate | digital objects, the RP MUST first validate the RSC. To validate an | |||
| an RSC, the Relying Party MUST perform all the validation checks | RSC, the RP MUST perform all the validation checks specified in | |||
| specified in [RFC6488] (except checking for the presence of an SIA | [RFC6488], except for checking for the presence of an SIA extension, | |||
| extension, which MUST NOT be present in the EE X.509 certificate | which MUST NOT be present in the EE certificate (see Section 2). In | |||
| Section 4.8.8.2 of [RFC6487]), and perform the following additional | addition, the RP MUST perform the following RSC-specific validation | |||
| RSC-specific validation steps: | steps: | |||
| 1. The contents of the CMS eContent field MUST conform to all of the | 1. The contents of the CMS eContent field MUST conform to all of the | |||
| constraints described in Section 4 including the constraints | constraints described in Section 4, including the constraints | |||
| described in Section 4.4.1. | described in Section 4.4.1. | |||
| 2. If the asID field is present within the contents of the | 2. If the asID field is present within the contents of the resources | |||
| 'resources' field, then the AS Resources extension [RFC3779] MUST | field, then the AS identifier delegation extension [RFC3779] MUST | |||
| be present in the EE certificate contained in the CMS | be present in the EE certificate contained in the CMS | |||
| certificates field. The AS identifiers present in the eContent | certificates field. The AS identifiers present in the eContent | |||
| 'resources' field MUST be a subset of those present in the | resources field MUST be a subset of those present in the | |||
| certificate extension. The EE certificate's AS Resources | certificate extension. The EE certificate's AS identifier | |||
| extension MUST NOT contain "inherit" elements. | delegation extension MUST NOT contain "inherit" elements. | |||
| 3. If the ipAddrBlocks field is present within the contents of the | 3. If the ipAddrBlocks field is present within the contents of the | |||
| 'resources' field, then the IP Resources extension [RFC3779] MUST | resources field, then the IP address delegation extension | |||
| be present in the EE certificate contained in the CMS | [RFC3779] MUST be present in the EE certificate contained in the | |||
| certificates field. The IP addresses present in the eContent | CMS certificates field. The IP addresses present in the eContent | |||
| 'resources' field MUST be a subset of those present in the | resources field MUST be a subset of those present in the | |||
| certificate extension. The EE certificate's IP Resources | certificate extension. The EE certificate's IP address | |||
| extension MUST NOT contain "inherit" elements. | delegation extension MUST NOT contain "inherit" elements. | |||
| 6. Verifying files or data using RSC | 6. Verifying Files or Data Using RSC | |||
| To verify a set of digital objects with an RSC: | To verify a set of digital objects with an RSC: | |||
| * The RSC MUST be validated according to the procedure described in | * The RSC MUST be validated according to the procedure described in | |||
| Section 5. If the RSC cannot be validated, verification MUST | Section 5. If the RSC cannot be validated, verification MUST | |||
| fail. This error SHOULD be reported to the user. | fail. This error SHOULD be reported to the user. | |||
| * For every digital object to be verified: | * For every digital object to be verified: | |||
| 1. If the verification procedure is provided with a file name for | 1. If the verification procedure is provided with a filename for | |||
| the object being verified (e.g. because the user has provided | the object being verified (e.g., because the user has provided | |||
| a file system path from which to read the object) then | a file system path from which to read the object), then | |||
| verification SHOULD proceed in "filename-aware" mode. | verification SHOULD proceed in "filename-aware" mode. | |||
| Otherwise, verification SHOULD proceed in "filename-unaware" | Otherwise, verification SHOULD proceed in "filename-unaware" | |||
| mode. | mode. | |||
| Implementations MAY provide an option to override the | Implementations MAY provide an option to override the | |||
| verification mode, for example to ignore the fact that the | verification mode, for example, to ignore the fact that the | |||
| object is to be read from a file. | object is to be read from a file. | |||
| 2. The message digest MUST be computed from the file contents or | 2. The message digest MUST be computed from the file contents or | |||
| data using the digest algorithm specified in the | data using the digest algorithm specified in the | |||
| digestAlgorithm field of the RSC. | digestAlgorithm field of the RSC. | |||
| 3. The digest computed in step 2 MUST be compared to the value | 3. The digest computed in Step 2 MUST be compared to the value | |||
| appearing in the hash field of all FileNameAndHash elements of | appearing in the hash field of all FileNameAndHash elements of | |||
| the checkList field of the RSC. | the checkList field of the RSC. | |||
| One or more FileNameAndHash elements MUST be found with a | One or more FileNameAndHash elements MUST be found with a | |||
| matching hash value, otherwise verification MUST fail and the | matching hash value; otherwise, verification MUST fail, and | |||
| error SHOULD be reported to the user. | the error SHOULD be reported to the user. | |||
| 4. If the mode selected in step 1 is "filename-aware" then | 4. If the mode selected in Step 1 is "filename-aware", then | |||
| exactly one of the FileNameAndHash elements matched in step 3 | exactly one of the FileNameAndHash elements matched in Step 3 | |||
| MUST contain a fileName field value exactly matching the file | MUST contain a fileName field value exactly matching the | |||
| name of the object being verified. | filename of the object being verified. | |||
| Alternatively, if the mode selected in step 1 is "filename- | Alternatively, if the mode selected in Step 1 is "filename- | |||
| unaware" then exactly one of the FileNameAndHash elements | unaware", then exactly one of the FileNameAndHash elements | |||
| matched in step 3 MUST have the fileName field omitted. | matched in Step 3 MUST have the fileName field omitted. | |||
| Otherwise, verification MUST fail, and the error SHOULD be | Otherwise, verification MUST fail, and the error SHOULD be | |||
| reported to the user. | reported to the user. | |||
| Note that in the above procedure, not all elements of checkList | Note that in the above procedure, not all elements of checkList | |||
| necessarily need be used. That is, it is not an error if the length | necessarily need be used. That is, it is not an error if the length | |||
| of checkList is greater than the size of the set of digital objects | of checkList is greater than the size of the set of digital objects | |||
| to be verified. However, in this situation, implementations SHOULD | to be verified. However, in this situation, implementations SHOULD | |||
| issue a warning to the user, allowing for corrective action to be | issue a warning to the user, allowing for corrective action to be | |||
| taken if necessary. | taken if necessary. | |||
| 7. Operational Considerations | 7. Operational Considerations | |||
| When creating digital objects of a plain-text nature (such as ASCII, | When creating digital objects of a plain-text nature (such as ASCII, | |||
| UTF-8, HTML, Javascript, XML, etc.) converting such objects into a | UTF-8, HTML, Javascript, and XML), converting such objects into a | |||
| lossless compressed form is RECOMMENDED. Distributing plain-text | lossless compressed form is RECOMMENDED. Distributing plain-text | |||
| objects within a compression envelope (such as GZIP [RFC1952]) might | objects within a compression envelope (such as GZIP [RFC1952]) might | |||
| help avoid unexpected canonicalization at intermediate systems (which | help avoid unexpected canonicalization at intermediate systems (which | |||
| in turn would lead to checksum verification errors). Validator | in turn would lead to checksum verification errors). Validator | |||
| implementations are expected to treat a checksummed digital object as | implementations are expected to treat a checksummed digital object as | |||
| string of arbitrary single octets. | a string of arbitrary single octets. | |||
| If a fileName field is present, but no digital object within the set | If a fileName field is present, but no digital object within the set | |||
| of to-be-verified digital objects has a filename that matches the | of to-be-verified digital objects has a filename that matches the | |||
| content of that field, a validator implementation SHOULD compare the | content of that field, a validator implementation SHOULD compare the | |||
| message digest of each digital object to the value from the hash | message digest of each digital object to the value from the hash | |||
| field of the associated FileNameAndHash and report matches to the | field of the associated FileNameAndHash and report matches to the | |||
| user for further consideration; or report an error indicating no file | user for further consideration. | |||
| by that name exists. | ||||
| 8. Security Considerations | 8. Security Considerations | |||
| Relying parties are hereby warned that the data in a RPKI Signed | RPs are hereby warned that the data in an RSC is self-asserted. When | |||
| Checklist is self-asserted. When determining the meaning of any data | determining the meaning of any data contained in an RSC, RPs MUST NOT | |||
| contained in an RPKI Signed Checklist, Relying Parties MUST NOT make | make any assumptions about the signer beyond the fact that it had | |||
| any assumptions about the signer beyond the fact that it had | ||||
| sufficient control of the issuing CA to create the object. These | sufficient control of the issuing CA to create the object. These | |||
| data have not been verified by the Certificate Authority (CA) that | data have not been verified by the Certificate Authority (CA) that | |||
| issued the CA certificate to the entity that issued the EE | issued the CA certificate to the entity that issued the EE | |||
| Certificate used to validate the Signed Checklist. | certificate used to validate the RSC. | |||
| RPKI Certificates are not bound to real world identities, see | RPKI certificates are not bound to real-world identities; see | |||
| [RFC9255] for an elaboration. Relying Parties can only associate | [RFC9255] for an elaboration. RPs can only associate real-world | |||
| real world entities to Internet Number Resources by additionally | entities to Internet Number Resources by additionally consulting an | |||
| consulting an exogenous authority. Signed Checklists are a tool to | exogenous authority. RSCs are a tool to communicate assertions | |||
| communicate assertions 'signed with Internet Number Resources', not | signed with Internet Number Resources and do not communicate any | |||
| about any other aspect of the resource holder's business operations | other aspect of the resource holder's business operations, such as | |||
| such as the identity of the resource holder itself. | the identity of the resource holder itself. | |||
| RSC objects are not distributed through the RPKI Repository system. | RSC objects are not distributed through the RPKI repository system. | |||
| From this, it follows that third parties who do not have a copy of a | From this, it follows that third parties who do not have a copy of a | |||
| given RSC, may not be aware of the existence of that RSC. Since RSC | given RSC may not be aware of the existence of that RSC. Since RSC | |||
| objects use EE Certificates, but all other currently defined types of | objects use EE certificates but all other currently defined types of | |||
| RPKI object profiles are published in public CA repositories, an | RPKI object profiles are published in public CA repositories, an | |||
| observer may infer from discrepancies in the Repository that RSC | observer may infer from discrepancies in the repository that RSC | |||
| object(s) may exist. For example, if a CA does not use random serial | object(s) may exist. For example, if a CA does not use random serial | |||
| numbers for Certificates, an observer could detect gaps between the | numbers for certificates, an observer could detect gaps between the | |||
| serial numbers of the published EE Certificates. Similarly, if the | serial numbers of the published EE certificates. Similarly, if the | |||
| CA includes a serial number on a CRL that does not match any | CA includes a serial number on a Certificate Revocation List (CRL) | |||
| published object, an observer could postulate an RSC EE Certificate | that does not match any published object, an observer could postulate | |||
| was revoked. | that an RSC EE certificate was revoked. | |||
| Conversely, a gap in serial numbers does not imply that an RSC | Conversely, a gap in serial numbers does not imply that an RSC | |||
| exists. Nor does an arbitrary (to the RP unknown) serial in a CRL | exists. Nor does the presence in a CRL of a serial number unknown to | |||
| imply an RSC object exists: the implicitly referenced object might | the RP imply an RSC object exists: the implicitly referenced object | |||
| not be an RSC, it might have never been published, or was revoked | might not be an RSC, it might have never been published, or it may | |||
| before it was visible to RPs. In general, it is not possible to | have been revoked before it was visible to RPs. In general, it is | |||
| confidently infer the existence or non-existence of RSCs from the | not possible to confidently infer the existence or non-existence of | |||
| Repository state without access to a given RSC. | RSCs from the repository state without access to a given RSC. | |||
| While a one-time-use EE Certificate must only be used to generate and | While a one-time-use EE certificate must only be used to generate and | |||
| sign a single RSC object, CAs technically are not restricted from | sign a single RSC object, CAs technically are not restricted from | |||
| generating and signing multiple different RSC objects with a single | generating and signing multiple different RSC objects with a single | |||
| keypair. Any RSC objects sharing the same EE Certificate can not be | key pair. Any RSC objects sharing the same EE certificate cannot be | |||
| revoked individually. | revoked individually. | |||
| 9. Implementation status | 9. IANA Considerations | |||
| This section is to be removed before publishing as an RFC. | 9.1. SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1) | |||
| This section records the status of known implementations of the | IANA has allocated the following in the "SMI Security for S/MIME CMS | |||
| protocol defined by this specification at the time of posting of this | Content Type (1.2.840.113549.1.9.16.1)" registry: | |||
| 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 | | Decimal | Description | References | | |||
| running code, which may serve as evidence of valuable experimentation | +=========+=======================+============+ | |||
| and feedback that have made the implemented protocols more mature. | | 48 | id-ct-signedChecklist | RFC 9323 | | |||
| It is up to the individual working groups to use this information as | +---------+-----------------------+------------+ | |||
| they see fit". | ||||
| * A signer and validator implementation [rpki-rsc-demo] written in | Table 1 | |||
| Perl based on OpenSSL was provided by Tom Harrison from APNIC. | ||||
| * A signer implementation [rpkimancer] written in Python was | 9.2. RPKI Signed Objects | |||
| developed by Ben Maddison. | ||||
| * Example .sig files were created by Job Snijders with the use of | IANA has registered the OID for the RSC in the "RPKI Signed Objects" | |||
| OpenSSL. | registry [RFC6488] as follows: | |||
| * A validator implementation based on OpenBSD rpki-client and | +==================+============================+===========+ | |||
| LibreSSL was developed by Job Snijders. | | Name | OID | Reference | | |||
| +==================+============================+===========+ | ||||
| | Signed Checklist | 1.2.840.113549.1.9.16.1.48 | RFC 9323 | | ||||
| +------------------+----------------------------+-----------+ | ||||
| * A validator implementation [FORT] based on the FORT validator was | Table 2 | |||
| developed by Alberto Leiva for a previous version of this | ||||
| specification. | ||||
| * A validator implementation [prover] was developed by Mikhail | 9.3. RPKI Repository Name Schemes | |||
| Puzanov. | ||||
| 10. IANA Considerations | IANA has added the Signed Checklist file extension to the "RPKI | |||
| Repository Name Schemes" registry [RFC6481] as follows: | ||||
| 10.1. SMI Security for S/MIME CMS Content Type | +====================+==================+===========+ | |||
| (1.2.840.113549.1.9.16.1) | | Filename Extension | RPKI Object | Reference | | |||
| +====================+==================+===========+ | ||||
| | .sig | Signed Checklist | RFC 9323 | | ||||
| +--------------------+------------------+-----------+ | ||||
| The IANA has allocated for this document in the "SMI Security for S/ | Table 3 | |||
| MIME CMS Content Type (1.2.840.113549.1.9.16.1)" registry: | ||||
| Decimal Description References | 9.4. SMI Security for S/MIME Module Identifier | |||
| --------------------------------------------------------------- | (1.2.840.113549.1.9.16.0) | |||
| 48 id-ct-signedChecklist [draft-ietf-sidrops-rpki-rsc] | ||||
| Upon publication of this document, IANA is requested to reference the | IANA has allocated the following in the "SMI Security for S/MIME | |||
| RFC publication instead of this draft. | Module Identifier (1.2.840.113549.1.9.16.0)" registry: | |||
| 10.2. RPKI Signed Objects sub-registry | +=========+=================================+============+ | |||
| | Decimal | Description | References | | ||||
| +=========+=================================+============+ | ||||
| | 73 | id-mod-rpkiSignedChecklist-2022 | RFC 9323 | | ||||
| +---------+---------------------------------+------------+ | ||||
| The IANA is requested to register the OID for the RPKI Signed | Table 4 | |||
| Checklist in the "RPKI Signed Objects" registry created by [RFC6488] | ||||
| as follows: | ||||
| Name OID Specification | 9.5. Media Types | |||
| ------------------------------------------------------------- | ||||
| Signed Checklist 1.2.840.113549.1.9.16.1.48 [RFC-TBD] | ||||
| 10.3. File Extension | IANA has registered the media type "application/rpki-checklist" in | |||
| the "Media Types" registry as follows: | ||||
| The IANA has temporarily added an item for the Signed Checklist file | Type name: application | |||
| extension to the "RPKI Repository Name Schemes" registry created by | ||||
| [RFC6481] as follows: | ||||
| Filename Extension RPKI Object Reference | Subtype name: rpki-checklist | |||
| ------------------------------------------------------------------- | ||||
| .sig Signed Checklist [draft-ietf-sidrops-rpki-rsc] | ||||
| Upon publication of this document, IANA is requested to make this | Required parameters: N/A | |||
| addition permanent and to reference the RFC publication instead of | ||||
| this draft. | ||||
| 10.4. SMI Security for S/MIME Module Identifier | Optional parameters: N/A | |||
| (1.2.840.113549.1.9.16.0) | ||||
| The IANA has permanently allocated for this document in the "SMI | Encoding considerations: binary | |||
| Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)" | ||||
| registry: | ||||
| Decimal Description References | Security considerations: Carries an RPKI Signed Checklist. This | |||
| ----------------------------------------------------------------------- | media type contains no active content. See Section 5 of RFC 9323 | |||
| 73 id-mod-rpkiSignedChecklist-2021 [draft-ietf-sidrops-rpki-rsc] | for further information. | |||
| Upon publication of this document, IANA is requested to update the | Interoperability considerations: N/A | |||
| "Description" column to read "id-mod-rpkiSignedChecklist-2022", and | ||||
| to reference the RFC publication instead of this draft. | ||||
| 10.5. Media Type | Published specification: RFC 9323 | |||
| The IANA has registered the media type application/rpki-checklist in | Applications that use this media type: RPKI operators | |||
| the "Provisional Standard Media Type" registry as follows: | ||||
| Type name: application | Fragment identifier considerations: N/A | |||
| Subtype name: rpki-checklist | ||||
| Required parameters: N/A | ||||
| Optional parameters: N/A | ||||
| Encoding considerations: binary | ||||
| Security considerations: Carries an RPKI Signed Checklist | ||||
| [RFC-to-be]. This media type contains no active | ||||
| content. See Section 5 of [RFC-to-be] for further | ||||
| information. | ||||
| Interoperability considerations: None | ||||
| Published specification: This document. | ||||
| Applications that use this media type: RPKI operators. | ||||
| Additional information: | ||||
| Content: This media type is a signed object, as defined | ||||
| in [RFC6488], which contains a payload of a list of | ||||
| checksums as defined above in this document. | ||||
| Magic number(s): None | ||||
| File extension(s): .sig | ||||
| Macintosh file type code(s): | ||||
| Person & email address to contact for further information: | ||||
| Job Snijders <job@fastly.com> | ||||
| Intended usage: COMMON | ||||
| Restrictions on usage: None | ||||
| Author: Job Snijders <job@fastly.com> | ||||
| Change controller: IETF | ||||
| Upon publication of this document, IANA is requested to move this | Additional information: | |||
| registration to the "Media Types" registry and to reference the RFC | ||||
| publication instead of this draft. | ||||
| 11. References | Content: This media type is a signed object, as defined in | |||
| [RFC6488], which contains a payload of a list of checksums as | ||||
| defined in RFC 9323. | ||||
| Magic number(s): N/A | ||||
| File extension(s): .sig | ||||
| Macintosh file type code(s): N/A | ||||
| 11.1. Normative References | Person & email address to contact for further information: Job | |||
| Snijders (job@fastly.com) | ||||
| [POSIX] IEEE and The Open Group, "The Open Group's Base | Intended usage: COMMON | |||
| Specifications, Issue 7", 2016, | ||||
| Restrictions on usage: N/A | ||||
| Author: Job Snijders (job@fastly.com) | ||||
| Change controller: IETF | ||||
| 10. References | ||||
| 10.1. Normative References | ||||
| [POSIX] IEEE and The Open Group, "Base Specifications", Issue 7, | ||||
| DOI 10.1109/IEEESTD.2016.7582338, 2016, | ||||
| <https://publications.opengroup.org/standards/unix/c165>. | <https://publications.opengroup.org/standards/unix/c165>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [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, | |||
| skipping to change at page 15, line 38 ¶ | skipping to change at line 637 ¶ | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 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>. | |||
| 11.2. Informative References | 10.2. Informative References | |||
| [FORT] LACNIC and NIC.MX, "FORT", May 2021, | ||||
| <https://github.com/NICMx/FORT-validator>. | ||||
| [I-D.ietf-sidrops-rpki-rta] | ||||
| Michaelson, G. G., Huston, G., Harrison, T., Bruijnzeels, | ||||
| T., and M. Hoffmann, "A profile for Resource Tagged | ||||
| Attestations (RTAs)", Work in Progress, Internet-Draft, | ||||
| draft-ietf-sidrops-rpki-rta-00, 21 January 2021, | ||||
| <https://www.ietf.org/archive/id/draft-ietf-sidrops-rpki- | ||||
| rta-00.txt>. | ||||
| [IANA.ADDRESS-FAMILY-NUMBERS] | [IANA.ADDRESS-FAMILY-NUMBERS] | |||
| IANA, "Address Family Numbers", 19 October 2021, | IANA, "Address Family Numbers", | |||
| <http://www.iana.org/assignments/address-family-numbers>. | <https://www.iana.org/assignments/address-family-numbers>. | |||
| [prover] Puzanov, M., "rpki-prover", September 2022, | ||||
| <https://github.com/lolepezy/rpki-prover/pull/126/files>. | ||||
| [RFC1952] Deutsch, P., "GZIP file format specification version 4.3", | [RFC1952] Deutsch, P., "GZIP file format specification version 4.3", | |||
| RFC 1952, DOI 10.17487/RFC1952, May 1996, | RFC 1952, DOI 10.17487/RFC1952, May 1996, | |||
| <https://www.rfc-editor.org/info/rfc1952>. | <https://www.rfc-editor.org/info/rfc1952>. | |||
| [RFC6268] Schaad, J. and S. Turner, "Additional New ASN.1 Modules | [RFC6268] Schaad, J. and S. Turner, "Additional New ASN.1 Modules | |||
| for the Cryptographic Message Syntax (CMS) and the Public | for the Cryptographic Message Syntax (CMS) and the Public | |||
| Key Infrastructure Using X.509 (PKIX)", RFC 6268, | Key Infrastructure Using X.509 (PKIX)", RFC 6268, | |||
| DOI 10.17487/RFC6268, July 2011, | DOI 10.17487/RFC6268, July 2011, | |||
| <https://www.rfc-editor.org/info/rfc6268>. | <https://www.rfc-editor.org/info/rfc6268>. | |||
| [RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support | [RFC6480] Lepinski, M. and S. Kent, "An Infrastructure to Support | |||
| Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, | Secure Internet Routing", RFC 6480, DOI 10.17487/RFC6480, | |||
| February 2012, <https://www.rfc-editor.org/info/rfc6480>. | February 2012, <https://www.rfc-editor.org/info/rfc6480>. | |||
| [RFC9255] Bush, R. and R. Housley, "The 'I' in RPKI Does Not Stand | [RFC9255] Bush, R. and R. Housley, "The 'I' in RPKI Does Not Stand | |||
| for Identity", RFC 9255, DOI 10.17487/RFC9255, June 2022, | for Identity", RFC 9255, DOI 10.17487/RFC9255, June 2022, | |||
| <https://www.rfc-editor.org/info/rfc9255>. | <https://www.rfc-editor.org/info/rfc9255>. | |||
| [rpki-rsc-demo] | [RPKI-RTA] Michaelson, G., Huston, G., Harrison, T., Bruijnzeels, T., | |||
| Harrison, T., "A proof-of-concept for constructing and | and M. Hoffman, "A profile for Resource Tagged | |||
| validating RPKI Signed Checklists (RSCs).", February 2021, | Attestations (RTAs)", Work in Progress, Internet-Draft, | |||
| <https://github.com/APNIC-net/rpki-rsc-demo>. | draft-ietf-sidrops-rpki-rta-00, 17 January 2021, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-sidrops- | ||||
| [rpkimancer] | rpki-rta-00>. | |||
| Maddison, B., "rpkimancer", May 2021, | ||||
| <https://github.com/benmaddison/rpkimancer>. | ||||
| [signify] Unangst, T. and M. Espie, "signify - cryptographically | [signify] Unangst, T. and M. Espie, "signify - cryptographically | |||
| sign and verify files", May 2014, | sign and verify files", <https://man.openbsd.org/signify>. | |||
| <https://man.openbsd.org/signify>. | ||||
| Appendix A. Acknowledgements | Acknowledgements | |||
| The authors wish to thank George Michaelson, Geoff Huston, Randy | The authors wish to thank George Michaelson, Geoff Huston, Randy | |||
| Bush, Stephen Kent, Matt Lepinski, Rob Austein, Ted Unangst, and Marc | Bush, Stephen Kent, Matt Lepinski, Rob Austein, Ted Unangst, and Marc | |||
| Espie for prior art. The authors thank Russ Housley for reviewing | Espie for prior art. The authors thank Russ Housley for reviewing | |||
| the ASN.1 notation and providing suggestions. The authors would like | the ASN.1 notation and providing suggestions. The authors would like | |||
| to thank Nimrod Levy, Tim Bruijnzeels, Alberto Leiva, Ties de Kock, | to thank Nimrod Levy, Tim Bruijnzeels, Alberto Leiva, Ties de Kock, | |||
| Peter Peele, Claudio Jeker, Theo Buehler, Donald Eastlake, Erik | Peter Peele, Claudio Jeker, Theo Buehler, Donald Eastlake 3rd, Erik | |||
| Kline, Robert Wilton, Roman Danyliw, Éric Vyncke, Lars Eggert, | Kline, Robert Wilton, Roman Danyliw, Éric Vyncke, Lars Eggert, Paul | |||
| Paul Wouters, and Murray S. Kucherawy for document review and | Wouters, and Murray S. Kucherawy for document review and suggestions. | |||
| suggestions. | ||||
| Appendix B. Document changelog | ||||
| This section is to be removed before publishing as an RFC. | ||||
| B.1. changes from -10 -> -11 | ||||
| * Incorporate feedback from Robert Wilton. | ||||
| * Incorporate feedback from Roman Danyliw. | ||||
| * Incorporate feedback from Éric Vyncke. | ||||
| * Add Mikhail Puzanov's implementation. | ||||
| * Incorporate feedback from Lars Eggert's review. | ||||
| * Incorporate feedback from Paul Wouters. | ||||
| * Incorporate feedback from Murray S. Kucherawy. | ||||
| B.2. changes from -09 -> -10 | ||||
| * Incorporate SECDIR feedback. | ||||
| B.3. changes from -08 -> -09 | ||||
| * Updated manifests refs to RFC9286 | ||||
| * Added normative ref to RFC6268 (CMS) | ||||
| * Cleaned up ASN.1 formatting | ||||
| * Updated ASN.1 module OID following early allocation | ||||
| * Updated draft-ietf-sidrops-rpki-has-no-identity to RFC9255 | ||||
| * Clean up IANA considerations | ||||
| B.4. changes from -07 -> -08 | ||||
| * Theo requested explanation as to why fileName is OPTIONAL | ||||
| * Russ & Randy requested implementor guidance when RFC3779-generated | ||||
| data fails to decode | ||||
| * Added uniqueness constraints for fileName and hash contents | ||||
| * Improved validation and verification procedure description | ||||
| * Incorporated character-set constraints for fileName in ASN.1 | ||||
| module | ||||
| B.5. changes from -06 -> -07 | ||||
| * Change wire format to allow use of commonly deployed libcrypto | ||||
| APIs. | ||||
| B.6. changes from -05 -> -06 | ||||
| * Non-content-related updates. | ||||
| B.7. changes from -04 -> -05 | ||||
| * Ties contributed clarifications. | ||||
| B.8. changes from -03 -> -04 | ||||
| * Alberto pointed out the asID validation also needs to be | ||||
| documented. | ||||
| B.9. changes from -02 -> -03 | ||||
| * Reference the IANA assigned OID | ||||
| * Clarify validation rules | ||||
| B.10. changes from -01 -> -02 | ||||
| * Clarify RSC is part of a puzzle, not panacea. Thanks Randy & | ||||
| Russ. | ||||
| B.11. changes from -00 -> -01 | ||||
| * Readability improvements | ||||
| * Update document category to match the registry allocation policy | ||||
| requirement. | ||||
| B.12. individual submission phase | ||||
| * On-the-wire change: the 'Filename' switched from 'required' to | ||||
| 'optional'. Some SIDROPS Working Group participants proposed a | ||||
| checksum itself is the most minimal information required to | ||||
| address digital objects. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Job Snijders | Job Snijders | |||
| Fastly | Fastly | |||
| Amsterdam | Amsterdam | |||
| Netherlands | Netherlands | |||
| Email: job@fastly.com | Email: job@fastly.com | |||
| Tom Harrison | Tom Harrison | |||
| End of changes. 104 change blocks. | ||||
| 448 lines changed or deleted | 288 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||