<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wang-sidrops-fcbgp-protocol-05" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="FC-BGP">FC-BGP Protocol Specification</title>
    <seriesInfo name="Internet-Draft" value="draft-wang-sidrops-fcbgp-protocol-05"/>
    <author fullname="Ke Xu">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>xuke@tsinghua.edu.cn</email>
      </address>
    </author>
    <author fullname="Xiaoliang Wang">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>wangxiaoliang0623@foxmail.com</email>
      </address>
    </author>
    <author fullname="Zhuotao Liu">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhuotaoliu@tsinghua.edu.cn</email>
      </address>
    </author>
    <author fullname="Qi Li">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>qli01@tsinghua.edu.cn</email>
      </address>
    </author>
    <author fullname="Jianping Wu">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>jianping@cernet.edu.cn</email>
      </address>
    </author>
    <author initials="Y." surname="Guo" fullname="Yangfei Guo">
      <organization>Zhongguancun Laboratory</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>guoyangfei@zgclab.edu.cn</email>
      </address>
    </author>
    <date year="2026" month="March" day="31"/>
    <workgroup>sidrops</workgroup>
    <abstract>
      <?line 105?>

<t>This document defines an extension, Forwarding Commitment BGP (FC-BGP), to the Border Gateway Protocol (BGP). FC-BGP provides security for the path of Autonomous Systems (ASs) through which a BGP UPDATE message passes. Forwarding Commitment (FC) is a cryptographically signed segment to certify an AS's routing intent on its directly connected hops. Based on FC, FC-BGP aims to build a secure inter-domain system that can simultaneously authenticate the AS_PATH attribute in the BGP UPDATE message and alleviate route leaks in the BGP routing system. The extension is backward compatible, which means a router that supports the extension can interoperate with a router that doesn't support the extension.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://FCBGP.github.io/fcbgp-protocol/draft-wang-sidrops-fcbgp-protocol.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wang-sidrops-fcbgp-protocol/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/FCBGP/fcbgp-protocol"/>.</t>
    </note>
  </front>
  <middle>
    <?line 110?>

<section anchor="Introduction">
      <name>Introduction</name>
      <t>In a post-ROV (Route Origin Validation) era, route hijacks are largely mitigated but not eliminated, which fundamentally shifts the security focus up the stack. The problem space becomes less about "who owns the prefix" and more about "how routes propagate and whether that propagation is trustworthy and policy-compliant".</t>
      <t>The FC-BGP mechanism described in this document aims to ensure that advertised routes in BGP <xref target="RFC4271"/> are authentic and alleviate the BGP route leaks.</t>
      <t>FC-BGP accomplishes this by introducing a new optional, transitive, and extended-length path attribute called FC (Forwarding Commitment) to the BGP UPDATE message. This attribute can be used by an FC-BGP-compliant BGP speaker (hereafter referred to as an FC-BGP speaker) to generate, propagate, and validate BGP UPDATE messages to enhance security. In other words, when the BGP UPDATE message travels through an FC-BGP-enabled autonomous system (AS), it adds a new FC based on the AS order in AS_PATH. Subsequent ASs can then utilize the list of FCs in the BGP UPDATE message to ensure that the advertised path is consistent with the AS_PATH attribute. And as a complementary of <xref target="RFC9234"/>, it can also alleviate the BGP route leaks.</t>
      <t>BGPsec is a path-level authentication approach described in <xref target="RFC8205"/>. It replaces the AS_PATH attribute, which is used to record the sequence of ASs that a BGP update has traversed, with the non-transitive BGPsec_Path attribute. However, when a peer does not support BGPsec, the BGPsec_Path attribute will be downgraded to the standard AS_PATH attribute, losing the security benefits BGPsec provides. In contrast, FC-BGP (Forwarding Commitment BGP) preserves the AS_PATH attribute and introduces an additional list of signed messages called Forwarding Commitments. Each Forwarding Commitment (FC) is a publicly verifiable code certifying the correctness of a three-hop pathlet. FC-BGP builds its path authentication based on these FCs.</t>
      <t>FC-BGP and BGPsec offer different levels of security benefits in the case of partial deployment, even though they achieve the same security benefits when fully deployed. BGPsec tightly couples path authentication with the BGP path construction process, requiring each AS to iteratively verify the signatures of each prior hop before extending the authentication chain. Consequently, a single legacy AS that does not support BGPsec can break the authentication chain, preventing subsequent BGPsec-aware ASs from reviving the authentication process. As a result, in partial deployment scenarios, BGPsec is often downgraded to the legacy BGP protocol, losing its security benefits.</t>
      <t>In contrast to BGPsec, FC-BGP treats partial deployability as a first-class citizen. It adopts a pathlet-driven authentication paradigm, in which the authenticity of an AS path can be incrementally built based on authenticated pathlets.  This design ensures that downstream FC-BGP-aware ASs can use the authenticated pathlets provided by upstream upgraded ASs, even if the full AS path traverses legacy ASs that do not support FC-BGP. By allowing the authentication of sub-paths, FC-BGP enables incremental deployment and provides security benefits to the FC-BGP-aware ASs, regardless of the deployment status of other ASs on the path <xref target="DeploymentBenefitsAnalysis"/>.</t>
      <t>Similar to BGPsec, FC-BGP relies on RPKI to perform route origin validation <xref target="RFC6483"/>. Additionally, any FC-BGP speaker that wishes to process the FC path attribute along with BGP UPDATE messages <bcp14>MUST</bcp14> obtain a router certificate and store it in the RPKI repository. This certificate is associated with its AS number. The router key generation here follows <xref target="RFC8208"/> and <xref target="RFC8635"/>.</t>
      <t>It is <bcp14>NOT RECOMMENDED</bcp14> that both BGPsec and FC-BGP be enabled simultaneously in a BGP network. However, if a BGP update message contains both BGPsec and FC-BGP features, the BGP speaker should process the message properly. In such cases, the BGP speaker should prioritize BGPsec over FC-BGP. This means that if a BGP update message includes the BGPsec_PATH attribute, a BGP speaker that supports both BGPsec and FC-BGP should use the Secure_Path instead of the AS_PATH to generate or verify the FC segments. This prioritization ensures that the presence of FC-BGP does not compromise the security benefits of BGPsec in the same update message. More discussion is at <xref target="coexist_bgpsec"/>.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="definitions-and-acronyms">
        <name>Definitions, and Acronyms</name>
        <t>The following terms are used with a specific meaning:</t>
        <dl newline="true">
          <dt>BGP neighbor:</dt>
          <dd>
            <t>Also just 'neighbor'. Two BGP speakers that communicate using the BGP protocol are neighbors. It can be divided into iBGP neighbors and eBGP neighbors.</t>
          </dd>
          <dt>BGP speaker:</dt>
          <dd>
            <t>A device, usually a router, exchanges routes with other BGP speakers using the BGP protocol.</t>
          </dd>
          <dt>BGP UPDATE:</dt>
          <dd>
            <t>The message is generated with several path attributes to advertise routes.</t>
          </dd>
          <dt>iBGP:</dt>
          <dd>
            <t>iBGP neighbor, internal BGP neighbor, or internal neighbor. Internal neighbors are in the same AS.</t>
          </dd>
          <dt>eBGP:</dt>
          <dd>
            <t>eBGP neighbor, external BGP neighbor, or external neighbor. External neighbors are in different ASs.</t>
          </dd>
          <dt>Router:</dt>
          <dd>
            <t>In this document, the router always refers to a BGP speaker.</t>
          </dd>
        </dl>
        <t>In addition to the list above, the following terms are used in this document:</t>
        <dl newline="true">
          <dt>FC:</dt>
          <dd>
            <t>Forwarding Commitment, i.e., FC segment. It contains several fields and a digital signature to protect the current path.</t>
          </dd>
          <dt>FCList:</dt>
          <dd>
            <t>An ordered list of FC segments to protect the whole AS-Path in the BGP UPDATE message. The order of FCs follows the order of AS numbers in the AS-Path. All FC-BGP-enabled BGP speakers <bcp14>SHOULD</bcp14> add their FCs to the BGP UPDATE message.</t>
          </dd>
          <dt>FC path attribute:</dt>
          <dd>
            <t>The optional, transitive, extended length path attribute is defined in this document to obtain BGP security.</t>
          </dd>
          <dt>FC-BGP UPDATE:</dt>
          <dd>
            <t>A BGP UPDATE message carries the FC path attribute.</t>
          </dd>
          <dt>FC-BGP speaker:</dt>
          <dd>
            <t>A BGP speaker that enables the FC-BGP feature. It can generate, propagate, and validate FC-BGP UPDATE messages.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="fc-bgp-negotiation">
      <name>FC-BGP Negotiation</name>
      <t>FC-BGP does not need to negotiate with neighbors since it is considered a transitive path attribute within the BGP UPDATE message. BGP speakers that do not recognize the FC path attribute or do not support FC-BGP <bcp14>SHOULD</bcp14> still transmit the FC path attribute to their neighbors. As a result, there is no need to establish a new BGP capability as defined in <xref target="RFC5492"/>.</t>
      <!-- Jeffery: The FC state can be removed from BGP without detection in the current procedure. An RPKI-registered policy could address the validation case. -->
<t>However, if one AS has uploaded its keys to RPKI, it would be deemed to support FC-BGP. The reason and process are defined in <xref target="Validation"/>.</t>
    </section>
    <section anchor="fc-path-attribute">
      <name>FC Path Attribute</name>
      <t>Unlike BGPsec, FC-BGP does not modify the AS_PATH. Instead, FC is enclosed in a BGP UPDATE message as an optional, transitive, and extended-length path attribute. This document registers a new attribute type code for this attribute: TBD, see <xref target="iana-considerations"/> for more information.</t>
      <t>The FC path attribute includes the digital signatures that protect the pathlet information. We refer to those update messages that contain the FC path attribute as "FC-BGP UPDATE messages". Although FC-BGP would not modify the AS_PATH path attribute, it is <bcp14>REQUIRED</bcp14> to never use the AS_SET or AS_CONFED_SET in FC-BGP according to <xref target="RFC6472"/> and <xref target="Deprecation-AS_SET-AS_CONFED_SET"/>.</t>
      <t>The format of the FC path attribute is shown in <xref target="figure1"/> and <xref target="figure2"/>. <xref target="figure1"/> shows the format of FC path attribute and <xref target="figure2"/> shows the FC segment format.</t>
      <figure anchor="figure1">
        <name>Format of FC path attribute.</name>
        <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Flags    |      Type     |         FCList Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                            FCList                             ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>FC path attribute includes the following parts:</t>
      <dl newline="true">
        <dt>Flags (1 octet):</dt>
        <dd>
          <t>The current value is 0b11010000, representing the FC path attribute as optional, transitive, partial, and extended-length.</t>
        </dd>
        <dt>Type (1 octet):</dt>
        <dd>
          <t>The current value is TBD. Refer to <xref target="iana-considerations"/> for more information.</t>
        </dd>
        <dt>FCList Length (2 octets):</dt>
        <dd>
          <t>The value is the total length of the FCList in octets.</t>
        </dd>
        <dt>FCList (variable length):</dt>
        <dd>
          <t>The value is a sequence of FC segments, in order. The definition of the FC segment format is shown in <xref target="figure2"/>. It does not conflict with the AS_PATH attribute. That means the FC-BGP path attribute and AS_PATH attribute can coexist in the same FC-BGP UPDATE message.</t>
        </dd>
      </dl>
      <figure anchor="figure2">
        <name>Format of FC segment.</name>
        <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Previous Autonomous System Number (PASN)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Current Autonomous System Number (CASN)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Nexthop Autonomous System Number (NASN)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                  Subject Key Identifier (SKI)                 ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Algorithm ID  |      Flags    |       Signature Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                          Signature                            ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>In FC-BGP, all ASs <bcp14>MUST</bcp14> use 4-byte AS numbers in FC segments. Existing 2-byte AS numbers are converted into 4-byte AS numbers by setting the two high-order octets of the 4-octet field to 0 <xref target="RFC6793"/>.</t>
      <t>FC segment includes the following parts. (See <xref target="fcbgp-update"/> for more details on populating these fields.)</t>
      <dl newline="true">
        <dt>Previous Autonomous System Number (PASN, 4 octets):</dt>
        <dd>
          <t>The PASN is the AS number of the previous hop AS from which the FC-BGP speaker receives the FC-BGP UPDATE message. If the current AS has no previous AS hop, it <bcp14>MUST</bcp14> be filled with 0. It will be discussed more at <xref target="sec-three-asn"/>.</t>
        </dd>
        <dt>Current Autonomous System Number (CASN, 4 octets):</dt>
        <dd>
          <t>The CASN is the AS number of the FC-BGP speaker that added this FC segment to the FC path attribute.</t>
        </dd>
        <dt>Nexthop Autonomous System Number (NASN, 4 octets):</dt>
        <dd>
          <t>The NASN is the AS number of the next hop AS to which the FC-BGP speaker will send the BGP UPDATE message.</t>
        </dd>
        <dt>Subject Key Identifier (SKI, 20 octets):</dt>
        <dd>
          <t>The SKI in the RPKI router certificate is a unique identifier for the public key used for signature verification. If the SKI length exceeds 20 octets, it should retrieve the leftmost 20 octets.</t>
        </dd>
      </dl>
      <!-- TODO: Different from BGPsec as each FC segment has its algorithm ID, there is no need to set more than one FC segment for each hop. Hope so. -->

