<?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-02"
  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-02"/>
   
    <author fullname="Heng Zhang" initials="H." surname="Zhang">
      <organization>CNNIC</organization>
      <address>
        <email>zhangheng@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="2026" month="April"/>
    <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 RECOMMENDS that a parent Certification Authority (CA) void issuing ROAs for Internet number resources delegated to a child CA. RPKI certification authorities(CA software) and relying party software are expected to support these practices by appropiate warning.</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. Upon delegation, the child CA typically gains effective operational 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) that RECOMMENDS restrictions on ROA issuance by parent CAs for delegated resources, while providing flexible operational guidance to support legitimate BGP practices such as announcing covering prefixes alongside more-specific customer announcements.</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 generally expected transferred. However, parent CAs sometimes issue ROAs for those delegated resources. This can lead 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. Note that this BCP primarily mitigates misconfigurations rather than providing complete protection against a fully malicious parent CA, which retains other powers (e.g., certificate revocation or resource modification)</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 and security in the RPKI ecosystem, the following practices are RECOMMENDED:</t>
	  <ul>
	    <li>
          <t>Parent CAs SHOULD 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 SHOULD warn or reject ROAs issued for resources that have been delegated to a child CA (i.e., resources no longer within the issuer's effective authority due to delegation).</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>Operational Guidance for Covering Prefixes and Customer Delegations:</t>
		  <t>When an ISP holds a covering prefix (e.g., a /16) and delegates a more-specific prefix (e.g., a /24) to a customer:</t>
		  <ul>
		    <li>
		      If the delegation occurs within the same administrative domain or the ISP wishes to retain operational control, the shared CA model is RECOMMENDED. The ISP and customer operate under a common CA certificate. This allows the ISP to issue ROAs for both the covering prefix and the more-specific delegation, supporting common BGP practices such as announcing an aggregate alongside customer more-specifics. In such cases, creating a separate child CA is NOT RECOMMENDED and is often discouraged.
		    </li>
		    <li>
		      If the customer requires full control (independent ROA management and announcement from a different origin AS), the parent/child CA model MAY be used. The child CA issues the ROA for the more-specific prefix, while the parent MAY retain a ROA for the covering prefix if needed for its own announcements. RP software SHOULD flag such overlapping ROAs for operator review but MUST NOT automatically invalidate them.
		    </li>
		  </ul>
		</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>This BCP primarily addresses misconfigurations and unintended authority overlaps.  It does not prevent all possible actions by a malicious or compromised parent CA, which could still revoke child certificates, shrink resource sets, or re-delegate resources.</t>
	  <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 operational environments, organizations may delegate resources internally to subsidiaries or to external customers while needing to announce covering prefixes themselves.</t>
	  <t>When the more-specific prefix belongs to a different legal entity requiring independent control of its BGP announcements, the parent/child CA model may be necessary. This document does not invalidate such configurations, nor does it impact the validity of BGP announcements containing both covering prefixes and more-specifics. The focus is strictly on minimizing cryptographic authority conflicts to prevent validation ambiguity.</t>
	  <t>Resources MAY appear on multiple CA certificates for legitimate purposes such as key rollovers and make-before-break transfers.</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>
