<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version  -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-garciapardo-panrg-drkey-01" category="info">

  <front>
    <title abbrev="I-D">Dynamically Recreatable Keys</title>

    <author initials="J." surname="Garcia-Pardo" fullname="Juan A. Garcia-Pardo">
      <organization>ETH Zuerich</organization>
      <address>
        <email>juan.garcia@inf.ethz.ch</email>
      </address>
    </author>
    <author initials="C." surname="Kraehenbuehl" fullname="Cyrill Kraehenbuehl">
      <organization>ETH Zuerich</organization>
      <address>
        <email>cyrill.kraehenbuehl@inf.ethz.ch</email>
      </address>
    </author>
    <author initials="B." surname="Rothenberger" fullname="Benjamin Rothenberger">
      <organization>ETH Zuerich</organization>
      <address>
        <email>benjamin.rothenberger@inf.ethz.ch</email>
      </address>
    </author>
    <author initials="A." surname="Perrig" fullname="Adrian Perrig">
      <organization>ETH Zuerich</organization>
      <address>
        <email>adrian.perrig@inf.ethz.ch</email>
      </address>
    </author>

    <date year="2021" month="July" day="12"/>

    
    <workgroup>PANRG</workgroup>
    

    <abstract>


<t>DRKey is a pragmatic Internet-scale
key-establishment system that allows any
host to locally obtain a symmetric key to enable a remote service to
perform source-address authentication,
and enables first-packet authentication.
The remote service can itself
locally derive the same key with efficient cryptographic operations.</t>

<t>DRKey was developed with path aware networks in mind, but it is also
applicable to today’s Internet.
It can be incrementally deployed and it offers incentives to the
parties using it independently of its dissemination in the network.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>In today’s Internet,
denial-of-service (DoS)
attacks often use reflection and amplification techniques enabled
by connectionless protocols like DNS or NTP and the possibility
of source-address spoofing.
<!-- This issue has been tackled
in the past through several different approaches: source-address
filtering at the network edge, cookie-based challenge–response
systems, or client certificates and asymmetric cryptography.
Unfortunately, these systems provide relatively weak
guarantees (filtering and cookies) or introduce a substantial overhead
and open up additional DoS vulnerabilities (asymmetric cryptography). -->
<!-- We describe several widely known systems and their
downsides in §3.1 and provide an extensive overview in §8. We
conclude that  -->
The main goal of DRKey is to provide a
highly efficient global first-packet authentication system.
DRKey
provides packet authentication at the network layer based on the
network address (i.e., the IP address in the current Internet or the
combination of AS number and local address in SCION),
and not
based on a higher-level identity such as a domain name or
web-server identity.</t>

<t>To obtain strong guarantees with high efficiency on
a per-packet basis, an authentication system based on symmetric
cryptography is required.
DRKey does not rely on in-band protocols to negotiate
keys, so it is able to authenticate already the first packet received
from a host.
DRKey also does not store the symmetric keys for all potential
senders, as it would be infeasible in an Internet-scale system.</t>

<t>The core property achieved by DRKey is to enable a service to rapidly
derive a symmetric key to perform network-address authentication for an
arbitrary source host. This enables services such as DNS or NTP
to instantly authenticate the first request originating from a client,
thus providing a defense against reflection-based DoS attacks.
The key can also be used to authenticate the payload of the
request and reply, which is particularly useful for DNS which by
default does not include any authentication.</t>

<t>The prototype
system enables the server to derive the symmetric key within two
AES operations, which corresponds to 18 ns on a commodity server
platform, and authenticate the first packet within 85 ns on commodity
hardware.
Such speeds cannot be achieved with
protocols based on asymmetric cryptography that require multiple
messages to be exchanged to establish a shared session key.
For
example, DRKey outperforms RSA 1024–based source authentication
by a factor of more than 220, even under the assumption that
the service already knows the client’s public key.
In addition to
providing highly efficient network address verification, DRKey can
also be used to authenticate Diffie–Hellman (DH) keys in a protocol
such as TCPcrypt.</t>

<section anchor="outline" title="Outline">

<t>The main ideas behind DRKey are as follows. Autonomous systems
(ASes) can obtain certificates for their AS number and IP
address range from a public-key infrastructure (PKI), i.e., SCION’s
control-plane PKI in a SCION deployment or the Resource
Public Key Infrastructure (RPKI) in today’s Internet.
DRKey
uses such a PKI to bootstrap its own symmetric-key infrastructure.
DRKey key servers are set up in all deploying ASes and contact
each other on a regular basis to set up symmetric keys between
pairs of ASes. These symmetric keys are then used as a root keys to
efficiently derive a hierarchy of symmetric per-host and per-service
keys. The hardware implementation of the AES block cipher
on most modern CPUs (Intel, AMD, ARM), allows such a key derivation in
about four to seven times faster than a single DDR4 DRAM memory
fetch.
The approach described ensures rapid key derivation on the
server side, whereas a slower key fetch is required by the client
to a local key server. This one-sidedness makes the source
authentication for the receiving side as efficient as possible and
ensures that DRKey does not introduce new DoS attack vectors.
DRKey is incrementally deployable and provides immediate benefits to
deploying entities.</t>

<t>A fundamental tradeoff in DRKey is the additional trust requirements
of end hosts in their local AS: as the key server is able to
derive the end-to-end symmetric key, this key cannot be used directly
to achieve secrecy between two end hosts. However, 
DRKey keys can be used to authenticate that the source host
indeed belongs to the claimed AS, which suffices to resolve DoS
attacks.</t>

<!-- The main contributions of this work are the following:
• We develop a key-establishment infrastructure using a key hierarchy
and dynamic key derivation as a scalable and highly
efficient approach for global key establishment.
• We describe how PISKES can be integrated into the SCION
architecture and deployed in today’s Internet.
• We formally verify the security guarantees of the proposed
key-establishment protocol using the Tamarin prover tool.
• We describe how first-packet authentication can be achieved
based on this key hierarchy and provide a prototype implementation
of PISKES that demonstrates its efficiency. -->

</section>
</section>
<section anchor="terminology" title="Terminology">

<t><list style="hanging">
  <t hangText='AS:'>
  Autonomous System. A one-entity managed network.</t>
  <t hangText='SCION:'>
  A Path-Aware inter-networking architecture.</t>
  <t hangText='Network Node:'>
  An entity that processes packets.</t>
  <t hangText='Key Server:'>
  An entity connected to the network, that contains
cryptographic keys, and is able to provide such keys to their
respective hosts, granted they have the required permissions.</t>
  <t hangText='End Host:'>
  A node in the network that executes programs in behalf of
users. Users usually have full control of their end hosts.</t>
  <t hangText='PRF:'>
  Pseudo Random Function. Function that has a low time complexity
to evaluate, but which inverse is very expensive to obtain, making it
infeasible to compute. PRF may have as parameters a key and a value to
which the function is applied.</t>
  <t hangText='DRKey Secret Value:'>
  A sequence of bytes kept in secret by the AS,
inside the Key Server. The validity of the secret value is configurable
per AS, and dictates the validity of other keys derived from it.
The secret value is either random, or derived via a PRF from a random
or secret sequence of bytes only known by the AS. Secret values are
the root of the DRKey key hierarchy.
A secret value for AS A is denoted as <spanx style="verb">SVa</spanx>.</t>
  <t hangText='DRKey Key Arrow Notation:'>
  In DRKey, level 1 and level 2 keys exist to allow the 
authentication of the communication
between one source entity <spanx style="verb">a</spanx> and one destination entity <spanx style="verb">b</spanx>.
The key is derived by one side and copied to the other.
The side that derives the key is the source of the arrow in the
DRKey key notation.
So the key <spanx style="verb">K_{b-&gt;a}</spanx> denotes a key that is derived at <spanx style="verb">b</spanx>’s side
and obtained on <spanx style="verb">a</spanx>’s side, independently of the flow of the packets.
The source side of the arrow is also called the “fast side”,
and the destination, the “slow side”.
The fast side is typically a server, and the slow side an end host.</t>
  <t hangText='DRKey Level 1 Key:'>
  A key derived from a secret value, by specifying the source and
destination AS IDs of the ASes involved in the communication.
The level 1 key can be derived by applying a PRF
keyed on the secret value, to the identifiers
of the source and destination ASes of the derivation.
A level 1 key between fast side AS A and slow one AS B
is denoted as <spanx style="verb">K_{A-&gt;B}</spanx>.</t>
  <t hangText='DRKey Level 2 Key:'>
  A key derived from a level 1 key, and used to authenticate
