<?xml version="1.0" encoding="utf-8"?>

<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="bcp"
  docName="draft-zhang-sidrops-rpki-roa-bcp-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">

  <front>
    <title abbrev="ROA-BCP">Best Current Practice for ROA Issuance Restrictions in RPKI</title>

    <seriesInfo name="Internet-Draft" value="draft-zhang-sidrops-rpki-roa-bcp-00"/>
   
    <author fullname="Heng Zhang" initials="H." surname="Zhang">
      <organization>CNNIC</organization>
      <address>
        <email>zhengheng@cnnic.cn</email>  
      </address>
    </author>
    <author fullname="Hui Zou" initials="H." surname="Zou">
      <organization>CNIC</organization>
      <address>
        <email>zouhui@cnic.cn</email>  
      </address>
    </author>
	<author fullname="Likun Zhang" initials="L." surname="Zhang">
      <organization>CNNIC</organization>
      <address>
        <email>zhanglikun@cnnic.cn</email>  
      </address>
    </author>
	<author fullname="Xue Yang" initials="X." surname="Yang">
      <organization>CNNIC</organization>
      <address>
        <email>yangx@cnnic.cn</email>  
      </address>
    </author>
	<author fullname="Di Ma" initials="D." surname="Ma">
      <organization>ZDNS</organization>
      <address>
        <email>madi@zdns.cn</email>  
      </address>
    </author>
	<author fullname="Yanbiao Li" initials="Y." surname="Li">
      <organization>CNIC</organization>
      <address>
        <email>lybmath@cnic.cn</email>  
      </address>
    </author>
    <date year="2025" month="October"/>
    <area>Ops&amp;Management</area>
    <workgroup>SIDR Operations</workgroup>
    <keyword>Routing Security</keyword>
	<keyword>BGP</keyword>
	<keyword>RPKI</keyword>
	<keyword>ROA</keyword>
    <abstract>
      <t>This document specifies best current practices for Resource Public Key Infrastructure (RPKI) operators regarding Route Origin Authorizations (ROAs). It mandates that a parent Certification Authority (CA) MUST NOT issue ROAs for Internet number resources delegated to a child CA. RPKI certification authorities(CA software) and relying party software are required to enforce this restriction by rejecting or flagging invalid ROAs issued outside of resource allocations.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The Resource Public Key Infrastructure (RPKI) <xref target="RFC6480"/> provides a framework to secure the Internet routing by associating IP address blocks with public key certificates.  Route Origin Authorizations(ROAs) <xref target="RFC9582"/> allow the holder of an IP prefix to authorize an Autonomous System (AS) to originate routes for that prefix.</t>
	  
      <t>In the RPKI hierarchy, IP resources are delegated from a parent Certification Authority (CA) to a child CA, transferring exclusive authority over those resources. However, some RPKI implementations permit parent CAs to issue ROAs for delegated resources, leading to conflicts and undermining the RPKI trust model.</t>
	  
	  <t> This document establishes a Best Current Practice (BCP) to specify that only the entity holding the resource certificate with effective authority for a prefix may issue ROAs for that prefix. Effective authority is transferred to the child CA upon delegation, and the parent CA MUST NOT issue ROAs for those resources.</t>
	  
      <section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
          interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
      </section>
      <!-- [CHECK] The 'Requirements Language' section is optional -->

    </section>
    
    <section anchor="sec-ps">
      <name>Problem Statement</name>
      <t>When a parent CA delegates resources to a child CA, authority over those resources is exclusively transferred. According to the RPKI architecture <xref target="RFC6480"/>, the parent CA relinquishes operational control and MUST NOT issue ROAs for delegated resources. However, in practice, some RPKI systems permit this leading to the following issues:</t>
	  <ul>
	    <li>
          <t>Competing ROAs <xref target="RFC8211"/>: Multiple ROAs may exist for the same IP prefix, issued by both parent and child CAs.</t>
        </li>
        <li>
          <t>Validation ambiguity: Relying party (RP) software cannot prioritize between competing ROAs, including all valid ROAs in validated ROA payloads(VRPs). This may lead to routing decisions that conflict with the delegation model(e.g., a parent CA's ROA for 192.0.2.0/24 authorizing AS1, and a child CA's ROA for the same prefix authorizing AS2).</t>
        </li>
		<li>
          <t>Security risk: A malicious or compromised parent CA could issue ROAs to hijack routes or disrupt legitimate routing.</t>
        </li>
	  </ul>
	  <t> These issues directly affect the security and stability of the Internet routing system, as RPKI data is used to validate route origins and influence routing decisions.</t>
    </section>   
    
	<section anchor="sec-bcp">
      <name>Best Current Practice</name>
      <t>To ensure consistency, security in the RPKI ecosystem, the following practices are RECOMMENDED:</t>
	  <ul>
	    <li>
          <t>Parent CAs MUST NOT issue ROAs for resources delegated to a child CA. If legacy ROAs exist, the parent CA SHOULD revoke them in coordination with the child CA to minimize disruption.</t>
        </li>
        <li>
          <t>RPKI CA software MUST reject ROAs issued for resources outside the issuer's certified resources, defined as those resources in the CA's active certificate, excluding delegated portions.</t>
        </li>
		<li>
          <t>Relying party (RP) software SHOULD flag ROAs issued by a parent CA for resources delegated to a child CA, issuing warnings during validation. The detection rule is:verify if a parent CA's ROA prefix overlaps with resources delegated to a child CA.</t>
        </li>
		<li>
          <t>It is RECOMMENDED that only leaf CAs(CAs that have not delegated resources further) issue ROAs. Restricting ROA issuance to leaf CAs clarifies authority, prevents overlapping or competing ROAs between parent and child CAs, and reduces risks of  misconfiguration or misuse that could lead to routing incidents. If a non-leaf CA issues a ROA, RP software triggers an warning during validation. This recommendation is consistent with the above restriction on parent CAs and extends the principle by specifying that only CAs without further delegation (leaf CAs) should perform ROA issuance.</t>
        </li>
		<li>
          <t>In cases where a parent CA, such as a Regional Internet Registry (RIR), operates its own network and needs to issue ROAs for the resources it directly holds (i.e., resources not delegated to child CAs), it is RECOMMENDED that the parent CA create a dedicated subordinate CA for those resources. ROAs should then be issued from this subordinate CA, maintaining clear separation between allocation and operational roles.</t>
        </li>
		<li>
          <t>Operators of RPKI CAs SHOULD implement monitoring to detect ROA misconfigurations, with automated alerts for unauthorized issuance.</t>
        </li>
		<li>
		  <t>Regional Internet Registries (RIRs) and other certification authorities are encouraged to update their RPKI documentation and user interfaces to clearly communicate these restrictions to end users.</t>
		</li>
	  </ul>
    </section>
	
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>
    
	<section anchor="sec-sc">
      <name>Security Considerations</name>
      <t>Failure to enforce ROA issuance restrictions can lead to serious security consequences, including:</t>
	  <ul>
	    <li>
          <t>Route hijacking: An compromised parent CA could issue ROAs to redirect traffic.</t>
        </li>
        <li>
          <t>Routing blackhole: If a parent CA issues an ROA for a delegated prefix (e.g., 192.0.2.0/24 authorizing AS1) and the child CA, holding the same prefix, does not issue an ROA but announces via AS2, the route may be marked "Invalid" per [RFC6811], causing traffic to be dropped and resulting in a routing blackhole.</t>
        </li>
		<li>
          <t>Erosion of trust: Ambibuities in ROA authority reduce confidence in RPKI.</t>
        </li>
	  </ul>
	  <t>Strict enforcement at both the CA and relying party levels is essential to maintaining the integrity of the global routing system. This document reinforces the principle of least authority within the RPKI hierarchy.</t>
    </section>
	
	<section anchor="sec-sp">
      <name>Special Considerations</name>
      <t>In some operational environments, organizations may delegate resources internally to subsidiaries or business units. In such cases, the parent organization may still need to issue ROAs that cover subsidiary resources. The recommended practice is to avoid using the parent/child CA model for this purpose. Instead, the parent and subsidiary should share a common CA certificate within the same administrative domain, and implement internal controls to ensure that ROAs are issued according to IP allocation rules. This prevents conflicts and ensures compliance with the principle of least authority within the global RPKI framework.</t>
    </section>
  
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="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"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC9582">
          <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"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="9582"/>
          <seriesInfo name="DOI" value="10.17487/RFC9582"/>
        </reference>
		<reference anchor="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"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
 
      <references>
        <name>Informative References</name>
       
        <reference anchor="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"/>
          </front>
          <seriesInfo name="RFC" value="6480"/>
          <seriesInfo name="DOI" value="10.17487/RFC6480"/>
        </reference>
        <reference anchor="RFC6811">
          <front>
            <title>BGP Prefix Origin Validation</title>
            <author fullname="R. Bush" initials="B." surname="Bush"/>
            <date month="January" year="2013"/>
          </front>
          <seriesInfo name="RFC" value="6811"/>
          <seriesInfo name="DOI" value="10.17487/RFC6811"/>
        </reference>
		<reference anchor="RFC8211">
          <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="A. Chi" initials="A." surname="Chi"/>
            <date month="September" year="2017"/>
          </front>
          <seriesInfo name="RFC" value="8211"/>
          <seriesInfo name="DOI" value="10.17487/RFC8211"/>
        </reference>
       
      </references>
    </references>
       
 </back>
</rfc>
