<?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-03" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <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-03"/>
    <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>sriram.ietf@gmail.com</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="November" day="04"/>
    <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-24" 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="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="I-D.ietf-sidrops-aspa-profile" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-profile-20" 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="18" month="August" 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-20"/>
        </reference>
        <reference anchor="I-D.geng-sidrops-asra-profile" target="https://datatracker.ietf.org/doc/html/draft-geng-sidrops-asra-profile-02" 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="17" month="October" 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-02"/>
        </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-23" 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="19" month="October" 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-23"/>
        </reference>
      </references>
    </references>
    <?line 388?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1ce3PbRpL/H59i1q66JWOStuRHEtW+KNmOtZZlnyTvoy5X
qSE5JCcGAQQDWObK3s9yn+U+2fVrBgMSlORNLpXUHSvliOBgprunH7/uaWA4
HCaVrVJzoMZ1lWf5Kq+dOl+7yqzUmUl1ZfPMLW2BPy/z0v6Drqje+Pxs3Ffa
KZ2pZx8qkzm8XOVqfP5mrOZ5qZ5lS51NzQyuqDe6Wqq/mNLO7ZQmSPRkUpr3
B37UymSVqp3NFjyBzvC+s3GSzPJppldA36zU82roSlvq1dDZWZkXbqhdqYfv
o4mHDx4m+cTlqamMO0jqYqbpD/zfQQJjzCIv1wfKVbPE1ZOVdUj4xbqAFY6f
XTxPEluUB6oqa1ftP3jw9YP9RJdGHyhYLbnMy3eLMq8LuJ8JSN6ZNVydwc1Z
ZcrMVMOnSGeSaJLXQaKGiVI2cwfq5UidE/VwgVl6mVf2nU51Uc9s81teLnQm
gj5Qp8fnF3DRrLRNYVkaNLKmmv9pgZdG0xzvmdoKmPpG22ppSjepy8VAvXqq
9h989fXX+HNeZxWy/TazFWzJeYVSUflcjVcgvKlOIjpPR+obky0ClaewxXKh
TdqLWl8a2xC3gEGZzv60pOstyg6N/d7SFIGUo6XNNFyIVh6P1AtT/mNiymb1
8cqW8dU2CcAP7L6DNZCZozzLzLSy07pqqNIwwWgpE/ypnsKYkZnVgbTzKi9L
N1BHF+rBk/0ntxRXlpcroOE9KJVSx8OntCWRWhZttdw9qijzuU3DNCjDtnaH
ATabX7voV/t7DyYWdH00GiXJcDhUeuKqUk9BG7eN+02Zv7czU24b9hsw7NJM
QauVlt+A+SKMP2dRaDUFG8lXdEn1jsbn/VHy1yWQSiY8nGhHxv/dm/HFCxUL
Q01Bo2B+WKRK12oGpjqtyORXtrILkLUCI4N/U6PfOfrBwTroVRZmNgSCFjYD
RfAXCvAuQ2cW5ESW9ns9fQf7aSs1BwVw6JRkCZplpVM7tSgJvA++ZraoxdGR
46K14balBqJKg7IwIPOZmpf5CjyDBl9XBXm4UXKxtE6Bn6rZi1U2JYlplZlL
dfbm5bHKJ9/j+lOdpiiTf8HTEjXOLjKSYoZyM+w63Q4Z56siJb/qneoowakU
KBMIBQSo4/nUQhd4EfwHe+CVASpmarJWejbDKfCXqS70BNgDc2ukOtfvYKts
9s41ExBB9P3wmzfqLXthlFmhcX9FlkGGOJvXJid06unSmve0ESBepCNN80uk
BLQHNA5uKc3CgvxKIhG51in+UkbSREUYmdGgmZ70CQaYEkYXhhYka1nZ2Sw1
SXIXfXmZz+opRar/ZdvpQRRC5egj5VdX1zqJT5/+T1oYyMgAy0Vhspn9oA6J
3nND26O+Rnnuklssk0+f+r8iU70AMzoq10WVL0pdLO1UvTLO6YUBOrJKfwCH
++q8jzJCuQOlENcq5KkCKENCRkMkjsiahC3k3sxtBjfABrPYdoYcUDf1/z5j
p89goJoCOpyt1VK7TW5BL5lbXP9zLEv1rq5qZ4ZTsG/QWnW5NCh50pk1q4g3
GVTdRlosoci5wDox1V5Ks9n1xOJvDtDX56/sdwdW+hyWYdPf5ylPGlRD9XgX
+DZcGnkAKvpsHsxLCngeUO8KADrwiRpj0aKy7+uMHcQl/MrqCT+4erqENS71
ms0UXVidgoUWpXGmZNWJnaOXCvlUkZYVLIhzXpI7jtS9Ib/jzvUo+d1vIOVC
8hvKySjRroDL7yEVIN8JNLk8EGklIsHKWa7e12kGzMrW9VC0pV7Qt763p3md
zTSKmPQ7RAs2UXGE8J+ekvexbmnIcOnW3FtNAeKeWnBOflamEzIN0AC0qJ7t
S67Ws/f2+uTNq8scN8AZgOEwTNWZ/aE2HPuCsVNoGLBZ4jZWsHMVu0NSJT8h
ZZSwijdJGu2JsaUIOC+KHEKGweH4S6yYwMoAOV0QyRnThjoqTvvqapwuKDgM
h39IkuNsWhqR28Rk4CwrkVNZs4iMLlP0cHlRoSNQY3YtuFMzU6T52rVzWNQt
WLqiXDmfzzGKsSkRp6Aw5KBYaYABXHDOakimBr/eb1mgTl3evdRIXbRU8BL8
NnAhqtjscJgYp0PicEUQTY7pI14TCYfALBtGbo45n/HKeSkLJwlpNXpDmAIk
Zj4UvCawNEGiVqCgumR7bKsZOV8Y6QMzpII3IqHBLYN+5zhJlTDA4Qcw3111
YcqVzfI0X6yZlZrCLRg6bPPKCbkuAI+HtwceECzI7MdNyME5YQWOw1WMSg4g
F5fPUD2HrRye4FbOxZ8d8BZ77xYG9MRMxHD66vdhGqWeyv7fP82r8AVWniGJ
YJbg52nnYTczGCFzRBOQi6ra+/nOuzyvuOwO2vF8ROLtXn9iKgzEEzPVIAlg
JYV/LXoj+BHpQOYUmqVs0Zn5obZsnU6d6GxRww7xZr0za4WFGKfuvHp7fnFn
wP9Xp6/p77Nn//72+OzZU/z7/MX45CT8kciI8xev3548bf5q7jx6/erVs9On
fDNcVa1LyZ1X47/fGZAJ3nn95uL49en45M7WrrJnJMlZrBSBT0ARaJeAS52W
dsKacHj05r//a+8R6NVvzp4f7e/tff3pk3z5au/LR/AFQzKvlmfghvgrCHyd
aADIYF+I0sDqIeZY8GGAZcBk3TK/zBTssAFV/OI/UDL/eaB+N5kWe4/+IBeQ
4dZFL7PWRZLZ9pWtm1mIHZc6lgnSbF3fkHSb3vHfW9+93KOLv/sjqKVRw72v
/gheHZI6X4YE+61LjJuQxU0AdoMLnc0g+jt2j+Sxr+4G/EWK15jhuKoArxxE
KSBdYA9+JLiLseFvGbya0gOGBhDAl88ChFh4bPZ7M8SBmrUzqN0IcCuVClnA
rZIndIqGsQ9IqQfJCfuNgLH64PYhDWF8CUMjAYDyu6nJdGlzcjhoDzDhbh42
88AYtBDMh4BRh5APEAyzoF3wuyPf4IgWwpF2DhIDTNM8g5RVEMbPMwTLGfqk
rQTGhxCAAeaDxkwu8Im0QgSusQpX+ZRrbheyyZA6gqxgz/cwRIydA08hSXGa
Ml5iwxWSn9tFDVLrEbWkdhSse0/64FZYAwEGOQtaDaRMTYE7128yHmKGqxOc
0czymwoJWG/AnRJ0AvysdPkOBh/tv4EUVLRsWOVDbxD9AeNVH1qIHxE4czMx
EEdpGyM1ZcATFUpksJ7k7w3uQw/AIBuLTMsmwEgd813wqHNQ6TcIyQHkh7zR
eQ3x4MY4hkme36B3ZP0oTcuVi6vHg0eDh4P9wR5sz4v8ElSuJF+rVtZNzFIL
gsJbZDOZMFIsmE1ipEAxMpHePgPmmLyQcHAM/bLPg7UKGsIzXj0hWsIwEguM
3izCEIW+6OJv5j0G39MqPfCRC3kW1ATQ+ONKTZd57nwSTTfDHpSRDN/r1Mq0
761GYr7qRxKy4h8INCBKDbLd75P8Mv77t5tAGatWXnNYccJ+oOlNubzPEERm
w3t92jVjSfv84Uk/jNsCwsDnTiL3GEX52eHPR33C3A3toiOM673HAvKoZugT
wWscvPIOnqo1WBAkc8btsQBtosI67m/PgwnvV8QXAzO082AjdSV4HU1dMhvv
pr2IQsLJRTjvADv0gVQhbIsj7CKmKU6MvQjAERwkGdQAlneI+cGY0jUDv3/+
858RilTq3pA/97a+bhhc666PsgkfeTR9fRy++s8tF4o/39I9tDQve19tfL7d
vICXeuD9+kn76n26eOO9ybX0dN0WhsqtxP1D4D6Q3kht496PbJrq4w2rMumt
e5tVaQma/GMHsTtY5RV53mtu27yvk9Decx9r+zu4+Eg0fjVAQcRSAsP/+EXH
56PYcEMZ/dXSvOt2qIuEoBREy/XS8hSLP7+VtOjXj70QEvo7pHUzqfdjEe3t
WPGj+J5gY/c/a7Eknqn3mnxgyzh6f8EYoqXiHRvTG/qXPMfVgbrbBZeUop6F
39/xIbwJlFjzbYXngB7v7ILyR8HbBiiPTvg0z4ZjLHXghQD30d+9piAYbkuS
TlC3D96xAX+IdhpYmAlIIVwZOXvQSUFCGayu/eoRLMI94WDh2oiJJ8RIUZfZ
JryQ8NJjsN3nKpOTaB4T8BhCy7FEG49me7vY42C+SR2WiDBat8pEk5pBbYPB
YJwAu8cUTKNyE2A5U+JZt49FAaBuRyyaAcQmwdcXkIdcQG7F4H4UZQVmkcz0
FKFyjMM2ABrgWQYSj/ue4FAEx2KnHGf1cDcN5CYBgXzZbxCEwD4AyySQmAcW
I4u29Ii2mQKE8zZ7lyEa5moz1VzybBEGwwgyp1FyWOPRE+Ywkxxbbgio4cJ+
BqEVI7pJQSqYKxB6ZlSScoI6kAh7mdfpTC63iKThG2zSJtYIpwRPgzKa+Rxv
9cj6etjlhfU4QolABKLCrhNMD/uu3WsPaM48zATZgw3oqO57M0y55tPl8aIY
PbzpE6DNT7R+iNZbSObaz8eb0czGhxbyuONWkahrgMS8zaC9k0wflTqJ/+zV
m9uvD9oSrEWo39LXLwdPKHZLOL1F8FayJd/Gsu0IqzfgnejrViS/EeoE6Pzd
LeL5roVvDO4bzP+IUL8fQn0It7oVpbvjJJq6ztrhjQAA1QHBF5zFidIZJDMr
SMdm0qJwdVfSGy4tU6n+zhEdk+Gp9/j8DqZzd6bhSihElB2F39LM5bQa4wMf
6DnV3BwKUJg7hZjgtibCI9VpRARPRQcykpATZ9J9QhVdOijCOBsNCSUgnG/r
vp7rUzjgc/7N9hQ+48oNB/hdE/PaWOheZHkJ/r3nT9zg7zqrnYag09+dgxZ1
WWD9AR3zBVefqFZYGpBRPZEeznAIiwmq9DQc0Nc9PiXcH4QM9uEtOh1wqTWt
NAPNAG2qw5mojpZdq7k1KV12pqq8GoIQuBQJi8PCwNrDjXSYjt73Akn7tBQd
AMVNCXyc4iri7Zr2g63JU+w+1fx14M8PZe9QzGHXLoEtqsWaQiMwxfYg66Yp
SPz6BQEFvRr/XYpD7U6KTKS8yQmo64R6TZClGzgaJWOeZthSctIlQ22tcSET
V+OybB5dJ8yzIWfY2JyUGQ/dpBYpKpXlKjN2sZzkbJ+lKcDvSJtLs+OoTupB
o9XZNK1n/uDOcJuVK3J/qgu2FKuLjCr0Os31jLWHuwDUNmGdO9VsjykrjfNJ
0aghvmdGi9EgpCSu32xXaTQhWqZMsos2zTQfIThmDdlHX8SdMVm9mqAjuDh8
2u/mRuEJXYLQjs/K53lNJScsZNPZODqpv40eP/g6cjgPuevMruq00pnhjoeu
gbSX9+WceV+QIVUsK2kCeRj2JnI0O92LL4dt7JSl7qy2iW44slGC1VFgcAly
h/Wj06mY216jwOJEIerF1gIYFraRtlI0G91ttkg9O9KslUc/+EtzzjBiDdtS
+HNucimw9ddCKrA0aRGqlQqukqD4KBp8Z10GxZV2eYLpuDHU+rG5IdLBGJNg
PqCBo8i5y6JxPAORNUgXnQCbDWaC1InD0/nibHAXvdCmkFLPA3gq7myRIOrd
SWMAeXB4seG1Oj3k+Kjtk/zS5IhvjkgJONo0dhq+g7FxbBsHbg1pXhU6HYnY
J4ZfFC5cKDABLS0abyv6hKYJOhkZUtdgjvyUbRSDtAIrls5WYpdqpJFvVVc1
uh45ZYsb4KQpkw7bKT55x0C6x7CKPYEto0DEIKAHOe5nnSmulT9+VvO6lMm7
1msHd/EID6/DRdxZ+aHNnByu+F3EW/g4ksKJ77yJ2gHR5EMBiA4qtyVDNZto
RsuV/H9BIr3TvDIH6pBNgMFni37ysPkdcbYrg2zLcapEkUAIDx31pV9ut6Dj
87GfQ9TZTlmj6jXCpmYQ59vg3MbYAJ3jBWJz3IIZVN2SJkA83vfuiSVz42ai
cwZsNcu9xwSUR2KDWG3iYXvYdXFpwFlo590ybcIZFWzOsdUQYurZOdXizs6H
U+Az27BCPPGxK5vq0h9h+gQHD1wDj/E9I3WeD/xu0C5hgkQ2Dk4UVzg734RV
mDmSM0S3jAwEchxS37g20YuHpBCYp3/OXRyhNjHjPu+hHEACymqCBDlNQ35+
s/P2i4sthnAzD75QycW6sNi7vabewuO/4c9FPaEGR0fH2Bw6kGr4yVNsWY19
xyX5nfAzd9Mz7pW6LWeWcjNsDvVWICt8MieNqh2qjRzVhcL8gUtTmDtCbrmq
M+qQ1gsKIZDt5PViqYocW+kNhq1sTsf/kNiykRPfUq01xD/H5a3NliqtkDQx
1aXBrt5s3YQHLwUnBTtKI1pix1t7gEojL8OCx3P8icPF2o1f/bazaITZTWTb
AMNU1OGbeiNlKEohlXcg2kHfKUvbSAVLdtBhZxq5EbzRncRt3i11XiJCSqdx
d0rgQGCpiEUm28kS9+fClF4zmwwp4kjcY3uhET2PsgTw8VtMEgy3A3LbR9T3
Aulw6HrHBRHhs75JzbtjB1DLG/sMVh3oaWBaANmIsVDxbMVN5ZQGjxSg5JVe
C64CRlH0qdECEaclUDucLs00dBB224snhrPwhpIRlXHap9nxc6RUFth+5lS9
bWrBV3ex+JuEsw7n695Yz48OyqkeEBr0WHbyMEc3VMRyQb2In+WQw4vWqNuB
Ad8zcsYl65Ei3wLT2WnTme1AzEsLrpV8VtNUThX+D0WqEewCqsBbLT0iggTY
qDHn/Pjp2es35+qv31CqWdMTsbLdmDpgQR/222tOWIGKCGgqoz5kfydGTggA
HBkUz9X4vHfKrRSnw73+YDQahb4KKld+woQb2+6zKnYcZCnUcQv7GHrHT91A
oAOXOuXESLorMOzz2cFp+GmVu4rsl57A4fYwGRdie35dn/UoVP9c2GtehelE
CVMv5xT0YWH0JF13d/SOklNPlJ8nNdmiouO6qDt+REJEJrDzvS2cVse2LyI2
1OIQ3Npyu2d7lDynRHIhLftqmRcD5TQdutjQYX9P2l5sECCs7Wupvht/45yO
p5aElNI5nHyryX+j+cQZQ+3C5AF8qYruaz3+0XT889p4vsNNbtIHFB44B5pH
iQ+EbK0F57YkKE6ZBu1SpUBaXDMuy0a57oh7joOfUQDkT4xz6rwqLRZEyYeM
wYlsy7dDtDqaZ0FHhwWKcUa2IvCOKOOKzUarPp+ukhxCLxa3TLVHy55JLzhu
3ZIW4FwhRfIdkc9VCi1ZTMPkoRyMHUIu4p+Xa0jHEOGz5ZpWks7JelXwfkjT
ltcWoBWMIkvtOwQUuOlSj4J9xm7vuGzsH/fBH9K1BE7psLP8roEAgPuha1we
zwDXtcB+Z3xshp+kkYpJIwMwKJhPe/+31FgDj9r6WpyGKtyi1vgw5wL8qGNT
JBakwaqLD1yRhUNGEZVaaIdI/LhHnTKHtByWERmzCnLPgqKeBeydx3Nx/8Bh
uhipMari85OhlvOKpkRgQ48AKBq1jhathcdchZ/JpHTLXHSrrb8ddr1hrkir
P9cZKjrmxSkQUDVmh/UNqb+tsfsUBewBUnQuFJ4mwhV8MjiIph+fPuUuw80l
zv6lJXZ1S28uefXs+OLFs7NGKJofx2rcyuszinvh12jF20kh0nXP+KeYDIKZ
mERc8+BHeMIivvFZitnuTXfGz2eMWPliZEUKcT2y8jpJN8fuEzXtbQHqb/SK
pnBJcobvaADDqDOOobNQnaXHD7VTracj/KM3X472P+vhmw5KnuaXWUxLbEtP
x8GW8IxkhebhFBjId3XxHXwvpA8h+24Gs/CVJlrTV47vjlo371JwF3dM1Qnw
vDU67c3uW+7OD1zenkdpw8SlHXyjDus+FYKn4PJ9aQ6Uaj635YoEXBdDotQ3
cYRn7V72PdJ6CQoRcT1SDED9nWAzmNRWfFNwyPztmlNCrEtVm15h2wxeBvOM
HwCAAA8yb5N+4kln8EennswpB0a3IQbP3wkqvBpu7OQ9tSfID1yeAMRmTes5
PmlxfPJTcHwy3OaYD4oiqdPDFUDCS//wA+UYmBP2ZPNEdt6cvRu5h2Sc5u1n
1gf+AdbQm7XETSXJ7uHsL8ESK+vmfDTKj2nicxZR5384dS/kGQNur29kNoE8
LiOiTzqJPmGikf1bEc0HTtK2E3nYnfspv2/oc7LR8xICA2zmKP6ISqvO8aq7
0ebb7cE4M+p01w8vh3ubDcX8GXXODte7Ru8a7If3wp70rx1Nv/VE4zrouu7O
LtKuH799h6SMu2+gNHJrmRtbnjY2hT3G9R/yjJvNUTetIz0xyne7nIXk7d9a
z9LH8/a8SfUbvXyGmRUpMWKJ+Jlqsh9vjWF8p1WSQQt0m+QVDMCf0bmF56dD
Bw4FkNByc+y7VwXsgu0MvRuSCDgMGoXdNc9t6aqBKmterX3s2gq/syb8FhR+
d4f6z3rOFh1PPqmo6KHyupri+0gkx2Nf7swBt0UO1HH2nv+Q5kiAsKf5Zajv
UH1BpuBIXbXQdcORL0xIoYaCREGPsXKGjPftRl3+Wd4BPVxHq2amLY2rK8L3
iGX8Xu+NEGTHNMKqgSM60NvEVrG6eZzV5AZLnVbYc+NH7I8EM9p5C/ugjwWe
ruJr99o+95P6gzodtNYL5VFP7TZ53CfW30VZmO2hJywFMGs3MEoY9YjkcyuU
zMQxGS0aWwzkXrq3kN3jSHa2KypF9eKNWeJFezuF1W8YfRLW8m8ugCXxZPIe
qMg3Of55XplC3X20VdGAxLNVzDj8hAfcza9NEow+5+evV1xfqhhv1yfgi2+p
one4ycpxebxVoZhSf3N4XxHg8J+sPkFvVQDQgqc4nZWHW2T2h5LZTz47sz/8
JWX2fqVIs39Jmf2vJKU+/JWm1IeSUqMSv/BPfcfBI+TYofDsCeXTCB8CKS2H
tX/tKOMXDTImPxZk/ChgIWGRMvhbgYXbQJqfCThsoJ1A+48GDnu3Aws/OVrg
mDOz8zkoHr29zvcOUNEf288iejxv7dbS5vfIhLnRLjoP4dIChHsD2cfdfZrr
7mMUS3JXvS6kgQ9c91Hc0IeN+mCi4Fae0TEDuFF+BxhZvj9+vU8WI+8egZ9t
PuMGETl/qqiJDR+Nakbz0QEfLMtbFDM8OkG6uM8Jn05w/B6BtZ+ctNZkro5b
sdiX0bHcHOSCR/3UFjQxMLmR1c2HwgID3Hupruenk5VVnlkc1vRKYLVPojq9
BBB7mx2OkVdxxIdvlpqcpM8XX1mRNa+ODE2KLXgTWhaxuy06MxMMB9PK0/JB
OL63uvLYkZWEX1ZB/Z30HjP8Cyjsh06cBmby0RNlrHNyer8kMUVYpENUgYnu
1+beXmhHMbM/TkQ7jGJbRGc/tSbhPu+SXT9qhv1ZNOusS2zoKMHzhDcFbbkd
Z6ZDJ7+C/wkDpzn4yTK71QsWmtdeoHtIdbnArAJfO/re8ttiJPJG/m+jxxfP
DdEDfuIX7zFqYJSpjsen427Crc74eCN+SqldvaabW93T0nQzRQiTmtmCX8LF
IYLfdOvCAwsgXkhoXgGjP1Db2CsLccikfXxheLaAUJqaD5rzvn/YVf5+oP5s
5nP1Qms3ABRZL9SrPKsWaCNr3vbXKaWUh3kJ2lZyGxFpNvanYIMRi6WS19o0
XSzyat+Jnr5Lkv8BYs8o++1eAAA=

-->

</rfc>
