The content of an RSC indicates that a checklist for arbitrary digital objects has been signed with a specific set of Internet Number Resources. An RSC is formally defined as follows:
RpkiSignedChecklist-2022
{ iso(1) member-body(2) us(840) rsadsi(113549)
pkcs(1) pkcs9(9) smime(16) mod(0)
id-mod-rpkiSignedChecklist-2022(73) }
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
IMPORTS
CONTENT-TYPE, Digest, DigestAlgorithmIdentifier
FROM CryptographicMessageSyntax-2010 -- in [RFC6268]
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
pkcs-9(9) smime(16) modules(0) id-mod-cms-2009(58) }
IPAddressOrRange, ASIdOrRange
FROM IPAddrAndASCertExtn -- in [RFC3779]
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) mod(0)
id-mod-ip-addr-and-as-ident(30) } ;
ct-rpkiSignedChecklist CONTENT-TYPE ::=
{ TYPE RpkiSignedChecklist
IDENTIFIED BY id-ct-signedChecklist }
id-ct-signedChecklist OBJECT IDENTIFIER ::=
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
pkcs-9(9) id-smime(16) id-ct(1) 48 }
RpkiSignedChecklist ::= SEQUENCE {
version [0] INTEGER DEFAULT 0,
resources ResourceBlock,
digestAlgorithm DigestAlgorithmIdentifier,
checkList SEQUENCE (SIZE(1..MAX)) OF FileNameAndHash }
FileNameAndHash ::= SEQUENCE {
fileName PortableFilename OPTIONAL,
hash Digest }
PortableFilename ::=
IA5String (FROM("a".."z" | "A".."Z" | "0".."9" | "." | "_" | "-"))
ResourceBlock ::= SEQUENCE {
asID [0] ConstrainedASIdentifiers OPTIONAL,
ipAddrBlocks [1] ConstrainedIPAddrBlocks OPTIONAL }
-- at least one of asID or ipAddrBlocks MUST be present
( WITH COMPONENTS { ..., asID PRESENT} |
WITH COMPONENTS { ..., ipAddrBlocks PRESENT } )
ConstrainedIPAddrBlocks ::=
SEQUENCE (SIZE(1..MAX)) OF ConstrainedIPAddressFamily
ConstrainedIPAddressFamily ::= SEQUENCE {
addressFamily OCTET STRING (SIZE(2)),
addressesOrRanges SEQUENCE (SIZE(1..MAX)) OF IPAddressOrRange }
ConstrainedASIdentifiers ::= SEQUENCE {
asnum [0] SEQUENCE (SIZE(1..MAX)) OF ASIdOrRange }
END
The version number of the RpkiSignedChecklist
MUST be 0.
The resources contained here are the resources used to mark the attestation and
MUST be a subset of the set of resources listed by the EE certificate carried in the CMS certificates field.
If the asID field is present, it
MUST contain an instance of ConstrainedASIdentifiers.
If the ipAddrBlocks field is present, it
MUST contain an instance of ConstrainedIPAddrBlocks.
At least one of asID or ipAddrBlocks
MUST be present.
ConstrainedASIdentifiers and ConstrainedIPAddrBlocks are specified such that the resulting DER-encoded data instances are binary compatible with ASIdentifiers and IPAddrBlocks (defined in [
RFC 3779]), respectively.
Implementations encountering decoding errors whilst attempting to read DER-encoded data using this specification should be aware of the possibility that the data may have been encoded using an implementation intended for use with [
RFC 3779]. Such data may contain elements prohibited by the current specification.
Attempting to decode the errored data using the more permissive specification contained in [
RFC 3779] may enable implementors to gather additional context for use when reporting errors to the user.
However, implementations
MUST NOT ignore errors resulting from the more restrictive definitions contained herein; in particular, such errors
MUST cause the validation procedure described in
Section 5 to fail.
ConstrainedASIdentifiers is a SEQUENCE consisting of a single field, asnum, which in turn contains a SEQUENCE OF one or more ASIdOrRange instances as defined in [
RFC 3779].
ConstrainedASIdentifiers is defined such that the resulting DER-encoded data are binary compatible with ASIdentifiers defined in [
RFC 3779].
ConstrainedIPAddrBlocks is a SEQUENCE OF one or more instances of ConstrainedIPAddressFamily.
There
MUST be only one instance of ConstrainedIPAddressFamily per unique Address Family Identifier (AFI).
The elements of ConstrainedIPAddressFamily
MUST be ordered by ascending addressFamily values (treating the octets as unsigned numbers). Thus, when both IPv4 and IPv6 addresses are specified, the IPv4 addresses
MUST precede the IPv6 addresses (since the IPv4 AFI of 0001 is less than the IPv6 AFI of 0002).
ConstrainedIPAddrBlocks is defined such that the resulting DER-encoded data are binary compatible with IPAddrBlocks defined in [
RFC 3779].
The addressFamily field is an OCTET STRING containing a 2-octet AFI, in network byte order. Unlike IPAddrBlocks [
RFC 3779], a third octet containing a Subsequent Address Family Identifier (SAFI)
MUST NOT be present. AFIs are specified in the "Address Family Numbers" registry [
IANA.ADDRESS-FAMILY-NUMBERS] maintained by IANA.
The addressesOrRanges element is a SEQUENCE OF one or more IPAddressOrRange values, as defined in [
RFC 3779]. The rules for canonicalization and encoding defined in
Section 2.2.3.6 of
RFC 3779 apply to the value of addressesOrRanges.
The digest algorithm is used to create the message digest of the attested digital object(s). This algorithm
MUST be a hashing algorithm defined in [
RFC 7935].
This field is a SEQUENCE OF one or more FileNameAndHash values. There is one FileNameAndHash entry for each digital object referenced on the RSC.
Each FileNameAndHash is an ordered pair of the name of the directory entry containing the digital object and the message digest of the digital object.
The hash field is mandatory. The value of the hash field is the calculated message digest of the digital object. The hashing algorithm is specified in the digestAlgorithm field.
The fileName field is
OPTIONAL. This is to allow RSCs to be used in a "stand-alone" fashion in which nameless digital objects are addressed directly through their respective message digest rather than through a file system abstraction.
If the fileName field is present, then its value:
-
MUST contain only characters specified in the Portable Filename Character Set as defined in [POSIX].
-
MUST be unique with respect to the other FileNameAndHash elements of checkList for which the fileName field is also present.
Conversely, if the fileName field is omitted, then the value of the hash field
MUST be unique with respect to the other FileNameAndHash elements of checkList for which the fileName field is also omitted.