the source of packets from
infrastructure nodes to end hosts, or end hosts to end hosts.
A level 2 key is derived by applying a PRF keyed on the level 1 key to
the identifiers of the source and destination of the communication.
These identifiers can be the AS ID plus the IP address for the
slow side, and the AS ID or the AS ID plus the IP address for
the fast side of the DRKey protected communication.
All level 2 keys are anchored to a protocol, identified by a string.
A level 2 key between the fast side AS A and
the slow side end host Hb in AS B for protocol “p” is denoted
as <spanx style="verb">K_{A-&gt;B:Hb}^p</spanx>.
A level 2 key between the fast side endhost Ha in AS A and
the slow side end host Hb in AS B for protocol “p” is denoted
as <spanx style="verb">K_{A:Ha-&gt;B:Hb}^p</spanx>.</t>
  <t hangText='MAC:'>
  Message Authentication Code is a sequence of bytes that authenticates
and protects the integrity of a message. Modifying the sender identity
or the content of the message is detected by the MAC.</t>
</list></t>

</section>
<section anchor="key-derivation" title="Key Derivation">

<t>To convey an intuition of the operation of the DRKey system,
a high-level overview is provided first.</t>

<section anchor="overview" title="Overview">

<t>The basic use case of DRKey is when a host Ha in AS A desires to
communicate with a server Hb in AS B, and Hb wants to authenticate
the network address of Ha using a symmetric key.
ASes A and B have set up one DRKey key server each,
KSa and KSb respectively. Each AS randomly selects a local secret value,
SVa and SVb, which is only shared with trustworthy entities
(in particular the key servers) in the same AS.
The secret values are never shared outside the AS.
<!-- Since hosts are typically not trustworthy, they
would not obtain the local secret value. -->
The secret value will serve as the root of a symmetric-key hierarchy,
where keys of a level are derived from keys of the preceding level.
In DRKey, the keys are derived using a CMAC with AES,
which is an efficient pseudorandom function (PRF).
The key derivation used by KSb in the example is:
<spanx style="verb">K_{B-&gt;A} = PRF_{SVb}(A)</spanx>.</t>

<t>Thanks to the key-secrecy property of a secure PRF, K_{B-&gt;A} can be
shared with another entity without disclosing SVb.
The arrow notation indicates the secret value used to
derive the key. Thus K_{B-&gt;*} would typically be used if AS B is on
the performance critical side, where <spanx style="verb">*</spanx> denotes the set of remote ASes.</t>

<t>To continue with the example, KSa will prefetch keys K_{*-&gt;A} from
key servers in other ASes, including K_{B-&gt;A} from KSb.
In the example, the server Hb is trustworthy,
and can thus obtain the secret value SVb to derive keys quickly.
When Ha wants to authenticate to Hb, it contacts its local key server
KSa and requests the key K_{B:Hb-&gt;A:Ha}, which KSa can locally
derive from K_{B-&gt;A}. Ha can now directly use this symmetric key for
authenticating to Hb.</t>

<t>The important property of DRKey is that Hb can rapidly derive
H_{B:Hb-&gt;A:Ha} by using SVb and performing two PRF operations.
The one-wayness of the key-derivation function allows a key server
to delegate key derivation to specific entities.
The key derivation process exhibits an asymmetry, meaning that the
delegated entity Hb can directly derive a required key, whereas
host Ha is required to fetch the corresponding key from
its local key server.
As opposed
to other systems that rely on a dedicated server for key generation
and distribution (such as Kerberos), this delegation mechanism
allows entities to directly obtain a symmetric key without
communication to the key server.</t>

</section>
<section anchor="assumptions" title="Assumptions">

<t><list style="symbols">
  <t>There exists an AS-level PKI, that authenticates the public
key of an asymmetric key pair for each participating AS E
and certifies its network resources; e.g.
the SCION control-plane PKI certifying AS numbers
for a deployment in SCION and RPKI certifying AS
numbers and IP address ranges for a deployment in today’s
Internet.</t>
  <t>To verify the expiration time of keys and messages, DRKey
relies on time synchronization among ASes with a precision on
the order of several seconds. This can be achieved using a secure
time-synchronization protocol such as Roughtime.</t>
  <t>There exists an authentication mechanism
for end hosts within an AS. This is needed for access control.</t>
</list></t>

</section>
<section anchor="key-hierarchy" title="Key Hierarchy">

<t>The DRKey key-establishment framework uses a key hierarchy
consisting of three levels:</t>

<t><list style="symbols">
  <t>0th-Level (AS-internal). On the zeroth level of the hierarchy,
each AS A randomly generates a local AS-specific secret value SVa.
The secret value represents the per-AS basis of the key hierarchy
and is renewed frequently (e.g., daily). In addition, an AS can
generate protocol-specific secret values:
<spanx style="verb">SVa^p = PRF_{SVa}("p")</spanx>
for an arbitrary protocol p, where “p” is its ASCII encoding.
The purpose of these values is that they can be shared with specific
services, such as DNS servers, that cannot be trusted with SVa
but should still be able to efficiently derive additional keys.
This construction introduces additional communication and storage
overhead, so only widely used protocols such as DNS or NTP would
have their own secret values.</t>
  <t>1st-Level (AS-to-AS). By using key derivation, an AS A can
derive different symmetric keys using a PRF
from the single local secret value SVa or a protocol-specific secret
value SVa^p. These derived keys, which are shared between AS A
and a second AS B, form the first level of the key hierarchy and are
called first-level keys:
<spanx style="verb">K_{A-&gt;B} = PRF_{SVa}(B)</spanx>.
The input to the PRF is the (globally unique) AS number of AS
B. If a protocol-specific secret value SVa^p exists, protocol-specific
first-level keys can be derived as:
<spanx style="verb">K'_{A-&gt;B}^p = PRF_{SVa^p}(B)</spanx>.
The general first-level keys and those derived from protocol-specific
secret values are periodically exchanged between key servers of
different ASes.
<!-- Note that, instead of deriving first-level keys from a common
secret value, it is also possible to use the keys defined by Passport.
Protocol-specific first-level keys could then be derived from the
standard first-level keys. However, this approach would require all
entities that want to use PISKES to store and frequently update a
key for each AS instead of being able to derive them from a single
secret value. In the remainder of the paper, we therefore focus
on the DRKey-inspired key hierarchy with explicit key-exchange
messages. --></t>
  <t>2nd-Level (AS-to-host, host-to-host). Using the symmetric
keys of the first level of the hierarchy, second-level keys are derived
to provide symmetric keys to hosts within the same AS. Second-level
keys can be established between a pair of AS infrastructure
nodes (such as border routers or servers), end hosts, or a combination
of both. For example, a key between end hosts Ha in AS A and
Hb in AS B is derived as:
<spanx style="verb">K_{A:Ha-&gt;B:Hb}^p = PRF_{K_{A-&gt;B}}("p"||Ha||Hb)</spanx>,
where Ha and Hb represent IP addresses of end hosts. For other
second-level keys (e.g., between an AS infrastructure node and an
end host), the derivation process is slightly adapted, essentially
removing the IP address of the end host not part of the derivation.
For instance, a key between an AS and an end host would be derived as:
<spanx style="verb">K_{A-&gt;B:Hb}^p = PRF_{K_{A-&gt;B}}("p"||Hb)</spanx>
If a protocol-specific first-level key exists, second-level keys can be
derived as:
<spanx style="verb">K'_{A:Ha-&gt;B:Hb}^p = PRF_{K'_{A-&gt;B}^p}(Ha||Hb)</spanx>.</t>
</list></t>

</section>
</section>
<section anchor="key-establishment" title="Key Establishment">

<t>There are two types of key establishment: first level and second level
key establishment, depending on the level of the key in the hierarchy.</t>

<section anchor="level1-establishment" title="First Level Key Establishment">

<t>Key exchange is offloaded to
the key servers deployed in each AS. The key servers are not only
responsible for first-level key establishment, they also derive
second-level keys and provide them to hosts within the same AS.
To exchange a first-level key, the key servers of corresponding
ASes perform the key exchange protocol. The key exchange is
initialized by key server KSb by sending the request:</t>

<figure><artwork><![CDATA[
  req = A || B || val_time || TS || [p]
]]></artwork></figure>

<t>Where TS denotes a timestamp of the current time and val_time
specifies a point in time at which the requested key is valid. If an
optional protocol p is supplied, the protocol-specific first-level key
<spanx style="verb">K'_{A-&gt;B}^p</spanx> is requested, otherwise the general <spanx style="verb">K_{A-&gt;B}</spanx> is.
The requested key may not be valid at the time of request,
either because it already
expired or because it will become valid in the future. For example,
prefetching future keys allows for seamless transition to the new
key.
The request token is signed with B’s private key to prove
authenticity of the request.</t>

<t>Upon receiving the initial request, KSa checks the signature for
authenticity and the timestamp for expiration. If the request has
not yet expired, the key server KSa will reply with an encrypted
and signed first-level key derived from the local secret value SVa
or, if an optional protocol p was supplied in the request, SVa^p:</t>