<dl newline="true">
        <dt>Algorithm ID (1 octet):</dt>
        <dd>
          <t>The current assigned value is 1, indicating that SHA256 is used to hash the content to be signed, and ECDSA is used for signing. It follows the algorithm suite defined in <xref target="RFC8208"/> and its updates. Each FC segment has an Algorithm ID, so there is no need to worry about sudden changes in its algorithm suite. The key in FC-BGP uses the BGPsec Router Key, so its generation and management follow <xref target="RFC8635"/>.</t>
        </dd>
      </dl>
      <!-- TODO: Flags in BGPsec used to indicate the AS_CONFED_SEQUENCE. But the pCount field is omitted here. We may merge the Flags field and pCount field. However, in BGPsec, setting the pCount field to a value greater than 1 has the same semantics as repeating an AS number multiple times in the AS_PATH of a non-BGPsec UPDATE message (e.g., for traffic engineering purposes). If 0, it means this is for the IXP Route Server. And the leftmost bit in Flags is the Confed_Segment flag to indicate the BGPsec speaker that constructed this Secure_Path Segment is sending the UPDATE message to a peer AS within the same AS confederation [RFC5065]. I have no idea how to deal with Confed_Segment/AS confederation. -->

<dl newline="true">
        <dt>Flags (1 octet):</dt>
        <dd>
          <t>Several flag bits. The leftmost bit of the Flags field in <xref target="figure2"/> is the Confed_Segment flag (Flags-CS). The Flags-CS flag is set to 1 to indicate that the FC-BGP speaker that constructed this FC segment is sending the UPDATE message to a peer AS within the same AS confederation <xref target="RFC5065"/>. (That is, a sequence of consecutive Confed_Segment flags is set in an FC-BGP UPDATE message whenever, in a non-FC-BGP UPDATE message, an AS_PATH segment of type AS_CONFED_SEQUENCE occurs.) In all other cases, the Flags-CS flag is set to 0. The second leftmost bit (i.e., the second highest) of the Flags field in <xref target="figure2"/> is the Route_Server flag (Flags-RS). The Flags-RS flag is set to 1 to indicate that a route server adds this FC segment, but the AS number will never appear in the AS_PATH attribute. If the AS number of a router server is inserted into AS_PATH, this Flags-RS flag <bcp14>MUST</bcp14> be set to 0. The third leftmost bit (i.e., the third highest bit) of the Flags field in <xref target="figure2"/> is the AS_Path_Prepending flag (Flags-ASPP). This Flags-ASPP flag is set to 1 when AS path prepending is used; otherwise, this flag <bcp14>MUST</bcp14> be set to 0. The fourth and fifth leftmost bits (i.e., the fourth highest and fifth highest bits) of the Flags field in <xref target="figure2"/> are the Provider_to_Customer flag (Flags-P2C) and Peer_to_Peer flag (Flags-P2P) separately. The Flags-P2C flag is set to 1 to indicate that the FC segment's issuer AS sends routes to its customer, and the Flags-P2P flag is set to 1 to indicate that the FC segment's issuer AS sends routes to its peer. If the Flags-P2C or Flags-P2P flags are set, the next route propagation will only be permitted to the following customers. The remaining bits of the Flags field are unassigned. They <bcp14>MUST</bcp14> be set to 0 by the sender and ignored by the receiver.</t>
        </dd>
        <dt>Signature Length (2 octets):</dt>
        <dd>
          <t>It only contains the length of the Signature field in octets, not including other fields.</t>
        </dd>
      </dl>
      <!-- TODO: I don't know if it should distinguish IPv4 and IPv6 in calculating signature -->

<dl newline="true">
        <dt>Signature (variable length):</dt>
        <dd>
          <t>The signature content and order are Signature=ECDSA(SHA256(PASN, CASN, NASN, SKI, Algorithm ID, Flags, Signature Length, Prefix, Prefix Length)), where the Signature Length is kept as 0, the Prefix is the IP address prefix which is encapsulated in the BGP UPDATE, i.e., NLRI, and only one prefix is used each time. When hashing and signing, the full IP address and IP prefix length are used, i.e., IPv4 uses 4 octets, and IPv6 uses 16 octets.</t>
        </dd>
      </dl>
    </section>
    <section anchor="fcbgp-update">
      <name>FC-BGP UPDATE Messages</name>
      <section anchor="generation">
        <name>Generation</name>
        <t>This part defines the generation of the FC path attribute and the FC segment. An FC-BGP speaker <bcp14>SHOULD</bcp14> generate a new FC segment or even a new FC path attribute when it propagates a route to its external neighbors. For internal neighbors, the FC path attribute in the BGP UPDATE message remains unchanged.</t>
        <!-- TODO: Improve the last sentence. I don't know if it has a ruleset for the insertion position of optional transitive (FC) path attributes. Out of efficiencies, the FC path attribute should be placed as the last path attribute, as there are several variable-length signatures. -->
<t>The FC-BGP speaker follows a specific process to create the FC path attribute for the ongoing UPDATE message. Firstly, it generates a new FC Segment containing the necessary information for the FC path. This new FC Segment is then added to the FCList of the outer format defined in <xref target="figure1"/>. It is important to note that if the FC-BGP speaker is not the origin AS and there is already an existing FC path attribute of the UPDATE message, it <bcp14>MUST</bcp14> prepend its new FC segment to the FCList of the existing FC path attribute, like the insertion process of ASN in the AS_PATH attribute. This allows the FC-BGP speaker to contribute to its own FC segment while maintaining the existing FC path information. Otherwise, if it is the source AS, the FC-BGP speaker generates the FC path attribute defined in <xref target="figure1"/> and inserts it into the UPDATE message.</t>
        <t>There are three AS numbers in one FC segment, as <xref target="figure2"/> shows. The populating of the Current AS number (CASN) within the FC segment is like the AS number in BGPsec; it <bcp14>MUST</bcp14> match the AS number in the Subject field of the RPKI router certificate that will be used to verify the FC segment constructed by this FC-BGP speaker (see <xref section="3.1.1" sectionFormat="of" target="RFC8209"/> and <xref target="RFC6487"/>). The Previous AS number (PASN) is typically set to the AS number from which the UPDATE message is received. However, if the FC-BGP speaker is located in the origin AS, the PASN <bcp14>SHOULD</bcp14> be filled with 0. The Nexthop AS number (NASN) is set to the AS number of the peer to whom the route is advertised. So if there are several neighbors, the FC-BGP speaker should generate separate FCs for different neighbors. But it would never generate a new FC segment for the iBGP neighbor.</t>
        <t>The Subject Key Identifier field (SKI) within the new FC segment is populated with the identifier found in the Subject Key Identifier extension of the RPKI router certificate associated with the FC-BGP speaker. This identifier serves as a crucial piece of information for recipients of the route advertisement. It enables them to identify the appropriate certificate to employ when verifying the signatures in FC segments attached to the route advertisement. This practice adheres to the guidelines outlined in <xref target="RFC8209"/>.</t>
        <!-- TODO: Flags or pCount
The following several paragraphs discuss these two fields in BGPsec. <s>But, we don't need the pCount field if it only means for multiple AS in AS_PATH. Because the AS_PATH attribute has remained in FC-BGP.</s> We should separate Flags into different bits for different usages. We still need pCount; otherwise, the attacker may insert several repeated ASes into AS_PATH...
It needs more discussion for RS.
The second-highest/leftmost one is representative of pCount in RS. The last sentence is not really. It is correct in BGPsec but not in FC-BGP. -->
<t>Typically, the Flags field is set to 0.</t>
        <t>A route server (RS) is a third-party brokering system that interconnects three or more BGP-speaking routers using eBGP in IXPs <xref target="RFC7947"/>. Typically, RS performs like a transit AS except that it does not insert its AS number into the AS_PATH attribute. The route server can also participate in the FC-BGP process. If the RS is an FC-BGP-enabled RS, it may choose to set the Flags-RS bit to 1 when it populates its FC segment. However, when the RS chooses to add its AS number to the AS_PATH attribute, the Flags-RS bit <bcp14>SHOULD</bcp14> be set to 0. If the RS is a non-FC-BGP RS, it propagates the FC-BGP UPDATE message directly. Anyway, the AS number of RS would be used in the FC segment, no matter if it appears in the AS_PATH attribute.</t>
        <t>Typically, the route server does not insert ASN into AS_PATH. Take <xref target="fig-rs-ex"/> as an example, where AS A advertises a BGP UPDATE to AS C and RS connects AS A and AS B. When RS supports the FC-BGP mechanism, AS A adds its FC segment: FC(NULL, A, RS), RS adds its FC segment: FC(A, RS, B, Flags-RS), and AS B adds its FC segment: FC(RS, B, C). If RS does not support the FC-BGP mechanism, FC(A, RS, B, Flags-RS) is missed in FCList, which <bcp14>SHOULD</bcp14> be considered as a partial deployment scenario.</t>
        <figure anchor="fig-rs-ex">
          <name>A network topology with a Router Server linking two ASs.</name>
          <artwork><![CDATA[
+--------+     +--------+     +--------+     +--------+
|  AS A  | --> |   RS   | --> |  AS B  | --> |  AS C  |
+--------+     +--------+     +--------+     +--------+
]]></artwork>
        </figure>
        <t>AS Path Prepending is a traffic engineering mechanism in BGP to deprioritize a route or alternate path, which will prepend the local AS number multiple times to the AS_PATH attribute <xref target="ASPP"/>. To minimize unnecessary processing load during the validation of FC segments, an FC-BGP speaker <bcp14>SHOULD NOT</bcp14> generate multiple consecutive FC segments with the same AS number. Instead, the FC-BGP speaker <bcp14>SHOULD</bcp14> aim to produce a single FC segment once, even if the intention is to achieve the semantics of prepending the same AS number multiple times. Flags-ASPP <bcp14>MUST</bcp14> be set to 1 if the local AS uses AS Path Prepending.</t>
        <!-- TODO: It is difficult to guarantee its neighbors support multiple algorithm suites.
The following parts are copied from BGPsec. We may not need to consider AS migration carefully.
The following definitions in BGPsec {{RFC8205}} also apply to this document. See {{RFC8206}} for a discussion of setting pCount to 0 to facilitate AS Number migration. Also, see Section 4.3 for the use of pCount=0 in the context of an AS confederation.  See Section 7.2 for operational guidance for configuring a BGPsec router for setting pCount=0 and/or accepting pCount=0 from a neighbor. -->
<t>The Algorithm ID field is set to 1. FC-BGP only supports one algorithm suite in this document as the BGPsec Algorithm defined in <xref target="RFC8208"/>. That is the signature algorithm used <bcp14>MUST</bcp14> be the Elliptic Curve Digital Signature Algorithm (ECDSA) with curve P-256, and the hash algorithm used <bcp14>MUST</bcp14> be SHA-256. If it transits from one algorithm suite to another, the FC-BGP speaker <bcp14>MUST</bcp14> place its router certificate in the RPKI repository first and then specify the Algorithm ID in the FC segment.</t>
        <t>The Signature Length field is populated with the length (in octets) of the value in the Signature field.</t>
        <t>The Signature field in the new FC segment is a variable-length field. It contains a digital signature encapsulated in DER format that binds the prefix, its length, and triplet &lt;PASN, CASN, NASN&gt; to the RPKI router certificate corresponding to the FC-BGP speaker. The digital signature is computed as follows: Signature=ECDSA(SHA256(PASN, CASN, NASN, SKI, Algorithm ID, Flags, Signature Length, Prefix, Prefix Length)).
<!-- TODO: this is not a good way to clarify the calculation of Signature. More details are needed, such as AFI, SAFI, and NLRI in Figure 8 in RFC8205. -->
        </t>
        <t>The signatures within the FC segments of an FC-BGP UPDATE message ensure the protection of crucial information, including the AS number of the neighbor involved in the message exchange. This information is explicitly included in the generated FC segment. Consequently, if an FC-BGP speaker intends to transmit an FC-BGP UPDATE message to multiple BGP neighbors, it <bcp14>MUST</bcp14> generate a distinct FC-BGP UPDATE message for each unique neighbor AS to whom the UPDATE message is being sent.</t>
        <t>Indeed, an FC-BGP UPDATE message is <bcp14>REQUIRED</bcp14> to advertise a route to just one prefix. This is because if an FC-BGP speaker receives an UPDATE message containing multiple prefixes, it would be unable to construct a valid FC-BGP UPDATE message, including valid path signatures, with a subset of the received prefixes. To advertise routes to multiple prefixes, the FC-BGP speaker <bcp14>MUST</bcp14> generate individual FC-BGP UPDATE messages for each prefix. This ensures the proper construction of valid path signatures for each advertised prefix.
