<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-sidrops-rpki-rsc-11" indexInclude="true" ipr="trust200902" number="9323" prepTime="2022-11-18T11:48:28" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-sidrops-rpki-rsc-11" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9323" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="RPKI Signed Checklists (RSCs)">A Profile for RPKI Signed Checklists (RSCs)</title>
    <seriesInfo name="RFC" value="9323" stream="IETF"/>
    <author fullname="Job Snijders" initials="J." surname="Snijders">
      <organization showOnFrontPage="true">Fastly</organization>
      <address>
        <postal>
          <street/>
          <code/>
          <city>Amsterdam</city>
          <country>Netherlands</country>
        </postal>
        <email>job@fastly.com</email>
      </address>
    </author>
    <author fullname="Tom Harrison" initials="T." surname="Harrison">
      <organization abbrev="APNIC" showOnFrontPage="true">Asia Pacific Network Information Centre</organization>
      <address>
        <postal>
          <street>6 Cordelia St</street>
          <city>South Brisbane</city>
          <code>4101</code>
          <country>Australia</country>
          <region>QLD</region>
        </postal>
        <phone/>
        <email>tomh@apnic.net</email>
      </address>
    </author>
    <author fullname="Ben Maddison" initials="B." surname="Maddison">
      <organization abbrev="Workonline" showOnFrontPage="true">Workonline Communications</organization>
      <address>
        <postal>
          <street/>
          <city>Cape Town</city>
          <code/>
          <country>South Africa</country>
        </postal>
        <email>benm@workonline.africa</email>
      </address>
    </author>
    <date month="11" year="2022"/>
    <area>ops</area>
    <workgroup>sidrops</workgroup>
    <keyword>security</keyword>
    <keyword>cryptography</keyword>
    <keyword>X.509</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
         This document defines a Cryptographic Message Syntax (CMS) protected content type for use with the Resource Public Key Infrastructure (RPKI) to carry a general-purpose listing of checksums (a 'checklist').
         The objective is to allow for the creation of an attestation, termed an "RPKI Signed Checklist (RSC)", which contains one or more checksums of arbitrary digital objects (files) that are signed with a specific set of Internet Number Resources. When validated, an RSC confirms that the respective Internet resource holder produced the RSC.
      </t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9323" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2022 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rsc-profile-and-distributio">RSC Profile and Distribution</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rsc-ee-certificates">RSC EE Certificates</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-rsc-econtenttype">The RSC eContentType</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-rsc-econtent">The RSC eContent</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-version">Version</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-resources">Resources</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.2.2">
                  <li pn="section-toc.1-1.4.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-constrainedasidentifiers-ty">ConstrainedASIdentifiers Type</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-constrainedipaddrblocks-typ">ConstrainedIPAddrBlocks Type</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-digestalgorithm">digestAlgorithm</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.4">
                <t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-checklist">checkList</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.4.2">
                  <li pn="section-toc.1-1.4.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.1.1"><xref derivedContent="4.4.1" format="counter" sectionFormat="of" target="section-4.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-filenameandhash">FileNameAndHash</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rsc-validation">RSC Validation</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-verifying-files-or-data-usi">Verifying Files or Data Using RSC</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-operational-considerations">Operational Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-smi-security-for-s-mime-cms">SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rpki-signed-objects">RPKI Signed Objects</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.3">
                <t indent="0" pn="section-toc.1-1.9.2.3.1"><xref derivedContent="9.3" format="counter" sectionFormat="of" target="section-9.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rpki-repository-name-scheme">RPKI Repository Name Schemes</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.4">
                <t indent="0" pn="section-toc.1-1.9.2.4.1"><xref derivedContent="9.4" format="counter" sectionFormat="of" target="section-9.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-smi-security-for-s-mime-mod">SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.5">
                <t indent="0" pn="section-toc.1-1.9.2.5.1"><xref derivedContent="9.5" format="counter" sectionFormat="of" target="section-9.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-media-types">Media Types</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
        This document defines a Cryptographic Message Syntax (CMS) <xref target="RFC5652" format="default" sectionFormat="of" derivedContent="RFC5652"/> <xref target="RFC6268" format="default" sectionFormat="of" derivedContent="RFC6268"/> protected content type for a general-purpose listing of checksums (a 'checklist'), for use with the Resource Public Key Infrastructure (RPKI) <xref target="RFC6480" format="default" sectionFormat="of" derivedContent="RFC6480"/>.
        The CMS protected content type is intended to provide for the creation and validation of an RPKI Signed Checklist (RSC), a checksum listing signed with a specific set of Internet Number Resources.
        The objective is to allow for the creation of an attestation that, when validated, provides a means to confirm a given Internet resource holder produced the RSC.
      </t>
      <t indent="0" pn="section-1-2">
        RPKI Signed Checklists are expected to facilitate inter-domain business use cases that depend on an ability to verify resource holdership.
        RPKI-based validation processes are expected to become the industry norm for automated Bring Your Own IP (BYOIP) on-boarding or establishment of physical interconnections between Autonomous Systems (ASes).
      </t>
      <t indent="0" pn="section-1-3">
        The RSC concept borrows heavily from Resource Tagged Attestation (RTA) <xref target="I-D.ietf-sidrops-rpki-rta" format="default" sectionFormat="of" derivedContent="RPKI-RTA"/>, Manifests <xref target="RFC9286" format="default" sectionFormat="of" derivedContent="RFC9286"/>, and OpenBSD's signify utility <xref target="signify" format="default" sectionFormat="of" derivedContent="signify"/>.
        The main difference between an RSC and RTA is that the RTA profile allows multiple signers to attest a single digital object through a checksum of its content, while the RSC profile allows a single signer to attest the content of multiple digital objects.
        A single signer profile is considered a simplification for both implementers and operators.
      </t>
      <section anchor="requirements" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.1-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
    to be interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/>
          <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals,
    as shown here.
        </t>
      </section>
    </section>
    <section anchor="profile" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-rsc-profile-and-distributio">RSC Profile and Distribution</name>
      <t indent="0" pn="section-2-1">
        RSC follows the Signed Object Template for the RPKI <xref target="RFC6488" format="default" sectionFormat="of" derivedContent="RFC6488"/> with one exception: because RSCs <bcp14>MUST NOT</bcp14> be distributed through the global RPKI repository system, the Subject Information Access (SIA) extension <bcp14>MUST</bcp14> be omitted from the RSC's X.509 End-Entity (EE) certificate.
      </t>
      <t indent="0" pn="section-2-2">
        What constitutes suitable transport for RSC files is deliberately unspecified.
        For example, it might be a USB stick, a web interface secured with HTTPS, an email signed with Pretty Good Privacy (PGP), a T-shirt printed with a QR code, or a carrier pigeon.
      </t>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-rsc-ee-certificates">RSC EE Certificates</name>
        <t indent="0" pn="section-2.1-1">
          The Certification Authority (CA) <bcp14>MUST</bcp14> only sign one RSC with each EE certificate and <bcp14>MUST</bcp14> generate a new key pair for each new RSC.
          This type of EE certificate is termed a "one-time-use" EE certificate (see <xref target="RFC6487" section="3" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc6487#section-3" derivedContent="RFC6487"/>).
        </t>
      </section>
    </section>
    <section anchor="content" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-the-rsc-econtenttype">The RSC eContentType</name>
      <t indent="0" pn="section-3-1">
        The eContentType for an RSC is defined as id-ct-signedChecklist, with Object Identifier (OID) 1.2.840.113549.1.9.16.1.48.
      </t>
      <t indent="0" pn="section-3-2">
        This OID <bcp14>MUST</bcp14> appear within both the eContentType in the encapContentInfo object and the ContentType signed attribute in the signerInfo object (see <xref target="RFC6488" format="default" sectionFormat="of" derivedContent="RFC6488"/>).
      </t>
    </section>
    <section anchor="econtent" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-the-rsc-econtent">The RSC eContent</name>
      <t indent="0" pn="section-4-1">
        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:
      </t>
      <sourcecode type="asn.1" markers="false" pn="section-4-2">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
</sourcecode>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-version">Version</name>
        <t indent="0" pn="section-4.1-1">
          The version number of the RpkiSignedChecklist <bcp14>MUST</bcp14> be 0.
        </t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2">
        <name slugifiedName="name-resources">Resources</name>
        <t indent="0" pn="section-4.2-1">
          The resources contained here are the resources used to mark the attestation and <bcp14>MUST</bcp14> be a subset of the set of resources listed by the EE certificate carried in the CMS certificates field.
        </t>
        <t indent="0" pn="section-4.2-2">
          If the asID field is present, it <bcp14>MUST</bcp14> contain an instance of ConstrainedASIdentifiers.
        </t>
        <t indent="0" pn="section-4.2-3">
          If the ipAddrBlocks field is present, it <bcp14>MUST</bcp14> contain an instance of ConstrainedIPAddrBlocks.
        </t>
        <t indent="0" pn="section-4.2-4">
          At least one of asID or ipAddrBlocks <bcp14>MUST</bcp14> be present.
        </t>
        <t indent="0" pn="section-4.2-5">
          ConstrainedASIdentifiers and ConstrainedIPAddrBlocks are specified such that the resulting DER-encoded data instances are binary compatible with ASIdentifiers and IPAddrBlocks (defined in <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/>), respectively.
        </t>
        <t indent="0" pn="section-4.2-6">
          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 <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/>. Such data may contain elements prohibited by the current specification.
        </t>
        <t indent="0" pn="section-4.2-7">
          Attempting to decode the errored data using the more permissive specification contained in <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/> may enable implementors to gather additional context for use when reporting errors to the user.
        </t>
        <t indent="0" pn="section-4.2-8">
          However, implementations <bcp14>MUST NOT</bcp14> ignore errors resulting from the more restrictive definitions contained herein; in particular, such errors <bcp14>MUST</bcp14> cause the validation procedure described in <xref target="validation" format="default" sectionFormat="of" derivedContent="Section 5"/> to fail.
        </t>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2.1">
          <name slugifiedName="name-constrainedasidentifiers-ty">ConstrainedASIdentifiers Type</name>
          <t indent="0" pn="section-4.2.1-1">
            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 <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/>.
          </t>
          <t indent="0" pn="section-4.2.1-2">
            ConstrainedASIdentifiers is defined such that the resulting DER-encoded data are binary compatible with ASIdentifiers defined in <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/>.
          </t>
        </section>
        <section numbered="true" removeInRFC="false" toc="include" pn="section-4.2.2">
          <name slugifiedName="name-constrainedipaddrblocks-typ">ConstrainedIPAddrBlocks Type</name>
          <t indent="0" pn="section-4.2.2-1">
            ConstrainedIPAddrBlocks is a SEQUENCE OF one or more instances of ConstrainedIPAddressFamily.
          </t>
          <t indent="0" pn="section-4.2.2-2">
            There <bcp14>MUST</bcp14> be only one instance of ConstrainedIPAddressFamily per unique Address Family Identifier (AFI).
          </t>
          <t indent="0" pn="section-4.2.2-3">
            The elements of ConstrainedIPAddressFamily <bcp14>MUST</bcp14> be ordered by ascending addressFamily values (treating the octets as unsigned numbers).
            Thus, when both IPv4 and IPv6 addresses are specified, the IPv4 addresses <bcp14>MUST</bcp14> precede the IPv6 addresses (since the IPv4 AFI of 0001 is less than the IPv6 AFI of 0002).
          </t>
          <t indent="0" pn="section-4.2.2-4">
            ConstrainedIPAddrBlocks is defined such that the resulting DER-encoded data are binary compatible with IPAddrBlocks defined in <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/>.
          </t>
          <section numbered="true" removeInRFC="false" toc="exclude" pn="section-4.2.2.1">
            <name slugifiedName="name-constrainedipaddressfamily-">ConstrainedIPAddressFamily Type</name>
            <section numbered="true" removeInRFC="false" toc="exclude" pn="section-4.2.2.1.1">
              <name slugifiedName="name-addressfamily-field">addressFamily Field</name>
              <t indent="0" pn="section-4.2.2.1.1-1">
                The addressFamily field is an OCTET STRING containing a 2-octet AFI, in network byte order.
                Unlike IPAddrBlocks <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/>, a third octet containing a Subsequent Address Family Identifier (SAFI) <bcp14>MUST NOT</bcp14> be present.
                AFIs are specified in the "Address Family Numbers" registry <xref target="IANA.ADDRESS-FAMILY-NUMBERS" format="default" sectionFormat="of" derivedContent="IANA.ADDRESS-FAMILY-NUMBERS"/> maintained by IANA.
              </t>
            </section>
            <section numbered="true" removeInRFC="false" toc="exclude" pn="section-4.2.2.1.2">
              <name slugifiedName="name-addressesorranges-field">addressesOrRanges Field</name>
              <t indent="0" pn="section-4.2.2.1.2-1">
                The addressesOrRanges element is a SEQUENCE OF one or more IPAddressOrRange values, as defined in <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/>.
                The rules for canonicalization and encoding defined in <xref target="RFC3779" section="2.2.3.6" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc3779#section-2.2.3.6" derivedContent="RFC3779"/> apply to the value of addressesOrRanges.
              </t>
            </section>
          </section>
        </section>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.3">
        <name slugifiedName="name-digestalgorithm">digestAlgorithm</name>
        <t indent="0" pn="section-4.3-1">
          The digest algorithm is used to create the message digest of the attested digital object(s).
          This algorithm <bcp14>MUST</bcp14> be a hashing algorithm defined in <xref target="RFC7935" format="default" sectionFormat="of" derivedContent="RFC7935"/>.
        </t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-4.4">
        <name slugifiedName="name-checklist">checkList</name>
        <t indent="0" pn="section-4.4-1">
          This field is a SEQUENCE OF one or more FileNameAndHash values.
          There is one FileNameAndHash entry for each digital object referenced on the RSC.
        </t>
        <section anchor="FileNameAndHash" numbered="true" removeInRFC="false" toc="include" pn="section-4.4.1">
          <name slugifiedName="name-filenameandhash">FileNameAndHash</name>
          <t indent="0" pn="section-4.4.1-1">
            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.
          </t>
          <t indent="0" pn="section-4.4.1-2">
            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.
          </t>
          <t indent="0" pn="section-4.4.1-3">
            The fileName field is <bcp14>OPTIONAL</bcp14>.
            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.
          </t>
          <t indent="0" pn="section-4.4.1-4">
            If the fileName field is present, then its value:
          </t>
          <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-4.4.1-5">
            <li pn="section-4.4.1-5.1">
              <bcp14>MUST</bcp14> contain only characters specified in the Portable Filename Character Set as defined in <xref target="POSIX" format="default" sectionFormat="of" derivedContent="POSIX"/>.
            </li>
            <li pn="section-4.4.1-5.2">
              <bcp14>MUST</bcp14> be unique with respect to the other FileNameAndHash elements of checkList for which the fileName field is also present.
            </li>
          </ul>
          <t indent="0" pn="section-4.4.1-6">
            Conversely, if the fileName field is omitted, then the value of the hash field <bcp14>MUST</bcp14> be unique with respect to the other FileNameAndHash elements of checkList for which the fileName field is also omitted.
          </t>
        </section>
      </section>
    </section>
    <section anchor="validation" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-rsc-validation">RSC Validation</name>
      <t indent="0" pn="section-5-1">
        Before a Relying Party (RP) can use an RSC to validate a set of digital objects, the RP <bcp14>MUST</bcp14> first validate the RSC.
        To validate an RSC, the RP <bcp14>MUST</bcp14> perform all the validation checks specified in <xref target="RFC6488" format="default" sectionFormat="of" derivedContent="RFC6488"/>, except for checking for the presence of an SIA extension, which <bcp14>MUST NOT</bcp14> be present in the EE certificate (see <xref target="profile" format="default" sectionFormat="of" derivedContent="Section 2"/>).
        In addition, the RP <bcp14>MUST</bcp14> perform the following RSC-specific validation steps:
      </t>
      <ol indent="adaptive" spacing="normal" start="1" type="1" pn="section-5-2">
        <li pn="section-5-2.1" derivedCounter="1.">
          The contents of the CMS eContent field <bcp14>MUST</bcp14> conform to all of the constraints described in <xref target="econtent" format="default" sectionFormat="of" derivedContent="Section 4"/>, including the constraints described in <xref target="FileNameAndHash" format="default" sectionFormat="of" derivedContent="Section 4.4.1"/>.
        </li>
        <li pn="section-5-2.2" derivedCounter="2.">
          If the asID field is present within the contents of the resources field, then the AS identifier delegation extension <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/> <bcp14>MUST</bcp14> be present in the EE certificate contained in the CMS certificates field. The AS identifiers present in the eContent resources field <bcp14>MUST</bcp14> be a subset of those present in the certificate extension. The EE certificate's AS identifier delegation extension <bcp14>MUST NOT</bcp14> contain "inherit" elements.
        </li>
        <li pn="section-5-2.3" derivedCounter="3.">
          If the ipAddrBlocks field is present within the contents of the resources field, then the IP address delegation extension <xref target="RFC3779" format="default" sectionFormat="of" derivedContent="RFC3779"/> <bcp14>MUST</bcp14> be present in the EE certificate contained in the CMS certificates field. The IP addresses present in the eContent resources field <bcp14>MUST</bcp14> be a subset of those present in the certificate extension. The EE certificate's IP address delegation extension <bcp14>MUST NOT</bcp14> contain "inherit" elements.
        </li>
      </ol>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-verifying-files-or-data-usi">Verifying Files or Data Using RSC</name>
      <t indent="0" pn="section-6-1">
        To verify a set of digital objects with an RSC:
      </t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-6-2">
        <li pn="section-6-2.1">
          The RSC <bcp14>MUST</bcp14> be validated according to the procedure described in <xref target="validation" format="default" sectionFormat="of" derivedContent="Section 5"/>.
          If the RSC cannot be validated, verification <bcp14>MUST</bcp14> fail.
          This error <bcp14>SHOULD</bcp14> be reported to the user.
        </li>
        <li pn="section-6-2.2">
          <t indent="0" pn="section-6-2.2.1">For every digital object to be verified:</t>
          <ol indent="adaptive" spacing="normal" start="1" type="1" pn="section-6-2.2.2">
            <li anchor="mode" pn="section-6-2.2.2.1" derivedCounter="1.">
              <t indent="0" pn="section-6-2.2.2.1.1">
                If the verification procedure is provided with a filename for the object being verified (e.g., because the user has provided a file system path from which to read the object), then verification <bcp14>SHOULD</bcp14> proceed in "filename-aware" mode. Otherwise, verification <bcp14>SHOULD</bcp14> proceed in "filename-unaware" mode.
              </t>
              <t indent="0" pn="section-6-2.2.2.1.2">
                Implementations <bcp14>MAY</bcp14> provide an option to override the verification mode, for example, to ignore the fact that the object is to be read from a file.
              </t>
            </li>
            <li anchor="hash" pn="section-6-2.2.2.2" derivedCounter="2.">
              <t indent="0" pn="section-6-2.2.2.2.1">
                The message digest <bcp14>MUST</bcp14> be computed from the file contents or data using the digest algorithm specified in the digestAlgorithm field of the RSC.
              </t>
            </li>
            <li anchor="match_hash" pn="section-6-2.2.2.3" derivedCounter="3.">
              <t indent="0" pn="section-6-2.2.2.3.1">
                The digest computed in Step <xref target="hash" format="counter" sectionFormat="of" derivedContent="2"/> <bcp14>MUST</bcp14> be compared to the value appearing in the hash field of all FileNameAndHash elements of the checkList field of the RSC.
              </t>
              <t indent="0" pn="section-6-2.2.2.3.2">
                One or more FileNameAndHash elements <bcp14>MUST</bcp14> be found with a matching hash value; otherwise, verification <bcp14>MUST</bcp14> fail, and the error <bcp14>SHOULD</bcp14> be reported to the user.
              </t>
            </li>
            <li pn="section-6-2.2.2.4" derivedCounter="4.">
              <t indent="0" pn="section-6-2.2.2.4.1">
                If the mode selected in Step <xref target="mode" format="counter" sectionFormat="of" derivedContent="1"/> is "filename-aware", then exactly one of the FileNameAndHash elements matched in Step <xref target="match_hash" format="counter" sectionFormat="of" derivedContent="3"/> <bcp14>MUST</bcp14> contain a fileName field value exactly matching the filename of the object being verified.
              </t>
              <t indent="0" pn="section-6-2.2.2.4.2">
                Alternatively, if the mode selected in Step <xref target="mode" format="counter" sectionFormat="of" derivedContent="1"/> is "filename-unaware", then exactly one of the FileNameAndHash elements matched in Step <xref target="match_hash" format="counter" sectionFormat="of" derivedContent="3"/> <bcp14>MUST</bcp14> have the fileName field omitted.
              </t>
              <t indent="0" pn="section-6-2.2.2.4.3">
                Otherwise, verification <bcp14>MUST</bcp14> fail, and the error <bcp14>SHOULD</bcp14> be reported to the user.
              </t>
            </li>
          </ol>
        </li>
      </ul>
      <t indent="0" pn="section-6-3">
        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 of checkList is greater than the size of the set of digital objects to be verified. However, in this situation, implementations <bcp14>SHOULD</bcp14> issue a warning to the user, allowing for corrective action to be taken if necessary.
      </t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-operational-considerations">Operational Considerations</name>
      <t indent="0" pn="section-7-1">
        When creating digital objects of a plain-text nature (such as ASCII, UTF-8, HTML, Javascript, and XML), converting such objects into a lossless compressed form is <bcp14>RECOMMENDED</bcp14>.
        Distributing plain-text objects within a compression envelope (such as GZIP <xref target="RFC1952" format="default" sectionFormat="of" derivedContent="RFC1952"/>) might help avoid unexpected canonicalization at intermediate systems (which in turn would lead to checksum verification errors).
        Validator implementations are expected to treat a checksummed digital object as a string of arbitrary single octets.
      </t>
      <t indent="0" pn="section-7-2">
        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 content of that field, a validator implementation <bcp14>SHOULD</bcp14> compare the message digest of each digital object to the value from the hash field of the associated FileNameAndHash and report matches to the user for further consideration.
      </t>
    </section>
    <section anchor="security" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-8-1">
        RPs are hereby warned that the data in an RSC is self-asserted.
        When determining the meaning of any data contained in an RSC, RPs <bcp14>MUST NOT</bcp14> make any assumptions about the signer beyond the fact that it had sufficient control of the issuing CA to create the object.
        These data have not been verified by the Certificate Authority (CA) that issued the CA certificate to the entity that issued the EE certificate used to validate the RSC.
      </t>
      <t indent="0" pn="section-8-2">
        RPKI certificates are not bound to real-world identities; see <xref target="RFC9255" format="default" sectionFormat="of" derivedContent="RFC9255"/> for an elaboration.
        RPs can only associate real-world entities to Internet Number Resources by additionally consulting an exogenous authority.
        RSCs are a tool to communicate assertions signed with Internet Number Resources and do not communicate any other aspect of the resource holder's business operations, such as the identity of the resource holder itself.
      </t>
      <t indent="0" pn="section-8-3">
        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 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 RPKI object profiles are published in public CA repositories, an observer may infer from discrepancies in the repository that RSC object(s) may exist.
        For example, if a CA does not use random serial numbers for certificates, an observer could detect gaps between the serial numbers of the published EE certificates.
        Similarly, if the CA includes a serial number on a Certificate Revocation List (CRL) that does not match any published object, an observer could postulate that an RSC EE certificate was revoked.
      </t>
      <t indent="0" pn="section-8-4">
        Conversely, a gap in serial numbers does not imply that an RSC exists.
        Nor does the presence in a CRL of a serial number unknown to the RP imply an RSC object exists: the implicitly referenced object might not be an RSC, it might have never been published, or it may have been revoked before it was visible to RPs.
        In general, it is not possible to confidently infer the existence or non-existence of RSCs from the repository state without access to a given RSC.
      </t>
      <t indent="0" pn="section-8-5">
        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 generating and signing multiple different RSC objects with a single key pair.
        Any RSC objects sharing the same EE certificate cannot be revoked individually.
      </t>
    </section>
    <section anchor="iana" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-9.1">
        <name slugifiedName="name-smi-security-for-s-mime-cms">SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)</name>
        <t indent="0" pn="section-9.1-1">
          IANA has allocated the following in the "SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)" registry:
        </t>
        <table anchor="cms-content-type" align="center" pn="table-1">
          <name/>
          <thead>
            <tr>
              <th rowspan="1" colspan="1" align="left">Decimal</th>
              <th rowspan="1" colspan="1" align="left">Description</th>
              <th rowspan="1" colspan="1" align="left">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">48</td>
              <td align="left" colspan="1" rowspan="1">id-ct-signedChecklist</td>
              <td align="left" colspan="1" rowspan="1">RFC 9323</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-9.2">
        <name slugifiedName="name-rpki-signed-objects">RPKI Signed Objects</name>
        <t indent="0" pn="section-9.2-1">
          IANA has registered the OID for the RSC in the "RPKI Signed Objects" registry <xref target="RFC6488" format="default" sectionFormat="of" derivedContent="RFC6488"/> as follows:
        </t>
        <table anchor="rpki-signed-checklist" align="center" pn="table-2">
          <name/>
          <thead>
            <tr>
              <th rowspan="1" colspan="1" align="left">Name</th>
              <th rowspan="1" colspan="1" align="left">OID</th>
              <th rowspan="1" colspan="1" align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">Signed Checklist</td>
              <td align="left" colspan="1" rowspan="1">1.2.840.113549.1.9.16.1.48</td>
              <td align="left" colspan="1" rowspan="1">RFC 9323</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-9.3">
        <name slugifiedName="name-rpki-repository-name-scheme">RPKI Repository Name Schemes</name>
        <t indent="0" pn="section-9.3-1">
          IANA has added the Signed Checklist file extension to the "RPKI Repository Name Schemes" registry <xref target="RFC6481" format="default" sectionFormat="of" derivedContent="RFC6481"/> as follows:
        </t>
        <table anchor="rpki-repository-name-schemes" align="center" pn="table-3">
          <name/>
          <thead>
            <tr>
              <th rowspan="1" colspan="1" align="left">Filename Extension</th>
              <th rowspan="1" colspan="1" align="left">RPKI Object</th>
              <th rowspan="1" colspan="1" align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">.sig</td>
              <td align="left" colspan="1" rowspan="1">Signed Checklist</td>
              <td align="left" colspan="1" rowspan="1">RFC 9323</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-9.4">
        <name slugifiedName="name-smi-security-for-s-mime-mod">SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)</name>
        <t indent="0" pn="section-9.4-1">
          IANA has allocated the following in the "SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)" registry:
        </t>
        <table anchor="smi-security-identifier" align="center" pn="table-4">
          <name/>
          <thead>
            <tr>
              <th rowspan="1" colspan="1" align="left">Decimal</th>
              <th rowspan="1" colspan="1" align="left">Description</th>
              <th rowspan="1" colspan="1" align="left">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">73</td>
              <td align="left" colspan="1" rowspan="1">id-mod-rpkiSignedChecklist-2022</td>
              <td align="left" colspan="1" rowspan="1">RFC 9323</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-9.5">
        <name slugifiedName="name-media-types">Media Types</name>
        <t indent="0" pn="section-9.5-1">
          IANA has registered the media type "application/rpki-checklist" in the "Media Types" registry as follows:
        </t>
        <dl indent="3" newline="false" spacing="normal" pn="section-9.5-2">
          <dt pn="section-9.5-2.1">Type name:</dt>
          <dd pn="section-9.5-2.2">application</dd>
          <dt pn="section-9.5-2.3">Subtype name:</dt>
          <dd pn="section-9.5-2.4">rpki-checklist</dd>
          <dt pn="section-9.5-2.5">Required parameters:</dt>
          <dd pn="section-9.5-2.6">N/A</dd>
          <dt pn="section-9.5-2.7">Optional parameters:</dt>
          <dd pn="section-9.5-2.8">N/A</dd>
          <dt pn="section-9.5-2.9">Encoding considerations:</dt>
          <dd pn="section-9.5-2.10">binary</dd>
          <dt pn="section-9.5-2.11">Security considerations:</dt>
          <dd pn="section-9.5-2.12">Carries an RPKI Signed Checklist. This media type contains no active content. See <xref target="validation" format="default" sectionFormat="of" derivedContent="Section 5"/> of RFC 9323 for further information.</dd>
          <dt pn="section-9.5-2.13">Interoperability considerations:</dt>
          <dd pn="section-9.5-2.14">N/A</dd>
          <dt pn="section-9.5-2.15">Published specification:</dt>
          <dd pn="section-9.5-2.16">RFC 9323</dd>
          <dt pn="section-9.5-2.17">Applications that use this media type:</dt>
          <dd pn="section-9.5-2.18">RPKI operators</dd>
          <dt pn="section-9.5-2.19">Fragment identifier considerations:</dt>
          <dd pn="section-9.5-2.20">N/A</dd>
          <dt pn="section-9.5-2.21">Additional information:</dt>
          <dd pn="section-9.5-2.22">
            <t indent="0" pn="section-9.5-2.22.1"><br/></t>
            <dl spacing="compact" indent="3" newline="false" pn="section-9.5-2.22.2">
              <dt pn="section-9.5-2.22.2.1">Content:</dt>
              <dd pn="section-9.5-2.22.2.2">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.</dd>
              <dt pn="section-9.5-2.22.2.3">Magic number(s):</dt>
              <dd pn="section-9.5-2.22.2.4">N/A</dd>
              <dt pn="section-9.5-2.22.2.5">File extension(s):</dt>
              <dd pn="section-9.5-2.22.2.6">.sig</dd>
              <dt pn="section-9.5-2.22.2.7">Macintosh file type code(s):</dt>
              <dd pn="section-9.5-2.22.2.8">N/A</dd>
            </dl>
          </dd>
          <dt pn="section-9.5-2.23">Person &amp; email address to contact for further information:</dt>
          <dd pn="section-9.5-2.24">Job Snijders (job@fastly.com)</dd>
          <dt pn="section-9.5-2.25">Intended usage:</dt>
          <dd pn="section-9.5-2.26">COMMON</dd>
          <dt pn="section-9.5-2.27">Restrictions on usage:</dt>
          <dd pn="section-9.5-2.28">N/A</dd>
          <dt pn="section-9.5-2.29">Author:</dt>
          <dd pn="section-9.5-2.30">Job Snijders (job@fastly.com)</dd>
          <dt pn="section-9.5-2.31">Change controller:</dt>
          <dd pn="section-9.5-2.32">IETF</dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-sidrops-rpki-rta" to="RPKI-RTA"/>
    <references pn="section-10">
      <name slugifiedName="name-references">References</name>
      <references pn="section-10.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="POSIX" target="https://publications.opengroup.org/standards/unix/c165" quoteTitle="true" derivedAnchor="POSIX">
          <front>
            <title>Base Specifications</title>
            <author>
              <organization showOnFrontPage="true">IEEE and The Open Group</organization>
            </author>
            <date year="2016"/>
          </front>
          <refcontent>Issue 7</refcontent>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2016.7582338"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
          <format target="https://www.rfc-editor.org/info/rfc2119" type="TXT"/>
        </reference>
        <reference anchor="RFC3779" target="https://www.rfc-editor.org/info/rfc3779" quoteTitle="true" derivedAnchor="RFC3779">
          <front>
            <title>X.509 Extensions for IP Addresses and AS Identifiers</title>
            <author fullname="C. Lynn" initials="C." surname="Lynn"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="K. Seo" initials="K." surname="Seo"/>
            <date month="June" year="2004"/>
            <abstract>
              <t indent="0">This document defines two X.509 v3 certificate extensions.  The first binds a list of IP address blocks, or prefixes, to the subject of a certificate.  The second binds a list of autonomous system identifiers to the subject of a certificate.  These extensions may be used to convey the authorization of the subject to use the IP addresses and autonomous system identifiers contained in the extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3779"/>
          <seriesInfo name="DOI" value="10.17487/RFC3779"/>
          <format target="https://www.rfc-editor.org/info/rfc3779" type="TXT"/>
        </reference>
        <reference anchor="RFC5652" target="https://www.rfc-editor.org/info/rfc5652" quoteTitle="true" derivedAnchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t indent="0">This document describes the Cryptographic Message Syntax (CMS).  This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
          <format target="https://www.rfc-editor.org/info/rfc5652" type="TXT"/>
        </reference>
        <reference anchor="RFC6481" target="https://www.rfc-editor.org/info/rfc6481" quoteTitle="true" derivedAnchor="RFC6481">
          <front>
            <title>A Profile for Resource Certificate Repository Structure</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="R. Loomans" initials="R." surname="Loomans"/>
            <author fullname="G. Michaelson" initials="G." surname="Michaelson"/>
            <date month="February" year="2012"/>
            <abstract>
              <t indent="0">This document defines a profile for the structure of the Resource Public Key Infrastructure (RPKI) distributed repository.  Each individual repository publication point is a directory that contains files that correspond to X.509/PKIX Resource Certificates, Certificate Revocation Lists and signed objects.  This profile defines the object (file) naming scheme, the contents of repository publication points (directories), and a suggested internal structure of a local repository cache that is intended to facilitate synchronization across a distributed collection of repository publication points and to facilitate certification path construction. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6481"/>
          <seriesInfo name="DOI" value="10.17487/RFC6481"/>
          <format target="https://www.rfc-editor.org/info/rfc6481" type="TXT"/>
        </reference>
        <reference anchor="RFC6487" target="https://www.rfc-editor.org/info/rfc6487" quoteTitle="true" derivedAnchor="RFC6487">
          <front>
            <title>A Profile for X.509 PKIX Resource Certificates</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="G. Michaelson" initials="G." surname="Michaelson"/>
            <author fullname="R. Loomans" initials="R." surname="Loomans"/>
            <date month="February" year="2012"/>
            <abstract>
              <t indent="0">This document defines a standard profile for X.509 certificates for the purpose of supporting validation of assertions of "right-of-use" of Internet Number Resources (INRs).  The certificates issued under this profile are used to convey the issuer's authorization of the subject to be regarded as the current holder of a "right-of-use" of the INRs that are described in the certificate.  This document contains the normative specification of Certificate and Certificate Revocation List (CRL) syntax in the Resource Public Key Infrastructure (RPKI).  This document also specifies profiles for the format of certificate requests and specifies the Relying Party RPKI certificate path validation procedure. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6487"/>
          <seriesInfo name="DOI" value="10.17487/RFC6487"/>
          <format target="https://www.rfc-editor.org/info/rfc6487" type="TXT"/>
        </reference>
        <reference anchor="RFC6488" target="https://www.rfc-editor.org/info/rfc6488" quoteTitle="true" derivedAnchor="RFC6488">
          <front>
            <title>Signed Object Template for the Resource Public Key Infrastructure (RPKI)</title>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <author fullname="A. Chi" initials="A." surname="Chi"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="February" year="2012"/>
            <abstract>
              <t indent="0">This document defines a generic profile for signed objects used in the Resource Public Key Infrastructure (RPKI).  These RPKI signed objects make use of Cryptographic Message Syntax (CMS) as a standard encapsulation format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6488"/>
          <seriesInfo name="DOI" value="10.17487/RFC6488"/>
          <format target="https://www.rfc-editor.org/info/rfc6488" type="TXT"/>
        </reference>
        <reference anchor="RFC7935" target="https://www.rfc-editor.org/info/rfc7935" quoteTitle="true" derivedAnchor="RFC7935">
          <front>
            <title>The Profile for Algorithms and Key Sizes for Use in the Resource Public Key Infrastructure</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="G. Michaelson" initials="G." role="editor" surname="Michaelson"/>
            <date month="August" year="2016"/>
            <abstract>
              <t indent="0">This document specifies the algorithms, algorithms' parameters, asymmetric key formats, asymmetric key size, and signature format for the Resource Public Key Infrastructure (RPKI) subscribers that generate digital signatures on certificates, Certificate Revocation Lists (CRLs), Cryptographic Message Syntax (CMS) signed objects and certification requests as well as for the relying parties (RPs) that verify these digital signatures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7935"/>
          <seriesInfo name="DOI" value="10.17487/RFC7935"/>
          <format target="https://www.rfc-editor.org/info/rfc7935" type="TXT"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
          <format target="https://www.rfc-editor.org/info/rfc8174" type="TXT"/>
        </reference>
        <reference anchor="RFC9286" target="https://www.rfc-editor.org/info/rfc9286" quoteTitle="true" derivedAnchor="RFC9286">
          <front>
            <title>Manifests for the Resource Public Key Infrastructure (RPKI)</title>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <date month="June" year="2022"/>
            <abstract>
              <t indent="0">This document defines a "manifest" for use in the Resource Public Key Infrastructure (RPKI).  A manifest is a signed object (file) that contains a listing of all the signed objects (files) in the repository publication point (directory) associated with an authority responsible for publishing in the repository.  For each certificate, Certificate Revocation List (CRL), or other type of signed objects issued by the authority that are published at this repository publication point, the manifest contains both the name of the file containing the object and a hash of the file content.  Manifests are intended to enable a relying party (RP) to detect certain forms of attacks against a repository.  Specifically, if an RP checks a manifest's contents against the signed objects retrieved from a repository publication point, then the RP can detect replay attacks, and unauthorized in-flight modification or deletion of signed objects.  This document obsoletes RFC 6486.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9286"/>
          <seriesInfo name="DOI" value="10.17487/RFC9286"/>
          <format target="https://www.rfc-editor.org/info/rfc9286" type="TXT"/>
        </reference>
      </references>
      <references pn="section-10.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="IANA.ADDRESS-FAMILY-NUMBERS" target="https://www.iana.org/assignments/address-family-numbers" quoteTitle="true" derivedAnchor="IANA.ADDRESS-FAMILY-NUMBERS">
          <front>
            <title>Address Family Numbers</title>
            <author>
              <organization abbrev="IANA" showOnFrontPage="true">Internet Assigned Numbers Authority</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC1952" target="https://www.rfc-editor.org/info/rfc1952" quoteTitle="true" derivedAnchor="RFC1952">
          <front>
            <title>GZIP file format specification version 4.3</title>
            <author fullname="P. Deutsch" initials="P." surname="Deutsch"/>
            <date month="May" year="1996"/>
            <abstract>
              <t indent="0">This specification defines a lossless compressed data format that is compatible with the widely used GZIP utility.  This memo provides information for the Internet community.  This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1952"/>
          <seriesInfo name="DOI" value="10.17487/RFC1952"/>
          <format target="https://www.rfc-editor.org/info/rfc1952" type="TXT"/>
        </reference>
        <reference anchor="RFC6268" target="https://www.rfc-editor.org/info/rfc6268" quoteTitle="true" derivedAnchor="RFC6268">
          <front>
            <title>Additional New ASN.1 Modules for the Cryptographic Message Syntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="July" year="2011"/>
            <abstract>
              <t indent="0">The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1.  The current ASN.1 modules conform to the 1988 version of ASN.1.  This document updates some auxiliary ASN.1 modules to conform to the 2008 version of ASN.1; the 1988 ASN.1 modules remain the normative version.  There are no bits- on-the-wire changes to any of the formats; this is simply a change to the syntax.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6268"/>
          <seriesInfo name="DOI" value="10.17487/RFC6268"/>
          <format target="https://www.rfc-editor.org/info/rfc6268" type="TXT"/>
        </reference>
        <reference anchor="RFC6480" target="https://www.rfc-editor.org/info/rfc6480" quoteTitle="true" derivedAnchor="RFC6480">
          <front>
            <title>An Infrastructure to Support Secure Internet Routing</title>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="February" year="2012"/>
            <abstract>
              <t indent="0">This document describes an architecture for an infrastructure to support improved security of Internet routing.  The foundation of this architecture is a Resource Public Key Infrastructure (RPKI) that represents the allocation hierarchy of IP address space and Autonomous System (AS) numbers; and a distributed repository system for storing and disseminating the data objects that comprise the RPKI, as well as other signed objects necessary for improved routing security.  As an initial application of this architecture, the document describes how a legitimate holder of IP address space can explicitly and verifiably authorize one or more ASes to originate routes to that address space.  Such verifiable authorizations could be used, for example, to more securely construct BGP route filters.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6480"/>
          <seriesInfo name="DOI" value="10.17487/RFC6480"/>
          <format target="https://www.rfc-editor.org/info/rfc6480" type="TXT"/>
        </reference>
        <reference anchor="RFC9255" target="https://www.rfc-editor.org/info/rfc9255" quoteTitle="true" derivedAnchor="RFC9255">
          <front>
            <title>The 'I' in RPKI Does Not Stand for Identity</title>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="June" year="2022"/>
            <abstract>
              <t indent="0">There is a false notion that Internet Number Resources (INRs) in the RPKI can be associated with the real-world identity of the 'holder' of an INR.  This document specifies that RPKI does not associate to the INR holder.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9255"/>
          <seriesInfo name="DOI" value="10.17487/RFC9255"/>
          <format target="https://www.rfc-editor.org/info/rfc9255" type="TXT"/>
        </reference>
        <reference anchor="I-D.ietf-sidrops-rpki-rta" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-rpki-rta-00" quoteTitle="true" derivedAnchor="RPKI-RTA">
          <front>
            <title>A profile for Resource Tagged Attestations (RTAs)</title>
            <author fullname="George G. Michaelson" initials="G" surname="Michaelson">
              <organization showOnFrontPage="true">Asia Pacific Network Information Centre</organization>
            </author>
            <author fullname="Geoff Huston" initials="G" surname="Huston">
              <organization showOnFrontPage="true">Asia Pacific Network Information Centre</organization>
            </author>
            <author fullname="Tom Harrison" initials="T" surname="Harrison">
              <organization showOnFrontPage="true">Asia Pacific Network Information Centre</organization>
            </author>
            <author fullname="Tim Bruijnzeels" initials="T" surname="Bruijnzeels">
              <organization showOnFrontPage="true">NLNet Labs B.V.</organization>
            </author>
            <author fullname="Martin Hoffmann" initials="M" surname="Hoffman">
              <organization showOnFrontPage="true">NLNet Labs B.V.</organization>
            </author>
            <date month="January" day="17" year="2021"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-rpki-rta-00"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="signify" target="https://man.openbsd.org/signify" quoteTitle="true" derivedAnchor="signify">
          <front>
            <title>signify - cryptographically sign and verify files</title>
            <author initials="T." surname="Unangst">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Espie">
              <organization showOnFrontPage="true"/>
            </author>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="acknowledgements" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">
        The authors wish to thank
          <contact fullname="George Michaelson"/>,
          <contact fullname="Geoff Huston"/>,
          <contact fullname="Randy Bush"/>,
          <contact fullname="Stephen Kent"/>,
          <contact fullname="Matt Lepinski"/>,
          <contact fullname="Rob Austein"/>,
          <contact fullname="Ted Unangst"/>,
          and <contact fullname="Marc Espie"/>
        for prior art.
        The authors thank <contact fullname="Russ Housley"/> for reviewing the ASN.1 notation and providing suggestions.
        The authors would like to thank
          <contact fullname="Nimrod Levy"/>,
          <contact fullname="Tim Bruijnzeels"/>,
          <contact fullname="Alberto Leiva"/>,
          <contact fullname="Ties de Kock"/>,
          <contact fullname="Peter Peele"/>,
          <contact fullname="Claudio Jeker"/>,
          <contact fullname="Theo Buehler"/>,
          <contact fullname="Donald Eastlake 3rd"/>,
          <contact fullname="Erik Kline"/>,
          <contact fullname="Robert Wilton"/>,
          <contact fullname="Roman Danyliw"/>,
          <contact fullname="Éric Vyncke"/>,
          <contact fullname="Lars Eggert"/>,
          <contact fullname="Paul Wouters"/>,
          and <contact fullname="Murray S. Kucherawy"/>
        for document review and suggestions.
      </t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Job Snijders" initials="J." surname="Snijders">
        <organization showOnFrontPage="true">Fastly</organization>
        <address>
          <postal>
            <street/>
            <code/>
            <city>Amsterdam</city>
            <country>Netherlands</country>
          </postal>
          <email>job@fastly.com</email>
        </address>
      </author>
      <author fullname="Tom Harrison" initials="T." surname="Harrison">
        <organization abbrev="APNIC" showOnFrontPage="true">Asia Pacific Network Information Centre</organization>
        <address>
          <postal>
            <street>6 Cordelia St</street>
            <city>South Brisbane</city>
            <code>4101</code>
            <country>Australia</country>
            <region>QLD</region>
          </postal>
          <phone/>
          <email>tomh@apnic.net</email>
        </address>
      </author>
      <author fullname="Ben Maddison" initials="B." surname="Maddison">
        <organization abbrev="Workonline" showOnFrontPage="true">Workonline Communications</organization>
        <address>
          <postal>
            <street/>
            <city>Cape Town</city>
            <code/>
            <country>South Africa</country>
          </postal>
          <email>benm@workonline.africa</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