<figure><artwork><![CDATA[
  key = PRF_{SVa}(B)
      or
  key = PRF_{SVa^p}(B)

  repl = {A || key}_{PK_B} || exp_time || TS
]]></artwork></figure>

<t>The term <spanx style="verb">{A || key}_{PK_B}</spanx> indicates that the concatenation of A with
the <spanx style="verb">key</spanx> is encrypted with asymmetric cryptography using B’s public
key.
The reply token is signed with A’s private key.</t>

<t>Once the requesting key server KSb has received the key, it shares it
among other local key servers to ensure a consistent view. Each key
server can now respond to queries by entities within the same AS
requesting second-level keys. Alternatively, the proposed first-level
key exchange protocol could also make use of TLS 1.3 with client
certificates to secure the key exchange.</t>

<t>All first-level keys for other ASes are prefetched such that
second-level keys can be derived without delay. However, on-demand key
exchange between ASes is also possible. For example, in case a key
server is missing a first-level key that is required for the derivation
of a second-level key, the key server initiates a key exchange. ASes
that contain a large number of end hosts benefit from prefetching
most first-level keys, as they are likely to communicate with a
large set of destination ASes. In today’s Internet there exist around
68000 active ASes. Thus, setting up symmetric keys between all
entities requires minor effort and state.
To avoid explicit revocation, the shared keys are short-lived and
new keys are established frequently (e.g., daily). Subsequent key
exchanges to establish a new first-level key can use the current key
as a first line of defense to avoid signature-flooding attacks.</t>

</section>
<section anchor="second-level-key-establishment" title="Second Level Key Establishment">

<t>End hosts request a second-level key from their local key server with
the following request format:</t>

<t>format = {type, requestID, protocol, source, destination}</t>

<t>An end host Ha in AS A uses this format for issuing the following
request to its local key server KSa:</t>

<figure><artwork><![CDATA[
  format || val_time || TS
]]></artwork></figure>

<t>It is assumed that this request and the reply are sent over a secure
channel.
Similar to the first-level key exchange,
val_time specifies a point in time at which the requested key is
valid. The key server only replies with a key to requests with a
valid timestamp and only if the querying host is authorized to use
the key. An authorized host must either be an end point of the
communication that is authenticated using the second-level key or
authorized separately by the AS.</t>

</section>
<section anchor="key-server-discovery" title="Key Server Discovery">

<t>When a key server wants to contact another key server in a remote
AS, it needs to know the IP address of the remote server.</t>

<t>In the SCION architecture, the concept of service addresses can
be used to anycast to a key server in a specific AS.</t>

<t>For the regular Internet, RPKI can be used, which connects
Internet resource information to a trust anchor.
<!-- It is typically
used as a trusted mapping from allocated IP prefixes to ASes
authorized to originate them in BGP. -->
As the deployment numbers of
RPKI are growing, the RPKI certificate can be extended
with the IP address of the key server (e.g., by encoding it into the
common name field or creating a separate extension).
Using this mechanism, each AS publishes a list of IP addresses
(or an IP anycast address) that is publicly accessible and shared by
all key servers. The routing infrastructure will direct the packets
to the topologically nearest key server. This mapping from an AS
identifier to an IP address is verifiable through RPKI to prevent
unauthorized announcements of key servers.
In case RPKI has not been fully deployed, key-server discovery
could also work using a DNS entry that maps a domain to IP
addresses of key servers.</t>

</section>
<section anchor="key-expiration" title="Key Expiration">

<t>Shared symmetric keys are short-lived (i.e., up to one day lifetime)
to avoid the additional complication of explicit key revocation.
However, letting all keys expire at the same time would lead to
peaks in key requests.
Such peaks are avoided by spreading out
key expiration, which in turn leads to spreading out the fetching
requests.
To this end, a deterministic mapping
offset (A, B) -&gt; [0, t) is introduced.
This function uniformly maps the AS identifiers of
the source in AS A and the destination in AS B to a range between
0 and the maximum lifetime t of SVa.
This mapping is computed using a (non-cryptographic) hash function:</t>

<figure><artwork><![CDATA[
  offset(A,B) = H(A || B) mod t
]]></artwork></figure>

<t>The offset is then used to determine the validity period of a key by
determining the secret value SVa^j that is used to derive K_{A-&gt;B} at
the current sequence j as follows:</t>

<figure><artwork><![CDATA[
  [ start(SVa^j) + offset(A, B) , start(SVa^j+1) + offset(A, B) )
]]></artwork></figure>

<t>I.e., depending on the destination B, the secret value SVa can be
different, even when chosen for the same point in time.</t>

</section>
</section>
<section anchor="packet-authentication" title="Packet Authentication">

<t>The DRKey keys enable source authentication of every packet.
To send DRKey source authenticated packets from end host
Ha located in AS A to endhost Hb located in AS B,
end host Ha first obtains the second level key
K_{B:Hb-&gt;A:Ha} from the key server located in its AS A, KSa.
For a packet pkt, the source Ha then calculates
the authentication tag by computing the MAC keyed on the second level
key K_{B:Hb-&gt;A:Ha}, over an immutable part of the packet pkt.
This immutable part of pkt can include parts of the layer-3 and
layer-4 headers, and optionally the layer-4 payload.
It is important to only include immutable fields as the
verification would otherwise fail at the destination.</t>

<t>The packet received at the destination is used to determine the
source address Ha and source AS.</t>

<t><list style="symbols">
  <t>In SCION these are part of the regular header, thus no extra
information is needed other than the tag itself.</t>
  <t>In the current internet, 4 bytes containing the AS ID, plus the
tag are added to the packet.</t>
</list></t>

<t>The destination Hb then derives or obtains the key K_{B:Hb-&gt;A:Ha}
and uses it with the same MAC function to recalculate the
authentication tag. The tag is then compared to the one present
in the packet.</t>

<section anchor="high-speed-dns-authentication" title="High-Speed DNS Authentication">

<t>A protocol specific secret value is used SVb^p, with p = “DNS”.
The level 1 key for a slow side A is derived
directly in the DNS server:</t>

<figure><artwork><![CDATA[
  K'_{B->A}^p = PRF_{SVb^p}(A)
]]></artwork></figure>
<t>This first level key is exchanged with other AS via the level 1 key
requests, as described in <xref target="level1-establishment"/>.
For a DNS query from a end host Ha, located in AS A,
to the DNS server D1 located in AS B,
the first level key is derived as described above, and then the
second level key is derived:</t>

<figure><artwork><![CDATA[
  K'_{B:D1->A:Ha}^p = PRF_{K'_{B->A}^p}(D1 || Ha)
]]></artwork></figure>
<t>How to compute the authentication tag and obtain the AS ID is
described in <xref target="packet-authentication"/>.</t>

</section>
<section anchor="edns0-authentication-option" title="EDNS(0) Authentication Option">

<t>DRKey can use EDNS(0) to avoid breaking the existing DNS resolvers
and authoritative servers.
With a DRKey custom extension that includes the total query/response
length, the source AS number, a timestamp, and the per packet MAC.
The per-packet MAC for DNS queries and responses is computed 
the DNS header and all fields contained in the
extension.
Using the DRKey EDNS(0) option, packet authentication for every
DNS packet introduces 28 bytes of header overhead.</t>

</section>
</section>
<section anchor="deployment" title="Deployment">

<t>DRKey allows incremental deployment, as key servers could be gradually
deployed in each AS.
Already in the incremental deployment phase, DRKey prevents the
addresses of upgraded ASes from being spoofed at other upgraded
destination ASes. Early adopters can immediately profit from
DRKey’s security properties.
Authenticating a packet requires packet modification either at
the end host, or at a network appliance such as a middlebox or border
router. Adding the MAC at the end host does not increase the
request size en-route.</t>

<t>When updating end hosts is not
possible in the short-term, DRKey can be implemented
on a middlebox that computes a per-packet MAC and modifies applicable
bypassing packets.</t>

<t>Packet verification at the destination
AS can be performed by a middlebox as well.
If a destination does not understand DRKey traffic, it could
fail to process this traffic.
In this case, the sending host contacts
its local key server and asks if the destination AS supports DRKey.
The key server might have previously derived second-level keys for
an end host in the corresponding AS or might forward the query
to a key server in the destination AS.
If an AS
supports DRKey, then it may deploy a middlebox that performs the
DRKey operations in case the end host does not support it.
This
will prevent sending authenticated traffic to a destination host that
does not support DRKey.
In the worst case, the end host could fall
back to legacy traffic.</t>

<t>In case of operational failures (e.g., a single key server fails), the
end entity will try to contact another key server in the same AS.
If all key servers fail, the system could fall
back to the current system with unauthenticated traffic.</t>

<section anchor="deployment-incentives" title="Deployment Incentives">

