<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sriram-sidrops-asra-verification-02" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="Enhancement using ASPA and ASRA">Autonomous System Relationship Authorization (ASRA) as an Extension to ASPA for Enhanced AS Path Verification</title>
    <seriesInfo name="Internet-Draft" value="draft-sriram-sidrops-asra-verification-02"/>
    <author initials="K." surname="Sriram" fullname="Kotikalapudi Sriram">
      <organization>NIST</organization>
      <address>
        <postal>
          <city>Gaithersburg, MD 20899</city>
          <country>United States of America</country>
        </postal>
        <email>ksriram@nist.gov</email>
      </address>
    </author>
    <author initials="N." surname="Geng" fullname="Nan Geng">
      <organization>Huawei</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>gengnan@huawei.com</email>
      </address>
    </author>
    <author initials="A." surname="Herzberg" fullname="Amir Herzberg">
      <organization>University of Connecticut</organization>
      <address>
        <postal>
          <city>Storrs, CT 06269</city>
          <country>United States of America</country>
        </postal>
        <email>amir.herzberg@uconn.edu</email>
      </address>
    </author>
    <date year="2025" month="April" day="23"/>
    <area>ops</area>
    <workgroup>sidrops</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 50?>

<t>Autonomous System Provider Authorization (ASPA) record authorizes provider ASes of a customer AS (CAS).
While ASPA-based AS_PATH verification can correctly detect and mitigate route leaks and some forged-origin or forged-path-segment hijacks, it fails to detect some malicious path manipulations for routes that are received from transit providers.
This document utilizes a new RPKI object called Autonomous System Relationship Authorization (ASRA) that significantly enhances AS_PATH verification complementing ASPA.
ASRA fills in a significant gap in the ASPA method by adding the capability to detect fake links in the AS_PATHs in BGP Updates propagated from providers to customers.
ASRA achieves this by allowing an AS to register additional AS relationships, i.e., customers and lateral peers.</t>
    </abstract>
  </front>
  <middle>
    <?line 58?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Autonomous System Provider Authorization (ASPA) record authorizes provider ASes of a customer (subject) AS <xref target="I-D.ietf-sidrops-aspa-profile"/>.
While ASPA-based AS_PATH verification can correctly detect and mitigate route leaks and some forged-origin or forged-path-segment hijacks, it fails to detect some malicious path manipulations for routes that are received from transit providers (see Appendix B and Section 9 of <xref target="I-D.ietf-sidrops-aspa-verification"/>).
This document utilizes a new RPKI object called Autonomous System Relationship Authorization (ASRA) that significantly enhances AS_PATH verification complementing ASPA.
The Cryptographic Message Syntax (CMS) protected content type for the RPKI ASRA object is defined in <xref target="I-D.geng-sidrops-asra-profile"/>. 
ASRA fills in a significant gap in the ASPA method by adding the capability to detect fake links in the AS_PATHs in BGP Updates propagated from providers to customers.
ASRA achieves this by allowing an AS to register additional AS relationships, i.e., customers and lateral peers.</t>
      <t>ASPA already has the capability of detecting forged-origin or forged-path-segment hijacks (<xref target="use-case"/>) when a verifying AS receives a BGP Update from a customer or lateral peer.
ASRA adds the capability of detecting the same when a verifying AS receives a BGP Update from a provider.
A forged-origin or forged-path-segment hijack involves a fake link (i.e., forged AS peering).
The ASRA algorithm operates in conjunction with ASPA in such a way that it fully preserves the route leak detection capabilities of ASPA while adding the fake link detection capability.
<!--
The algorithm is designed judiciously so that it introduces no vulnerability (or fragility) in the fundamental ASPA-based method.
This is accomplished by the following principle in the design: Given AS(i) and AS(i+1) are two consecutive unique ASes in the AS path, an ASRA attestation from AS(i+1) to AS(i), i.e., ASRA in the direction opposite to the BGP Update flow, is given no consideration ({{Alg}}).
-->
      </t>
      <t>Incremental benefit is accrued by early adopters. An AS that deploys ASPA and ASRA prevents an offending AS from faking a link to it if the receiving/verifying AS also deploys ASPA and ASRA. The fake link will be detected by the receiving AS even if no other AS in the received AS path has adopted ASPA or ASRA.</t>
      <t>The reader is expected to be familiar with the following related documents: <xref target="I-D.ietf-sidrops-aspa-profile"/>, <xref target="I-D.ietf-sidrops-aspa-verification"/>, <xref target="I-D.ietf-sidrops-8210bis"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The usage of terms follows Section 3 of <xref target="I-D.ietf-sidrops-aspa-verification"/>.</t>
        <!--
