<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sriram-sidrops-asra-verification-04" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.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-04"/>
    <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="2026" month="May" day="15"/>
    <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-25" 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>BSD Software Development</organization>
            </author>
            <author fullname="Kotikalapudi Sriram" initials="K." surname="Sriram">
              <organization>USA National Institute of Standards and Technology</organization>
            </author>
            <date day="19" month="April" year="2026"/>
            <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-25"/>
        </reference>
        <reference anchor="I-D.ietf-sidrops-aspa-profile" target="https://datatracker.ietf.org/doc/html/draft-ietf-sidrops-aspa-profile-26" 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="Job Snijders" initials="J." surname="Snijders">
              <organization>BSD Software Development</organization>
            </author>
            <author fullname="Alexander Azimov" initials="A." surname="Azimov">
              <organization>Yandex</organization>
            </author>
            <author fullname="Eugene Uskov" initials="E." surname="Uskov">
              <organization>JetLend</organization>
            </author>
            <author fullname="Randy Bush" initials="R." surname="Bush">
              <organization>Internet Initiative Japan</organization>
            </author>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="Ben Maddison" initials="B." surname="Maddison">
              <organization>Workonline</organization>
            </author>
            <date day="19" month="April" year="2026"/>
            <abstract>
              <t>This document defines a Cryptographic Message Syntax (CMS) protected content type for Autonomous System Provider Authorization (ASPA) objects for use with the Resource Public Key Infrastructure (RPKI). An ASPA is a digitally signed object through which the issuer (the holder of an Autonomous System identifier), can authorize one or more other Autonomous Systems (ASes) as its transit 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-26"/>
        </reference>
        <reference anchor="I-D.geng-sidrops-asra-profile" target="https://datatracker.ietf.org/doc/html/draft-geng-sidrops-asra-profile-03" 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="20" month="April" year="2026"/>
            <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-03"/>
        </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-25" 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>
            <author fullname="Tom Harrison" initials="T." surname="Harrison">
              <organization>Asia Pacific Network Information Centre</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <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-25"/>
        </reference>
      </references>
    </references>
    <?line 388?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1ce3PbRpL/H59i1q66JWOStmQ7D9Xu3lKyHessyz5J3kdd