<t>Since DRKey can be deployed on commodity hardware and integrates well
with the current Internet
infrastructure, the deployment obstacle for DRKey is low.
DRKey traffic can be recognized
outside of ASes that have deployed DRKey and can thus be prioritized
by servers.
This means that even when relatively few companies deploy DRKey
to authenticate packets at their services (e.g., popular open DNS
resolvers of Google or Cloudflare), there are strong incentives for
ISPs to deploy DRKey and provide its services to their customers.</t>

</section>
<section anchor="key-server-latency" title="Key-Server Latency">

<t>The initial connection setup depends on
the latency of the connection between the client and the key server.
To lower latency, DRKey’s key servers should be positioned in an AS at
a similar location as local DNS resolvers.
As even public resolvers
have an average query latency of less than 20 ms traversing
the Internet, it is expected that the latency of a local
key derivation will be in
the order of a few ms.
In most cases locally fetching a
key will result in a lower latency than a full round-trip between client
and server.
For ASes that are
geographically dispersed, multiple key servers may be deployed
(e.g., co-located with an access router or per point-of-presence).</t>

</section>
<section anchor="network-mobility" title="Network Mobility">

<t>Network mobility allows entities to move
from one AS to another while maintaining communication sessions.
In DRKey, key derivations are based on the current location of
the entity in the Internet. Therefore, as soon as an entity moves to
another AS, it needs to contact the key server of the new AS and
fetch new second-level keys. Because local key derivation is fast
and the latency of obtaining a key is small, the overhead is minimal.</t>

</section>
<section anchor="lighning-filter-system-as-a-drkey-deployment" title="Lighning Filter System as a DRKey Deployment">

<t>The Lightning Filter (LF) mechanism is a novel system that is intended
to complement traditional firewalls by enabling cryptographically
authenticated traffic shaping, based on the autonomous system
of the source host of the traffic.
This reduces significantly the load on the traditional firewall
during denial-of-service attacks, and even allows LF to be
the only network defense mechanism for a specific sub-network,
e.g. by securing a DMZ that exposes external services to
untrusted networks.</t>

<t>The core principle of the LF system relies on DRKey, using the
high speed source authentication that DRKey enables. This way,
the system can authenticate each packet, assuring that it came
from the host it claimed to.</t>

<t>In case a breach is detected, the network administrators can immediately
add the host and/or the origin AS to a blacklist, preventing packets
originating there from reaching past the Lightning Filter.</t>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<section anchor="drkey-and-trust-in-ases" title="DRKey and Trust in ASes">

<t>The keys provided by DRKey do
not provide full end-to-end authenticity or secrecy properties: The
source and destination ASes are able to derive the keys and could
thus perform an active attack.
This attack is limited to these two
ASes; active attacks by intermediate ASes are not possible.
DRKey always enables AS-level source authentication and host-level
source authentication under the additional assumption of an honest
source AS.</t>

</section>
<section anchor="authentication-within-an-as" title="Authentication within an AS">

<t>To achieve secrecy as well as
end-host authentication for communication between end hosts
and key servers, an AS needs an intra-domain end-host and/or
user-authentication system.
Different authentication mechanisms based on the operational
environment are discussed:</t>

<t><list style="symbols">
  <t>Authentication using TLS. In order to securely exchange second-level
DRKey keys between end hosts and key server, the end host
can establish a secure TLS channel to the key server. The identity
of the communicating parties is authenticated using public-key
cryptography for both the key server and the end host. Thus, the key
server can uniquely identify the end host and verify its legitimacy
to obtain a second-level key.</t>
  <t>Deployment in ISPs. If the corresponding AS is an ISP, we assume
that they can identify their customers (e.g., terminal connection
number or router that has been deployed by the ISP). In this case,
only an attacker that is present at the customers local network can
gain access to learn keys.</t>
  <t>Company / University. For ASes that are under the control of
companies or universities, login credentials or other local
authentication mechanisms can be used to identify the user. This gives
companies the ability to run their own web servers and have full
control over their key material.</t>
  <t>Mobile Devices. For mobile devices such as smart phones that
are connected to the Internet through a mobile telecommunication
network, clients could be authenticated by the telecom provider, for
example using the International Mobile Equipment Identity (IMEI).</t>
</list></t>

</section>
<section anchor="adversary-model" title="Adversary Model">

<t>The adversary can deviate from the protocol and
attempt to violate its security goals.
The Dolev–Yao model is assumed,
where the adversary can reside at arbitrary
locations within the network.
The adversary can passively eavesdrop on messages
and also actively tamper with the communication by injecting,
dropping, delaying, or altering packets.
However, the adversary
has no efficient way of breaking cryptographic primitives such as
signatures, pseudorandom functions (PRFs), and message authentication
codes (MACs).
It is assumed that there exists
a secure channel between end hosts and a key server within the
same AS.</t>

<t>Assuming the mentioned
capabilities, the goal of the adversary is to obtain cryptographic
keys of other parties to forge authenticated messages.
By compromising an entity, the adversary learns all cryptographic
keys and settings stored.
The adversary can also control how the
entity behaves, including fabrication, replay, and modification of
packets.
Both end hosts and network nodes compromises are considered.</t>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>





  </back>

