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. |