rlJDckhOBAJYDGCZK3s/y32W+2TXrxkMSFCSN7lUUneslCMCg5nunn78uqfB
4XCYVLZKzYEa11We5au8dup87SqzUmcm1ZXNM7e0Bd5e5qX9O11RvfH52biv
tFM6U88/VCZzeLnK1fj87VjN81I9z5Y6m5oZXFFvdbVUfzKlndspTZDoyaQ0
7w/8qJXJKlU7my14Ap3hc2fjJJnl00yvgL5ZqefV0JW21Kuhs7MyL9xQu1IP
30cTDx89SfKJy1NTGXeQ1MVM0x/4v4MExphFXq4PlKtmiasnK+uQ8It1ASsc
P794kSS2KA9UVdau2n/06JtH+4kujT5QsFpylZeXizKvC3ieCUguzRquzuDh
rDJlZqrhM6QzSTTJ6yBRw0Qpm7kD9Wqkzol6uMAsvcore6lTXdQz29zLy4XO
RNAH6vT4/AIumpW26YG6ZP7/mFlXjRb5e7gztRXw86221dKUblKXi4F6/Uzt
P/r6m2/wdl5nFXL8LrMV7MZ5hQJR+VyNVyC3qU4iEk9H6luTLQKBp7C7cqFN
1ctaXxnb0LWAQZnO/rik66NpvgqUHRr7g6UpAilHS5tpuBCtPB6pl6b8+8SU
zerjlS3jq20SgB/YeAdrIDNHeZaZaWWnddVQpWGC0VIm+GM9hTEjM6sDaedV
XpZuoI4u1KMv97+8o7iyvFwBDe9Bn5Q6Hj4bWVPNI40s2hq5e1RR5nObhmlQ
hm3FDgNsNr9x0a/39x5NLKj5aDRKkuFwqPTEVaWegiJu2/XbMn9vZ6bctum3
YNOlmYJCKy33gPkijD9nUWg1BfPIV3RJ9Y7G5/1R8uclkErWO5xoR3b//dvx
xUsVC0NNQaNgflikStdqBlY6rcjaV7ayC5C1AvuCf1OjLx3dcLAOOpSFmQ2B
oIXNQBH8hQIcy9CZBfmPpf1BTy9hP22l5qAADv2RLEGzrHRqpxYlgc/B18wW
tfg48lm0Njy21EBUaVAWBmQ+U/MyX4FT0ODmqiAPN0oultYpcFE1O7DKpiQx
rTJzpc7evjpW+eQHXH+q0xRl8k84WaLG2UVGUsxQboa9ptsh43xVpORSvT8d
JTiVAmUCoYAAdTyfWugCL4L/YOe7MkDFTE3WSs9mOAXemepCT4A9MLdGqnN9
CVtls0vXTEAE0ffDb9+qd+yAUWaFxv0VWQYZ4mxem5zQqadLa97TRoB4kY40
za+QEtAe0Dh4pDQLcIGggEgicq1TvFNG0kRFGJnRoJme9AkGmBJGF4YWJGtZ
2dksNUlyH914mc/qKQWp/2Xb6UEAQuXoI+XX1zc6iU+f/k9aGMjIAMtFYbKZ
/aAOid5zQ9ujvkF57pJbLJNPn/q/IlO9ADM6KtdFlS9KXSztVL02zumFATqy
Sn8Ah/v6vI8yQrkDpRDXKuSpAhRDQkZDJI7ImoQt5N7MbQYPwAaz2HaGHFA3
9f8+Y6fPYIyaAjCcrdVSu01uQS+ZW1z/cyxL9a6va2eGU7Bv0Fp1tTQoedKZ
NauINxlU3UZaLKHIucA6MdVeSrPZzcTiPQfo6/NX9rsDK30Oy7Dp7/OUJw2q
oXq8C/wYLo08ABV9Ng/mJQUoD6h3Bdgc+ESNsWhR2Q91xg7iCu6yesINV0+X
sMaVXrOZogurU7DQojTOlKw6sXP0UiGfKtKyggVxzityx5G6N+R3PLkeJb/7
DWRbSH5DORkl2hVw+QNkAeQ7gSaXByKtRCRYOcvV+zrNgFnZuh6KttQL+tb3
9jSvs5lGEZN+h2jBJiqOEP7TU/I+1i0NGS49mnurKUDcUwvOyc/KdEKmARqA
FtWzfUnTevbBXp+8eXWV4wY4AzAchqk6s3+rDce+YOwUGgZslriNFexcxe6Q
VMlPSMkkrOJNkkZ7YmwpAs6LIoeQYXA43okVE1gZIKcLIjlj2lBHxWlfX4/T
BQWH4fAPSXKcTUsjcpuYDJxlJXIqaxaR0WWKHi4vKnQEasyuBXdqZoo0X7t2
+oq6BUtXlCbn8zlGMTYl4hQUhhwUKw0wgAvOWQ3J1ODuw5YF6tTl3UuN1EVL
Ba/AbwMXoorNDoeJcTokDlcE0eSYPuI1kXAIzLJh5OaY8xmvnJeycJKQVqM3
hClAYuZDwWsCSxMkagUKqku2x7aakfOFkT4wQyp4KxIa3DHod46TVAkDHH4A
891XF6Zc2SxP88WaWakp3IKhwzavnJDrAvB4fHfgAcGCzH7chBycE1bgOFzF
qOQAcnH5DNUL2MrhCW7lXPzZAW+x925hQE/MRAynr34fplHqmez/w9O8Cl9g
5RmSCGYJfp52HnYzgxEyRzQBuaiqvZ+X3uV5xWV30I7nIxJv9/oTU2Egnpip
BkkAKyn8a9EbwU2kA5lTaJayRWfmb7Vl63TqRGeLGnaIN+vSrBXWYJy69/rd
+cW9Af9fnb6hv8+e//u747Pnz/Dv85fjk5PwRyIjzl++eXfyrPmrefLozevX
z0+f8cNwVbUuJfdej/96b0AmeO/N24vjN6fjk3tbu8qekSRnsUgEPgFFoF0C
LnVa2glrwuHR2//+r70noFe/OXtxtL+3982nT/Ll672vnsAXDMm8Wp6BG+Kv
IPB1ogEgg30hSgOrh5hjwYcBlgGTdcv8KlOwwwZU8Yv/QMn854H63WRa7D35
g1xAhlsXvcxaF0lm21e2HmYhdlzqWCZIs3V9Q9Jtesd/bX33co8u/u5fQS2N
Gu59/a/g1SGp8xVIsN+6xLgJWdwEYDe40NkMor9j90ge+/p+wF+keI0ZjqsK
8MpBlALSBfbgR4K7GBv+lsGrKT1gaAABfPksQIg1x2a/N0McqFk7g9qNALdS
qZAF3Cl5QqdoGPuAlHqQnLDfCBirD24f0hDGlzA0EgAov5uaTJc2J4eD9gAT
7uZhMw+MQQvBfAgYdQj5AMEwC9oFvzvyDY5oIRxp5yAxwDTNM0hZBWH8PEOw
nKFP2kpgfAgBGGA+aMzkAp9IK0TgGqtwlU+55nYhmwypI8gK9nwPQ8TYOfAU
khSnKeMlNlwh+YVd1CC1HlFLakfBuvdlH9wKayDAIGdBq4GUqSlw5/pNxkPM
cHWCM5pZflshAesNuFOCToCflS4vYfDR/ltIQUXLhlU+9AbRHzBe9aGF+BGB
MzcTA3GUtjFSUwY8UaFEButJ/t7gPvQADLKxyLRsAozUMd8FjzoHlX6LkBxA
fsgbndcQD26MY5jk+Q16R9aP0rRcubh+OngyeDzYH+zB9rzMr0DlSvK1amXd
xCy1ICh8RDaTCSPFgtkkRgoUIxPp7TNgjskLCQfH0K/6PFiroCE84/WXREsY
RmKB0ZtFGKLQF138w7zH4HtapQc+bSHPgpoAGn9cqekyz51Poulh2IMykuF7
nVqZ9r3VSMzX/UhCVvwDgQZEqUG2+32SX8Z//3YTKGPVymsOK07YDzS9KZf3
GYLIbPisT7tmLGmfP3zZD+O2gDDwuZPIPUZRfnb480mfMHdDu+gI43rvsYA8
qhn6RPAGB6+8g6dqDRYEyZxxeyxAm6iwjvvb82DC+xXxxcAM7TzYSF0JXkdT
l8zGu2kvopBwchHOO8AOfSBVCNviCLuIaYoTYy8CcAQHSQY1gOUdYn4wpnTN
wO8f//hHhCKVejDkz4OtrxsG13rqo2zCRx5NX5+Gr/5zx4Xiz3f0DC3Nyz5U
G5/vNi/gpR54v37SvvqQLt76bHIjPV2PhaHyKHH/GLgPpDdS23j2I5um+njL
qkx669lmVVqCJv/YQewOVnlFnveGxzaf6yS098LH2v4OLj4SjV8PUBCxlMDw
P37R8fkoNtxQRn+1NO+mHeoiISgF0XKztDzF4s/vJC26+7EXQkJ/h7RuJ/Vh
LKK9HSt+FN8TbOzhZy2WxDP13pAPbBlH708YQ7RUvGNjekv/kue4PlD3u+CS
UtSu8Pt7PoQ3gRJrvq3wHNDjvV1Q/ih42wDl0Qmf5tlwjKUOvBDgPvq7NxQE
w2NJ0gnq9sE7NuAP0U4DCzMBKYQrI2cPOilIKIPVtV89gkW4JxwsXBsx8YQY
Keoy24QXEl56DLb7XGVyEs1jAp5CaDmWaOPRbG8XexzMN6nDEhFG61aZaFIz
qG0wGIwTYPeUgmlUbgIsZ0o86/axKADU7YhFM4DYJPj6AvKQC8itGNyPoqzA
LJKZniJUjnHYBkADPMtA4mnfExyK4FjslOOsHu6mgdwkIJCv+g2CENgHYJkE
EvPAYmTRlh7RNlOAcN5llxmiYa42U80lzxZhMIwgcxolhzUePWEOM8mx24aA
Gi7sZxBaMaKbFKSCuQKhZ0YlKSeoA4mwV3mdzuRyi0gavsEmbWKNcErwNCij
mc/xUY+sb4ZdXlhPI5QIRCAq7DrB9LDvxr32gObMw0yQPdiAjuq+t8OUGz5d
Hi+K0cPbPgHa/ETrh2i9hWRu/Hy8Hc1sfGghjzvuFIm6BkjM2wzaO8n0UamT
+M9evXn85qAtwVqE+h19/WrwJcVuCad3CN5KtuS7WLYdYfUWvBN93Yrkt0Kd
AJ2/v0M837XwrcF9g/kfEer3Q6gP4Va3onR3nERT11k7vBEAoDog+IKzOFE6
g2RmBenYTFoUru9LesOlZSrV3zuiYzI89R6f38N07t40XAmFiLKj8FuauZxW
Y3zgAz2nmodDAQpzpxAT3NZEeKQ6jYjgqehARhJy4ky6T6iiSwdFGGejIaEE
hPNtPddzfQoHfM6/2Z7CZ1y54QC/a2JeGwvdiywvwb/3/Ikb/F1ntdMQdPq7
c9CiLgusP6BjvuDqE9UKSwMyqifSvhkOYTFBlZ6GA/q6x6eE+4OQwT6+Q6cD
LrWmlWagGaBNdTgT1dGyazW3JqXLzlSVV0MQApciYXFYGFh7vJEO09H7XiBp
n5aiA6C4KYGPU1xFvN3QfrA1eYqNp5q/Dvz5oewdijns2hWwRbVYU2gEptge
ZN00BYnfvCCgoNfjv0pxqN1JkYmUNzkBdZ1QrwmydAtHo2TM0wxbSk66ZKit
NS5k4mpcls2j64R5NuQMG5uTMuOhm9QiRaWyXGXGLpaTnO2zNAX4HWlzaXYc
1Uk9arQ6m6b1zB/cGW6zckXuT3XBlmJ1kVGFXqe5nrH2cBeA2iasc6ea7TFl
pXE+KRo1xPfMaDEahJTE9ZvtKo0mRMuUSXbRppnmIwTHrCH76Iu4MyarVxN0
BBeHz/rd3Cg8oUsQ2vFZ+TyvqeSEhWw6G0cn9ZfR00ffRA7nMXed2VWdVjoz
3PHQNZD28qGcM+8LMqSKZSVNII/D3kSOZqd78eWwjZ2y1J3VNtENRzZKsDoK
DC5B7rB+dDoVc9trFFicKES92FoAw8I20laKZqO7zRapZ0eatfLohr805wwj
1rAthT/nJpcCW38tpAJLkxahWqngKgmKj6LBd9ZlUFzplCeYjhtDrR+bGyId
jDEJ5gMaOIqcuywaxzMQWYN00Qmw2WAmSJ04PJ0vzgZ30QttCin1PICn4s4W
CaLenTQGkAeHFxteq9NDjo/aPskvTY749oiUgKNNY6fhOxgbx7Zx4NaQ5lWh
05GIfWL4ReHChQIT0NKi8baiT2iaoJORIXUN5shP2UYxSCuwYulsJXapRhr5
VnVVo+uRU7a4AU6aMumwneKTdwykewyr2BPYMgpEDAJ6kON+1pniWvnjZzWv
S5m8a712cBeP8PgmXMSdlR/azMnhit9FfISPIymc+M6bqB0QTT4UgOigclsy
VLOJZrRcyf8nJNI7zStzoA7ZBBh8tugnD5vfE2e7Msi2HKdKFAmE8NBRX/rl
dgs6Ph/7OUSd7ZQ1ql4jbGoGcb4Nzm2MDdA5XiA2xy2YQdUtaQLE433vnlgy
t24mOmfAVrPce0xAeSQ2iNUmHraHXRdXBpyFdt4t0yacUcHmHFsNIaaenVMt
7ux8OAU+sw0rxBMfu7KpLv0Rpk9w8MA18Bg/M1Ln+cDvBu0SJkhk4+BEcYWz
801YhZkjOUN0y8hAIMch9Y1rE714TAqBefrnPMURahMz7vMeygEkoKwmSJDT
NOTnNztvv7jYYgg38+ALlVysC4u922vqLTz+C94u6gk1ODo6xubQgVTDLU+x
ZTX2HZfkd8Jt7qZn3Ct1W84s5WHYHOqtQFb4ZE4aVTtUGzmqC4X5A5emMHeE
3HJVZ9QhrRcUQiDbyevFUhU5ttIbDFvZnI7/IbFlIye+pVpriH+Oy1ubLVVa
IWliqiuDXb3ZugkPXgpOCnaURrTEjo/2AJVGXoYFj+f4E4eLtRu/+m1n0Qiz
m8i2AYapqMM39UbKUJRCKu9AtIO+U5a2kQqW7KDDzjRyI3ijO4nbfFrqvESE
lE7j7pTAgcBSEYtMtpMl7s+FKb1mNhlSxJG4x/ZCI3ofZQng47eYJBhuB+S2
j6jvBdLh0PWOCyLCZ32TmnfHDqCWN/YZrDrQ08C0ALIRY6Hi2YqbyikNHilA
ySu9FlwFjKLoU6MFIk5LoHY4XZpp6CDsthdPDGfhDSUjKuO0T7PjV0ipLLD9
uql619SCr+9j8TcJZx3O172xnh8dlFM9IDTosezkZY5uqIjlgnoRv8shhxet
UXcDA75n5IxL1iNFvgWms9OmM9uBmJcWXCv5rKapnCr8H4pUI9gFVIGPWnpF
BAmwUWPO+fGzszdvz9Wfv6VUs6aXYWW7MXXAgj7st9ecsAIVEdBURn3I/k6M
nBAAODIonuvxee+UWylOh3v9wWg0Cn0VVK78hAk3tt1nVew4yFKo4xb2MfSO
n7qBQAcudcqJkXRXYNjns4PTcGuVu4rsl97A4fYwGRdie35Tn/UoVP9c2Gte
helECVMv5xT0YWH0JF13d/SOklNPlJ8nNdmiouO6qDt+REJEJrDzvS2cVse2
LyI21OIQ3Npyu2d7lLygRHIhLftqmRcD5TQdutjQYf9A2l5sECCs7Wupvht/
45yOp5aElNI5nHyryX+j+cQZQ+3C5AF8qYqea73+0XT889p4vsNNbtIHFN41
B5pHiQ+EbK0F57YkKE6ZBu1SpUBaXDMuy0a57oh7joOfUQDkT4xz6rwqLRZE
yYeMwYlsy7dDtDqaZ0FHhwWKcUa2IvCOKOOKzUarPp+ukhxCLxa3TLVHy55J
Lzhu3ZIW4FwhRfIdkc9VCi1ZTMPkoRyMHUIu4t+Xa0jHEOGz5ZpWks7JelXw
fkjTltcWoBWMIkvtJQIK3HSpR8E+Y7d3XDb2r/vgjXQtgVM67Cz/zEAAwP3Q
NS6vZ4DrWmC/M742w2/SSMWkkQEYFMynvf9baqyBR219LU5DFW5Ra3yZcwF+
1LEpEgvSYNXFB67IwiGjiEottEMkftyjTplDWg7LiIxZBblnQVHPAvbO47m4
f+EwXYzUGFXxxclQy3lFUyKwoUcAFI1aR4vWwmOuws9kUnpkLrrV1t8Ou94w
V6TVn+sMFR3z4hQIqBqzw/qG1N/W2H2KAvYAKToXCm8T4Qo+GRxE049Pn3GX
4eYSZ//UEru6pTeXvH5+fPHy+VkjFM2vYzVu5c0Zxb1wN1rxblKIdN0z/ikm
g2AmJhE3vPgR3rCIH3yeYrZ725Px+xkjVr4YWZFC3IysvE7Sw7H7RE17V4D6
G72iKVySnOFvNIBh1BnH0FmoztLrh9qp1tsR/tWbr0b7n/XyTQclz/KrLKYl
tqVn42BLeEayQvNwCgzk+7r4Hr4X0oeQfT+DWfhKE63pK8d3R62b9ym4izum
6gR43hqd9mb3LXfnBy7vzqO0YeLSDr5Rh3WfCsFTcPm+NAdKNZ/bckUCrosh
UeqbOMK7dq/6Hmm9AoWIuB4pBqD+SbAZTGorfig4ZP52wykh1qWqTa+wbQav
gnnGLwBAgAeZt0k/8aQz+KNTT+aUA6PbEIPn7wQVXg03dvKB2hPkBy5PAGKz
pvUcn7Q4PvkpOD4ZbnPMB0WR1OnlCiDhlX/5gXIMzAl7snkiO2/O3o08QDJO
8/Y76wP/AmvozVrippJk93D2V2CJlXVzPhrl1zTxPYuo8z+cuhfyjgG31zcy
m0AelxHRJ51EnzDRyP6diOYDJ2nbiTzszv2U+xv6nGz0vITAAJs5ij+i0qpz
vOputPluezDOjDrddePVcG+zoZg/o87Z4XrX6F2D/fBe2JP+jaPpXk80roOu
m57sIu3m8dtPSMq4+wFKI7eWubXlaWNT2GPc/CHPuNkcdds60hOjfLfLWUje
/qX1Ln08b8+bVL/Ry+eYWZESI5aI36km+/HWGMZ3WiUZtEC3SV7BALyNzi28
Px06cCiAhJabY9+9KmAXbGfo3ZBEwGHQKOyueWFLVw1UWfNq7WPXVvidNeG3
oPC7O9R/1nu26HjySUVFD5XX1RR/j0RyPPblzhxwW+RAHWfv+Q9pjgQIe5pf
hfoO1RdkCo7UVQtdNxz5woQUaihIFPQaK2fI+Nxu1OXf5R3Qy3W0amba0ri+
JnyPWMbv9d4IQXZMI6waOKIDvU1sFaubx1lNbrDUaYU9N37E/kgwo523sA/6
WODpOr72oO1zP6k/qNNBa71QHvXUbpPHfWL9XZSF2R57wlIAs3YDo4RRT0g+
d0LJTByT0aKxxUDupXsH2T2NZGe7olJUL96YJV60t1NY/YbRL8Na/pcLYEk8
mXwAKvJtjn+eV6ZQ959sVTQg8WwVMw4/4QF3c7dJgtHn/Pz1iptLFePt+gR8
8S1V9BtusnJcHm9VKKbU3xx+rwhw+E9Wn6BfVQDQgqc4nZWHO2T2h5LZTz47
sz/8JWX2fqVIs39Jmf2vJKU+/JWm1IeSUqMSv/RvfcfBI+TYofDsCeXTCB8C
KS2HtX/tKOMXDTImPxZk/ChgIWGRMvg7gYW7QJqfCThsoJ1A+48GDnt3Aws/
OVrgmDOz8zkoHv16ne8doKI/tp9F9Hje2q2lzf3IhLnRLjoP4dIChHsD2cf9
fZrr/lMUS3JfvSmkgQ9c91Hc0IeN+mCi4Fae0zEDuFH+DTCyfH/8+pAsRn57
BG7bfMYNInL+VFETG74a1YzmowM+WJZfUczw6ATp4j4nfDvB8e8IrP3kpLUm
c3XcisW+jI7l5iAXPOqntqCJgcmNrG4+FBYY4N5LdTM/nays8szisKZXAqt9
EtXpRwCxt9nhGPkpjvjwzVKTk/T54k9WZM1PR4YmxRa8CS2L2N0WnZkJhoNp
5W35IBzfW1157MhKwj9WQf2d9Dtm+BdQ2A+dOA3M5KMnyljn5PR+SWKKsEiH
qAIT3T+be3ehHcXM/jgR7TCKbRGd/dSahPu8S3b9qBn2Z9Gssy6xoaMEzxN+
KWjL7TgzHTq5C/4nDJzm4CfL7E4/sND87AW6h1SXC8wq8GdH31v+tRiJvJH/
2+jxxXND9ICf+If3GDUwylTH49NxN+FWZ3y8Eb+l1K5e08Ot7mlpupkihEnN
bME/wsUhgn/p1oUXFkC8kNC8Bkb/Rm1jry3EIZP28QfDswWE0tR80Jz3/d2u
8vcD9W9mPlcvtXYDQJH1Qr3Os2qBNrLmbX+TUkp5mJegbSW3EZFmY38KNhix
WCr5WZumi0V+2neip5dJ8j+azSB06F4AAA==

-->

</rfc>