<!-- ##markdown-source:
H4sIADGU7GAAA61925LbVrre/XqKFTlV7p4hqcM4U55OtiuUWhr1lmV3qeWZ
yvaMLZAASbhBgAbAbtEepeYd9lVuc7PfYz/KPEm+/7TWAkhpp1JRlaRuEsA6
/YfvP2I6nbq+7Kviwl8e6mxbLrOqOvg3xbItsj5bVIV/VRw6ly0WbXF34a+m
ly5vlrgSd+Rttuqn66xdltkua/Nmusvqdj3N29viMH302H3m86zHhU8ePXk8
ffRk+vhLt8QH66Y9XPiyXjWu3LUXvm/3Xf/k0aM/PHri7pv2dt02+92Fv55/
8+aPzu3KC/993ywnvmvavi1WHX46bOmHvzqX7ftN0144P/V4Ynfh/3nm/8gz
ml7TlJzHH5nuP++z2s9PfN206wv//O1L/y/7oi2XG/6w2GZldeF/wk0zWeJ/
x4xnRb/5ZUaX2HjPZv5VmxWbol7si02VjPfs0JZVdfztp4Zb8j2z2+Se08M+
nfk3TU/XFO26aJNhnxb1TzjI+vj7Tw280LtmbXLX6aGxhddF25brZNB53pbY
3eTzTw2W8dWzHV89GMTVTbvN+vKuuAD1eP/mxbMnjx//4cL7z/w2O0z8FqQy
8UuMNfFFvwwX/f7x7+UOUOisLPrVdNm0Bf7JdhcOfz7z3zR90dEPL5rWb29z
X7zPtruq6HxXYAWbvt91Fw8frst+s1/Mls324TJbNA9xFNu8ua+n7Wr55PdP
/oAHfFtXZV34vmkq39ThznJ3N+veP2SuaKc/dQ9x6WtMgi/sfF50y7ZcFHl6
z/39/QwPnhZ52TftDJv2cLdf7NpmWXTdQ77xIc35TbEq2qLGp7TK9O5uWTb1
FAS6Kfti2e/bYlYX/cNdvnoItns03ZXdbdHN8HtyY7JInHZbyqSnRb3egCt6
5eNd1m+mmAvOqS9l7940+57WTmy6qpp7ms0US5tuDjuQjZ/+Z/6gLbbNXeGX
ZY+zbOrO/+X77/+ST/xff/uXvw4uaJuuwy+2OP/v/0anwZcsN8Xy1me7XZG1
Gb70zcpjsjR07q+vbl49v6EZ3fTEZG+/vfw2uYuuu2tK3HT24L54MPEPmn2L
/3Dyu6zrQF5MPedEDW2zVVYVApr6K4yxr3LIpYOvmx7n57vsgInVvcyy32S9
7zZ8ERgtwwrW+yqjh2Ov/LKp70qaMU0DcjTHZ3wL/Y79hFTd+hJ0V67rcgWR
W/f+7HVWH8ISSxDLju60yzsap2/y7PCPv/+vzl9hJi2O2Xc9HrWiJdB9VYa1
4xkkFDFZPJl238/w53wG+dfRDfisXg+mktW53zT3/BloaFM3VbM+8IgbTJNp
w2/LvlxDeGMmYe2Lwnf7FVZQYrSZ7t686hpI6LAB4E5aLGjBxpXD081KNxsb
bYRRZSUWHVY2uEVkfufP/lzQTO558pdvoKhYMBQ1661V2XZEyctb7NNwR7Ab
EAmkgIKwcdPp1GeLrm+zZe+cPA3TzrBL2ZquWoZdn3bQkoUjJVd0pCTLbrPF
06GW+Dz4rKFHm3vcXx/cpumYiKpGtGuz6DMmG6ixbdFDOno8i67QqWe8DT1W
V7R3RMV947Bwmi6U4L5dFtMsz1uIiNHCJo7OUp7SfXIH3FumzcEotHll3xXV
ytlUQbrYHj6CDoKe53kP4eELO3bw8GHXN+s2222wEBIWwvMz28X7jITfXVHh
u1zuJsnis/sMwhH7ScKECRz6B0Jise+JxmjzQUoOEqDCrGlfsEPMA59HDpi5
q54nDloEyWFFmJNOfVc1B4xIW4LnNStIGRpmSdtwR2zc0MIcoAuJN7/viEBp
5Br3Fvin7ivmSWyKz8uuKzBBYSnmjTD5mZDPtsxz0AX4ALNrm3y/pGuduzrF
uhOH55dZNW1WUzuAs8vm5txlfY8j6zAwxA1mRee0qgp+GC+G1BbLDf6EObb8
eY8VyMHnbnEgGVTLLRWRCVgdEIrUUFXeFv7ymxuShd+8veYHsjCAJC4XZVX2
B4clj8is2zXNCtszc//tP2Glb0kuYEP2hd/gdBcFJkqTpsF1ayBnSeAByq03
oLA7kEWFTVyxqO9JrrdNBmkNQDEcy63KCltEZ6EiU3fZF/kacnvZNLdlMV1k
Hc52ucFZQ20V//j7v+LmHeiucMKGHYv7ZSVESiqMt6zoZA8j7yUEfJi570gq
9Hucc1EBb2B8HIA+kbbxDrIZB1Kx3AB53BfZrVvvSUf1BR5+lkwf48hsu3Oa
S6lUQQze7SFrcAsowEPgtRsIe2ZeMAkOfQeMBEiA48P3oAp/t69qbCEfEBHr
2UcWADk/nX4lpwTxaKAjnACpFsz6tgakCctSGihbR0inI+1DFP7v//a72WP+
0tZN0vU9qJI0KE/7rizu5dIvZxjPgeyW1T4vRAbyVEjQbEnerRta68oH2Qr+
Cw92m3K9wcSiXFlXzQI3fEKI6fxnImecPgundPLiETFV2QGqRKioYZJ19pUR
/Vk5K2ZMAv7qOnyq9L3ct0zIQRU3LT8EmGphUgKLnd/4er9dkNbCPrJYTZ90
8+zq22/ORWwDargwn8zThhTttCLJ6UsSRmBN0M0SkpP0Ut7wrhL+xtjuvliw
HMFIdjHE0tvGtA00WwOaTCiVJTGNEjZ9CWlXO6g8jKubiAmV4CQc/Mm9jxsY
yNGl5EjH3BY/78u2yPWcMHEMTriqJUpkYQpuFipTIQXKqGEmgjt61rNk8jWm
FFQTJPMB/VSElg58MkwxRgRtsSxArLljKIFdhS62iZB6ibPpesbqpOlStQw1
ipOFlIGE7AtmWNeRcmhpWxgN3RsYAqIosF80QdLv9QgxBHplniD7xCu6xlyA
33HSeMxhwCABEUQo4LGzZV4dnCrnEzjCwIJS9EfQgqwMB94uSuAeADCRxLJJ
IuQNS+jwXSDAqEIcBoRhSNIM5zk4lngcRAQAS7ilXDN7gBb1SERETxxMEpOw
LD0hvFYQNVjgOqPnJ2pQpT8JRtWWAmhuFQLyyeJA9nTVmFZEOx2qBvBaALez
2REVtsANEPz3QDMbOgSGB0uC91gdHrjaV7xxtAFy0YKOYpXtqz5SU6lykFD9
GHrxVJnY+8PO1FXYaaZAYWTMPAVgg1Mm7iVRdN+4OZBxxF02ddCXaMScCenx
lx52GEsWiKhtk7M04XHcDtqM6GUiqvH0CSpD6bhf/hd9XHiYI9ORIN3M3RCN
dLuiwNA4DtoPHEYgcXqEi8weZd5plSa6RKWI32KbS5jtbguCztYC4/D04j2w
AIAAn3eA5cQcmBc+7XA50Tz2buZeQGCq+T9RdoNhq1zT+Tc3c//40ZMvACpk
csoXw4MkmJX5FewFUAMIaSvyA+T35Mkj2Jd3pMhrMf5wL9DSdieIDetxdszE
0ya9SCsLAQhPMGDc7bGSpcwbSNJwAdsEgVmOtOdYl+GYA2ScRGPJfZJTLgHX
SoJWL4uq2mJhZ5cvz0Uosv1iZ+hMKLx9ds0nBxr/7DP/7b4nR4mLEACaieEi
KCjXSZANkJGQZXtp5uf7vqmbbQNZoPDEnc1vCEERY6syG8C5lWjesh0p26tr
Z6tviTJM3siGTomJILBb4NR2z44Tf3b96up84kXts2qmEyBQA+VZTcEmNUzR
V1eyer5AzQw2/2Qe/k0h5OKu5eRolVejgd7QSKdteoMzOBGTtjwmkXnT9GSh
7tgiEQSnHHNiOabm6Bth9I53uwMXA2DSGqDVZP5EQ7TLillhQsEKLsCxntyB
rcgN83IwJmCviDxppC8XID0YBLCrIDcEAxUdqRNB0oNrM1G5tdAf45oWi5Qv
QeGBoKMtSsgIsq5dbtg2iw8k1MKmNmMJ/KLsxQCCx/cmonxJrM+mogE1OjkS
pAtgtFu/LHdYtsNXW3oiJBzOxj+7/g6okA6qmvj560v88+Y1CEZtfT0s2m+e
q5mKLltAuoBO963sGkmGvtwS7eK4xDvE/gAcA5T95eWbL8Ad89d+CwO9PbhV
0S83ouHMbkrcidCROO1OYMF4dIW2qlAI2pN+gA3Ge91h3viY7uExUrhGSCSK
IlLymeLXSFAKEpq6mNKj85qYbZvdmhoTPjiBOsQzRtCMKK9jE6BLxBd+EYOU
sE+dO1sjq4IRjIxmVQ1jJGICyDwSzd0senNOeQgyHcMH+6EEReUEPckrXqyI
10CKkVEYXcMIg5Sb+xVEfCaP9GDNvGhWK+KtCOLo1KIxx8EO22S6ryNzu2AX
XNebeQFhJns9v7mgzegV3BjCDzDYJQABD5n2zZSeNWCzifjxFBypNmaGyzGH
JXiLT1fUM4bAHsESUDYmhBGnN/MvQTGYwsRH6dKZA+YjcEstrwRcOnKxEIkV
FYwS88SI1w8fz28MxIh7UZQ8zr+pMEGcsAuoz/wRqmBYVJeLvXidma2xctGE
iu5F0+AcL9w//v6/xUhm55Sw7silN9IQ4iMSHg9iiK23XMJnY/4TNsNJBjIT
Ve0SWjeWJsZQq5eeMpjILE5WLXpyeqpbNPi/+gKQqS/IK61bykrKpeEBnkRw
jn1EBelg7CAlVmH4cFBsCtOXwGNiSqr8JGumAQ2ccI0aVNAdpKvfZtusxfjE
dwx2m+r0Kj/lAtClG7Z0iUGvJB+1xcCTEQH4SBkQO+q+MunmkME1aV3xfXeJ
tSy+FveZf1u021Lc5pAJNxfuIsUxN2L2+TkLSjXkAacyQqvRhchHxbf6a4q8
zEVT0ZlM9SomvjTU49w3CvS+gYrim2uvI/DsNZQUvCLEMsS2NyxIhjeoz1B4
OPGVTORRDAtgiLmhx1fMc3ayRuPctplVoipzdTGRUUJW3J2IAty7ZjJiFxSO
K7uzwInqoR1tLoN3mvxzDPQS98lG1Vj1yBkrky3eg0zpxDATPF8CKACeWbUC
tRK4gmLw39F/IMk9EzkPDfOu8or4lK4hjKMAdO76zQsa/Lor9nnj32DlgJUv
9jVbprPwk8xjwwKgougKRBtZS6C192QukZlyl1V70JX4vNXirAmoFbSZ+AFS
4P1O/W29+XImpGLFV+0SlwO+p8dj1TOPOVK8VJaUsRELJdUzBGSuYEPP0/is
RWRsFo82fTpNcr2T40Zl/Q2pht7/ie6S/e/IcNbg3OJA+31b7EhqihrpDURA
omOqrOfp10iBgsswj5INUhUkerNMj4JHTb0q1/uWyIsiIawhWI6Vy54Zsx89
RWArU55oyFzgf9kLjhqPUJR8Q8unyZ5ju+2uzAiBY0PVfpBrHC7RhxxvQlMH
H2vYgJltH4/J0JeNQMa7uu4I2IPUmrn5cLKkJWDozGnWeQFtLsD53c2fsnfh
pOjvvG1Bdt80ItbovK4Ulky8eBXFuSs/P5HNAm1KsIoxLU9qjN90rmT47+tg
CytagIQzRa9S5V32joehbyDWe3OO2teLd9F3U8bTWhzkWeJ2JqNkV0bJxMer
J1mau1lujWCpTFGoTTvjXRGRkRhItW7TzN004QHvXv3462L6Vfbhne60cQ8P
l0wWv2Edn3c8GXHjM6eKKsIO6FeT49gS8xxttelQE9Nv49R5icP5S3DMU5RO
JKd/QLYEX/pA/Mn0YbLh4sh+QJBfrpIhwl28XYedZgBlCjUnIUAUbuQogMrD
QHBfK0HhZ5EMAQcZ52UDMp7QAZMiAKwwQGBeFuD9lFBA7FeXAWOwlQohSVAw
D874lBZlXUbh5hJcFClpkWQ7CJQDZxNeCWGA0TSV4MSnvgJXMl4fTtcPpxsB
UQSCxMbplIxf4vYzT9PDeKOJ9vHJUzficlDkfPrV0w/vRjv/5JM7n4wsB3oK
qbshsygh8iPcCAaT2lX3dG5avEm05OCruPQnJ5h8eBJ+cBLphkFJjc7Bf/oc
TokpJo1u+BQlDqEtUJrfVftuHPRRm9UFJoh8ITepTfvJJ/AC4oEPZD6hUcFe
ownPAUcGEpodZvVy07R6hAFbT+K6ZGsp6MNB2+EBBMtuMB2jPzdkdjtG/3JB
3EY0ybsRAP2D3YNEFbmESC9eLj78sHv3fzc8xpFhMh3m/+dkLl5m6Xzc6/kz
4pXX4kImrJ4quGeNSMPshGaX3I6EazpnoSscn5y62GEKRDKvjuqZf93kqbTj
IFII1jmlIIKe7EwU6tCbZVFKIQopsIgZZ7YR/VxGk5OjfpSDxDCPZrMvU44I
oYIhBYq3FaqDLVSNO8YYbwh+52KPqYtXvxcfLzkGl5yxsIQZNoj13pOTL/Pj
IwbDluzXaVyk+0JCk6aCksMWrsPv97AYupMCbOz4xiQwntntA78ICJNktUjd
p4KV1aVJ4nfsPfXkD524VzcZ3/DqZuGjLVPBGHxORjymKQCxovsqJgpznA00
iwNg4wfd/GmRhJsYOmrMgreBHUZYUg8L1jxP7ozs5hCYGrmHunPTi5yzA+h5
BHlFjNQFOwVlsGbfB3xOt7Bj5YbTuESmswMlAAROjItTY3RxcBIKpe/UU89i
/Gjxs5AZMIC295TKx2swn5eB42zk6Q7weOLYmymikS8UwqXJDpSgXSB+imJZ
cNyEL+a4igJj3clu8ACjnmdgOTmU+fObiQtnRoAouHN2bBcKDURr6gzK7TwC
3cRDxKoYLE30pBumoSk8+sKR/Ho6/Wr+wf8TKcgffwW5fDibn7/jOGJW3wbv
GTldzHkX4sqyd+SyKej2iQ+PE73nUlLLajGbFJrTZ+S4zstuWTW8Bxhc/dAM
Qw01E6zVaMyR+aZQI3VUEu/B7oOSlNn85oMlAQbyMm9iuRIpz5zBDK5ROk4J
XULKlkxc0bHt3/0mwnWZDZOQJrtxMMJEJMDCXqVNsu/YJPA4E+OOclN782Fg
tr/hvWNMlMZVcHCydfT4iUZ/acPCdjMR4oyZ2AaD9THgS5KuG7AVaxc6Ko6O
J0w12GMcSxIs5rn+vC+Xt5BK7s8keSECT4pM+v0lxE/ZW9RHfFxjR3+Qehop
j0YWLRCKFWuEkv1ggowup1lrHqEdvmyCbsmMZkUXwU4OnmjWHuy7G4a7CT6l
digpUZq6RtPL7Q77lYmjMVB+4oPPGDPQaJo9oZvlXg7mT4y4N0q3QBKRGw94
3zBGTXMcaXDy6t1nh1rVjfFiwuNBDFhWaLq1fHBVQcm1Y9lA0SK2kbALMepw
Qoiomw9EtSkXdIBZDKdT1nyR1YI7xBfvbMDceF03JxxDCLYFNxzbDho6ckGP
J/EiTFZ4RWCMZR/QuHyCbEecoC2oYezbTjzH5ORiRrLcNA3+S6YQ5YSIoMmN
ZQj+0bPWRa2nIu74sguBAH9m8elXRbso2qY715CIbgNdsy0of6Dstk7PyPab
Gcu25SOpuyop3QC7J3I5rJQw0zxkAnTOceyiLcTvwsc2v1Hsdf3qanICb4oG
49AyiyCS8IPcCfqQYq+8NRzDFaRQ7oRvIE+fi1iRKLq6tQ04tRq+7v6rL2aw
HUIUwR/HweUJGj3W2HvnOK0oDYxbohsz1JujG53eqFF7P4jaa/7V6HEhZuFi
zIL2skkjFcX7XalIl52v2ClR7RjGskc0F8KBwkp23Mml3QEWVtvU5S8axtk2
FiFXbEoYouwkxMp71LQE5ykiramWkNCUfKMx0lGgIiJS1s2ORp2ORw1mjdHv
G8qmpUtnpyhn5KeLFL0a2OaawcOkNrNUXhx/wdieNnvJskSPW4iWBOnLEPBi
ERTw8SjUsyJXM5MSpzCMg2V4bFd2TIksLNtCDf2OsvD9o34zFZfGGTiBox91
Vp3P/Lei934pqEJJUZ5K2wQNForB5xGFq2QoIg7Hg4NYHenR7IR7uC1w2FT9
obxXtFOMIFkQUd6P4oEsGevinvEnm5EkP86IpSY+z8qKUnWTfJ6JHAgn5diM
AwGcni6hQ8z4h12EhtmHM5jA5++EB/H0kNoXaGlnOEltZeL9OdjzCiSybHL2
F7xlEdOSSNYVdoUZDqZOOVqjVJ2CSJuqs5TBySBnUBGTxZRCPJpBjz0DC3EU
EtE6k45rfIh7NM5xKi0khtg538MJ13Hobq8RDUsU6NKrhzKbHXA94Pu6cJaX
zcmnbJdp9jQj05jAdpwSKXDWWSwLspiTddKzYw5+3PUJsfcN6ApU8dQwyFDJ
G4XMmUZ02TGjfpRZY/KF3JuhjEYTTI4NMtpxz3L2YyTnwnU/7CyZx+wjCQEK
8uMMIyEHc/TQnJ0EnEQmqi3PKap9SDAcsPRx5JbiJeruloCwXE9ji5XEftEB
Kzw919hCWe/2veljgnAaGjiTcDsdKZdQnCcpZJy45J6CSVef2BafbIuK4snx
xW4847FLOuM1fK6LGHD0D7tkISIZqqMdUG9k042s3uOZHHsBIM/KJle7K6ZR
2umlZk6zcpHgxJJiNwHVVjJDTzgTuJDMWp4JJ/qOZ2uZv5Q7Wruhwz2W/sQU
IJyc2AWFhfRWHFwBWr/Ouo6w/8xdHx3R8a6LlUkW0WK0U+zdhQWRZ+0xgSVp
L4wbQ8qGmK2Wm4oddBE2knwjo8tmb0kFjaaa05ElqmG/yzmT3am5402VJTu6
KJipdUuiRb0NIRZmcDf0tajB2VL1ba0gRUJNO1rRPT8Chi5NatUs951T/ztr
eOjgbmcWQMKTUgb2noqzyl5ggNJOSM3V/Iipf1LnQzlHSGTCeMR+O6dofPCN
hmKC1G1zQkxEza+iZcAT0YXj0pyEoaDENwNclPrNKGQbHupSxg2QJ+GUTGC3
VH0MIyZOIibBEFkIWmxhNDBftcF1NxnFVJhLrKKEQk8LwJ8ZFzEHD0I28KtH
pDfypSdO8zR2aeIzdZKb/DGxyrDib397meHv4vyded1eZuaQDRgpAfASB0ty
x2jSbN2548NSZBT2sj7eRMn2YF1QO3vs+WQUaQu2MPkQqhJ4mcKZebYDusDm
dp0UcVSE+bfNnZFcYncobYVgAyEUMqFORfVecF0XCY7l0UHIGmS+8WmhWuTo
AP7D3cfOu49oo5HECqroeKPV73eseU6ef1RJH87s9GcWdHie4n42CkiskZv4
viFfnhDAUS7bxYCTGXEJLAhsNrx+4iVmziZDGhlMsIIybpI2QVbLCx5HJM/R
hP2vn/FjHg/tlw+SIGXCjD2PqxVVi4gfc+RrH6TSqciWpJb0Iva2kyu7Zrrj
QkXWbCToj85uuHgG2lKrJC6rE5IuyWxjdfApoUa+z7C6bDx6cIEnSn/ozZGo
iZUY2dXhiUabcROSrXRlXRL3lb+I9k6iK+T/XnCVfW48qc5G2IX/M/njPH0B
Cp37v/0Nsgz/QNH9yHY7fn57Q/9+v/vr8Cbyg+IQ8G1M5eAc7B5CNASLtaiP
n0Wbag92ymh8264p1QvBl1nmVjJjVZaUw0U5SYIhIb13anNEY4yl1F7yrCYa
nPgPeHsAFN+ZC45HnYh4vS8VLBlcjGkDuNxqv9OZUq6YGmI8Y6uWNL+JXg37
WvKkFsUyI0xT9la84tjbQnGkwbf3YrlBh9mTlRpXe05gHCgyZ+52Bo18gdK3
uORWrCezLZc0w6wFD6WONljbjsN6yfrw3W1RW7cFsy+fSmUNi/EiFM1RHmp0
MifpaPosyJTvwANJ4rpEe5miwxaJ75vaUGj4AeNmvJSBD5sebykEkQ4Z9wW3
FdNNMgHKJnR0TIei97rfY36NsQsuZLPADhn3lLZZSJWxbsZY8owR8UcsRdcA
NpbsdzxF0lTwbzRtxx12hy2aIUeDoWnwoeXG/WKojczRt2IQORYDuwpf/MqC
ABd9+PHX61c/wgjEr9ieRCQMhmP6AO7a+ndHt74bhLKUC6iqGZ8kVb1Sw0bf
vcPNzIRhg3XLP1LMJnb508+7xIdrFEvndZJe558PqBWE+G3sL8Iba+6CRJhS
6qmVvxqRTKR7R9ay09eJW1Mc7mO3vCbxdJwy7tVrR8KR4v0a7CZppCNaIEf1
BN38M3X+wUCLGLg+oY9csoIjzTbz84o9gBJjDxKSgwUp+bqTOkgNPlaeVJbC
dhjO7+3XN/7x7HeyuVrgMqgp4zIdDpqO9RsVfVQnDPCVYVuto+LiXpFmFKzY
s4LI+hPKe+QKCFHXosoOieHZ1NMcFlzNAtuFpUYni/jmBobzyE6gAglKzMjS
g8M9nF7N3qKxQLBExxDkseKdiIGdhZgHyzoSSyImYwpl2E+euUszzMlPm7VY
W/TERJtGS3LMvRH0heNCrfGxTDSRQOoMqfcFs5g/TjZxMqQGi8cJfWJEH/ff
6aMLHiM0e1hZv//y0aNHPpMMdyt92zMU75nIP1oxN/Qf6JbT6dR0iCvqS6H+
SUybYVx215R5NMLb4q6xEk/mMPHDBWO42+AR00pwP6ZK9VLhy9Si/bjH+ma/
kKSofkCG3bjqlh49JiYidHPjGNKih3CKvJoE1FyK919Kv3tbY9CiU0DxRgrE
Qw0QkL4Y6h+D+lI2IAQUar2PaDaovfJYGkaBH+qHwpOkjdAFaST5kXQSmT8T
u+TqMjoFJ5qwOEmJDEbHPLERE8OdYyjsdNJnEwdS6xXDH2E+LkKekzF8QgbH
UFqfegSiR+j5SrxyFLpkbcKasUx2U6GMKDEpM6UsNho3BLmIVmrKt7kptyXn
LTXRsTMwXoWqJi7M6f8RfzvF30N7TJz5NNUyBvQUBYYEBxULAlojQpNUdtxe
CjQjJcdxTD64stPuVGzgiOPPLMYZldok3/IN1M/OB1BtjgJZoTYnGAWVVSKn
MeE8qao6ImoFnTpoV1ApCPW2SSoTQoRPajL8Zdkt6eQOTrJHsgEjWB6JJoyE
rKGBsA89rByVapQ9xxf5NiqL+IjHJelHxcFydVxq7Dipe5oEWEbVJhxz1Ur6
4HmiGElaklgflplWNhzNNFhavBcvQn2qlDuHjk0auo61jrHVAhdOxWB0CKL7
0GRMzJRM6z8lgVe958JbIffJxVpoC4pts90udsyoiLPpY+wgacDyvchfVqRD
8rN2G+oWwGqf/vFa3LLzThV5iKtbGL5ZOV4pcfG6ZdkiG56E7kV1mjOUegLl
MC1CJtXx2SZ7bq6+Q4g4Stct7cclUQFpbAOOr9ik5H6kFjEXErZWRE19PnPm
OyY0Y3HvSXChM9SGZuMQMOlqTCr1U7ozCZfSZ0oo+t15YDiB6yTcODxupckh
2HWgxJEUP4vUablj4nrsymQLTdJK1BfP2fZOJWIPhFs1a8u1LAiw92kmicTt
h3RBGsPF1HYh+0HrIusDIREEbc71RrsLgJTuSFfu64SGKD67B5txpbJ582yB
xKAMKPkRZG+ID4HqGvZpD7aJJify8edBuiToXPMF5IQpkIrxWsWfWGXS8Agz
jZ0diuM5mSx7Hsxo5260B8hx84EUEmm/J+Az4hwqV8oOIBcgTEj/cxewCB3Q
MIDMHerMOExjIgkkm7kA5StFgkowndry5nRhw4h1m/iKK4r+cAvATPrkyYNF
T2m3FfmOawNojuJdkx6S7Dbd92oh2aaElGPs6L6teRCxe9KbRD0bxI5jvm2E
1wpq2JdxajrlyFFex9KoEobBiuD02Xzin5776Vf++0eQI+dSiK+h+FwD9SFD
DpqOJGZ1kGMXDTUq+0grVZIAh8qziNwt2sGCt03NJfco3LDN3pfb/TYctGfp
oJkgCY9xNgGXV8bknbMaVtmgHPac2GATlnOMt2RTsCfYkn/yL8/EiXlOLSZ8
PwJdJD90EyVgXQd9ZjsuaDpUPkosV7J+ORRBqZd6NhEgDOPWPwURFx/OgcUQ
U9d2NYbZQ1XET0nnltFKw3q/J3Ol7c94pHP/27gBtOpJ+u1vHx99f37qoe6K
+fQoKJAe/dPJycWG6IdFsbVPD5cnLCl+HvtTMBsOsCYHPq6lDn1UM/LrZyLB
p8MkrA+jVClrqHW6oxBLD676lYcxn5FD3Eo0jm6iPJSkTitYEO6l5DpJLwDh
EKnJsvKZ4bdPJy41PsQYk2THkNIdIjRstA3zfqPHMNHzyRCSZOTn7B2VqFlm
HaV2t70eliwP4zOpQ/dRdUPP3oGjreqztec+l8SSRtuUn387quUbBpbG6cpi
oNTU82Mv/c7TSF+coQqD48vwnTRO1YZf9HkAPdxkcPo7Nrbl5y/8hhsCa8m8
uU+rQ3L9F9aebKZmV8xu7jURyUaL82Gk1Km7w6XtnlSLxMjACra86ZqEZ6wx
2bBx3okLh6IikUPOCFTxhoaH9VMG11NypAig7zmHiB1lyZYb6pZtIsLYE6wg
sNdmLoXTMWlR7A9uosPgKVtrH9uZjJcKrzKg+S+0pEu9TkZDXMI3CTV8jp7G
ejXPY/2x8SfvWLo14CwmXqtFJq9gwkbHJOi0HFM6CRp+ZtlD1Bz0IpumgSV4
ZsccIZCT16/6gvgja5PC6Zr9kmScx06tuhYAp5dU+nVDndsYhA2FHLW7iSmp
J/OgjDJu/rT4gRINudkv9NwDPO3BcWGupPbG+r55kpjgQtK1zjNmDx6FDygg
xjUFaebUggIF84EGUayRRJ81TBfTnnjK5sjl4v9+OOmAgti3GNswYZa//noy
oPzBBB6tgP0Flq6TyNzJWF5PzBaI6/aXj4/ldnCgDFcU4/vJHLNFcxdLV601
1FCyJzcP9tm2+eLysZLuME1A9//DGSYJSPMyS3eesG/SoMJ/RKDHyvnIiuTF
Ge3yaVX7QUj4Ofbr7NH5WEF/uxMSjn3CyRVpFwdsvwD4vTVRwH5d+oWOQNsP
tVLwqSZSz4GJaHz8WXxJOgiMd9LJZqYqzhLR3amdR32jmCYehv7F1NC43wx0
YkhLnKRh61iETD0xVHBzWehb+WwaPws9Ky0qI9U8MmQ3QLfOqE5ksGSwcMyD
VYzKyxDbc2GB0Qw3yGP7K3pu8pHWvBz1ZIuQRtVrkmzdJ19aX42Vzclyc6UC
9jI4MVzo7coR46ThV+LpYM5NI11Ly8kBis/3WrF0nNbh5tqoUenz9NP9DiZA
6CupVrXokoHVut/RaNzuqlD4Jvl93GxbNK8IIrvSHYclnnNb0izHBlsxe2hf
VnHWtwVLZGM4fBFaOMWXO2Btw+qqLAIBjUPo79TtM0AL9VyqgWDiTBLXeg4D
aDUuRYO5ZC82MJZ26YvmPacMcEKck4S4mZ/neYrpFIMEcZm2WaV6JNGH5ovu
yl/o2ik/bObVicn5ldK+LfRa44e4kGZqgUn2CRCuSTplcoMtaxSFo+BqpLgE
jV8xB7GPesh8XHLCG1doWx3uaO8WB34fBWYV2zOpgTGAcMcgzM1D3y9NxbGi
/zgpbPN9UVF964qN9Eg8YQO5QSnnvepSgbIouV5LAimLneGi5EdwXh0b/nqZ
VjNyfUsXahnFKuOTsqrCk5Vf2omdnBqr8fpI5FESQUNwmqcWC9/07i0l90nZ
NnFZ2ey7KuYwHAdaOf8iibKE5iFpqdqcc/jl0bjhntKBg5/fnXAfH89b9pu9
ccMVTETrlj3n24jEOKai0Ia2Dx1qYsVhiOGe5gcdT9scQXNaFeudGO6yxqEB
qUcpXpJ0JfLeCgpaHz1fD0SxNVicjjpQQJiXyNUVxTUX1JGRXoJRrLPlIdJP
8CFS0yZbJmW4g+q45aN6i0N3zGT36Rqp5SvYfA11y1Vl7xP5dJAiQG07tKEH
lwdQopYmzScWNPCMyFWMIcWNerTNAlKiwoJ9Yi+kcE7K7QcyJ+ihtNdybGTK
pUbW90/YPXrhxz3qR21cLHM2NrCldxIsNSsxFM9CkVoLTSMVnRvwebOuyU/s
rHuAtnv12vzsLlmAKua0npmEV1sSjuKHLBI3rvjeiqzWZ0U3TfLyhVVxLxZO
TXJVGUoK+saFzuYmEUlathYyCgS2a3ZsePILGIBDXAB8tKg/Ng0RH/blWdXs
8xWuLITyNOVV++snrxchcXN1cy0FpMnUBtmaJBbDTKxHniLH1J091dDc15SH
tNQKPEs9iy/7oCSD/U5dY6FkvpKbYkuccHnai0VflWGQMgk2kBtKOsXqk1Qv
MphI+SW+Fwg6lf3jAqA0E7p3xMUS+q0aU22mFwYgm4uC+cy1/3WE39LTDjdS
meVaJXO6RkkP5Ebcj/yWdRXdSC5pjk0FD4CUmlCHPel6aPleybO0ZNCF7Dh1
qWhBWjmq/cyYJLcSGuGMFJJtXXj1T8hulDIPzdPrqHW85L2ku+y1LTC3JOTk
kmnflrtwaJq4JAnUclAvmjbhPyqZWhfmmpaetyUM95Zjl9ZJfXCCpJgSqeOU
OZbN1AxPSyjUKlFBbPxmLbJByF1Kr7QRH8Oy4DctgYStTeXrRt8xExpXbvUT
f6Lumt4FJdVr2g+LQ1oiye83ZSVdX817MwyUa8P3Lu3uMTxFiZekrwAJEjNQ
pwYbVLOoygg1x1KCS4UzbFJ0jXZ8Dd3taAHc3cZmPY6Gm34auU6VUymLRkoI
pAc0f3AiSe6pJtxGgJU2oJY206EnXELdYmvHlraUdkgNX0UzmI0lKWJ1iW9E
Hn0NdMR3veB33WiDU0H1IuJSg4wkFd3Rp7ecff3iPEZqpdtS3dCK0pdoSaRI
YsvqPRAAzq2WLQC3gnlyj1lrpiF5Xoga0rAMm3SnYU+3yXYc4R4QQjZuQz/q
+sbwRj8Kmv2tZMSI0Zq83c28u/zGidruOZq/y/f83qDjF0NpqpPY+ywVlVm+
fiGvPxApVHOsWNjKMqjiHquzLfjt9gtrKztxxOWSfb+UOeAgX/+Lat73lG3Z
sR+DarFTfeX2teUo2Iu8hq83gT5kGaNbhfnq+caCe+XNkMLCrwKS10d8JEyS
dAHXt2ZoPPw+O4hDzODasCq+sHYIBAUmnM3UhrYYZO8ACsZiWbER+tCVum8S
tJqxp0ja/1hjronyrDWgkoAogFlzbJmTKyCOgmN9qFEnydgwWecX9E4/SlmY
GIpPjEWXvk1FoAjPnmcm13UiWsb8J26TG/MDPGu4N6vaGIJQA1R5yxkrpXgc
nBlhST+w8MqavOHsdMM2rLeSpuTD1Hptn7pMvRAXJFDdpxorMuY9qn+MVTBi
ssqrZLRChXUVu+mEjZRPtUk8AVxAktj1uCvkpSo31AFjcCPLF44fWH/4MCVe
tiXdBhcUyDG+QSf09ThN05naTJrOfPqi5HUiMf8gebOI9ALZQFlC3qdhF+47
MnxW2gaC+yGNG8Cr9wD/k3Glr1Y4dtwNte5REaLTjOVY+C9gUDSg9Kdrs6km
d8SBmCO4T/PIzxvf+hVfJveRxhfdUKYn5iVWdFcCsLMu4TrRsgPo7tjnPR1v
lYimt1/fcBqwgL2QIZ4UTQ9Uc9of/7g0c7grQ7PZ8Vss01fYSCo6Za1rCuWJ
3jIc+ondBI+6X7I4kDcdfiR9ML4YZfgOrxX759SmHHlv0nlborNellYGSHk9
xXIkkeMw9BNwqZU0bmE/UbEGcW+zJZtxsefOCPhwOPFy0BeG7K1QNXPk2JFW
bbiGi54lmdUNm1mk80sNMbMSJdo5sLmcpalbPa8Zv/pixGAAa8Ilxj/Xomzz
mzlW3SSoWNDYI7jpolTVWiVKmI9APVM23DWEd0lQOTtasrbWXhjYp2dsJh/8
Q/9dXbI51B+kPGBgLyQiJjZBd9HGxvV7u7+k3h6UpVZTel4udbUS8uxDRck4
Spkw5+itEQPSIMZXpb5m30icAos/tRkoKrq3N2ZQj437YhGLLom8rKe7C8u5
K+x9Qbdc+UZva2RkOxXrpABNMb6R7dnKZ3kxfP8ZcHJLrn6SteIko907aqGf
VApItl1mD+ypOeSgh3Zoty+GXRKWGHKr0pE+wNRtyw017LVWSUawTMH8arrE
5z/vy534n+zVgmdXr59fnWuPqpx2kPrGvG5yyDLp+Rc+5FZh2BDSgQEvhdAw
mSsg5AJKibbhrmw4ZC2uDnt5RANSEY/uZQOO/sff//V/ZA2/aKdKMs2t0Lw/
Gh58wb2o+9jjxpnVNigzCi9YOF6CvguaJDjIpMuBQzyTqLQvkEAfZSdm2uPT
U9RNiwHG8rWpBR78RFIB9oSjx4llwaU8/BO/SlBfDxo8/klviWSGTvIpk86S
gBPcBMJClMP3MABr0zua7yKNulA0QT1JTrWl7LgvJblQk55Y49ecLaV1wev5
s+58droQIPahckFbmaY6rfuGKeXhtFzwxjpuk2Y0TJTK3iToxl14C6rsmL1X
dEgj8oYqe19YulOhp4RIKVOK1L6uaddjZgu9LNxTyTYCuZeS/mdW/ujgRPJy
0eqpgcVdwwmgnXQCyU/RprR3V5mlb+d2yqn0Hou7YZ/JVbZow+vdqLIh007f
g3AdRHmguqek0YeHYtpEmlWExSrGXaqRUGjQ9Wr+zfzIcmCJnTfLPcsWJWG+
Mltqy8T/A+xFweZ0ggAA

-->

</rfc>