Additional term used in this document:

        - Fake-Link function: The function Fake-Link(AS(i), AS(i+1)) =
          Detected/Not Detected indicates whether or not AS(i+1)
          is detected to be faking the link to AS(i) in the AS_PATH.   

Detected/Not Detected better because False implied not Fake 
-->

</section>
      <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>
    <section anchor="use-case">
      <name>AS Path Security Problems Addressed by ASRA</name>
      <section anchor="fake-link-attack-provider-attacking-a-customer">
        <name>Fake-Link Attack: Provider Attacking a Customer</name>
        <t>ASPA's properties of detection of forged-origin or forged-path-segment hijacks work only when the BGP Update is received from a customer or lateral peer (see Appendix B in <xref target="I-D.ietf-sidrops-aspa-verification"/>).
The use of ASRA (together with ASPA) extends these properties to scenarios where the Update is received from a transit provider.
This is achieved due to the added capability of detecting fake links in the AS path with the assistance of ASRAs.
ASPA alone cannot detect fake links.</t>
        <t>An example scenario is illustrated in <xref target="fig-path-shortened-1"/>.
Assume that all ASes shown in the Figure (the attacker AS(6) being a possible exception) register ASPA records and do ASPA-based AS_PATH verification.
Where a link is marked C2P (Customer-to-Provider), it indicates that the AS shown below is a customer of the provider AS shown above.
AS(1) originates the BGP route for prefix P which propagates to the other ASes. The AS_PATH received by AS(6) is path{5,4,3,2,1}.
However, the misbehaving AS(6) shortens the path by faking link with AS(2) and propagates the route to AS(7) with a shortened path {6,2,1} to AS(7).
AS(7) fails to detect the manipulated path based on verification using only ASPAs.
It chooses this path over the other valid path via AS(8).
However, if ASRA is deployed by AS(2), then AS(2)'s ASPA and ASRA can indicate that AS(6) is not connected to AS(2), and the faked link from AS(6) to AS(2) will be detected.
If ASRA is deployed by AS(1), AS(2), and AS(4) also, then AS(6) is prevented from conducting the forged-origin or forged-path segment type of attack on its customer AS(7) (in this scenario).
The details about the registration of ASRA and the algorithms for AS path verification using ASPAs and ASRAs are provided in <xref target="record"/> and <xref target="Alg"/>, respectively.</t>
        <figure anchor="fig-path-shortened-1">
          <name>AS_PATH shortened by a misbehaving provider.</name>
          <artwork><![CDATA[
            +-------+      +-------+  path{5,4,3,2,1}
            | AS(4) |------| AS(5) |--------------
            +-------+      +-------+              \
    path{3,2,1}/                \                  \ (C2P)
              /(C2P)             \                  \
      +-------+                   \              +-------+
      | AS(3) |    path{5,4,3,2,1} \             | AS(8) |
      +-------+               (C2P) \            +-------+
path{2,1} |                          \               |
    (C2P) |                           \              |
      +-------+    (Fake link)     +-------+         |path{8,5,4,
      | AS(2) |********************| AS(6) |         |    3,2,1}
      +-------+                    +-------+         | (C2P)
  path{1} |                            |path{6,2,1}  |
    (C2P) |                       (C2P)|(shortened)  |
      +-------+                    +-------+         /
      | AS(1) |                    | AS(7) |--------/
      +-------+                    +-------+
          | (Origin)            (Validating AS)
          P     
]]></artwork>
        </figure>
      </section>
      <section anchor="fake-link-attack-customer-attacking-its-non-adopting-provider-and-other-customer">
        <name>Fake-Link Attack: Customer Attacking its Non-Adopting Provider and Other Customer</name>
        <t><xref target="fig-path-shortened-2"/> illustrates a scenario in which one customer AS(6) of the non-adopting provider AS(7) attacks the provider which in turn propagates the attack (Update) to its other customer AS(5).