<!-- TODO: we don't use this rule, though I don't know why BGPsec uses it. Additionally, an FC-BGP UPDATE message MUST use the MP_REACH_NLRI attribute {{RFC4760}} to encode the prefix. -->
        </t>
        <t>All FC-BGP UPDATE messages <bcp14>MUST</bcp14> conform to BGP's maximum message size. If the resulting message exceeds the maximum message size, then the guidelines in <xref section="9.2" sectionFormat="of" target="RFC4271"/> <bcp14>MUST</bcp14> be followed.</t>
      </section>
      <section anchor="propagation">
        <name>Propagation</name>
        <t>Any BGP speaker should propagate the optional transitive FC path attribute encapsulated in the FC-BGP UPDATE message, even though they do not support the FC-BGP feature. However, it is important to note that an FC-BGP speaker <bcp14>SHOULD NOT</bcp14> make any attestation regarding the validation state of the FC-BGP UPDATE message it receives. They <bcp14>MUST</bcp14> verify the FC path attribute themselves.</t>
        <!-- The last part is for iBGP and eBGP. -->
<t>To incorporate or create a new FC segment for an FC-BGP UPDATE message using a specific algorithm suite, the FC-BGP speaker <bcp14>MUST</bcp14> possess an appropriate private key capable of generating signatures for that particular algorithm suite. Moreover, this private key <bcp14>MUST</bcp14> correspond to the public key found in a valid RPKI End Entity (EE) certificate. The AS number resource extension within this certificate should include the FC-BGP speaker's AS number as specified in <xref target="RFC8209"/>. It is worth noting that these new segments are only prepended to an FC-BGP UPDATE message when the FC-BGP speaker generates the UPDATE message for transmission to an external neighbor. In other words, this occurs when the AS number of the neighbor differs from the AS number of the FC-BGP speaker.</t>
        <t>The RPKI allows the legitimate holder of IP address prefix(es) to issue a digitally signed object known as a Route Origin Authorization (ROA). This ROA authorizes a specific AS to originate routes for a particular set of prefixes <xref target="RFC6482"/>. It is anticipated that most Relying Parties (RPs) will combine FC-BGP with origin validation <xref target="RFC6483"/> and <xref target="RFC6811"/>. Therefore, it is strongly <bcp14>RECOMMENDED</bcp14> that an FC-BGP speaker only advertises a route for a given prefix in an FC-BGP UPDATE message if there is a valid ROA that authorizes the FC-BGP speaker's AS to originate routes for that specific prefix.</t>
        <t>If an FC-BGP router receives a non-FC-BGP UPDATE message from an external neighbor, meaning that the origin BGP speaker does not support FC-BGP, the router processes the UPDATE message as a regular BGP UPDATE message typically. In this case, it <bcp14>SHOULD NOT</bcp14> add its own FC segment to the UPDATE message. On the other hand, when the FC-BGP speaker advertises routes belonging to its local AS and receives them from an internal neighbor, it <bcp14>MUST</bcp14> add its FC segment to the UPDATE message if it decides to propagate those routes. Furthermore, if the FC-BGP router receives an FC-BGP UPDATE message from a neighbor for a specific prefix and chooses to propagate that neighbor's route for the prefix, it <bcp14>MUST</bcp14> propagate the route as an FC-BGP UPDATE message containing the FC path attribute.</t>
        <!-- TODO: if an received UPDATE message contains AS_SET or AS_CONFED_SET, how can FC-BGP speaker processes that message. IN BGPSEC, the BGPsec speaker MUST remove any existing BGPsec_PATH in the received advertisement(s) for this prefix and produce a traditional (non-BGPsec) UPDATE message. What's more, in the mixed scenario, both AS_SET and FC path attributes are contained in one UPDATE message, and how to process it. The second issue pertains to the aggregation of routes following the setting of the FC path attribute. -->

<t>When an FC-BGP speaker sends an FC-BGP UPDATE message to an iBGP (internal BGP) neighbor, the process is straightforward. When the FC-BGP speaker originates a new route advertisement and sends it to an iBGP neighbor, it <bcp14>MUST NOT</bcp14> include the FC path attribute of the UPDATE message. In other words, the FC-BGP speaker omits the FC path attribute. Similarly, when an FC-BGP speaker decides to forward an FC-BGP UPDATE message to an iBGP neighbor, it <bcp14>MUST</bcp14> refrain from adding a new FC segment to the FC-BGP UPDATE message.</t>
        <t>When an FC-BGP speaker receives an FC-BGP UPDATE message containing an FC path attribute (with one or more FC segments) from an (internal or external) neighbor, it may choose to propagate the route advertisement by sending it to its other (internal or external) neighbors. When sending the route advertisement to an internal FC-BGP-speaking neighbor, the FC path attribute <bcp14>SHALL NOT</bcp14> be modified. When sending the route advertisement to an external FC-BGP-speaking neighbor, the following procedures are used to form or update the FC path attribute.</t>
      </section>
      <section anchor="processing-instructions-for-as-confederation-members">
        <name>Processing Instructions for AS Confederation Members</name>
        <!-- TODO: need more study.
1. AS-CONFED-SET and AS-CONFED-SEQUENCE
-->

