<?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.19 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sriram-sidrops-asra-verification-01" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <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-01"/>
    <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="2024" month="October" day="21"/>
    <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-19" 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">
              <organization>Fastly</organization>
            </author>
            <author fullname="Kotikalapudi Sriram" initials="K." surname="Sriram">
              <organization>USA National Institute of Standards and Technology</organization>
            </author>
            <date day="27" month="September" year="2024"/>
            <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 type of AS_PATH verification provides detection and mitigation of route leaks and some forms of AS path manipulation. It also provides protection, to some degree, against prefix hijacks with forged-origin or forged- path-segment.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sidrops-aspa-verification-19"/>
        </reference>
        <reference anchor="I-D.ietf-sidrops-aspa-profile" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-profile-18" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-sidrops-aspa-profile.xml">
          <front>
            <title>A Profile for Autonomous System Provider Authorization</title>
            <author fullname="Alexander Azimov" initials="A." surname="Azimov">
              <organization>Yandex</organization>
            </author>
            <author fullname="Eugene Uskov" initials="E." surname="Uskov">
              <organization>JetLend</organization>
            </author>
            <author fullname="Randy Bush" initials="R." surname="Bush">
              <organization>Internet Initiative Japan</organization>
            </author>
            <author fullname="Job Snijders" initials="J." surname="Snijders">
              <organization>Fastly</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="25" month="June" year="2024"/>
            <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-18"/>
        </reference>
        <reference anchor="I-D.geng-sidrops-asra-profile" target="https://datatracker.ietf.org/doc/html/draft-geng-sidrops-asra-profile-00" 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="13" month="October" year="2024"/>
            <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-00"/>
        </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-16" 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>IIJ Research, Arrcus, &amp; DRL</organization>
            </author>
            <author fullname="Rob Austein" initials="R." surname="Austein">
              <organization>Dragon Research Labs</organization>
            </author>
            <date day="27" month="September" year="2024"/>
            <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 and Router Keys 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-16"/>
        </reference>
      </references>
    </references>
    <?line 388?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1ce3PbRpL/H59i1q66JWOStmQ7D9Xu3lKyHessyz5J3kdd
rlJDckhOBAJYDGCZK3s/y32W+2TXrxkMSFCSN7lUUneslCMCg5nunn78uqfB
4XCYVLZKzYEa11We5au8dup87SqzUmcm1ZXNM7e0Bd5e5qX9O11RvfH52biv
tFM6U88/VCZzeLnK1fj87VjN81I9z5Y6m5oZXFFvdbVUfzKlndspTZDoyaQ0
7w/8qJXJKlU7my14Ap3hc2fjJJnl00yvgL5ZqefV0JW21Kuhs7MyL9xQu1IP
30cTDx/tJfnE5ampjDtI6mKm6Q/830ECY8wiL9cHylWzxNWTlXVI+MW6gBWO
n1+8SBJblAeqKmtX7T969M2j/USXRh8oWC25ysvLRZnXBTzPBCSXZg1XZ/Bw
VpkyM9XwGdKZJJrkdZCoYaKUzdyBejVS50Q9XGCWXuWVvdSpLuqZbe7l5UJn
IugDdXp8fgEXzUrb9EBdMv9/zKyrRov8PdyZ2gr4+VbbamlKN6nLxUC9fqb2
H339zTd4O6+zCjl+l9kKduO8QoGofK7GK5DbVCcRiacj9a3JFoHAU9hdudCm
6mWtr4xt6FrAoExnf1zS9dE0XwXKDo39wdIUgZSjpc00XIhWHo/US1P+fWLK
ZvXxypbx1TYJwA9svIM1kJmjPMvMtLLTumqo0jDBaCkT/LGewpiRmdWBtPMq
L0s3UEcX6tGX+1/eUVxZXq6AhvegT0odD5+NrKnmkUYWbY3cPaoo87lNwzQo
w7ZihwE2m9+46Nf7e48mFtR8NBolyXA4VHriqlJPQRG37fptmb+3M1Nu2/Rb
sOnSTEGhlZZ7wHwRxp+zKLSagnnkK7qkekfj8/4o+fMSSCXrHU60I7v//u34
4qWKhaGmoFEwPyxSpWs1AyudVmTtK1vZBchagX3Bv6nRl45uOFgHHcrCzIZA
0MJmoAj+QgGOZejMgvzH0v6gp5ewn7ZSc1AAh/5IlqBZVjq1U4uSwOfga2aL
Wnwc+SxaGx5baiCqNCgLAzKfqXmZr8ApaHBzVZCHGyUXS+sUuKiaHVhlU5KY
Vpm5UmdvXx2rfPIDrj/VaYoy+SecLFHj7CIjKWYoN8Ne0+2Qcb4qUnKp3p+O
EpxKgTKBUECAOp5PLXSBF8F/sPNdGaBipiZrpWcznALvTHWhJ8AemFsj1bm+
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
LJX8rE3TxSI/7TvR08sk+R84i4Br6F4AAA==

-->

</rfc>