In this example (<xref target="fig-path-shortened-2"/>), the provider AS(7) has not adopted ASPA but all other ASes have.
AS(5) is the receiver performing ASPA-based AS path verification.
AS(6) conducts a fake-link (forged-origin) attack on AS(7) which accepts the route and propagates it to AS(5).
AS(5) receives two routes (one each from AS(7) and AS(4)) and per-ASPA verification, the shorter route from AS(7) is Unknown while the longer route is Valid.
But since both Valid and Unknown routes are eligible for path selection, AS(5) would select the shorter path from AS(7) and is thus deceived in effect by AS(6).
If ASRA is deployed by AS(1) and AS(5), then AS(5) can detect and mitigate the fake-link (forged-origin) attack using ASRA and ASPA data (<xref target="Alg"/>).</t>
        <figure anchor="fig-path-shortened-2">
          <name>Customer attacking its non-adopting provider and another customer.</name>
          <artwork><![CDATA[
            +-------+                                 +-------+
            | AS(3) |---------------------------------| AS(4) |
            +-------+                                 +-------+
      path{2,1}/                                             |
              /(C2P)                            path{4,3,2,1}|
      +-------+                        +-------+       (C2P) |
      | AS(2) |                        | AS(7) |             |
      +-------+                        +-------+             |
  path{1} |                     path{6,1}/    \path{7,6,1}   /
    (C2P) |                       (C2P) /      \(C2P)       /
      +-------+  (Fake link)     +-------+      +-------+  /
      | AS(1) |******************| AS(6) |      | AS(5) |_/
      +-------+                  +-------+      +-------+
          | (Origin)                          (Validating AS)
          P     
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="record">
      <name>ASRA Registration Recommendations</name>
      <t>The term "Compliant AS" or "compliant BGP router" in this document refers to one that is compliant with the specifications in this document.
A compliant AS that has a valid ASRA record <bcp14>MUST</bcp14> also have a valid ASPA record.
A valid ASRA record(s) for a signer (subject) AS that does not have a valid ASPA record <bcp14>MUST</bcp14> be ignored (considered unusable) for AS path verification purposes.</t>
      <t>There are three subcategories of ASRAs defined: ASRA1, ASRA2, and ASRA3 <xref target="I-D.geng-sidrops-asra-profile"/>.
They are distinguished by a subcategory field by setting its value to 1, 2, or 3, respectively.
ASRA1 and ASRA2 are used to register the lists of customers and lateral peers, respectively.
Alternatively, if the subject AS does not wish to separately disclose customers and lateral peers, it <bcp14>MAY</bcp14> choose to register an ASRA3 to register the combined list of customers and lateral peers.
An ASRA-compliant AS <bcp14>MUST</bcp14> either register ASRA3 alone or register both ASRA1 and ASRA2.
To signal that there are no neighbors to report in a subcategory, AS 0 <bcp14>MUST</bcp14> be included in the corresponding ASRA subcategory in the payload field.
<!-- To signal that the AS does not wish to disclose certain type of neighbors (e.g., Customers), it MAY create an ASRA of the corresponding type and include a special AS number (TBD) in the payload field. -->
      </t>
      <t>If it is found that an AS has X.509 valid ASRA3 and simultaneously has X.509 valid ASRA1 and/or ASRA2, then only the ASRA3 <bcp14>MUST</bcp14> be considered for AS path verification and the ASRA subcategories ASRA1 and ASRA2 <bcp14>MUST</bcp14> be ignored.</t>
      <t>It is highly <bcp14>RECOMMENDED</bcp14> that an AS (compliant signer AS) register and maintain either a single ASRA3 object or a single object of each subcategory ASRA1 and ASRA2.
Such a practice helps prevent race conditions during ASRA updates.
If multiple X.509 valid ASRAs of a subcategory exist for given subject AS, the ASes listed in all such ASRAs will be combined (by the relying party) into one list of neighbors of the subcategory in consideration.
This combined list will be used for AS path verification purposes.</t>
      <t>All neighbors that are customers or lateral peers of the signer AS <bcp14>MUST</bcp14> be included in an ASRA(s) of an appropriate subcategory following above-mentioned recommendations.</t>
      <t>A pair of compliant ASes in a mutual transit relationship are required to include each other in their respective ASPA (per <xref target="I-D.ietf-sidrops-aspa-verification"/>).
They <bcp14>MUST NOT</bcp14> further include each other in ASRA1, ASRA2, or ASRA3.
A compliant AS that has a complex relationship with a neighbor AS where one of the relationships is Provider is required to include the neighbor AS in its ASPA (per <xref target="I-D.ietf-sidrops-aspa-verification"/>).
(Note: By the term "relationship is foo" it is meant here that the neighbor is foo.)
The AS <bcp14>MUST NOT</bcp14> further include the other AS in ASRA1, ASRA2, or ASRA3.
A compliant AS that has a complex relationship with a neighbor AS where none of the relationships are Provider implies that its relationships with the neighbor AS are customer and lateral peer.
In such a case, the AS <bcp14>MUST</bcp14> include the neighbor AS in its ASRA3 if doing ASRA3, otherwise in its ASRA1 as well as ASRA2.</t>
      <t>The Route Server (RS) to RS-client relationship is similar to the provider-to-customer relationship. So, a compliant non-transparent RS AS <bcp14>MUST</bcp14> either (1) list all its RS-clients as customers in ASRA3, or (2) list all its RS-clients as customers in ASRA1 and register an ASRA2 with only AS 0 listed in the set of lateral peers.</t>
      <t><em>Transparent RS AS case:</em> 
Typically, an IX RS publishes a list of all RS clients it has so that each RS client can choose which other clients to peer with.
The peering relationships are set up  by using BGP Community tags or through policies configured at the RS AS.
In the case of a transparent RS AS, the peering between any pair of clients is effectively lateral peering (note that the RS AS is absent in the AS_PATH).
A compliant RS client of a transparent RS AS <bcp14>MUST</bcp14> include in the ASRA all the AS numbers of other RS clients that it has selected to peer with at the RS.
If a compliant RS client has selected to receive all routes from a transparent RS, then the RS client <bcp14>MUST</bcp14> include in the ASRA the full published list of RS clients of the transparent RS.</t>
      <t>Authors' note: The possibility of defining an ASRA type using which a transparent RS AS can register all its RS clients will be considered in case it adds value. It may be useful at least for cross-checking the peering relationships registered by RS clients.</t>
    </section>
    <section anchor="Alg">
      <name>Algorithms for Enhancement of AS Path Verification Using ASRA</name>
      <t>In this section, two algorithms are described which enhance AS path verification by augmenting ASPA-based verification <xref target="I-D.ietf-sidrops-aspa-verification"/> with ASRA data. 
The basic principles behind each algorithm are explained.
(The intention is that the SIDROPS WG discussions will help decide which algorithm to select.)</t>
      <t>Let the sequence {AS(N), AS(N-1),..., AS(2), AS(1)} represent the AS_PATH in terms of unique ASNs, where AS(1) is the origin AS and AS(N) is the most recently added AS and neighbor of the receiving/verifying AS.
The terms AS path and AS_PATH are interchangeably used in this document.
N is the AS path length in unique ASes.
Let AS(N+1) represent the receiving AS that is verifying the entire received AS path.
For a given AS hop, say AS(i) to AS(i+1), AS(i) is the sender and AS(i+1) is the receiver.
For each such AS hop in the AS path, the algorithms seek to check if the hop is a fake link, i.e., AS(i+1) forging a connection to AS(i).</t>
      <t>In the descriptions that follow, a valid ASPA or ASRA is one that is X.509 valid.</t>
      <section anchor="AlgA">
        <name>Algorithm A (Less Strict)</name>
        <t>For a given AS hop AS(i) to AS(i+1), algorithm A gives precedence to the ASPA created by the receiver AS(i+1) over the ASRA created by the sender AS(i), and hence it is less strict (compared to Algorithm B (<xref target="AlgB"/>)).
This algorithm can be used under the assumption that AS(i+1) is very unlikely to create a false ASPA record (i.e., falsely including AS(i) as a provider) because it is a digitally signed object and hence repudiation is hard.
However, this algorithm does not guard against the creation of a false ASPA record and under such conditions the stricter Algorithm B (<xref target="AlgB"/>) must be used.</t>
        <section anchor="FL-a">
          <name>Fake Link Determination (Alg. A)</name>
          <t>The following is the procedure (per Algorithm A) for determining if the AS(i) to AS(i+1) hop in the AS path is a fake link.</t>
          <artwork><![CDATA[
    - If AS(i) has valid ASPA(s) and they do not include 
      AS(i+1) as a Provider,
    - AND if AS(i) has valid ASRA(s) and they do not include 
      AS(i+1) as a customer or lateral peer,
    - AND {EITHER AS(i+1) has no valid ASPA OR {AS(i+1) has 
      valid ASPA(s) and they do not include AS(i) as a Provider},
    - then set Fake-Link(AS(i), AS(i+1)) = Detected,
    - Else, set Fake-Link(AS(i), AS(i+1)) = Not Detected.
]]></artwork>
        </section>
        <section anchor="enhancement-to-as-path-verification-using-asra-alg-a">
          <name>Enhancement to AS Path Verification Using ASRA (Alg. A)</name>
          <section anchor="algorithm-for-upstream-paths">
            <name>Algorithm for Upstream Paths</name>
            <t>Remains unchanged and the same as described in Section 7.2 of <xref target="I-D.ietf-sidrops-aspa-verification"/>.</t>
          </section>
          <section anchor="DA-a">
            <name>Algorithm for Downstream Paths (Alg. A)</name>
            <t>The parameters min_up_ramp and min_down_ramp represent ramp lengths (in # ASes), and are computed using only ASPAs (see Section 7 of <xref target="I-D.ietf-sidrops-aspa-verification"/> and <xref target="ramps"/> below).
Successive ASPAs affirm the up-ramp from AS(1) to AS(K), where K = min_up_ramp.<br/>
The up-ramp stops at AS(K) because AS(K) does not have a valid ASPA or its valid ASPA(s) do not include AS(K+1) as a provider.
The down-ramp from AS(L) to AS(N) is also affirmed by successive ASPAs, where L = N - min_down_ramp + 1.
The top of the down-ramp is at AS(L) because AS(L) does not have a valid ASPA or its valid ASPA(s) do not include AS(L-1) as a provider.
<!-- The up-ramp ends at K due to ASPA-Auth(AS(K), AS(K+1)) = Not Provider+ or No Authorization, while all other hops from 1 to K satisfy are attested customer-to-provider per ASPA. The down-ramp begins at L due to ASPA-Auth(AS(L), AS(L-1)) = Not Provider+ or No Authorization. -->
            </t>
            <figure anchor="ramps">
              <name>Illustration of min-up-ramp and min-down-ramp</name>
              <artwork><![CDATA[
          L = N - min_down_ramp + 1       K = min_up_ramp

                    AS(L) ............. AS(K)  
                     /                     \
                 AS(L+1)                  AS(K-1)
                    .                       .
                   .                         .
    (down-ramp)   .                           .  (up-ramp)
                 .                             .
                .                               .
              AS(N-1)                          AS(2)
                /                                \
             AS(N)                               AS(1)
              /                                (Origin AS)
    Receiving & verifying AS
           (customer)

        Each ramp has consecutive ASPA-attested
        customer-to-provider hops in the bottom-to-top direction
]]></artwork>
            </figure>
            <t>First, run the verification algorithm for downstream paths as described in Section 7.3 of <xref target="I-D.ietf-sidrops-aspa-verification"/>.
The obtained outcome is one of these: Valid, Invalid, Unknown. 
Now enhance the outcome using the following algorithm where ASRA data is applied.
For the Fake-Link(AS(i), AS(i+1)) function, use the one described in <xref target="FL-a"/>.</t>
            <artwork><![CDATA[
    1. If the outcome is Invalid, it remains unchanged 
       and the procedure halts. 
    2. Else, if min_up_ramp = N or {min_up_ramp + min_down_ramp} > N, 
       then the outcome remains unchanged (Valid)and the procedure halts.
    3. Else, let i = min_up_ramp.
    4. If Fake-Link(AS(i), AS(i+1)) = Detected, then change the outcome 
       to Invalid and the procedure halts. 
    5. Else, if i = N - min_down_ramp, then the procedure halts 
      (outcome remains unchanged).
    6. Else, increment i to i+1. Go to Step #4. 
]]></artwork>
          </section>
        </section>
      </section>
      <section anchor="AlgB">
        <name>Algorithm B (Strict)</name>
        <t>Algorithm B does not give precedence to the ASPA created by the receiver AS(i+1) over the ASRA created by the sender AS(i), and hence it is strict (compared to Algorithm A).
This algorithm is used to counter the possibility that AS(i+1) could maliciously create a false ASPA record (i.e., falsely including AS(i) as a provider) even though repudiation is hard.</t>
        <section anchor="FL-b">
          <name>Fake Link Determination (Alg. B)</name>
          <t>The following is the procedure (per Algorithm B) for determining if the AS(i) to AS(i+1) hop in the AS path is a fake link.</t>
          <artwork><![CDATA[
    - If AS(i) has valid ASPA(s) and they do not include AS(i+1) 
      as a Provider,
    - AND if AS(i) has valid ASRA(s) and they do not include 
      AS(i+1) as a customer or lateral peer,
    - then set Fake-Link(AS(i), AS(i+1)) = Detected,
    - Else, set Fake-Link(AS(i), AS(i+1)) = Not Detected.
]]></artwork>
        </section>
        <section anchor="enhancement-to-as-path-verification-using-asra-alg-b">
          <name>Enhancement to AS Path Verification Using ASRA (Alg. B)</name>
          <section anchor="algorithm-for-upstream-paths-1">
            <name>Algorithm for Upstream Paths</name>
            <t>Remains unchanged and the same as described in Section 7.2 of <xref target="I-D.ietf-sidrops-aspa-verification"/>.</t>
          </section>
          <section anchor="DA-b">
            <name>Algorithm for Downstream Paths (Alg. B)</name>
            <t>Here the min_up_ramp parameter is the same as discussed in <xref target="DA-a"/>.
First, run the verification algorithm for downstream paths as described in Section 7.3 of <xref target="I-D.ietf-sidrops-aspa-verification"/>.
The obtained outcome is one of these: Valid, Invalid, Unknown.
Now enhance the outcome using the following algorithm where ASRA data is applied.
For the Fake-Link(AS(i), AS(i+1)) function, use the one described in <xref target="FL-b"/>.</t>
            <artwork><![CDATA[
    1. If the outcome is Invalid, it remains unchanged and the procedure halts. 
    2. Else, if min_up_ramp = N, then also the outcome remains unchanged (Valid)
       and the procedure halts.
    3. Else, let i = min_up_ramp.
    4. If Fake-Link(AS(i), AS(i+1)) = Detected, then change 
       the outcome to Invalid and the procedure halts. 
    5. Else, if i = N - 1, then the procedure halts 
       (outcome remains unchanged).
    6. Else, increment i to i+1. Go to Step #4.
]]></artwork>
            <t>The differences between the above procedure and the corresponding procedure in <xref target="DA-a"/> for Algorithm A are at steps #2 and #5.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="ops">
      <name>Operational Considerations</name>
      <t>Every AS operator doing ASPA/ASRA <bcp14>SHOULD</bcp14> periodically check their own ASPA/ASRA objects for correctness and completeness. They <bcp14>SHOULD</bcp14> also ensure that the same are refreshed well before their expiry dates.</t>
      <t>Every AS operator doing ASPA <bcp14>SHOULD</bcp14> periodically monitor all the ASPAs in the RPKI repositories to check if their AS number is incorrectly included as a provider in an ASPA (X.509 valid), and if so, they <bcp14>SHOULD</bcp14> report it to the responsible party (or parties) so that the ASPA can be rectified.</t>
      <t>Every AS operator doing ASPA <bcp14>SHOULD</bcp14> periodically monitor all the ASPAs in the RPKI repositories to check if their AS number is incorrectly not included as a provider in the ASPA of a customer AS (CAS), and if so, they <bcp14>SHOULD</bcp14> report it to the CAS operator so that the ASPA can be rectified.</t>
      <t>Every AS operator doing ASRA <bcp14>SHOULD</bcp14> periodically monitor all the ASRAs in the RPKI repositories to check if their AS number is incorrectly included (or incorrectly not included) in an ASRA (X.509 valid), and if so, they <bcp14>SHOULD</bcp14> report it to the responsible party (or parties) so that the ASRA can be rectified.</t>
    </section>
    <section anchor="sec-security">
      <name>Security Considerations</name>
      <t>Security concerns for AS path verification using ASPA and ASRA are largely alleviated if the operational recommendations (<xref target="ops"/>) are followed.</t>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <t>This document does not have IANA considerations.</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors wish to thank Mingqing (Michael) Huang, Alexander Azimov, Jeff Haas, Doug Montgomery, and Oliver Borchert for very helpful comments and discussions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-sidrops-aspa-verification" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-verification-22" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-aspa-verification.xml">
          <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 fullname="Kotikalapudi Sriram" initials="K." surname="Sriram">
              <organization>USA National Institute of Standards and Technology</organization>
            </author>
            <date day="23" month="March" 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-22"/>
        </reference>
        <reference anchor="I-D.ietf-sidrops-aspa-profile" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-profile-19" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-aspa-profile.xml">
          <front>
            <title>A Profile for Autonomous System Provider Authorization</title>
            <author fullname="Alexander Azimov" initials="A." surname="Azimov">
              <organization>Yandex</organization>
            </author>
            <author fullname="Eugene Uskov" initials="E." surname="Uskov">
              <organization>JetLend</organization>
            </author>
            <author fullname="Randy Bush" initials="R." surname="Bush">
              <organization>Internet Initiative Japan</organization>
            </author>
            <author fullname="Job Snijders" initials="J." surname="Snijders"/>
            <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="6" month="January" year="2025"/>
            <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-19"/>
        </reference>
        <reference anchor="I-D.geng-sidrops-asra-profile" target="https://datatracker.ietf.org/doc/html/draft-geng-sidrops-asra-profile-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.geng-sidrops-asra-profile.xml">
          <front>
            <title>A Profile for Autonomous System Relationship Authorization (ASRA)</title>
            <author fullname="Nan Geng" initials="N." surname="Geng">
              <organization>Huawei</organization>
            </author>
            <author fullname="Kotikalapudi Sriram" initials="K." surname="Sriram">
              <organization>NIST</organization>
            </author>
            <author fullname="Mingqing(Michael) Huang" initials="M." surname="Huang">
              <organization>Zhongguancun Laboratory</organization>
            </author>
            <date day="15" month="April" year="2025"/>
            <abstract>
              <t>This document defines a Cryptographic Message Syntax (CMS) protected content type for Autonomous System Relationship Authorization (ASRA) objects for use with the Resource Public Key Infrastructure (RPKI). An ASRA 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 customers and lateral peers. When validated, an ASRA's eContent can be used for detection and mitigation of BGP AS path manipulation attacks together with Autonomous System Provider Authorization (ASPA). ASRA is complementary to ASPA.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-geng-sidrops-asra-profile-01"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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="I-D.ietf-sidrops-8210bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-8210bis-20" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-8210bis.xml">
          <front>
            <title>The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 2</title>
            <author fullname="Randy Bush" initials="R." surname="Bush">
              <organization>Arrcus, DRL, &amp; IIJ Research</organization>
            </author>
            <author fullname="Rob Austein" initials="R." surname="Austein">
              <organization>Dragon Research Labs</organization>
            </author>
            <date day="22" month="April" year="2025"/>
            <abstract>
              <t>In order to validate the origin Autonomous Systems (ASes) and Autonomous System relationships behind BGP announcements, routers need a simple but reliable mechanism to receive Resource Public Key Infrastructure (RFC6480) prefix origin data, Router Keys, and ASPA data from a trusted cache. This document describes a protocol to deliver them. This document describes version 2 of the RPKI-Router protocol. [RFC6810] describes version 0, and [RFC8210] describes version 1. This document is compatible with both.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-8210bis-20"/>
        </reference>
      </references>
    </references>
    <?line 388?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1ce3PbRpL/H59i1q66JWOStmQ7D9Xu3lKyHessyz5J3kdd
rlJDckhOBAJYDGCZK3s/y32W+2TXrxkMSFCSN7lUUneslCMCg5nunn78uqfB
4XCYVLZKzYEa11We5au8dup87SqzUmcm1ZXNM7e0Bd5e5qX9O11RvfH52biv
tFM6U88/VCZzeLnK1fj87VjN81I9z5Y6m5oZXFFvdbVUfzKlndspTZDoyaQ0
7w/8qJXJKlU7my14Ap3hc2fjJJnl00yvgL5ZqefV0JW21Kuhs7MyL9xQu1IP
30cTDx/tJ/nE5ampjDtI6mKm6Q/830ECY8wiL9cHylWzxNWTlXVI+MW6gBWO
n1+8SBJblAeqKmtX7T969A1Mp0ujDxSsllzl5eWizOsCnmcCkkuzhqszeDir
TJmZavgM6UwSTfI6SNQwUcpm7kC9Gqlzoh4uMEuv8spe6lQX9cw29/JyoTMR
9IE6PT6/gItmpW16oC6Z/z9m1lWjRf4e7kxtBfx8q221NKWb1OVioF4/U/uP
vv7mG7yd11mFHL/LbAW7cV6hQFQ+V+MVyG2qk4jE05H61mSLQOAp7K5caFP1
stZXxjZ0LWBQprM/Lun6aJqvAmWHxv5gaYpAytHSZhouRCuPR+qlKf8+MWWz
+nhly/hqmwTgBzbewRrIzFGeZWZa2WldNVRpmGC0lAn+WE9hzMjM6kDaeZWX
pRuoowv16Mv9L+8oriwvV0DDe9AnpY6Hz0bWVPNII4u2Ru4eVZT53KZhGpRh
W7HDAJvNb1z06/29RxMLaj4ajZJkOBwqPXFVqaegiNt2/bbM39uZKbdt+i3Y
dGmmoNBKyz1gvgjjz1kUWk3BPPIVXVK9o/F5f5T8eQmkkvUOJ9qR3X//dnzx
UsXCUFPQKJgfFqnStZqBlU4rsvaVrewCZK3AvuDf1OhLRzccrIMOZWFmQyBo
YTNQBH+hAMcydGZB/mNpf9DTS9hPW6k5KIBDfyRL0CwrndqpRUngc/A1s0Ut
Po58Fq0Njy01EFUalIUBmc/UvMxX4BQ0uLkqyMONkouldQpcVM0OrLIpSUyr
zFyps7evjlU++QHXn+o0RZn8E06WqHF2kZEUM5SbYa/pdsg4XxUpuVTvT0cJ
TqVAmUAoIEAdz6cWusCL4D/Y+a4MUDFTk7XSsxlOgXemutATYA/MrZHqXF/C
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
Sn7WpulikZ/2nejpZZL8D5m0z9foXgAA

-->

</rfc>