<t>Members of AS Confederation <xref target="RFC5065"/> <bcp14>MUST</bcp14> additionally follow the instructions in this section for processing FC-BGP UPDATE messages.</t>
        <t>When an FC-BGP speaker in an AS confederation receives an FC-BGP UPDATE message from a neighbor that is external to the confederation and chooses to propagate the UPDATE message within the confederation, it first adds an FC segment and the signature signed to its own Member-AS (i.e., the 'Current AS Number' is the FC-BGP speaker's Member-AS Number). In this internally modified UPDATE message, the newly added FC segment contains the public AS number (i.e., Confederation Identifier), and the segment's Confed_Segment flag is set to 1. The newly added signature is generated using a private key corresponding to the public AS number of the confederation. The FC-BGP speaker propagates the modified UPDATE message to its peers within the confederation. (Note: In this document, intra-Member-AS peering is regarded as iBGP, and inter-Member-AS peering is regarded as eBGP. The latter is also known as confederation-eBGP.)</t>
        <t>Within a confederation, the verification of FC-BGP signatures added by other members of the confederation is optional. Note that if a confederation chooses not to verify digital signatures within the confederation, then FC-BGP is not able to provide any assurances about the integrity of the Member-AS Numbers placed in FC segments where the Confed_Segment flag is set to 1.</t>
        <t>When a confederation member receives an FC-BGP UPDATE message from a peer within the confederation and propagates it to a peer outside the confederation, it needs to remove all of the FC segments added by confederation members when it removes all path segments of the AS_PATH with the type of AS_CONFED_SEQUENCE or AS_CONFED_SET. To do this, the confederation members propagated the route outside the confederation as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Starting with the most recently added FC segment, remove FC segments whose Flags-CS bit is 1. Stop this process once an FC segment that has its Confed_Segment flags set to 0 is reached.</t>
          </li>
          <li>
            <t>Add an FC segment containing, in the CASN field, the AS Confederation Identifier (the public AS number of the confederation).  Note that all fields other than the CASN field are populated.</t>
          </li>
        </ol>
        <t>Finally, as discussed above, an AS confederation <bcp14>MAY</bcp14> optionally decide that its members will not verify digital signatures added by members. In such a confederation, when an FC-BGP speaker runs the algorithm in <xref target="validation-steps"/>, the FC-BGP speaker, during the process of signature verifications, first checks whether the Confed_Segment flag in an FC segment is set to 1. If the flag is set to 1, the FC-BGP speaker skips verification for the corresponding signature and proceeds immediately to the next FC segment. It is an error when an FC-BGP speaker receives, from a neighbor who is not in the same AS confederation, an FC-BGP UPDATE message containing a Confed_Segment flag set to 1.</t>
      </section>
      <section anchor="processing-instructions-for-bgp-route-leak-prevention">
        <name>Processing Instructions for BGP Route Leak Prevention</name>
        <t>The BGP routing system is susceptible to numerous vulnerabilities. The systemic vulnerability of the BGP routing system is known as "route leaks" <xref target="RFC7908"/>. There are 6 types of route leaks defined in <xref target="RFC7908"/>.</t>
        <t><xref target="RFC9234"/> can detect and prevent BGP route leaks by adding a new BGP OPEN Role capability and OTC transitive path attribute. However, it may be forged.</t>
        <t>When using BGP route leak prevention with FC-BGP, it <bcp14>SHOULD</bcp14> tell the neighbor its BGP Role as <xref section="4" sectionFormat="of" target="RFC9234"/>. If the peer's role is Customer or RS-Client, the Flags-P2C <bcp14>MUST</bcp14> be set to 1 on route advertisement. If the peer's role is peer, the Flags-P2P <bcp14>MUST</bcp14> be set to 1 on the route advertisement. Then, the route <bcp14>SHOULD</bcp14> subsequently go only to the Customers. It is worth noting that if the recently added FC Segment already set the Flags-P2C or Flags-P2P flags to 1, it <bcp14>MUST NOT</bcp14> be propagated to Providers, Peers, or RSes.</t>
      </section>
    </section>
    <section anchor="processing-a-received-fc-bgp-update-message">
      <name>Processing a Received FC-BGP UPDATE Message</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>When receiving an FC-BGP UPDATE message from an external BGP neighbor carrying the FC path attribute, an FC-BGP speaker <bcp14>SHOULD</bcp14> first validate the message to determine the authenticity of the path information. Same as BGPsec, an FC-BGP speaker will wish to perform origin validation (see <xref target="RFC6483"/> and <xref target="RFC6811"/>) on an incoming FC-BGP UPDATE message, but such validation is independent of the validation described in this section.</t>
        <t>After the validation, the FC-BGP speaker may want to send the FC-BGP UPDATE message to neighbors according to local route policies. Then it <bcp14>SHOULD</bcp14> update the FC path attributes and continue advertising the BGP route.</t>
        <t>For the origin AS that launches the advertisement, the FC-BGP speaker only needs to generate the FC-BGP UPDATE message without the validation.</t>
        <t>The FC-BGP speaker stores the router certificates in the RPKI repository, and any changes in the RPKI state can impact the validity of the UPDATE messages. That means the validity of FC-BGP UPDATE messages relies on the current state of the RPKI repository. When an FC-BGP speaker becomes aware of a change in the RPKI state, such as through an RPKI validating cache using the RTR protocol (as specified in <xref target="RFC8210"/>), it is <bcp14>REQUIRED</bcp14> to rerun validation on all affected UPDATE messages stored in its Adj-RIB-In <xref target="RFC4271"/>. For instance, if a specific RPKI router certificate becomes invalid due to expiration or revocation, all FC-BGP UPDATE messages containing an FC segment with an SKI matching the SKI in the affected certificate must be reassessed to determine their current validity. If the reassessment reveals a change in the validity state of an UPDATE message, the FC-BGP speaker, depending on its local policy, <bcp14>SHOULD</bcp14> rerun the best path selection process. This allows for the appropriate handling of the updated information and ensures that the most valid and suitable paths are chosen for routing purposes.</t>
      </section>
      <section anchor="Validation">
        <name>Validation</name>
        <t>When verifying the authenticity of an FC-BGP UPDATE message, information from the RPKI router certificates is utilized. The RPKI router certificates provide the data, including the triplet &lt;AS Number, Public Key, Subject Key Identifier&gt;, to verify the AS_PATH and FC path attributes. As a prerequisite, the recipient <bcp14>MUST</bcp14> have access to these RPKI router certificates.</t>
        <!-- Jeffery: The FC state can be removed from BGP without detection in the current procedure. RPKI RPKI-registered policy could address the validation case. -->
<t>Note that if an AS uploads its router certificates to RPKI, it would be deemed to support FC-BGP. The validation process <bcp14>MUST</bcp14> check to ensure no malicious on-path AS removes FCs from FC-BGP UPDATE.</t>
        <!-- TODO: this is the original BGPsec description, except replacing BGPsec with FC-BGP. Anything to update? -->
<t>Note that the FC-BGP speaker could perform the validation of RPKI router certificates on its own and extract the required data, or it could receive the same data from a trusted cache that performs RPKI validation on behalf of (some set of) FC-BGP speakers. (For example, the trusted cache could deliver the necessary validity information to the FC-BGP speaker by using the Router Key PDU (Protocol Data Unit) for the RPKI-Router protocol <xref target="RFC8210"/>.)</t>
        <!-- TODO: If it is reasonable to separate the validation steps and the description. It seems that here is the overview, but {{validation-steps}} describes the validation steps. -->
<t>The recipient validates an FC-BGP UPDATE message containing the FC path attribute and obtains one of two states: 'Valid' and 'Not Valid'. We will describe the validation procedure in <xref target="validation-steps"/> in this document. The validation result will be used at BGP route selection, thus it will be discussed at <xref target="BGP-route-selection"/>.</t>
        <t>As the FC-BGP UPDATE message is generated at the eBGP router, the FC-BGP validation needs only to be performed at the eBGP router. The iBGP route plays a crucial role in the FC-BGP UPDATE message propagation and distribution. The function of iBGP is to convey the validation status of an FC-BGP UPDATE message from an ingress edge router to an egress edge router within an AS. The specific mechanisms used to convey the validation status can vary depending on the implementation and local policies of the AS. By propagating this information through iBGP, the eBGP router and other routers within the AS can be aware of the validation status of the FC-BGP UPDATE messages and make routing decisions accordingly. As stated in <xref target="fcbgp-update"/>, when an FC-BGP speaker decides to forward a syntactically correct FC-BGP UPDATE message, it is <bcp14>RECOMMENDED</bcp14> to do so while preserving the FC path attribute. This recommendation applies regardless of the validation state of the UPDATE message.</t>
        <t>Ultimately, the decision to forward the FC-BGP UPDATE message with the FC path intact and the choice to perform independent validation at the egress router are both determined by local policies implemented within the AS. Note that the decision to perform validation on the received FC-BGP UPDATE message is left to the discretion of the egress router, which is the router receiving the message within its own AS. The egress router has the freedom to choose whether or not it wants to independently validate the FC path attribute based on its local policy, even if the FC path attribute has already been validated by the ingress router. This additional validation performed at the egress router helps ensure the integrity and security of the received FC-BGP UPDATE message.</t>
        <section anchor="validation-steps">
          <name>Validation Algorithm</name>
          <t>This section specifies the concrete validation algorithm of FC-BGP UPDATE messages. A compliant implementation <bcp14>MUST</bcp14> have an FC-BGP UPDATE validation algorithm that behaves the same as the specified algorithm. This ensures consistency and security in validating FC-BGP UPDATE messages across different implementations. It allows for interoperability and standardized communication between FC-BGP-enabled networks.</t>
          <t>First, the integrity of the FC-BGP UPDATE message <bcp14>MUST</bcp14> be checked. Both syntactical and protocol violation errors are checked. The FC path attribute <bcp14>MUST</bcp14> be present when an FC-BGP UPDATE message is received from an external FC-BGP neighbor and also when such an UPDATE message is propagated to an internal FC-BGP neighbor. The error checks specified in <xref section="6.3" sectionFormat="of" target="RFC4271"/> are performed, except that for FC-BGP UPDATE messages, the checks on the FC path attribute do not apply, and instead, the following checks on the FC path attribute are performed:</t>
          <ol spacing="normal" type="1"><li>
              <t>Check to ensure that the entire FC path attribute is syntactically correct (conforms to the specification in this document).</t>
            </li>
            <li>
              <t>For each AS on AS_PATH that has a router certificate in RPKI, check whether the FC path attribute contains a corresponding FC segment whose CASN field has the same value as the AS number.</t>
            </li>
            <li>
              <t>Check that the triplet &lt;PASN, CASN, NASN&gt; fields in each FC segment follow the order in AS_PATH.</t>
            </li>
            <li>
              <t>Check that each FC segment contains one signature with the supported Algorithm ID.</t>
            </li>
            <li>
              <t>If the UPDATE message was received from an FC-BGP neighbor that is not a member of the FC-BGP speaker's AS confederation, check to ensure that none of the FC Segments contain a Flags field with the Confed_Segment flag set to 1. <!-- TODO: need more study of AS confederation -->
              </t>
            </li>
            <li>
              <t>If the UPDATE message was received from an FC-BGP neighbor that is not a member of the FC-BGP speaker's AS confederation, check to ensure that the FC Segment corresponding to that peer does not contain a Flags field with the Flags-CS flag set to 1.</t>
            </li>
            <li>
              <t>If the UPDATE message was received from an FC-BGP neighbor that is a member of the FC-BGP speaker's AS confederation, check to ensure that the FC Segment corresponding to that peer contains a Flags field with the Flags-CS flag set to 1.</t>
            </li>
            <li>
              <t>If the UPDATE message was received from a neighbor that is not expected to set Flags-RS bit to 0 (see <xref target="fcbgp-update"/>), then check to ensure that the Flags-RS bit in the most recently added FC Segment is not equal to 0. <!-- TODO: (Note: See Section XXX for router configuration guidance related to this item.) -->
              </t>
            </li>
            <li>
              <t>If the UPDATE message was received from a neighbor that is not expected to set the Flags-ASPP bit to 0, i.e., the AS doesn't use the ASPP mechanism, then check to ensure that the Flags-RS bit in the most recently added FC Segment is not equal to 0.</t>
            </li>
            <li>
              <t>If the UPDATE message was received from a neighbor that is expected to set the Flags-RS bit to 0 (see <xref target="fcbgp-update"/>), then check to ensure that the Flags-RS bit in the most recently added FC Segment is equal to 0.</t>
            </li>
            <li>
              <t>If the UPDATE message was received from a neighbor that is not expected to set the Flags-P2C bit or Flags-P2P bit to 1 (see <xref target="fcbgp-update"/>), then check to ensure that the Flags-P2C bit or Flags-P2P bit in the most recently added FC Segment is not equal to 1.</t>
            </li>
            <li>
              <t>If the UPDATE message was received from a neighbor that is expected to set the Flags-P2C bit or Flags-P2P bit to 1 (see <xref target="fcbgp-update"/>), then check to ensure that the Flags-P2C bit or Flags-P2P bit in the most recently added FC Segment is equal to 1.</t>
            </li>
          </ol>
          <t>If any of the checks for the FC path attribute fail, indicating a syntactical or protocol error, it is considered an error. In such cases, FC speakers are <bcp14>REQUIRED</bcp14> to handle these errors using the "treat-as-withdraw" approach as defined in <xref target="RFC7606"/>. This approach means that the FC-BGP speaker <bcp14>SHOULD</bcp14> treat the FC path attribute as if it were a withdraw message, effectively removing the route from consideration. It's worth noting that when a transparent route server is involved, and its AS number appears in the FC (with the Flags-RS bit set to 1), the route server has the option to check if its local AS is listed in the FC. This additional check can be included as part of the loop-detection mechanism mentioned earlier in the specification.</t>
          <t>When an AS appears on the AS_PATH of an UPDATE message and has uploaded router certificates in RPKI, it <bcp14>MUST</bcp14> add its FC segment to the FC path attribute. Otherwise, the downstream ASs <bcp14>SHOULD</bcp14> consider that the FC of this AS has been removed by other ASs and the UPDATE message is falsified.</t>
          <t>When one FC Segment has set the Flags-P2C flag to 1, the subsequent FC Segments added by the following ASs <bcp14>MUST</bcp14> all set the Flags-P2C flag to 1 in their corresponding FC Segments. The Flags-P2C flag is set to 1 only when the role of its neighbor, to whom the propagator AS sends routes, is Customer or RS-Client. The Flags-P2P flag is set to 1 only when the role of its neighbor, to whom the propagator AS sends routes, is Peer.</t>
          <t>The following ingress procedure applies to the processing of the Flags-P2C flag and the Flags-P2P flag on route receipt:</t>
          <ol spacing="normal" type="1"><li>
              <t>If a route, with the Flags-P2C flag in the recently added FC Segment, is received from a Customer, a Peer, or an RS-Client, then it is a route leak and <bcp14>MUST</bcp14> be considered ineligible.</t>
            </li>
            <li>
              <t>If a route is received from a Peer (i.e., remote AS with a Peer Role) and with the Flags-P2P flag in both two recently consecutively added FC Segments, then it is a route leak and <bcp14>MUST</bcp14> be considered ineligible.</t>
            </li>
          </ol>
          <!-- TODO: in BGPsec, it will extract and reconstruct the AS_PATH attribute when it encounters an unsupported algorithm, i.e., downgrade from BGPsec to BGP. How about FC-BGP? Downgrade or propagate? -->
<t>Next, the FC-BGP speaker iterates through the FC segments. Once the FC-BGP speaker has examined the signature field in the FC attribute, it proceeds to validate the signature using the supported algorithm suites. However, if the FC-BGP speaker encounters a signature corresponding to an algorithm suite indexed by an Algorithm ID that it does not support, that particular signature is not considered in the validation process. If there are no signatures corresponding to any algorithm suites supported by the FC-BGP speaker, a specific action is taken to ensure the continuity of the route selection process. To consider the UPDATE message in the route selection process, the FC-BGP speaker has to treat the message as if it were received as an unsigned BGP UPDATE message. By treating the UPDATE message as unsigned, the FC-BGP speaker acknowledges that it cannot verify the integrity and authenticity of the message through the provided signatures. However, it still allows the message to be considered for route selection, ensuring that important routing information is not disregarded solely due to the lack of supported signature algorithms.</t>
          <t>For each remaining signature corresponding to an algorithm suite supported by the FC-BGP speaker, the FC-BGP speaker processes FC-BGP UPDATE message validation with the following steps. As different FC segments are independent, it is recommended to verify FC segments parallelly.</t>
          <!-- TODO: need more details or figures -->
<ul spacing="normal">
            <li>
              <t>Step 1: Locate the public key needed to verify the signature in the current FC segment. To do this, consult the valid RPKI router certificate data and look up all valid &lt;AS Number, Public Key, Subject Key Identifier&gt; triples in which the AS matches the Current AS Number (CASN) in the corresponding FC segment. Of these triples that match the AS number, check whether there is an SKI that matches the value in the Subject Key Identifier field of the FC segment.  If this check finds no such matching SKI value, then mark the entire FC segment as 'Not Valid' and stop.</t>
            </li>
            <li>
              <t>Step 2: Compute the digest function (for the given algorithm suite) on the appropriate data. To verify the digital signature in the FC segment, construct the sequence of octets to be hashed. Note that this sequence is the same sequence that was used by AS that created the FC Segment (see <xref target="fcbgp-update"/>). The elements in this sequence <bcp14>MUST</bcp14> be ordered exactly as shown in the generation process. Note that if an FC-BGP speaker uses multiple AS Numbers (e.g., the FC-BGP speaker is a member of a confederation), the AS number used here <bcp14>MUST</bcp14> be the AS number announced in the OPEN message for the BGP session over which the FC-BGP UPDATE message was received. All three AS numbers in one FC segment follow this rule.</t>
            </li>
            <li>
              <t>Step 3: Use the signature validation algorithm (for the given algorithm suite) to verify the signature in the current segment. That is, invoke the signature validation algorithm on the following three inputs: the value of the signature field in the current FC segment, the digest value computed in Step 2 above, and the public key obtained from the valid RPKI data in Step 1 above. If the signature validation algorithm determines that the signature is invalid, then mark the entire FC segment as 'Not Valid' and stop.  If the signature validation algorithm determines that the signature is valid, then the FC segment is marked as 'Valid' and continues to process the following FC segments.</t>
            </li>
          </ul>
          <t>If all FC segments are marked as 'Valid', then the validation algorithm terminates, and the FC-BGP UPDATE message is deemed 'Valid'. Otherwise, the FC-BGP UPDATE message is deemed 'Not Valid'.</t>
        </section>
      </section>
    </section>
    <section anchor="implementations-operations-and-management-considerations">
      <name>Implementations, Operations, and Management Considerations</name>
      <section anchor="algorithms-and-extensibility">
        <name>Algorithms and Extensibility</name>
        <t>The content of Algorithm Suite Considerations defined in <xref section="6.1" sectionFormat="of" target="RFC8205"/> and the content of Considerations for the SKI Size defined in <xref section="6.2" sectionFormat="of" target="RFC8205"/> are indeed applicable in this context of FC-BGP.</t>
        <t>But the algorithm suite transition in FC-BGP is straightforward: As each FC segment has an Algorithm ID field, just populate this field with a feasible and consensus value that all FC-BGP speaker supports when transitioning.</t>
      </section>
      <section anchor="speedup-and-early-termination-of-signature-verification">
        <name>Speedup and Early Termination of Signature Verification</name>
        <t>It is advantageous for an implementation to establish a parallel verification process for FC-BGP if the router's processor supports such operations. As each FC segment contains the integral data that needs to be verified, parallel verification can significantly enhance the efficiency and speed of the validation process. By utilizing parallel processing capabilities, an implementation can simultaneously verify multiple FC segments, thereby reducing the overall verification time. This is particularly beneficial in scenarios where the FC path attribute contains a substantial number of segments or in high-traffic networks with a large volume of FC-BGP UPDATE messages. Implementations that leverage parallel verification take advantage of the processing power available in modern router processors. This allows for more efficient and faster verification, ensuring that the FC-BGP UPDATE messages are promptly validated and routed accordingly.</t>
        <t>However, it's important to note that the feasibility of parallel verification depends on the specific capabilities and constraints of the router's processor. Implementations <bcp14>SHOULD</bcp14> consider factors such as available resources, concurrency limitations, and the impact on overall system performance when implementing parallel verification processes. Overall, setting up a parallel verification process for FC-BGP, if feasible, can contribute to improved performance and responsiveness in validating FC segments, further enhancing the reliability and efficiency of the FC-BGP protocol.</t>
        <t>During the validation of an FC-BGP UPDATE message, route processor performance speedup can be achieved by incorporating the following observations. These observations provide valuable insights into optimizing the validation process and reducing the workload on the route processor. One of the key observations is that an FC-BGP UPDATE message is considered 'Valid' only if all FC segments are marked as 'Valid' in the validation steps. This means that if an FC segment is marked as 'Not Valid', there is no need to continue verifying the remaining unverified FC segments. This optimization can significantly reduce the processing time and workload on the route processor. Furthermore, when the FC-BGP UPDATE message is selected as the best path, the FC-BGP speaker appends its own FC segment, including the appropriate signature generated with the corresponding algorithm, to the FC path attribute. This ensures that the updated path is propagated correctly.</t>
        <t>Additionally, an FC-BGP UPDATE message is considered as 'Not Valid' if at least one signature in each of the FC segments is invalid. Thus, the verification process for an FC segment can terminate early as soon as the first invalid signature is encountered. There is no need to continue validating the remaining signatures in that FC segment.</t>
        <t>By incorporating these observations, an FC-BGP implementation can achieve significant performance improvements and reduce the computational burden on the route processor. It allows for more efficient validation of FC-BGP UPDATE messages, ensuring the integrity and security of the routing information while maximizing system resources.</t>
      </section>
      <section anchor="defering-validation">
        <name>Defering Validation</name>
        <t>When an FC-BGP speaker receives an exceptionally large number of UPDATE messages simultaneously, though it can use parallel verification to speed up the validation, it can be beneficial to defer the validation of incoming FC-BGP UPDATE messages. The decision to defer the validation process may depend on the local policy of the FC-BGP speaker, taking into account factors such as available resources and system load.</t>
        <t>By deferring the validation of these messages, the FC-BGP speaker can prioritize its processing power and resources to handle other critical tasks or ongoing operations. Deferring the validation allows the FC-BGP speaker to temporarily postpone the resource-intensive validation process until it can allocate sufficient resources to handle the influx of incoming messages effectively.</t>
        <t>The implementation <bcp14>SHOULD</bcp14> provide visibility to the operator regarding the deferment of validation and the status of the deferred messages. This visibility enables the operator to have awareness of the deferred messages and understand the current state of the system. This information is crucial for monitoring and managing the FC-BGP speaker's behavior, ensuring that the operator can make informed decisions based on the system's status.</t>
      </section>
      <section anchor="BGP-route-selection">
        <name>BGP Route Selection</name>
        <!-- TODO: An expert says the ROV takes the highest level in BGP route selection. Need confirmation. -->

<t>While FC-BGP does modify the BGP route selection result, it is not the primary intention of FC-BGP to modify the BGP route selection process itself. Instead, FC-BGP focuses on providing an additional layer of validation and verification for BGP UPDATE messages.</t>
        <t>However, the handling of FC-BGP validation states, as well as the integration of FC-BGP with the BGP route selection, is indeed a matter of local policy. FC-BGP implementations <bcp14>SHOULD</bcp14> provide mechanisms that allow operators to define and configure their own local policies on a per-session basis. This flexibility enables operators to customize the behavior of FC-BGP based on their specific requirements and preferences.</t>
        <t>By allowing operators to set local policies, FC-BGP implementations empower them to control how the validation status of FC-BGP UPDATE messages influences the BGP route selection process. Operators may choose to treat FC-BGP validation status differently for UPDATE messages received over different BGP sessions, based on their network's needs and security considerations.</t>
        <t>To ensure consistency and interoperability, it is <bcp14>RECOMMENDED</bcp14> that FC-BGP implementations treat the priority of FC-BGP UPDATE messages at the same level as Route Origin Validation (ROV). This means that the validation status of FC-BGP UPDATE messages should be considered alongside other route selection criteria, such as path attributes, AS path length, and local preference.</t>
      </section>
      <section anchor="non-deterministic-signature-algorithms">
        <name>Non-deterministic Signature Algorithms</name>
        <t>The non-deterministic nature of many signature algorithms can introduce variations in the signatures produced, even when signing the same data with the same key. This means that if an FC-BGP router receives two FC-BGP UPDATE messages from the same peer, for the same prefix, with the same FC path attribute except the signature fields, the signature fields <bcp14>MAY</bcp14> differ when using a non-deterministic signature algorithm. Note that if the sender caches and reuses the previous signature, the two sets of signature fields will not differ. This applies specifically to deterministic signature algorithms, where the signature fields between the two UPDATE messages <bcp14>MUST</bcp14> be identical.</t>
        <t>Considering these observations, an FC-BGP implementation <bcp14>MAY</bcp14> incorporate optimizations in the UPDATE validation processing. These optimizations can take advantage of the non-deterministic nature of signature algorithms to reduce computational overhead. For example, if an FC-BGP router has already validated an FC segment and its corresponding signature in a previous UPDATE message from the same peer, it may choose to cache and reuse the previous validation result. This can help avoid redundant computations for subsequent UPDATE messages with the same FC path attribute and SKIs, as long as the sender does not generate new signatures.</t>
        <t>By incorporating such optimizations, an implementation can reduce the computational load and processing time needed for validating FC-BGP UPDATE messages. However, it is important to ensure that the implementation adheres to the requirements and specifications of the FC-BGP protocol while considering the performance benefits of these optimizations.</t>
      </section>
      <section anchor="private-as-numbers">
        <name>Private AS Numbers</name>
        <!-- TODO: need more study about AS confederation and private AS number -->
<t>The process of Private AS Numbers used in BGPsec speaker defined in <xref section="7.5" sectionFormat="of" target="RFC8205"/> also applies here.</t>
      </section>
      <section anchor="robustness-considerations-for-accessing-rpki-data">
        <name>Robustness Considerations for Accessing RPKI Data</name>
        <t>As there is a mature RPKI to Router protocol <xref target="RFC8210"/>, the implementation is <bcp14>REQUIRED</bcp14> to use this protocol to access the RPKI data. The content defined in <xref section="7.6" sectionFormat="of" target="RFC8205"/> also applies here.</t>
      </section>
      <section anchor="graceful-restart">
        <name>Graceful Restart</name>
        <t>During Graceful Restart (GR), restarting and receiving FC-BGP speakers <bcp14>MUST</bcp14> follow the procedures specified in <xref target="RFC4724"/> for restarting and receiving BGP speakers, respectively. In particular, the behavior of retaining the forwarding state for the routes in the Loc-RIB <xref target="RFC4271"/> and marking them as stale, as well as not differentiating between stale routing information and other information during forwarding, will be the same as the behavior specified in <xref target="RFC4724"/>.</t>
      </section>
      <section anchor="robustness-of-secret-random-number-in-ecdsa">
        <name>Robustness of Secret Random Number in ECDSA</name>
        <t>As both FC-BGP and BGPsec use ECDSA, the content of Robustness of Secret Random Number in ECDSA defined in <xref section="7.8" sectionFormat="of" target="RFC8205"/> applies here.</t>
        <!-- TODO: check and rewrite the following parts copied from BGPsec -->

</section>
      <section anchor="comparison">
        <name>Incremental/Partial Deployment Considerations</name>
        <t>The core difference between FC-BGP and BGPsec is that BGPsec is a path-level authentication approach, whereas FC-BGP is a pathlet-driven authentication approach.</t>
        <t>In design, FC-BGP does not modify the AS_PATH attribute. It defines a new transitive path attribute to transport the FC segments so that the legacy ASs can forward this attribute to their peers. Thus, FC-BGP is natively compatible with BGP and supports partial deployment. It differs from BGPsec, which replaces the AS_PATH attribute with a new Secure_Path information of the BGPsec_Path attribute.</t>
        <t>As for incremental/partial deployment considerations, in Section 5.1.1 of <xref target="FC-ARXIV"/>, we have proved that the adversary cannot forge a valid AS path when FC-BGP is universally deployed. Section 5.1.2 of <xref target="FC-ARXIV"/> analyzes the benefits of FC-BGP in the case of partial deployment. The results show that FC-BGP provides more benefits than BGPsec in partial deployment. As a result, attackers are forced to pretend to be at least two hops away from the destination AS, which reduces the probability of successful path hijacks.</t>
      </section>
      <section anchor="coexist_bgpsec">
        <name>Co-existence with BGPsec</name>
        <t>It is <bcp14>NOT RECOMMENDED</bcp14> that both BGPsec and FC-BGP be enabled together. However, at the very least, the implementation <bcp14>SHOULD</bcp14> adequately process the coexistence update message.</t>
        <t>When an FC-BGP speaker also enables the BGPsec feature, it <bcp14>MUST</bcp14> also properly process the BGPsec UPDATE message as follows:</t>
        <ul spacing="normal">
          <li>
            <t>General Principle. The BGP speaker <bcp14>SHOULD</bcp14> prioritize BGPsec over FC-BGP. When both features are enabled, the BGP speaker processes the BGPsec UPDATE message first, then processes the FC-BGP UPDATE message.</t>
          </li>
          <li>
            <t>FC-BGP UPDATE Message Generation. The BGP speaker <bcp14>SHOULD</bcp14> prioritize the BGPsec_Path attribute over the AS_PATH attribute. This means that when broadcasting a BGP UPDATE message, the BGP speaker <bcp14>SHOULD</bcp14> first check if the peer supports BGPsec. If so, it <bcp14>SHOULD</bcp14> generate a BGPsec-enabled UPDATE message. In this message, BGPsec_Path replaces the AS_PATH attribute, and an MP_REACH_NLRI attribute <xref target="RFC4760"/> is used for encoding NLRI information. The generation of the FC Path attribute <bcp14>SHOULD</bcp14> use these attributes to generate FC Segments. The impact on FC generation is minimal, as it only needs to obtain PASN, CASN, NASN, Prefix Address, and Prefix Length from BGPsec_Path and MP_REACH_NLRI attributes separately.</t>
          </li>
          <li>
            <t>FC-BGP UPDATE Message Validation. The BGP speaker should also prioritize the BGPsec_Path over AS_PATH. After processing the BGPsec path attribute, the BGP speaker should decode the BGPsec_Path and MP_REACH_NLRI attributes. So, in the validation process, the BGP speaker <bcp14>SHOULD</bcp14> essentially reverse the steps it took during generation. It would first decode the BGPsec_Path and MP_REACH_NLRI attributes to obtain the necessary information (PASN, CASN, NASN, Prefix Address, and Prefix Length). Then, it would use this information to validate the corresponding FC Segment.</t>
          </li>
        </ul>
        <t>In summary, the coexistence of BGPsec and FC-BGP is not overly burdensome.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="security-guarantees">
        <name>Security Guarantees</name>
        <!-- TODO: Here, these guarantees are different from BGPsec, from path to path segment -->
<t>TBD.</t>
        <t>When FC-BGP is used in conjunction with origin validation, the following security guarantees can be achieved:</t>
        <ul spacing="normal">
          <li>
            <t>The source AS in a route announcement is authorized.</t>
          </li>
          <li>
            <t>FC-BGP speakers on the AS-Path are authorized to propagate the route announcements.</t>
          </li>
          <li>
            <t>The forwarding path of packets is consistent with the routing path announced by the FC-BGP speakers.</t>
          </li>
        </ul>
        <t>FC-BGP is designed to enhance the security of control plane routing in the Internet at the network layer. Specifically, FC-BGP allows an AS to independently prove its BGP routing decisions with publicly verifiable cryptography commitments, based on which any on-path AS can verify the authenticity of a BGP path. More crucially, the above security guarantees offered by FC-BGP are not binary, i.e., secure or non-secure. Instead, the security benefits are strictly monotonically increasing as the deployment rate of FC-BGP (i.e., the percentage of ASs that are upgraded to support FC-BGP) increases.</t>
      </section>
      <section anchor="mitigation-of-denial-of-service-attacks">
        <name>Mitigation of Denial-of-Service Attacks</name>
        <!-- This is also mentioned at IETF 118 by Keyur: you may think about decentralizing this to solve different kinds of DoS attacks.
https://github.com/FCBGP/fcbgp-protocol/discussions/8 for more information. -->
<t>The FC-BGP UPDATE process, due to its involvement in numerous cryptographic operations, becomes vulnerable to Denial-of-Service (DoS) attacks targeting FC-BGP speakers. This section addresses the mitigation strategies tailored for the specific DoS threats the FC-BGP protocol poses. To prevent the Denial-of-Service (DoS) attacks faced by the FC-BGP control plane mechanism, there is no need to put in more effort than BGPsec.</t>
        <t>To reduce the impact of DoS attacks, FC-BGP speakers <bcp14>SHOULD</bcp14> employ an UPDATE validation algorithm that prioritizes inexpensive checks (such as syntax checks) before proceeding to more resource-intensive operations (like signature verification). The validation algorithm described in <xref target="validation-steps"/> is designed to sequence checks in order of likely expense, starting with less costly operations. However, the actual cost of executing these validation steps can vary across different implementations, and the algorithm in <xref target="validation-steps"/> may not offer the optimal level of DoS protection for all cases.</t>
        <t>Moreover, the transmission of UPDATE messages with the FC path attribute, which entails a multitude of signatures, is a potential vector for denial-of-service attacks. To counter this, implementations of the validation algorithm must cease signature verification immediately upon encountering an invalid signature. This prevents prolonged sequences of invalid signatures from being exploited for DoS purposes. Additionally, implementations can further mitigate such attacks by limiting validation efforts to only those UPDATE messages that, if found to be valid, would be chosen as the best path. In other words, if an UPDATE message includes a route that would be disqualified by the best path selection process for some reason (such as an excessively long AS path), it is OPTIONALLY to determine its FC-BGP validity status.</t>
      </section>
      <section anchor="route-server">
        <name>Route Server</name>
        <t>When the Route Server populates its FC Segment into the FC path attribute, it is secure as the path is fully deployed.</t>
        <t>When the Route Server fails to insert the FC Segment, no matter whether its ASN is listed in the AS path, it is considered a partial deployment, which poses a risk of path forgery.</t>
      </section>
      <section anchor="additional-security-considerations">
        <name>Additional Security Considerations</name>
        <section anchor="sec-three-asn">
          <name>Three AS Numbers</name>
          <!-- TODO: prove that insertion of 0 does not include route loop/BGP dispute in security consideration. Question asked by Keyur. See [Discussions: IETF119](https://github.com/FCBGP/fcbgp-protocol/discussions/10) for more information. -->

<t>An FC segment contains only partial path information, and FCs in the FCList are independent. To prevent BGP Path Splicing attacks, we propose to use the triplet &lt;Previous AS Number, Current AS Number, Nexthop AS Number&gt; to locate the pathlet information.</t>
          <t>But if there is no previous hop, i.e., this is the origin AS that tries to add its FC segment to the BGP UPDATE message, the Previous AS Number <bcp14>SHOULD</bcp14> be populated with 0. But, carefully, AS 0 <bcp14>SHOULD</bcp14> only be used in this case.</t>
          <t>In the context of BGP <xref target="RFC4271"/>, to detect an AS routing loop, it scans the full AS path (as specified in the AS_PATH attribute) and checks that the autonomous system number of the local system does not appear in the AS path. As outlined in <xref target="RFC7607"/>, Autonomous System 0 was listed in the IANA Autonomous System Number Registry as "Reserved - May be used to identify non-routed networks". So, there should be no AS 0 in the AS_PATH attribute of the BGP UPDATE message. Therefore, AS 0 could be used to populate the PASN field when there are no previous AS hops in the AS path.</t>
        </section>
        <section anchor="misc">
          <name>MISC</name>
          <t>For a discussion of the BGPsec threat model and related security considerations, please see <xref target="RFC7132"/>. The security considerations of <xref target="RFC4272"/> also apply to FC-BGP.</t>
        </section>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD. Wait for IANA to assign FC-BGP-UPDATE-PATH-ATTRIBUTE-TYPE.</t>
      <t>TBD. Regist Flags. The leftmost bit is the Confed_Segment flag, and the second highest/leftmost bit is the Route_Server flag in this document.</t>
      <t>TBD. A new OID should be assigned for keys used in FC-BGP.</t>
      <t>AS number 0 is used here to populate the PASN in an FC segment where there is no previous hop for an AS, i.e., the origin AS when adding the FC segment to the FC-BGP UPDATE message.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC4724">
          <front>
            <title>Graceful Restart Mechanism for BGP</title>
            <author fullname="S. Sangli" initials="S." surname="Sangli"/>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <author fullname="R. Fernando" initials="R." surname="Fernando"/>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document describes a mechanism for BGP that would help minimize the negative effects on routing caused by BGP restart. An End-of-RIB marker is specified and can be used to convey routing convergence information. A new BGP capability, termed "Graceful Restart Capability", is defined that would allow a BGP speaker to express its ability to preserve forwarding state during BGP restart. Finally, procedures are outlined for temporarily retaining routing information across a TCP session termination/re-establishment.</t>
              <t>The mechanisms described in this document are applicable to all routers, both those with the ability to preserve forwarding state during BGP restart and those without (although the latter need to implement only a subset of the mechanisms described in this document). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4724"/>
          <seriesInfo name="DOI" value="10.17487/RFC4724"/>
        </reference>
        <reference anchor="RFC4760">
          <front>
            <title>Multiprotocol Extensions for BGP-4</title>
            <author fullname="T. Bates" initials="T." surname="Bates"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document defines extensions to BGP-4 to enable it to carry routing information for multiple Network Layer protocols (e.g., IPv6, IPX, L3VPN, etc.). The extensions are backward compatible - a router that supports the extensions can interoperate with a router that doesn't support the extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4760"/>
          <seriesInfo name="DOI" value="10.17487/RFC4760"/>
        </reference>
        <reference anchor="RFC5656">
          <front>
            <title>Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer</title>
            <author fullname="D. Stebila" initials="D." surname="Stebila"/>
            <author fullname="J. Green" initials="J." surname="Green"/>
            <date month="December" year="2009"/>
            <abstract>
              <t>This document describes algorithms based on Elliptic Curve Cryptography (ECC) for use within the Secure Shell (SSH) transport protocol. In particular, it specifies Elliptic Curve Diffie-Hellman (ECDH) key agreement, Elliptic Curve Menezes-Qu-Vanstone (ECMQV) key agreement, and Elliptic Curve Digital Signature Algorithm (ECDSA) for use in the SSH Transport Layer protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5656"/>
          <seriesInfo name="DOI" value="10.17487/RFC5656"/>
        </reference>
        <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"/>
            <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="RFC6482">
          <front>
            <title>A Profile for Route Origin Authorizations (ROAs)</title>
            <author fullname="M. Lepinski" initials="M." surname="Lepinski"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="D. Kong" initials="D." surname="Kong"/>
            <date month="February" year="2012"/>
            <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. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6482"/>
          <seriesInfo name="DOI" value="10.17487/RFC6482"/>
        </reference>
        <reference anchor="RFC6483">
          <front>
            <title>Validation of Route Origination Using the Resource Certificate Public Key Infrastructure (PKI) and Route Origin Authorizations (ROAs)</title>
            <author fullname="G. Huston" initials="G." surname="Huston"/>
            <author fullname="G. Michaelson" initials="G." surname="Michaelson"/>
            <date month="February" year="2012"/>
            <abstract>
              <t>This document defines the semantics of a Route Origin Authorization (ROA) in terms of the context of an application of the Resource Public Key Infrastructure to validate the origination of routes advertised in the Border Gateway Protocol. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6483"/>
          <seriesInfo name="DOI" value="10.17487/RFC6483"/>
        </reference>
        <reference anchor="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>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="RFC6793">
          <front>
            <title>BGP Support for Four-Octet Autonomous System (AS) Number Space</title>
            <author fullname="Q. Vohra" initials="Q." surname="Vohra"/>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <date month="December" year="2012"/>
            <abstract>
              <t>The Autonomous System number is encoded as a two-octet entity in the base BGP specification. This document describes extensions to BGP to carry the Autonomous System numbers as four-octet entities. This document obsoletes RFC 4893 and updates RFC 4271. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6793"/>
          <seriesInfo name="DOI" value="10.17487/RFC6793"/>
        </reference>
        <reference anchor="RFC7606">
          <front>
            <title>Revised Error Handling for BGP UPDATE Messages</title>
            <author fullname="E. Chen" initials="E." role="editor" surname="Chen"/>
            <author fullname="J. Scudder" initials="J." role="editor" surname="Scudder"/>
            <author fullname="P. Mohapatra" initials="P." surname="Mohapatra"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <date month="August" year="2015"/>
            <abstract>
              <t>According to the base BGP specification, a BGP speaker that receives an UPDATE message containing a malformed attribute is required to reset the session over which the offending attribute was received. This behavior is undesirable because a session reset would impact not only routes with the offending attribute but also other valid routes exchanged over the session. This document partially revises the error handling for UPDATE messages and provides guidelines for the authors of documents defining new attributes. Finally, it revises the error handling procedures for a number of existing attributes.</t>
              <t>This document updates error handling for RFCs 1997, 4271, 4360, 4456, 4760, 5543, 5701, and 6368.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7606"/>
          <seriesInfo name="DOI" value="10.17487/RFC7606"/>
        </reference>
        <reference anchor="RFC7947">
          <front>
            <title>Internet Exchange BGP Route Server</title>
            <author fullname="E. Jasinska" initials="E." surname="Jasinska"/>
            <author fullname="N. Hilliard" initials="N." surname="Hilliard"/>
            <author fullname="R. Raszuk" initials="R." surname="Raszuk"/>
            <author fullname="N. Bakker" initials="N." surname="Bakker"/>
            <date month="September" year="2016"/>
            <abstract>
              <t>This document outlines a specification for multilateral interconnections at Internet Exchange Points (IXPs). Multilateral interconnection is a method of exchanging routing information among three or more External BGP (EBGP) speakers using a single intermediate broker system, referred to as a route server. Route servers are typically used on shared access media networks, such as IXPs, to facilitate simplified interconnection among multiple Internet routers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7947"/>
          <seriesInfo name="DOI" value="10.17487/RFC7947"/>
        </reference>
        <reference anchor="RFC8205">
          <front>
            <title>BGPsec Protocol Specification</title>
            <author fullname="M. Lepinski" initials="M." role="editor" surname="Lepinski"/>
            <author fullname="K. Sriram" initials="K." role="editor" surname="Sriram"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>This document describes BGPsec, an extension to the Border Gateway Protocol (BGP) that provides security for the path of Autonomous Systems (ASes) through which a BGP UPDATE message passes. BGPsec is implemented via an optional non-transitive BGP path attribute that carries digital signatures produced by each AS that propagates the UPDATE message. The digital signatures provide confidence that every AS on the path of ASes listed in the UPDATE message has explicitly authorized the advertisement of the route.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8205"/>
          <seriesInfo name="DOI" value="10.17487/RFC8205"/>
        </reference>
        <reference anchor="RFC8208">
          <front>
            <title>BGPsec Algorithms, Key Formats, and Signature Formats</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="O. Borchert" initials="O." surname="Borchert"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>This document specifies the algorithms, algorithm parameters, asymmetric key formats, asymmetric key sizes, and signature formats used in BGPsec (Border Gateway Protocol Security). This document updates RFC 7935 ("The Profile for Algorithms and Key Sizes for Use in the Resource Public Key Infrastructure").</t>
              <t>This document also includes example BGPsec UPDATE messages as well as the private keys used to generate the messages and the certificates necessary to validate those signatures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8208"/>
          <seriesInfo name="DOI" value="10.17487/RFC8208"/>
        </reference>
        <reference anchor="RFC8209">
          <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="RFC8210">
          <front>
            <title>The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 1</title>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>In order to verifiably validate the origin Autonomous Systems and Autonomous System Paths of BGP announcements, routers need a simple but reliable mechanism to receive Resource Public Key Infrastructure (RFC 6480) prefix origin data and router keys from a trusted cache. This document describes a protocol to deliver them.</t>
              <t>This document describes version 1 of the RPKI-Router protocol. RFC 6810 describes version 0. This document updates RFC 6810.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8210"/>
          <seriesInfo name="DOI" value="10.17487/RFC8210"/>
        </reference>
        <reference anchor="RFC8635">
          <front>
            <title>Router Keying for BGPsec</title>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>BGPsec-speaking routers are provisioned with private keys in order to sign BGPsec announcements. The corresponding public keys are published in the Global Resource Public Key Infrastructure (RPKI), enabling verification of BGPsec messages. This document describes two methods of generating the public-private key pairs: router-driven and operator-driven.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8635"/>
          <seriesInfo name="DOI" value="10.17487/RFC8635"/>
        </reference>
        <reference anchor="RFC9234">
          <front>
            <title>Route Leak Prevention and Detection Using Roles in UPDATE and OPEN Messages</title>
            <author fullname="A. Azimov" initials="A." surname="Azimov"/>
            <author fullname="E. Bogomazov" initials="E." surname="Bogomazov"/>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <author fullname="K. Sriram" initials="K." surname="Sriram"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>Route leaks are the propagation of BGP prefixes that violate assumptions of BGP topology relationships, e.g., announcing a route learned from one transit provider to another transit provider or a lateral (i.e., non-transit) peer or announcing a route learned from one lateral peer to another lateral peer or a transit provider. These are usually the result of misconfigured or absent BGP route filtering or lack of coordination between autonomous systems (ASes). Existing approaches to leak prevention rely on marking routes by operator configuration, with no check that the configuration corresponds to that of the External BGP (eBGP) neighbor, or enforcement of the two eBGP speakers agreeing on the peering relationship. This document enhances the BGP OPEN message to establish an agreement of the peering relationship on each eBGP session between autonomous systems in order to enforce appropriate configuration on both sides. Propagated routes are then marked according to the agreed relationship, allowing both prevention and detection of route leaks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9234"/>
          <seriesInfo name="DOI" value="10.17487/RFC9234"/>
        </reference>
        <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"/>
            <abstract>
              <t>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"/>
        </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"/>
            <abstract>
              <t>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"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4272">
          <front>
            <title>BGP Security Vulnerabilities Analysis</title>
            <author fullname="S. Murphy" initials="S." surname="Murphy"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>Border Gateway Protocol 4 (BGP-4), along with a host of other infrastructure protocols designed before the Internet environment became perilous, was originally designed with little consideration for protection of the information it carries. There are no mechanisms internal to BGP that protect against attacks that modify, delete, forge, or replay data, any of which has the potential to disrupt overall network routing behavior.</t>
              <t>This document discusses some of the security issues with BGP routing data dissemination. This document does not discuss security issues with forwarding of packets. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4272"/>
          <seriesInfo name="DOI" value="10.17487/RFC4272"/>
        </reference>
        <reference anchor="RFC5065">
          <front>
            <title>Autonomous System Confederations for BGP</title>
            <author fullname="P. Traina" initials="P." surname="Traina"/>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>The Border Gateway Protocol (BGP) is an inter-autonomous system routing protocol designed for Transmission Control Protocol/Internet Protocol (TCP/IP) networks. BGP requires that all BGP speakers within a single autonomous system (AS) must be fully meshed. This represents a serious scaling problem that has been well documented in a number of proposals.</t>
              <t>This document describes an extension to BGP that may be used to create a confederation of autonomous systems that is represented as a single autonomous system to BGP peers external to the confederation, thereby removing the "full mesh" requirement. The intention of this extension is to aid in policy administration and reduce the management complexity of maintaining a large autonomous system.</t>
              <t>This document obsoletes RFC 3065. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5065"/>
          <seriesInfo name="DOI" value="10.17487/RFC5065"/>
        </reference>
        <reference anchor="RFC5492">
          <front>
            <title>Capabilities Advertisement with BGP-4</title>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <date month="February" year="2009"/>
            <abstract>
              <t>This document defines an Optional Parameter, called Capabilities, that is expected to facilitate the introduction of new capabilities in the Border Gateway Protocol (BGP) by providing graceful capability advertisement without requiring that BGP peering be terminated.</t>
              <t>This document obsoletes RFC 3392. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5492"/>
          <seriesInfo name="DOI" value="10.17487/RFC5492"/>
        </reference>
        <reference anchor="RFC6472">
          <front>
            <title>Recommendation for Not Using AS_SET and AS_CONFED_SET in BGP</title>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="K. Sriram" initials="K." surname="Sriram"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document recommends against the use of the AS_SET and AS_CONFED_SET types of the AS_PATH in BGPv4. This is done to simplify the design and implementation of BGP and to make the semantics of the originator of a route more clear. This will also simplify the design, implementation, and deployment of ongoing work in the Secure Inter-Domain Routing Working Group. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="172"/>
          <seriesInfo name="RFC" value="6472"/>
          <seriesInfo name="DOI" value="10.17487/RFC6472"/>
        </reference>
        <reference anchor="RFC6811">
          <front>
            <title>BGP Prefix Origin Validation</title>
            <author fullname="P. Mohapatra" initials="P." surname="Mohapatra"/>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <author fullname="D. Ward" initials="D." surname="Ward"/>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>To help reduce well-known threats against BGP including prefix mis- announcing and monkey-in-the-middle attacks, one of the security requirements is the ability to validate the origination Autonomous System (AS) of BGP routes. More specifically, one needs to validate that the AS number claiming to originate an address prefix (as derived from the AS_PATH attribute of the BGP route) is in fact authorized by the prefix holder to do so. This document describes a simple validation mechanism to partially satisfy this requirement. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6811"/>
          <seriesInfo name="DOI" value="10.17487/RFC6811"/>
        </reference>
        <reference anchor="RFC7132">
          <front>
            <title>Threat Model for BGP Path Security</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="A. Chi" initials="A." surname="Chi"/>
            <date month="February" year="2014"/>
            <abstract>
              <t>This document describes a threat model for the context in which External Border Gateway Protocol (EBGP) path security mechanisms will be developed. The threat model includes an analysis of the Resource Public Key Infrastructure (RPKI) and focuses on the ability of an Autonomous System (AS) to verify the authenticity of the AS path info received in a BGP update. We use the term "PATHSEC" to refer to any BGP path security technology that makes use of the RPKI. PATHSEC will secure BGP, consistent with the inter-AS security focus of the RPKI.</t>
              <t>The document characterizes classes of potential adversaries that are considered to be threats and examines classes of attacks that might be launched against PATHSEC. It does not revisit attacks against unprotected BGP, as that topic has already been addressed in the BGP-4 standard. It concludes with a brief discussion of residual vulnerabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7132"/>
          <seriesInfo name="DOI" value="10.17487/RFC7132"/>
        </reference>
        <reference anchor="RFC7607">
          <front>
            <title>Codification of AS 0 Processing</title>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <author fullname="H. Schiller" initials="H." surname="Schiller"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <date month="August" year="2015"/>
            <abstract>
              <t>This document updates RFC 4271 and proscribes the use of Autonomous System (AS) 0 in the Border Gateway Protocol (BGP) OPEN, AS_PATH, AS4_PATH, AGGREGATOR, and AS4_AGGREGATOR attributes in the BGP UPDATE message.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7607"/>
          <seriesInfo name="DOI" value="10.17487/RFC7607"/>
        </reference>
        <reference anchor="RFC7908">
          <front>
            <title>Problem Definition and Classification of BGP Route Leaks</title>
            <author fullname="K. Sriram" initials="K." surname="Sriram"/>
            <author fullname="D. Montgomery" initials="D." surname="Montgomery"/>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <author fullname="E. Osterweil" initials="E." surname="Osterweil"/>
            <author fullname="B. Dickson" initials="B." surname="Dickson"/>
            <date month="June" year="2016"/>
            <abstract>
              <t>A systemic vulnerability of the Border Gateway Protocol routing system, known as "route leaks", has received significant attention in recent years. Frequent incidents that result in significant disruptions to Internet routing are labeled route leaks, but to date a common definition of the term has been lacking. This document provides a working definition of route leaks while keeping in mind the real occurrences that have received significant attention. Further, this document attempts to enumerate (though not exhaustively) different types of route leaks based on observed events on the Internet. The aim is to provide a taxonomy that covers several forms of route leaks that have been observed and are of concern to the Internet user community as well as the network operator community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7908"/>
          <seriesInfo name="DOI" value="10.17487/RFC7908"/>
        </reference>
        <reference anchor="RFC8416">
          <front>
            <title>Simplified Local Internet Number Resource Management with the RPKI (SLURM)</title>
            <author fullname="D. Ma" initials="D." surname="Ma"/>
            <author fullname="D. Mandelberg" initials="D." surname="Mandelberg"/>
            <author fullname="T. Bruijnzeels" initials="T." surname="Bruijnzeels"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>The Resource Public Key Infrastructure (RPKI) is a global authorization infrastructure that allows the holder of Internet Number Resources (INRs) to make verifiable statements about those resources. Network operators, e.g., Internet Service Providers (ISPs), can use the RPKI to validate BGP route origin assertions. ISPs can also use the RPKI to validate the path of a BGP route. However, ISPs may want to establish a local view of exceptions to the RPKI data in the form of local filters and additions. The mechanisms described in this document provide a simple way to enable INR holders to establish a local, customized view of the RPKI, overriding global RPKI repository data as needed.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8416"/>
          <seriesInfo name="DOI" value="10.17487/RFC8416"/>
        </reference>
        <reference anchor="ASPP">
          <front>
            <title>AS Path Prepending</title>
            <author fullname="Mike McBride" initials="M." surname="McBride">
              <organization>Futurewei</organization>
            </author>
            <author fullname="Doug Madory" initials="D." surname="Madory">
              <organization>Kentik</organization>
            </author>
            <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
              <organization>Nvidia</organization>
            </author>
            <author fullname="Robert Raszuk" initials="R." surname="Raszuk">
              <organization>NTT Network Innovations</organization>
            </author>
            <author fullname="Hongwei Li" initials="H." surname="Li">
              <organization>HPE</organization>
            </author>
            <author fullname="Jakob Heitz" initials="J." surname="Heitz">
              <organization>Cisco</organization>
            </author>
            <author fullname="Gyan Mishra" initials="G. S." surname="Mishra">
              <organization>Verizon Inc.</organization>
            </author>
            <date day="17" month="October" year="2025"/>
            <abstract>
              <t>   Autonomous System (AS) path prepending is a tool to manipulate the
   BGP AS_PATH attribute through prepending one or more Autonomous
   System Numbers (ASNs).  AS path prepending is used to deprioritize a
   route in the presence of a route with a shorter AS_PATH.  By
   prepending a local ASN multiple times, ASes can make advertised AS
   paths appear artificially longer.  However, excessive AS path
   prepending has caused routing issues in the Internet.  This document
   provides guidance for the use of AS path prepending, including
   alternative solutions, in order to avoid negatively affecting the
   Internet.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-grow-as-path-prepending-17"/>
        </reference>
        <reference anchor="ASPA-Profile">
          <front>
            <title>A Profile for Autonomous System Provider Authorization</title>
            <author fullname="Job Snijders" initials="J." surname="Snijders">
              <organization>BSD Software Development</organization>
            </author>
            <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="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="24" month="March" 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-23"/>
        </reference>
        <reference anchor="ASPA-Verification">
          <front>
            <title>BGP AS_PATH Verification Based on Autonomous System Provider Authorization (ASPA) Objects</title>
            <author fullname="Alexander Azimov" initials="A." surname="Azimov">
              <organization>Yandex</organization>
            </author>
            <author fullname="Eugene Bogomazov" initials="E." surname="Bogomazov">
              <organization>Qrator Labs</organization>
            </author>
            <author fullname="Randy Bush" initials="R." surname="Bush">
              <organization>Internet Initiative Japan &amp; Arrcus, Inc.</organization>
            </author>
            <author fullname="Keyur Patel" initials="K." surname="Patel">
              <organization>Arrcus</organization>
            </author>
            <author fullname="Job Snijders" initials="J." surname="Snijders">
         </author>
            <author fullname="Kotikalapudi Sriram" initials="K." surname="Sriram">
              <organization>USA National Institute of Standards and Technology</organization>
            </author>
            <date day="19" month="October" year="2025"/>
            <abstract>
              <t>   This document describes procedures that make use of Autonomous System
   Provider Authorization (ASPA) objects in the Resource Public Key
   Infrastructure (RPKI) to verify the Border Gateway Protocol (BGP)
   AS_PATH attribute of advertised routes.  This AS_PATH verification
   enhances routing security by adding means to detect and mitigate
   route leaks and AS_PATH manipulations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-aspa-verification-24"/>
        </reference>
        <reference anchor="Deprecation-AS_SET-AS_CONFED_SET">
          <front>
            <title>Deprecation of AS_SET and AS_CONFED_SET in BGP</title>
            <author fullname="Warren Kumari" initials="W." surname="Kumari">
              <organization>Google, Inc.</organization>
            </author>
            <author fullname="Kotikalapudi Sriram" initials="K." surname="Sriram">
              <organization>USA NIST</organization>
            </author>
            <author fullname="Lilia Hannachi" initials="L." surname="Hannachi">
              <organization>USA NIST</organization>
            </author>
            <author fullname="Jeffrey Haas" initials="J." surname="Haas">
              <organization>Juniper Networks, Inc.</organization>
            </author>
            <date day="7" month="March" year="2025"/>
            <abstract>
              <t>   BCP 172 (i.e., RFC 6472) recommends not using AS_SET and
   AS_CONFED_SET AS_PATH segment types in the Border Gateway Protocol
   (BGP).  This document advances that recommendation to a standards
   requirement in BGP; it prohibits the use of the AS_SET and
   AS_CONFED_SET path segment types in the AS_PATH.  This is done to
   simplify the design and implementation of BGP and to make the
   semantics of the originator of a BGP route clearer.  This will also
   simplify the design, implementation, and deployment of various BGP
   security mechanisms.  This document updates RFC 4271 by deprecating
   the origination of BGP routes with AS_SET (Type 1 AS_PATH segment)
   and updates RFC 5065 by deprecating the origination of BGP routes
   with AS_CONFED_SET (Type 4 AS_PATH segment).  Finally, it obsoletes
   RFC 6472.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-deprecate-as-set-confed-set-18"/>
        </reference>
        <reference anchor="FC-ARXIV" target="https://arxiv.org/abs/2309.13271">
          <front>
            <title>Secure Inter-domain Routing and Forwarding via Verifiable Forwarding Commitments</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="September"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 613?>

<section anchor="attachment">
      <name>Attachment</name>
      <section anchor="comparison-to-other-technologies">
        <name>Comparison to Other Technologies</name>
        <section anchor="bgpsec">
          <name>BGPsec</name>
          <t>For basic comparison, please see <xref target="Introduction"/>.</t>
          <section anchor="DeploymentBenefitsAnalysis">
            <name>Deployment Benefits Analysis</name>
            <t>One of the core differences between FC-BGP and BGPsec is the partial deployment scenario. It is difficult for FC-BGP and BGPsec to make an entire deployment, which is an evolution process.</t>
            <t>The propagation of the BGP UPDATE message can be simplified as a line. Take the following propagation path as an example.</t>
            <figure anchor="fig-deploy-topo">
              <name>An BGP UPDATE propagation path example.</name>
              <artwork><![CDATA[
AS(1) --- AS(2) -...- AS(k-1) ---- AS(k) -...- AS(n)
                             \               /
                              \--- AS(m) ---/
]]></artwork>
            </figure>
            <t>In this propagation path, the settings are:
- A path from AS(1) to AS(n) with N-1 hops, where FC-BGP is deployed consecutively from AS(1) to AS(k-1). AS(k) is the first legacy AS that doesn't enable FC-BGP.
- An upgraded AS(n) located after AS(k) tries to validate its received BGP path.
- A compromised AS(m) intents to hijack the traffic from AS(n) to AS(1).</t>
            <t>Suppose the distance between AS(m), i.e., the compromised AS, and AS(n) is L hops. The best choice for AS(m) is to pretend to be a neighbor of AS(k) and construct a fake path AS(1)-AS(2)-...-AS(k)-AS(m)-...-AS(n) with length <tt>K-1+1+L</tt> hops. AS(m) can successfully hijack the traffic only if <tt>N-1&gt;K-1+1+L</tt>, which implies that has to be smaller than <tt>N-L-1</tt>.</t>
            <t>In the full path deployment scenario, i.e., <tt>K=N+1</tt>, FC-BGP and BGPsec have the same path protection rate. However, in the partial path deployment scenario, i.e., <tt>K&lt;N-L-1</tt>, FC-BGP can protect more paths than BGPsec.</t>
            <t>The conclusion can be drawn that FC-BGP provides strictly more security benefits than BGPsec in partial/incremental deployment.</t>
            <t>Under full deployment, FC-BGP and BGPsec achieve comparable security benefits as both are capable of preserving the authenticity and immutability of the AS_PATH attribute within BGP UPDATE messages. From a security guarantee perspective, FC-BGP establishes a cryptographic commitment and propagates this commitment across the entire network. Through this mechanism, each BGP router can verify that it has received routes from the preceding AS and has forwarded them to the subsequent AS in the path. This approach ensures security through modular pathlets, which are incrementally validated and aggregated to construct a fully authenticated end-to-end routing path. In contrast, BGPsec does not incorporate such a commitment-based framework, relying instead on cryptographic path validation at each AS hop without modular decomposition of path security.</t>
          </section>
        </section>
        <section anchor="aspa">
          <name>ASPA</name>
          <t>The ASPA <xref target="ASPA-Profile"/> <xref target="ASPA-Verification"/> mechanism is designed to solve the problem of route leak with RPKI ASPA signed objects and AS_PATH attribute. It is an off-path mechanism with a lightweight cryptographic cost for BGP routers. However, it does not protect the AS_PATH attribute. Thus, ASPA and FC-BGP are complementary technologies.</t>
        </section>
        <section anchor="only-to-customer-otc-attribute">
          <name>Only to Customer (OTC) Attribute</name>
          <t>OTC is a route-leak detection and prevention mechanism. However, the OTC value itself is not protected. It can be forged. With the signature, FC-BGP can protect the Flags-P2C flag and the Flags-P2P flag. So the FC-BGP route leak prevention mechanism is complementary to the OTC attribute.</t>
        </section>
      </section>
      <section anchor="implementation-status">
        <name>Implementation Status</name>
        <t>We implement the FC-BGP mechanism with FRR version 9.0.1. The implementation includes verifying the FC path attribute upon receiving BGP UPDATE messages and adding and signing the FC path attribute when sending BGP UPDATE messages. The development and testing of this implementation were conducted on Ubuntu 22.04 with OpenSSL 3.X installed.</t>
        <t>GitHub repository: https://github.com/fcbgp/fcbgp-implementation.</t>
      </section>
      <section anchor="an-example">
        <name>An Example</name>
        <figure anchor="fig-atta-ex">
          <name>An FC-BGP UPDATE propagation example.</name>
          <artwork><![CDATA[
AS(65536) --> AS(65537) --> AS(65538)
                      \
                       \--> AS(65539)
]]></artwork>
        </figure>
        <t>It is important to note that this example only introduces important steps here and see <xref target="Validation"/> for details. What's more,  here ASs are global AS and not RS or AS Confederation. No ASPP is taken into consideration.</t>
        <t>For the sake of discussion, we assume that AS 65537 receives an FC-BGP UPDATE message for prefix 192.0.2.0/24 from AS 65536 and will send the route to AS 65538 and AS 65539 as <xref target="fig-atta-ex"/> shows. An FC-BGP speaker <bcp14>SHOULD</bcp14> propagate an FC-BGP UPDATE message to downstream ASs only after completing the validation and best route path selection.</t>
        <t>When the FC-BGP speaker in AS 65536 plans to propagate routes to its downstream AS 65537, it fills the FC path attribute first. The PASN is 0/NULL, the CASN is 65536, and the NASN is 65537. Then it calculates the signature, fills the FC, and forms the FC path attribute and FC-BGP UPDATE message. Then, it sends the UPDATE message out.</t>
        <t>When receiving an UPDATE message from AS 65536, the FC-BGP speaker in AS 65537 retrieves the FC path attribute and extracts the FC list. It then finds the FC with <tt>CASN == 65536</tt> as the AS_PATH has only one AS(65536) and checks whether PASN is 0 as well as NASN is 65537. If so, it uses the SKI field to find the public key and calculates the signature using the algorithm specified in the Algorithm ID. If the calculated signature matches the signature in the FC segment, then the AS-Path hop associated with the AS 65536 is verified. This process repeats for all FCs and AS-Paths in the FC list if it has other ASs in AS_PATH. However, if AS 65537 does not support FC-BGP, the BGP speaker of AS 65537 simply forwards the BGP UPDATE to its neighbors when propagating this FC-BGP route without validating the FC path attribute.</t>
        <t>FC-BGP speakers need to generate different UPDATE messages for different neighbors. Each UPDATE announcement contains only one route prefix and cannot be aggregated. This is because different route prefixes may have different announcement paths due to different routing policies. Multiple aggregated route prefixes may cause FC generation and verification errors. When multiple route prefixes need to be announced, the FC-BGP speaker needs to generate different UPDATE messages for each route prefix. Thus, the FC-BGP speaker of AS 65537 generates different UPDATE messages for AS 65538 and AS 65539 separately. The biggest difference is that the NASN is 65538 for AS 65538 and 65539 for AS 65539 in the FC segment generated by AS 65537.</t>
        <t>Take AS 65538 as the next hop. The FC-BGP speaker in AS 65537 will encapsulate each prefix to be sent to AS 65538 in a single UPDATE message, add the FC path attribute, and sign the path content using its private key to fill a new FC segment. The FC path attribute and the FC segment use the message format shown in <xref target="figure1"/> and <xref target="figure2"/> separately. When signing, the FC-BGP speaker computes the SHA256 hash in the order of (PASN ( 0 if absent), CASN, NASN, IP Prefix Address, and IP Prefix Length) first. Next, the FC-BGP speaker should calculate the digest information Digest, sign the Digest with ECDSA, and then fill in the Signature field and other FC fields. After that, AS 65537 prepends its own FC on top of the FC List. At this point, the processing of FC path attributes by the FC-BGP speaker is complete. The subsequent processing of BGP messages follows the standard BGP process.</t>
      </section>
      <section numbered="false" anchor="acknowledgments">
        <name>Acknowledgments</name>
        <!-- It is better to update this part gradually with the completion of this document. -->

<t>The authors would like to thank Keyur Patel, Jeffery Hass, Randy Bush, Maria Matejka, Tobias Fiebig, Nan Geng, Tom Strickx, Susan Hares, Rüdiger Volk, Jun Zhang, Kotikalapudi Sriram, John Scudder, Job Snijders, Russ Housley, and Andrew for their review and valuable comments.</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA92963YbR5Ym+h9PkSP/EHkKgERJlixN2V0UJdns0oVNULar
L8uVABJkWkAmOjNBiuV2Pct5kPk158XOvkbsiIwkZZfdZ9bxrOkSAWRkxI4d
O/b125PJZNSV3bp4lt15dTR5/vVJdtLUXb2o19lsWyzKVbnIu7Ku7ozy+bwp
Lt3v7ozgi+K8bq6fZW23HI2W9aLKNzDQsslX3eQqr84nbbls6m07WS3m59vJ
Vkae3P981O7mm7JtYeTuegsPHb88e5Vln2X5uq3hHWW1LLYF/J+quzPO7hTL
squbMl/jH8eHz+F/6gb+dXr26s6o2m3mRfNstIT5PBst6qotqnbXPsu6ZleM
YMYPRzBuU+TPssPTl4ejq7r5cN7Uuy1MnOc3uiyqHTz7WZbJF999jX/w1L6D
35fVefY1foUfb/JyjT/5U/Ex32zXxXRRb/DzvFlcPMsuum7bPrt3z3x5D4aD
ocvuYjcnAgL97oU0uQM/WMMC2g5+oEPQD6f83LSso0fu3Uro6UW3gZFH2/JZ
liF1F3mV7doCZtrk19leuQJ6r7Prot1Hel7k7UV2UTTFaASPP8PPR23ddE2x
aukvHGJZrPLdumuzruYfXG/c96NRvusuatiLLJuMMvpvtVuvmS/+XGTf7+TT
ujl/lp21QNaLXZ69r8rLomnL7lq+XsA/n2XPi/JH+IV+Vu+qDrnt6KKscvmw
4L34uPtQ/KmT4abFcjddVMk5fF/m9boEimXf5W7k33gyuCEf9T33Hz94+KdV
/RG/Ij5JzepfL3Z1l9fZ6/J3os/f+AXrcvdJVPqXEqby+8zkP9fl/YNPmsQ/
A/m2eO6++52I8qO84E+LoqmKrj8XnsdfYBdXRZl9vavtPP71oq7Oz3d5tdhV
2et8Xjc5iKhfO5fzXX3N7/nT384X63yusxlVdbMBCXxZ4KE6fXX06MGTg2dw
DlFU6zmXb548eITffN3kiwLomJ2CNMmbLntTLC7yqmw32QpOOTyov398H3//
Bo5zqUNlLz92ID5BLrf668kj/v3njz9/jL9/eQRS47ymr9tisWuKrL0oQI50
TV61WxAYIMmui4afevzoC3rL6cmfj7OyWjV5C3J50cFj7gcP6AfvDnFBq3Lt
v3iIX1zm63JJl1AGErgrgP7leYmCDLmDxs2rJT7vnnuCzx3iVYbD0Uy/n35+
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
nWMoSLP7qVW0Lv2UB6GKJwmfmIhnZzK3XKSesB+4gXMP/iEysCh6tOQ8mnGC
CDoZR4ilURMGqWAj2SO8dWcdupq04RELiJZ94RjV7MnSsZIu5A/Uxxw+xZy9
SzR6vVWLTGrIMGUmvFzotCjaUxKVw9WHk2yguoLp6AEFj6KxvCbqLDcCG6NU
BZdNOyTqs71PFrVwOZmzjhwgxQMsMAi7J3w76VouewOh7UqNerUGcE26NKT0
hzeHf3GShnr+LXiPc07jduxJ6f0gGIbli2Nweca3TurJywHDpdlVMRIVucG9
L3LSdsW2xWai/dt+bBMSTXlhGpAM+J81E9h47HrsewUPCKQq4orgZpa4XSy6
0mVOH8ptG14X6qwJb2mTBqWo7ihpys2mWJaEOqEXOQEvRA0yOCe+aBoYe4je
IjrHPR0R+y6Xmp/NakoKIOeG4Ko135IENeL9Fu2fEt5JBL3G7osn0mORi9ZT
bbxpC3YtpcHJPQanrmiwcO9yt0Y9iboJlBKXk8fgfNpv3Y2WfoFTFe6YzrV3
tKBCk9q0Au4xienWuVWkE3mcDScPjkamcS45xLg/gTACrT9umks9la2Njt+/
O3n5FmiHebWmhQIM8u7saLirRBhNReuYosQNV73TZcw6ZjgF1/1S24Cqf9q7
j4Fp12F8RzrN8iSpYNUlXEq0mqngzhjeyOTlXJPa6+BbqBZocrQuXXMbD1zS
y7RFwylZ0JZ8B/4ZDplI3pW2hQM1adJdS77WJhquRSgc5fOawyFypI88GMpQ
6K/0OSLhtarnTOvAw6KXASQXllfWvTUvAkWgdrA5IDAQD6cdM9GlBYo5wnl2
qv7UJBoFHfl3QKLLsrgSjmJh5Nw9nxQ/sW4r6hNzPeinviERne8B1+WlM7ld
lI6P7YwwSkY3U9R1lLilVzw+Q2GZtw6hr/9quk+xeyQp2dKYsh96kzrlwfjb
PrUyrSjwvxn0KjD6FV3FZmwygZccIa46k92pP+h3uhdXBpatrTq5LP0DydsO
pceV5GE49NJBX6RpaGU7RXDUR5CFsOWKSu7KyJabXEwMtYJ3Ulnt/PG0ncZo
dNSgFGrCYSvQYVvniPwh9m5wvNMuXDzKzjJwGVfDi9dGNCFJXb+RUIPATqCt
DfuZpANXkRWlD7OBjHacAdh0v/NdcsrNNl+YeRhGj31VMRy9/f1AMpTvykr6
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

-->

</rfc>
