<?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-02" 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="2022" month="January" 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>. More generally, a secret value
can be bound to a standard protocol p (denoted as <spanx style="verb">SVa^p</spanx>). Non-standard protocols
do not have their own secret value.</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 protocol bound 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}^p</spanx> for a standard protocol “p”,
of <spanx style="verb">K_{A-&gt;B}^*</spanx> for non-standard ones.</t>
  <t hangText='DRKey Level 2 Key:'>
  A key derived from a level 1 key, and used to authenticate
the source of packets from
end-hosts to infrastructure nodes, or to further derive
level 3 keys.
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.
We distinguish two possible level 2 keys, depending on the fast and slow sides of the key.
(1) A level 2 key between the fast side AS A and
the slow side end host Hb in AS B for standard protocol “p” is denoted
as <spanx style="verb">K_{A-&gt;B:Hb}^p</spanx>.
(2) A level 2 key between the fast side endhost Ha in AS A and
the slow side AS B for standard protocol “p” is denoted
as <spanx style="verb">K_{A:Ha-&gt;B}^p</spanx>.
For non-standard protocols the notation is the same but replacing <spanx style="verb">p</spanx> with <spanx style="verb">*,p</spanx>.</t>
  <t hangText='DRKey Level 3 Key:'>
  A key derived from a level 2 host-to-AS key, used to authenticate
the source of end-host to end-host packets.
A level 2 key between the fast side endhost Ha in AS A and
the slow side end host Hb in AS B for standard protocol “p” is denoted
as <spanx style="verb">K_{A:Ha-&gt;B:Hb}^p</spanx>.
For non-standard protocols the notation is the same but replacing <spanx style="verb">p</spanx> with <spanx style="verb">*,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 four 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 a standard 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.
Non-standard arbitrary protocols will not have their own independent secret value,
and thus it won’t be shareable among services.
For these protocols, their level 1 keys will be derived from a special
secret value denoted as <spanx style="verb">SVa^*</spanx>, only used for the derivation purpose.</t>
  <t>1st-Level (AS-to-AS). By using key derivation, an AS A can
derive different symmetric keys using a PRF
from the special 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}^x = PRF_{SVa^x}(B)</spanx>.
The input to the PRF is the (globally unique) AS number of AS
B. The value of <spanx style="verb">x</spanx> will be either <spanx style="verb">p</spanx> for standard protocols or <spanx style="verb">*</spanx>
for arbitrary ones.
The first-level keys 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-AS). Using the symmetric
keys of the first level of the hierarchy, second-level keys are derived
to provide symmetric keys for authentication (AS-to-host cases) or
further derivation (host-to-AS cases) into the third level keys.
Second-level keys can be established between:
  <list style="symbols">
      <t>An AS as fast side, and an end-host as slow, for a standard protocol p:
<spanx style="verb">K_{A-&gt;B:Hb}^p = PRF_{K_{A-&gt;B}^p}(0||Hb)</spanx></t>
      <t>An end-host as fast side, and an AS as slow, for a standard protocol p:
<spanx style="verb">K_{A:Ha-&gt;B}^p = PRF_{K_{A-&gt;B}^p}(1||Ha)</spanx></t>
      <t>An AS as fast side, and an end-host as slow, for a non-standard, arbitrary protocol p:
<spanx style="verb">K_{A-&gt;B:Hb}^{*,p} = PRF_{K_{A-&gt;B}^*}(0||Hb||"p")</spanx></t>
      <t>An end-host as fast side, and an AS as slow, for a non-standard, arbitrary protocol p:
<spanx style="verb">K_{A:Ha-&gt;B}^{*,p} = PRF_{K_{A-&gt;B}^*}(1||Ha||"p")</spanx></t>
    </list></t>
  <t>3rd-Level (host-to-host). These keys are derived from the second level host-to-AS, DRKeys.
Depending on the protocol type, we observe two cases:
  <list style="symbols">
      <t>Standard protocol p: the PRF is keyed on the level 2 host-to-AS drkey:
<spanx style="verb">K_{A:Ha-&gt;B:Hb}^p = PRF_{K_{A:Ha-&gt;B}^p}(Hb)</spanx></t>
      <t>Non-standard, arbitrary protocol p: the PRF is keyed on the level 2 host-to-AS drkey:
<spanx style="verb">K_{A:Ha-&gt;B:Hb}^{*,p} = PRF_{K_{A:Ha-&gt;B}^{*,p}}(Hb)</spanx></t>
    </list></t>
</list></t>

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

<t>There are two types of key establishment: first level, and second or third 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-or-third-level-key-establishment" title="Second or Third 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>

