<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc sortrefs="yes"?>
<?rfc subcompact="no"?>
<?rfc symrefs="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="3"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-sidrops-constraining-rpki-trust-anchors-00" ipr="trust200902" xml:lang="en" sortRefs="true" submissionType="IETF" consensus="true" version="3">
  <front>
    <title abbrev="Constraining RPKI Trust Anchors">
      Constraining RPKI Trust Anchors
    </title>
    <author fullname="Job Snijders" initials="J." surname="Snijders">
      <organization abbrev="BSD">BSD Software Development</organization>
      <address>
        <postal>
          <city>Amsterdam</city>
          <country>NL</country>
        </postal>
        <email>job@bsd.nl</email>
        <uri>https://www.bsd.nl/</uri>
      </address>
    </author>
    <author fullname="Theo Buehler" initials="T." surname="Buehler">
      <organization>OpenBSD</organization>
      <address>
        <postal>
          <country>CH</country>
        </postal>
        <email>tb@openbsd.org</email>
      </address>
    </author>
    <date/>
    <area>ops</area>
    <keyword>RPKI</keyword>
    <keyword>security</keyword>
    <keyword>cryptography</keyword>
    <keyword>X.509</keyword>
    <abstract>
      <t>
        This document describes an approach for Resource Public Key Infrastructure (RPKI) Relying Parties (RPs) to impose locally configured Constraints on cryptographic products subordinate to Trust Anchors (TAs).
        The ability to constrain a Trust Anchor operator's effective signing authority to a limited set of Internet Number Resources (INRs) allows Relying Parties to enjoy the potential benefits of assuming trust - within a bounded scope.
        The specified approach and configuration format allow RPKI operators to communicate efficiently about observations related to Trust Anchor operations.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>
         This document describes an approach for Resource Public Key Infrastructure (RPKI) Relying Parties (RPs) to impose locally configured Constraints on cryptographic products subordinate to trusted Trust Anchors (TAs).
        The ability to constrain a Trust Anchor operator's effective signing authority to a limited set of Internet Number Resources (INRs) allows Relying Parties to enjoy the potential benefits of assuming trust - within a bounded scope.
        The specified approach and configuration format allow RPKI operators to communicate efficiently about observations related to Trust Anchor operations.
      </t>
      <t>
        It is important to emphasize that each Relying Party makes its Trust Anchor inclusion decisions independently, on its own timelines, based on its own inclusion criteria; and that imposed Constraints (if any) are a matter of local configuration.
      </t>
      <t>
        This document is intended to address user (meaning, Network Operator and Relying Party) needs and concerns, and was authored to benefit users and providers of RPKI services by providing a common body of knowledge to be communicated within the global Internet routing system community.
      </t>
      <section anchor="definitions">
        <name>Definitions</name>
        <dl>
          <dt>Assumed Trust</dt>
          <dd>
            In the RPKI hierarchical structure, a Trust Anchor is an authority for which trust is assumed and not derived.
            Assumed trust means that violation of that trust is out-of-scope for the threat model.
          </dd>
          <dt>Derived Trust</dt>
          <dd>
            Derived Trust can be automatically and securely computed with subjective logic.
            In the context of the RPKI, trust is derived according to the rules for validation of RPKI Certificates and Signed Objects.
          </dd>
          <dt>Constraints</dt>
          <dd>
            The locally configured union set of IP prefixes, IP address ranges, AS identifiers, and AS identifier ranges for which the Relying Party operator anticipates the Trust Anchor operator to issue cryptographic products.
          </dd>
        </dl>
      </section>
      <section anchor="reading">
        <name>Required Reading</name>
        <t>
          Readers should be familiar with the RPKI, the RPKI repository structure, and the various RPKI objects, uses, and interpretations described in the following: <xref target="RFC3779"/>, <xref target="RFC6480"/>, <xref target="RFC6481"/>, <xref target="RFC6487"/>, and <xref target="RFC6488"/>.
        </t>
        <t>
          A process to construct and sign RPKI Trust Anchor constraints is specified in <xref target="I-D.nro-sidrops-ta-constraints"/>.
          Such signed distributed constraints can serve as an input to the methodology specified in this document.
        </t>
      </section>
    </section>
    <section anchor="overclaim">
      <name>Considerations on Trust Anchor over-claiming</name>
      <t>
        Currently, all five Regional Internet Registries (RIRs) list 'all-resources' (0.0.0.0/0, ::/0, and AS 0-4294967295) as subordinate on their Trust Anchor certificates in order to reduce some potential for risk of invalidation in the case of transient registry inconsistencies <xref target="I-D.rir-rpki-allres-ta-app-statement"/>.
        Such 'all-resources' listings demonstrate that - in the course of normal operations - Trust Anchors may claim authority for INRs outside the registry's current resource holdings.
      </t>
      <t>
        The primary reason for transient registry inconsistencies to occur would be when resources are transferred from one registry to another.
        However, the ability to transfer resources between registries is not universally available: this ability depends on the implementation of registry-specific consensus-driven policy development reciprocated by other registries.
        Another source of churn would be the inflow of new resources following allocations made by the IANA; but because of IPv4 address exhaustion, IPv6 abundance, and 32-bit ASNs being allocated in large blocks - IANA allocations occur far less often than they used to.
      </t>
      <t>
        Absent a registry's ability to execute inter-registry transfers or frequently receive new allocations from IANA, that registry's set of holdings would be a fairly static list of resources.
      </t>
      <t>
        Therefore, a Relying Party need not trust each and every signed product in a derived trust relationship to any and all INRs subordinate to the registry's Trust Anchor, even when the Trust Anchor certificate lists 'all-resources' as subordinate.
        Following the widely deployed information security principle of <xref target="PRIVSEP">least privilege</xref>, constraining a given Trust Anchor's capacity strictly to just that what relates to the their respective current INR holdings, provides some degree of risk reduction for all stakeholders involved.
      </t>
      <t>
        Consequently, knowing a registry's current resource holdings and knowing this set of holdings will not change in the near-term future; following the principle of least privilege, operators can consider applying a restricted-service operating mode towards what otherwise would be an unbounded authority.
        The principle of constraining Trust Anchors might be useful when for example working with RPKI testbeds <xref target="OTE"/>, risky Trust Anchors which cover unallocated space with AS0 ROAs <xref target="AS0TAL"/>, but also in dealings with publicly-trusted registries.
      </t>
    </section>
    <section anchor="constraining">
      <name>Constraining Trust Anchors by constraining End-Entity Certificates</name>
      <t>
        As noted in <xref target="overclaim"/>, the current set of publicly-trusted RPKI TA certificates are expected to overclaim in the course of normal operations.
        However, applying a bespoke implementation of the certification path validation algorithm to CA certificates to prune all possible certificate paths related to INRs not contained within the locally configured Constraints would not be a trivial task.
        Instead, an alternative and simpler approach operating on EE certificates is proposed.
      </t>
      <t>
        To constrain a Trust Anchor, the IP address and AS number resources listed in a given EE certificate's <xref target="RFC3779"/> extensions MUST be fully contained within the locally configured union set of IP prefixes, IP address ranges, AS identifiers, and AS identifier ranges for which the Relying Party operator anticipates the Trust Anchor operator to issue cryptographic products.
        If a given EE certificate's listed resources are not fully contained within the Constraints, the RP should halt processing and consider the EE certificate invalid.
      </t>
      <t>
        The above described approach applies to all RPKI objects for which an explicit listing of resources is mandated in their respective <xref target="RFC3779"/> extensions; such as BGPSec Router Certificates <xref target="RFC8209"/>, ROAs <xref target="RFC9582"/>, ASPAs <xref target="I-D.ietf-sidrops-aspa-profile"/>, RSCs <xref target="RFC9323"/>, and Geofeeds <xref target="RFC9632"/>.
      </t>
      <t>
        The approach has no application in context of Signed Objects unrelated to INRs (which thus use 'inherit' elements); such as Ghostbusters records <xref target="RFC6493"/>, Signed TALs <xref target="RFC9691"/>, and Manifests <xref target="RFC9286"/>.
      </t>
      <t>
        The validation of Constraint containment is a check in addition to all the validation checks specified in <xref target="RFC6487"/>, <xref target="RFC6488"/>, and each Signed Object's profile specification.
      </t>
    </section>
    <section anchor="configformat">
      <name>Constraints Configuration Format</name>
      <t>
        As it's clumsy and error prone to calculate the complement of a block of resources, for efficiency a simple notation in the form of <strong>allow</strong> and <strong>deny</strong> keywords is used to indicate INRs which may or may not appear subordinate to a Trust Anchor (rather than merely using lengthy exhaustive allowlists of what INRs may appear under a given Trust Anchor).
      </t>
      <ul>
        <li>Denylist entries (entries prefixed with <strong>deny</strong>) take precedence over allowlist entries (entries prefixed with <strong>allow</strong>).</li>
        <li>Denylist entries may not overlap with other denylist entries.</li>
        <li>Allowlist entries may not overlap with other allowlist entries.</li>
        <li>The ordering of entries is not significant.</li>
      </ul>
      <t>
        An example is available in <xref target="example"/>.
      </t>
    </section>
    <section anchor="ops">
      <name>Operational Considerations</name>
      <t>
        When assessing the feasibility of constraining a Trust Anchor's effective signing abilities to the registry's current set of holdings, it is important to take note of existing policies (or lack thereof) and possible future events which might impact the degree of churn in the registry's holdings.
        Examples are:
      </t>
      <t anchor="ARIN-policy">
        The ARIN policy development community abandoned a proposal to allow inter-regional IPv6 resource transfers <xref target="ARIN-2019-4"/>.
        Since it's currently not possible to transfer IPv6 resources from ARIN to any other RIR, ARIN's IANA-allocated IPv6 resources should not appear subordinate to any Trust Anchor other than ARIN's own Trust Anchor.
      </t>
      <t anchor="APNIC-policy">
        The APNIC policy development community has not developed <xref target="APNIC-interrir">policy</xref> to support inter-RIR IPv6 transfers.
      </t>
      <t anchor="LACNIC-policy">
        The LACNIC policy development community has not developed <xref target="LACNIC-interrir">policy</xref> to support inter-RIR IPv6 or ASN transfers.
      </t>
      <t anchor="RIPE-policy">
        The RIPE NCC policy development community <em>did</em> develop <xref target="RIPE-interrir">policy</xref> to support inter-RIR IPv6 transfers, but being the <em>only</em> community to have done so, inter-RIR transfers are not possible.
      </t>
      <t anchor="AFRINIC-policy">
        AFRINIC has not ratified an inter-registry transfer policy <xref target="AFPUB-2020-GEN-006-DRAFT03"/>.
        The policy proposal indicates implementation is expected to take an additional 12 months after ratification.
        Since it's not possible to transfer resources into AFRINIC, non-AFRINIC resources should not appear subordinate to AFRINIC's Trust Anchor for the foreseeable future.
      </t>
      <t>
        The RIRs collectively manage only a subset of 0.0.0.0/0 <xref target="IANA-IPV4"/> and 2000::/3 <xref target="IANA-IPV6"/>; and have no authority over any parts of 10.0.0.0/8 <xref target="RFC1918"/>, 2001:db8::/32 <xref target="RFC3849"/>, and AS 64512 - 65534 <xref target="RFC6996"/>, for example.
        Since it's not possible to transfer private internet allocations, documentation prefixes, or private use ASNs into an RIR's management, such resources should not appear subordinate to any RIR's Trust Anchor.
      </t>
      <t>
        In recent times IANA has not made allocations from the Current Recovered IPv4 Pool <xref target="IANA-RECOVERED"/>, and Autonomous System Number allocations are also fairly infrequent <xref target="IANA-ASNS"/>.
      </t>
      <t>
        It is clear from the aforementioned observations that, while there are sound reasons to declare 'all resources' as subordinate (<xref target="I-D.rir-rpki-allres-ta-app-statement"/>), there are resources which would never be subordinate to any particular Regional Internet Registry in the normal course of operations.
        Maintainers of Constraint lists disseminated as part of an operating system or a third-party software package release process would do well to assume a six month delay for users to update.
      </t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>
        The routing security benefits promised by the RPKI are derived from assuming trust in registry operators to run flawless certification services.
        Assuming such trust exposes users to some potential for <xref target="risks"/> and adverse actions by Certificate Authorities <xref target="RFC8211"/>.
        Restricting a Trust Anchor's effective signing abilities to its respective registry's current holdings - rather assuming unbounded trust in such authorities - is a constructive approach to limit some potential for risk.
      </t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Informative References</name>
        <reference anchor="rpki-client" target="https://www.rpki-client.org/">
          <front>
            <title>rpki-client</title>
            <author fullname="Claudio Jeker"/>
            <author fullname="Job Snijders"/>
            <author fullname="Kristaps Dzonsons"/>
            <author fullname="Theo Buehler"/>
            <date month="July" year="2023"/>
          </front>
        </reference>
        <!-- anchor I-D.nro-sidrops-ta-constraints -->
        <reference anchor="I-D.nro-sidrops-ta-constraints" target="https://datatracker.ietf.org/doc/html/draft-nro-sidrops-ta-constraints-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.nro-sidrops-ta-constraints.xml">
          <front>
            <title>RPKI Trust Anchor Constraints</title>
            <author fullname="Tom Harrison" initials="T." surname="Harrison">
              <organization>APNIC</organization>
            </author>
            <author fullname="Tim Bruijnzeels" initials="T." surname="Bruijnzeels">
              <organization>RIPE NCC</organization>
            </author>
            <author fullname="Carlos Martinez-Cagnazzo" initials="C." surname="Martinez-Cagnazzo">
              <organization>LACNIC</organization>
            </author>
            <author fullname="Mark Kosters" initials="M." surname="Kosters">
              <organization>ARIN</organization>
            </author>
            <author fullname="Yogesh Chadee" initials="Y." surname="Chadee">
              <organization>AFRINIC</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>Resource Public Key Infrastructure (RPKI) Relying Parties (RPs) are commonly configured with five Trust Anchors (TAs), one for each of the Regional Internet Registries (RIRs). Each TA operator is able to make arbitrary RPKI statements about resources independently of the other TA operators: for example, one TA could issue a Route Origin Authorization (ROA) for resources that have actually been assigned to another TA. This document specifies a protocol that allows a set of TAs to make signed statements that assert their consensus as to the resources for which each TA is authoritative.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-nro-sidrops-ta-constraints-00"/>
        </reference>
        <!-- anchor I-D.rir-rpki-allres-ta-app-statement -->
        <reference anchor="I-D.rir-rpki-allres-ta-app-statement" target="https://datatracker.ietf.org/doc/html/draft-rir-rpki-allres-ta-app-statement-02" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.rir-rpki-allres-ta-app-statement.xml">
          <front>
            <title>RPKI Multiple "All Resources" Trust Anchors Applicability Statement</title>
            <author fullname="Andy Newton" initials="A." surname="Newton">
              <organization>ARIN</organization>
            </author>
            <author fullname="Carlos M. Martínez" initials="C. M." surname="Martínez">
              <organization>LACNIC</organization>
            </author>
            <author fullname="Daniel Shaw" initials="D." surname="Shaw">
              <organization>AFRINIC</organization>
            </author>
            <author fullname="Tim Bruijnzeels" initials="T." surname="Bruijnzeels">
              <organization>RIPE NCC</organization>
            </author>
            <author fullname="Byron Ellacott" initials="B." surname="Ellacott">
              <organization>APNIC</organization>
            </author>
            <date day="18" month="July" year="2017"/>
            <abstract>
              <t>This document provides an applicability statement for the use of multiple, over-claiming 'all resources' (0/0) RPKI certificate authorities (CA) certificates used as trust anchors (TAs) operated by the Regional Internet Registry community to help mitigate the risk of massive downstream invalidation in the case of transient registry inconsistencies.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rir-rpki-allres-ta-app-statement-02"/>
        </reference>
        <!-- anchor I-D.ietf-sidrops-aspa-profile -->
        <reference anchor="I-D.ietf-sidrops-aspa-profile" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-profile-21" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-aspa-profile.xml">
          <front>
            <title>A Profile for Autonomous System Provider Authorization</title>
            <author fullname="Alexander Azimov" initials="A." surname="Azimov">
              <organization>Yandex</organization>
            </author>
            <author fullname="Eugene Uskov" initials="E." surname="Uskov">
              <organization>JetLend</organization>
            </author>
            <author fullname="Randy Bush" initials="R." surname="Bush">
              <organization>Internet Initiative Japan</organization>
            </author>
            <author fullname="Job Snijders" initials="J." surname="Snijders">
              <organization>BSD Software Development</organization>
            </author>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="Ben Maddison" initials="B." surname="Maddison">
              <organization>Workonline</organization>
            </author>
            <date day="16" month="January" year="2026"/>
            <abstract>
              <t>This document defines a Cryptographic Message Syntax (CMS) protected content type for Autonomous System Provider Authorization (ASPA) objects for use with the Resource Public Key Infrastructure (RPKI). An ASPA is a digitally signed object through which the issuer (the holder of an Autonomous System identifier), can authorize one or more other Autonomous Systems (ASes) as its upstream providers. When validated, an ASPA's eContent can be used for detection and mitigation of route leaks.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-aspa-profile-21"/>
        </reference>
        <reference anchor="AFPUB-2020-GEN-006-DRAFT03" target="https://afrinic.net/policy/proposals/2020-gen-006-d3">
          <front>
            <title>AFRINIC Number Resources Transfer Policy (Draft-3)</title>
            <author fullname="Gregoire Olaotan Ehoumi"/>
            <author fullname="Noah Maina"/>
            <author fullname="Adeola A. P. Aina"/>
            <date month="February" year="2022"/>
          </front>
        </reference>
        <reference anchor="PRIVSEP" target="https://sha256.net/privsep.html">
          <front>
            <title>Privilege drop, privilege separation, and restricted-service operating mode in OpenBSD</title>
            <author fullname="Florian Obser"/>
          </front>
        </reference>
        <reference anchor="risks" target="https://www.cs.bu.edu/~goldbe/papers/hotRPKI.pdf">
          <front>
            <title>On the Risk of Misbehaving RPKI Authorities</title>
            <author fullname="Danny Cooper"/>
            <author fullname="Ethan Heilman"/>
            <author fullname="Kyle Brogle"/>
            <author fullname="Leonid Reyzin"/>
            <author fullname="Sharon Goldberg"/>
          </front>
        </reference>
        <reference anchor="OTE" target="https://www.arin.net/reference/tools/testing/">
          <front>
            <title>Operational Test and Evaluation (OT&amp;E) Environment</title>
            <author fullname="ARIN"/>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="IANA-RECOVERED" target="https://www.iana.org/assignments/ipv4-recovered-address-space/">
          <front>
            <title>IPv4 Recovered Address Space</title>
            <author fullname="IANA"/>
            <date month="march" year="2019"/>
          </front>
        </reference>
        <reference anchor="IANA-ASNS" target="https://www.iana.org/assignments/as-numbers/">
          <front>
            <title>Autonomous System (AS) Numbers</title>
            <author fullname="IANA"/>
            <date month="August" year="2023"/>
          </front>
        </reference>
        <reference anchor="ARIN-2019-4" target="https://www.arin.net/vault/policy/proposals/2019_4.html">
          <front>
            <title>Draft Policy ARIN-2019-4: Allow Inter-regional IPv6 Resource Transfers</title>
            <author fullname="Job Snijders"/>
            <author fullname="David Farmer"/>
            <author fullname="Joe Provo"/>
            <date month="September" year="2019"/>
          </front>
        </reference>
        <reference anchor="IANA-IPV4" target="https://www.iana.org/assignments/ipv4-address-space/">
          <front>
            <title>IANA IPv4 Address Space Registry</title>
            <author fullname="IANA"/>
            <date month="July" year="2023"/>
          </front>
        </reference>
        <reference anchor="IANA-IPV6" target="https://www.iana.org/assignments/ipv6-unicast-address-assignments/">
          <front>
            <title>IPv6 Global Unicast Address Assignments</title>
            <author fullname="IANA"/>
            <date month="November" year="2019"/>
          </front>
        </reference>
        <reference anchor="AS0TAL" target="https://www.apnic.net/community/security/resource-certification/apnic-limitations-of-liability-for-rpki-2/">
          <front>
            <title>Important notes on the APNIC AS0 ROA</title>
            <author fullname="APNIC"/>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="RIPE-interrir" target="https://www.ripe.net/manage-ips-and-asns/resource-transfers-and-mergers/inter-rir-transfers">
          <front>
            <title>Inter-RIR Transfers</title>
            <author fullname="RIPE NCC"/>
            <date month="february" year="2023"/>
          </front>
        </reference>
        <reference anchor="LACNIC-interrir" target="https://www.lacnic.net/innovaportal/file/680/1/manual-politicas-en-2-19.pdf">
          <front>
            <title>LACNIC POLICY MANUAL (v2.19 - 22/08/2023)</title>
            <author fullname="LACNIC"/>
            <date month="august" year="2023"/>
          </front>
        </reference>
        <reference anchor="APNIC-interrir" target="https://www.apnic.net/manage-ip/manage-resources/transfer-resources/transfer-of-unused-ip-and-as-numbers/">
          <front>
            <title>Transfer of unused IPv4 addresses and/or AS numbers</title>
            <author fullname="APNIC"/>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="RFC1918" target="https://www.rfc-editor.org/info/rfc1918" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1918.xml">
          <front>
            <title>Address Allocation for Private Internets</title>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <author fullname="B. Moskowitz" initials="B." surname="Moskowitz"/>
            <author fullname="D. Karrenberg" initials="D." surname="Karrenberg"/>
            <author fullname="G. J. de Groot" initials="G. J." surname="de Groot"/>
            <author fullname="E. Lear" initials="E." surname="Lear"/>
            <date month="February" year="1996"/>
            <abstract>
              <t>This document describes address allocation for private internets. 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="5"/>
          <seriesInfo name="RFC" value="1918"/>
          <seriesInfo name="DOI" value="10.17487/RFC1918"/>
        </reference>
        <reference anchor="RFC3779" target="https://www.rfc-editor.org/info/rfc3779" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3779.xml">
          <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>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"/>
        </reference>
        <reference anchor="RFC3849" target="https://www.rfc-editor.org/info/rfc3849" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3849.xml">
          <front>
            <title>IPv6 Address Prefix Reserved for Documentation</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="A. Lord" initials="A." surname="Lord"/>
            <author fullname="P. Smith" initials="P." surname="Smith"/>
            <date month="July" year="2004"/>
            <abstract>
              <t>To reduce the likelihood of conflict and confusion when relating documented examples to deployed systems, an IPv6 unicast address prefix is reserved for use in examples in RFCs, books, documentation, and the like. Since site-local and link-local unicast addresses have special meaning in IPv6, these addresses cannot be used in many example situations. The document describes the use of the IPv6 address prefix 2001:DB8::/32 as a reserved prefix for use in documentation. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3849"/>
          <seriesInfo name="DOI" value="10.17487/RFC3849"/>
        </reference>
        <reference anchor="RFC6480" target="https://www.rfc-editor.org/info/rfc6480" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6480.xml">
          <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>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"/>
        </reference>
        <reference anchor="RFC6481" target="https://www.rfc-editor.org/info/rfc6481" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6481.xml">
          <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>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"/>
        </reference>
        <reference anchor="RFC6487" target="https://www.rfc-editor.org/info/rfc6487" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6487.xml">
          <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>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"/>
        </reference>
        <reference anchor="RFC6488" target="https://www.rfc-editor.org/info/rfc6488" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6488.xml">
          <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>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"/>
        </reference>
        <reference anchor="RFC6493" target="https://www.rfc-editor.org/info/rfc6493" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6493.xml">
          <front>
            <title>The Resource Public Key Infrastructure (RPKI) Ghostbusters Record</title>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <date month="February" year="2012"/>
            <abstract>
              <t>In the Resource Public Key Infrastructure (RPKI), resource certificates completely obscure names or any other information that might be useful for contacting responsible parties to deal with issues of certificate expiration, maintenance, roll-overs, compromises, etc. This document describes the RPKI Ghostbusters Record containing human contact information that may be verified (indirectly) by a Certification Authority (CA) certificate. The data in the record are those of a severely profiled vCard. [STANDARDS- TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6493"/>
          <seriesInfo name="DOI" value="10.17487/RFC6493"/>
        </reference>
        <reference anchor="RFC6996" target="https://www.rfc-editor.org/info/rfc6996" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6996.xml">
          <front>
            <title>Autonomous System (AS) Reservation for Private Use</title>
            <author fullname="J. Mitchell" initials="J." surname="Mitchell"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document describes the reservation of Autonomous System Numbers (ASNs) that are for Private Use only, known as Private Use ASNs, and provides operational guidance on their use. This document enlarges the total space available for Private Use ASNs by documenting the reservation of a second, larger range and updates RFC 1930 by replacing Section 10 of that document.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="6"/>
          <seriesInfo name="RFC" value="6996"/>
          <seriesInfo name="DOI" value="10.17487/RFC6996"/>
        </reference>
        <reference anchor="RFC8209" target="https://www.rfc-editor.org/info/rfc8209" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8209.xml">
          <front>
            <title>A Profile for BGPsec Router Certificates, Certificate Revocation Lists, and Certification Requests</title>
            <author fullname="M. Reynolds" initials="M." surname="Reynolds"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>This document defines a standard profile for X.509 certificates used to enable validation of Autonomous System (AS) paths in the Border Gateway Protocol (BGP), as part of an extension to that protocol known as BGPsec. BGP is the standard for inter-domain routing in the Internet; it is the "glue" that holds the Internet together. BGPsec is being developed as one component of a solution that addresses the requirement to provide security for BGP. The goal of BGPsec is to provide full AS path validation based on the use of strong cryptographic primitives. The end entity (EE) certificates specified by this profile are issued to routers within an AS. Each of these certificates is issued under a Resource Public Key Infrastructure (RPKI) Certification Authority (CA) certificate. These CA certificates and EE certificates both contain the AS Resource extension. An EE certificate of this type asserts that the router or routers holding the corresponding private key are authorized to emit secure route advertisements on behalf of the AS(es) specified in the certificate. This document also profiles the format of certification requests and specifies Relying Party (RP) certificate path validation procedures for these EE certificates. This document extends the RPKI; therefore, this document updates the RPKI Resource Certificates Profile (RFC 6487).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8209"/>
          <seriesInfo name="DOI" value="10.17487/RFC8209"/>
        </reference>
        <reference anchor="RFC8211" target="https://www.rfc-editor.org/info/rfc8211" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8211.xml">
          <front>
            <title>Adverse Actions by a Certification Authority (CA) or Repository Manager in the Resource Public Key Infrastructure (RPKI)</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="D. Ma" initials="D." surname="Ma"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>This document analyzes actions by or against a Certification Authority (CA) or an independent repository manager in the RPKI that can adversely affect the Internet Number Resources (INRs) associated with that CA or its subordinate CAs. The analysis is done from the perspective of an affected INR holder. The analysis is based on examination of the data items in the RPKI repository, as controlled by a CA (or an independent repository manager) and fetched by Relying Parties (RPs). The analysis does not purport to be comprehensive; it does represent an orderly way to analyze a number of ways that errors by or attacks against a CA or repository manager can affect the RPKI and routing decisions based on RPKI data.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8211"/>
          <seriesInfo name="DOI" value="10.17487/RFC8211"/>
        </reference>
        <reference anchor="RFC9286" target="https://www.rfc-editor.org/info/rfc9286" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9286.xml">
          <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>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"/>
        </reference>
        <reference anchor="RFC9323" target="https://www.rfc-editor.org/info/rfc9323" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9323.xml">
          <front>
            <title>A Profile for RPKI Signed Checklists (RSCs)</title>
            <author fullname="J. Snijders" initials="J." surname="Snijders"/>
            <author fullname="T. Harrison" initials="T." surname="Harrison"/>
            <author fullname="B. Maddison" initials="B." surname="Maddison"/>
            <date month="November" year="2022"/>
            <abstract>
              <t>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>
          </front>
          <seriesInfo name="RFC" value="9323"/>
          <seriesInfo name="DOI" value="10.17487/RFC9323"/>
        </reference>
        <reference anchor="RFC9582" target="https://www.rfc-editor.org/info/rfc9582" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9582.xml">
          <front>
            <title>A Profile for Route Origin Authorizations (ROAs)</title>
            <author fullname="J. Snijders" initials="J." surname="Snijders"/>
            <author fullname="B. Maddison" initials="B." surname="Maddison"/>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <author fullname="D. Kong" initials="D." surname="Kong"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This document defines a standard profile for Route Origin Authorizations (ROAs). A ROA is a digitally signed object that provides a means of verifying that an IP address block holder has authorized an Autonomous System (AS) to originate routes to one or more prefixes within the address block. This document obsoletes RFC 6482.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9582"/>
          <seriesInfo name="DOI" value="10.17487/RFC9582"/>
        </reference>
        <reference anchor="RFC9632" target="https://www.rfc-editor.org/info/rfc9632" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9632.xml">
          <front>
            <title>Finding and Using Geofeed Data</title>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="M. Candela" initials="M." surname="Candela"/>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>This document specifies how to augment the Routing Policy Specification Language (RPSL) inetnum: class to refer specifically to geofeed comma-separated values (CSV) data files and describes an optional scheme that uses the Resource Public Key Infrastructure (RPKI) to authenticate the geofeed data files. This document obsoletes RFC 9092.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9632"/>
          <seriesInfo name="DOI" value="10.17487/RFC9632"/>
        </reference>
        <reference anchor="RFC9691" target="https://www.rfc-editor.org/info/rfc9691" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9691.xml">
          <front>
            <title>A Profile for Resource Public Key Infrastructure (RPKI) Trust Anchor Keys (TAKs)</title>
            <author fullname="C. Martinez" initials="C." surname="Martinez"/>
            <author fullname="G. Michaelson" initials="G." surname="Michaelson"/>
            <author fullname="T. Harrison" initials="T." surname="Harrison"/>
            <author fullname="T. Bruijnzeels" initials="T." surname="Bruijnzeels"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>A Trust Anchor Locator (TAL) is used by Relying Parties (RPs) in the Resource Public Key Infrastructure (RPKI) to locate and validate a Trust Anchor (TA) Certification Authority (CA) certificate used in RPKI validation. This document defines an RPKI signed object for a Trust Anchor Key (TAK). A TAK object can be used by a TA to signal to RPs the location(s) of the accompanying CA certificate for the current public key, as well as the successor public key and the location(s) of its CA certificate. This object helps to support planned key rollovers without impacting RPKI validation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9691"/>
          <seriesInfo name="DOI" value="10.17487/RFC9691"/>
        </reference>
      </references>
    </references>
    <section removeInRFC="true">
      <name>Implementation Status</name>
      <t>
         This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in RFC 7942.
         The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.
         Please note that the listing of any individual implementation here does not imply endorsement by the IETF.
         Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors.
         This is not intended as, and must not be construed to be, a catalog of available implementations or their features.
         Readers are advised to note that other implementations may exist.
      </t>
      <t>
        According to RFC 7942, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.
        It is up to the individual working groups to use this information as they see fit".
      </t>
      <t>
        The approach specified in this document has been implemented in <xref target="rpki-client"/> and has been enabled by default in releases since 2023.
      </t>
    </section>
    <section toc="include" anchor="example">
      <name>Constraints applicable to an Example Trust Anchor</name>
      <t>
        If the below content is placed in a file named <strong>example.constraints</strong> next to a Trust Anchor Locator file named <strong>example.tal</strong>, the <xref target="rpki-client"/> implementation will only accept an End-Entity certificate subordinate to <strong>example.tal</strong> if all its resources are fully contained within the resources allowed in <strong>example.constraints</strong>.
      </t>
      <sourcecode type="text" originalSrc="example.constraints"># Example constraints following the format described in
# draft-snij-sidrops-constraining-rpki-trust-anchors

# This is a comment

allow 10.0.0.0/8      # comments may follow entries

allow 192.168.0.0/12
deny 192.168.1.0/24   # carve a hole in the above entry

allow 192.0.2.0/24

allow 100.64.0.0 - 100.127.255.254 # this is a range
allow 203.0.113.0 - 203.0.113.255  # this too

allow 3fff::/20       # IPv6 is also supported
deny 3fff::/48

deny 2001:db8:: - 2001:db8::ffff # an IPv6 range

# From https://www.iana.org/assignments/as-numbers/
allow 64496 - 64511
deny 65123           # carve a hole in the above entry

allow 65536          # can declare for single ASN

deny 4200000000 - 4294967294

# There is an implicit deny for all resources which were not
# explicitly allowed through 'allow' declarations.
</sourcecode>
    </section>
    <section anchor="acknowledgements" numbered="false" toc="include">
      <name>Acknowledgements</name>
      <t>
       Thanks to Niels Bakker, Joel Jaeggli, Tony Tauber, Tom Scholl, Erik Bais, Simon Leinen, and Nick Hilliard for their feedback and input.
      </t>
    </section>
  </back>
</rfc>