<t>If the end host requested a third level key, it must now be derived.
It is done so from the obtained second level key.</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}^p from the key server located in its AS A, KSa.
With it derives the third level key
K_{B:Hb-&gt;A:Ha}^p, which is used to authenticate.
For a packet pkt, the source Ha then calculates
the authentication tag by computing the MAC keyed on the third level
key K_{B:Hb-&gt;A:Ha}^p, 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}^p
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 a DNS server 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->A:Ha}^p = PRF_{K_{B->A}^p}(0 || 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:
H4sIABnT3mEAA7V925IbyZnefT5FesYR0z0CwMPIilHbqzCaB7GXwxkGm5LC
O9KKBSCBrulCFVRV6CY0Q4feYa9865t9j30UPYn/7z9kZhVAWlqvGUGyG6jK
w5//+ZTT6dT1ZV+FC//0UBfbcllU1cG/Ccs2FH2xqIJ/GQ6dKxaLNtxd+Kvp
U7dqlvQkvbFqi3U/3RTtsix2RbtqpruibjfTVXsbDtOHj93nflX09ODjh48f
0e/TR1+7JX2wadrDhS/rdePKXXvh+3bf9Y8fPvwlvXLftLebttnvLvzr+bdv
fu3crrzw3/fNcuK7pu3bsO7op8MWP/zBuWLf3zTthfNTTyN2F/4fZ/7XvKLp
ayzJefojy/3HfVH7+Ymvm3Zz4Z+9feH/aR/acnnDH4ZtUVYX/gd6aSZb/O+0
4lnob/48wyM235OZf9kW4SbUi324qbL5nhzasqqOv/3UdEt+Z3abvXN62suZ
f9P0eCa0m9Bm016G+gc6yPr4+09NvNC3Zm321umpCYSvQ9uWm2zS+aotCbrZ
55+arOCnZzt+ejCJq5t2W/TlXbgg7PH+zfMnjx89+uWF95/7bXGY+C2hysQv
aa6JD/0yPvSLR7+QNwhDZ2Xo19Nl0wb6p9hdOPrzuf+26UOHH543rd/ernx4
X2x3Veh8F2gHN32/6y4ePNiU/c1+MVs22wfLYtE8oKPYrpr7etqul49/8fiX
NMB3dVXWwfdNU/mmjm+Wu7tZ9/4BU0U7/aF7QI++okXwg51fhW7Zlouwyt+5
v7+f0cDTsCr7pp0R0B7s9otd2yxD1z3gFx9gzb/el6uAWbuLwbvYKb/V9UW9
IozuHpT0dxMfxyKe3ITlrZ/173s65jVW1O0X27Lvy3ozGO4XaTyZulzVZc9j
XOONriubOr1BxF30bbG8DW22EB6aF/0mrEMbatoKjiZfdrekgaZEVTdlH5b9
vg2zOvQPdqv1A+IVD6e7srsN3Yx+z17MToZQtC0F0tNQb25o470yn13R30wJ
gIRcfSkH/qbZ9zgw8JZ11dxjNVM6j+nNYUe47qf/mT9ow7a5C35Z0q5oeZ3/
/fff/3418X/42e//MHigbbqOfrHN+X/7V6AQP7JkUBe7XSjagr70zdrTYjH1
yr++un757Boruu7BGd5+9/S77C08d9eU9NLZZ/fhs4n/rNm39B+h664g0N8F
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
dB5upIMT0GH4iSZFAGAR3IyEdMaMbIPJ+pQHAU7XDciKpQuOipNGMqIawJiO
Jcuh4LX+aV8ub4krud+B8xILPMky8fsLYj9lb8FQcf2O41+R62kCSbLysUGS
1bRHktsfjJHhcaxa02vt8AUICpIZVoWHasIkC9Cw9GCX9jALBDp27giBEMXS
Ncmk3O4IXoX43yPmZ6GpgvURzKZJRWbOvBisH4S4N0y3+CrQjSck3RqGTJ76
i8nh7L4vDrWKG6PFjMYjG7Bk6Ry0fHBVQM75mDcgiMpWOUEhBeNOMBH1fhNS
3ZQLHGCRskxQAROKWvQOCVE5m3BltK7AiccQY9DRO81qpkZUXZTjWRgVpiLT
iqgxlpSDefkEQTOncIvEMMFtJwEV+H6ZkCxlU3NiJIEOqVLCaFZGMlAtMZa4
AtkZJv7SLsbH/JmlbbwM7SK0TXeukUIFA57ZBqTVlN3W6RkZvJmwDCwfyWhX
TukGBl7Gl+NOoTPNY4JM5xyH9Nogjj8+tvm16l6vX15NTuibIsE444JZEDj8
IKUIHyIlgUHDqQ2iKZQ7oRvip8+ErUhyiUZ7THFqNauj+68+zMjA7C245o/T
Q2QETarQlJTOiSckyxex/E8mqDdHLzp9UZNZ/CCZRdMSR8PFUJ5LoTzAsskD
eOH9rlRNl2MSBCkR7TSNJVVpipAjDCvZny2Pdgcyw9umLv+s0c1tY4kjqptC
hyg7yTxgGDUt1HkkamgGMnFo5KRp6sAofpc0UpbNDrNOx7NGS8nw9w2SzPHo
7BTmjBzFCaMZEWLgXRPbGNVmluFOxx9Ytwewl8xL9LgFacFIX8Q4MLOgqB+P
IqBrRGAYlTizZxxDpmE7cVgAWJwrwvjeoTbFP+xvpmIHnxEhcEywLqrzmf9O
xN6fA4oNVclTZpspg0FV8HlSwpUxhKSG08CRq47EaHEiaEKGJKFjqFXoIeGG
ZpDcoMTuR1FyZox1uGf1k61IsI8zUNTEr4qyQgJ7luU2kfPgVDVbcTz/08uF
csgxi6QZFh/OyKg+f+c+5ozcmZKktjcIf060eUX4sWxW7FF6y/ylBT/W/XXB
rAaTpVD2DaVzDdIW6iyNdjLIo1V1yeKsMUeDNR4bg7bhYMBr7VXHdW8gHY39
nUqVSmkn4pYUkuNw9l6jfJY80+VPDxk2+8J60t03wVmtAidks1GmFQWsliYf
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

-->

</rfc>

