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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY SELF "[RFC-XXXX]">
]>

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

<rfc ipr="trust200902" docName="draft-ietf-ace-dtls-authorize-03" category="std">

  <front>
    <title abbrev="CoAP-DTLS">Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)</title>

    <author initials="S." surname="Gerdes" fullname="Stefanie Gerdes">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63906</phone>
        <email>gerdes@tzi.org</email>
      </address>
    </author>
    <author initials="O." surname="Bergmann" fullname="Olaf Bergmann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63904</phone>
        <email>bergmann@tzi.org</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street>Farögatan 6</street>
          <city>Kista</city>
          <code>164 80</code>
          <country>Sweden</country>
        </postal>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="L." surname="Seitz" fullname="Ludwig Seitz">
      <organization>RISE SICS</organization>
      <address>
        <postal>
          <street>Scheelevägen 17</street>
          <city>Lund</city>
          <code>223 70</code>
          <country>Sweden</country>
        </postal>
        <email>ludwig.seitz@ri.se</email>
      </address>
    </author>

    <date year="2018" month="March" day="05"/>

    <area>Security</area>
    <workgroup>ACE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This specification defines a profile for delegating client
authentication and authorization in a constrained environment by
establishing a Datagram Transport Layer Security (DTLS) channel
between resource-constrained nodes.  The protocol relies on DTLS for
communication security between entities in a constrained network using
either raw public keys or pre-shared keys. A resource-constrained node
can use this protocol to delegate management of authorization
information to a trusted host with less severe limitations regarding
processing power and memory.</t>



    </abstract>


  </front>

  <middle>


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

<t>This specification defines a profile of the ACE framework
<xref target="I-D.ietf-ace-oauth-authz"/>.  In this profile, a client and a
resource server use CoAP <xref target="RFC7252"/> over DTLS <xref target="RFC6347"/> to
communicate.  The client uses an access token, bound to a key (the
proof-of-possession key) to authorize its access to protected
resources hosted by the resource server.  DTLS provides communication
security, proof of possession, and server authentication.  Optionally
the client and the resource server may also use CoAP over DTLS to
communicate with the authorization server.  This specification
supports the DTLS handshake with Raw Public Keys (RPK) <xref target="RFC7250"/> and
the DTLS handshake with Pre-Shared Keys (PSK) <xref target="RFC4279"/>.</t>

<t>The DTLS RPK handshake <xref target="RFC7250"/> requires client authentication to
provide proof-of-possession for the key tied to the access token.
Here the access token needs to be transferred to the resource server
before the handshake is initiated, as described in <eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.8.1">section 5.8.1 of
draft-ietf-ace-oauth-authz</eref>.</t>

<t>The DTLS PSK handshake <xref target="RFC4279"/> provides the proof-of-possession
for the key tied to the access token.  Furthermore the psk_identity
parameter in the DTLS PSK handshake is used to transfer the access
token from the client to the resource server.</t>

<t><list style="hanging">
  <t hangText='Note: While the scope of this draft is on client and resource server'>
  communicating using CoAP over DTLS, it is expected that it applies
also to CoAP over TLS, possibly with minor modifications. However,
that is out of scope for this version of the draft.</t>
</list></t>

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

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and
“OPTIONAL” in this document are to be interpreted as described in BCP
14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>

<t>Readers are expected to be familiar with the terms and concepts
described in <xref target="I-D.ietf-ace-oauth-authz"/>.</t>

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

<t>The CoAP-DTLS profile for ACE specifies the transfer of authentication
and, if necessary, authorization information between the client C and
the resource server RS during setup of a DTLS session for CoAP
messaging. It also specifies how a Client can use CoAP over DTLS to
retrieve an Access Token from the authorization server AS for a
protected resource hosted on the resource server RS.</t>

<t>This profile requires a Client (C) to retrieve an Access Token for the
resource(s) it wants to access on a Resource Server (RS) as specified
in <xref target="I-D.ietf-ace-oauth-authz"/>. <xref target="at-retrieval"/> shows the
typical message flow in this scenario (messages
in square brackets are optional):</t>

<figure title="Retrieving an Access Token" anchor="at-retrieval"><artwork><![CDATA[
   C                            RS                   AS
   | [-- Resource Request --->] |                     |
   |                            |                     |
   | [<----- AS Information --] |                     |
   |                            |                     |
   | --- Token Request  ----------------------------> |
   |                            |                     |
   | <---------------------------- Access Token ----- |
   |                               + RS Information   |

]]></artwork></figure>

<t>To determine the AS in charge of a resource hosted at the RS, the client C MAY
send an initial Unauthorized Resource Request message to the RS. The RS then
denies the request and sends the address of its AS back to the client C.</t>

<t>Once the client C knows the authorization server’s address, it can
send an Access Token request to the token endpoint at the AS as
specified in <xref target="I-D.ietf-ace-oauth-authz"/>. As the Access Token request
as well as the response may contain confidential data, the
communication between the client and the authorization server MUST be
confidentiality-protected and ensure authenticity. How the mutual
authentication between the client and the authorization server is
achieved is out of scope for this document; the client may have been
configured with a public key of the authorization server and have been
registered at the AS via the OAuth client registration mechanism as
outlined in <eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.3">section 5.3 of
draft-ietf-ace-oauth-authz</eref>.</t>

<t>If C wants to use the CoAP RawPublicKey mode as described in <eref target="https://tools.ietf.org/html/rfc7252#section-9">Section 9 of RFC
7252</eref> it MUST provide a
key or key identifier within a <spanx style="verb">cnf</spanx> object in the token request.  If
the authorization server AS decides that the request is to be
authorized it generates an access token response for the client C
containing a <spanx style="verb">profile</spanx> parameter with the value <spanx style="verb">coap_dtls</spanx> to
indicate that this profile MUST be used for communication between the
client C and the resource server.  Is also adds a <spanx style="verb">cnf</spanx> parameter with
additional data for the establishment of a secure DTLS channel between
the client and the resource server.  The semantics of the ‘cnf’
parameter depend on the type of key used between the client and the
resource server and control whether the client must use RPK mode or
PSK mode to establish a DTLS session with the resource server, see
<xref target="rpk-mode"/> and <xref target="psk-mode"/>.</t>

<t>The Access Token returned by the authorization server then can be used
by the client to establish a new DTLS session with the resource
server. When the client intends to use asymmetric cryptography in the
DTLS handshake with the resource server, the client MUST upload the
Access Token to the authz-info resource on the resource server before
starting the DTLS handshake, as described in <eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.8.1">section 5.8.1 of
draft-ietf-ace-oauth-authz</eref>.
If only symmetric cryptography is used between the client and the
resource server, the Access Token MAY instead be transferred in the
DTLS ClientKeyExchange message (see <xref target="psk-dtls-channel"/>).</t>

<t><xref target="protocol-overview"/> depicts the common protocol flow for the DTLS
profile after the client C has retrieved the Access Token from the
authorization server AS.</t>

<figure title="Protocol overview" anchor="protocol-overview"><artwork><![CDATA[
   C                            RS                   AS
   | [--- Access Token ------>] |                     |
   |                            |                     |
   | <== DTLS channel setup ==> |                     |
   |                            |                     |
   | == Authorized Request ===> |                     |
   |                            |                     |
   | <=== Protected Resource == |                     |

]]></artwork></figure>

<t>The following sections specify how CoAP is used to interchange
access-related data between the resource server and the authorization
server so that the authorization server can provide the client and the
resource server with sufficient information to establish a secure
channel, and convey authorization information specific for this
communication relationship to the resource server.</t>

<t>Depending on the desired CoAP security mode, the Client-to-AS request,
AS-to-Client response and DTLS session establishment carry slightly
different information. <xref target="rpk-mode"/> addresses the use of raw public
keys while <xref target="psk-mode"/> defines how pre-shared keys are used in this
profile.</t>

<section anchor="resource-access" title="Resource Access">

<t>Once a DTLS channel has been established as described in <xref target="rpk-mode"/>
and <xref target="psk-mode"/>, respectively, the client is authorized to access
resources covered by the Access Token it has uploaded to the
authz-info resource hosted by the resource server.</t>

<t>On the resource server side, successful establishment of the DTLS
channel binds the client to the access token, functioning as a
proof-of-possession associated key.  Any request that the resource
server receives on this channel MUST be checked against these
authorization rules that are associated with the identity of the
client.  Incoming CoAP requests that are not authorized with respect
to any Access Token that is associated with the client MUST be
rejected by the resource server with 4.01 response as described in
<eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.1.1">Section 5.1.1 of
draft-ietf-ace-oauth-authz</eref>.</t>

<t><list style="hanging">
  <t hangText='Note: The identity of the client is determined by the authentication process'>
  during the DTLS handshake. In the asymmetric case, the public key
will define the client’s identity, while in the PSK case, the
client’s identity is defined by the session key generated by the
authorization server for this communication.</t>
</list></t>

<t>The resource server SHOULD treat an incoming CoAP request as authorized
if the following holds:</t>

<t><list style="numbers">
  <t>The message was received on a secure channel that has been
established using the procedure defined in this document.</t>
  <t>The authorization information tied to the sending peer is valid.</t>
  <t>The request is destined for the resource server.</t>
  <t>The resource URI specified in the request is covered by the
authorization information.</t>
  <t>The request method is an authorized action on the resource with
respect to the authorization information.</t>
</list></t>

<t>Incoming CoAP requests received on a secure DTLS channel MUST be
rejected according to [Section 5.1.1 of
draft-ietf-ace-oauth-authz](https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.1.1</t>

<t><list style="numbers">
  <t>with response code 4.03 (Forbidden) when the resource URI specified
in the request is not covered by the authorization information, and</t>
  <t>with response code 4.05 (Method Not Allowed) when the resource URI
specified in the request covered by the authorization information but
not the requested action.</t>
</list></t>

<t>The client cannot always know a priori if an Authorized Resource
Request will succeed. If the client repeatedly gets error responses
containing AS Information (cf.  <eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.1.1">Section 5.1.1 of
draft-ietf-ace-oauth-authz</eref>
as response to its requests, it SHOULD request a new Access Token from
the authorization server in order to continue communication with the
resource server.</t>

</section>
<section anchor="update" title="Dynamic Update of Authorization Information">

<t>The client can update the authorization information stored at the
resource server at any time without changing an established DTLS
session. To do so, the Client requests from the authorization server a
new Access Token for the intended action on the respective resource
and uploads this Access Token to the authz-info resource on the
resource server.</t>

<t><xref target="update-overview"/> depicts the message flow where the client C
requests a new Access Token after a security association between the
client and the resource server RS has been established using this
protocol. The token request MUST specify the key identifier of the
existing DTLS channel between the client and the resource server in
the <spanx style="verb">kid</spanx> parameter of the Client-to-AS request. The authorization
server MUST verify that the specified <spanx style="verb">kid</spanx> denotes a valid verifier
for a proof-of-possession ticket that has previously been issued to
the requesting client. Otherwise, the Client-to-AS request MUST be
declined with a the error code <spanx style="verb">unsupported_pop_key</spanx> as defined in
<eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.6.3">Section 5.6.3 of
draft-ietf-ace-oauth-authz</eref>.</t>

<t>When the authorization server issues a new access token to update
existing authorization information it MUST include the specified <spanx style="verb">kid</spanx>
parameter in this access token. A resource server MUST associate the
updated authorization information with any existing DTLS session that
is identified by this key identifier.</t>

<t><list style="hanging">
  <t hangText='Note: By associating the access tokens with the identifier of an'>
  existing DTLS session, the authorization information can be updated
without changing the cryptographic keys for the DTLS communication
between the client and the resource server, i.e. an existing session
can be used with updated permissions.</t>
</list></t>

<figure title="Overview of Dynamic Update Operation" anchor="update-overview"><artwork><![CDATA[
   C                            RS                   AS
   | <===== DTLS channel =====> |                     |
   |        + Access Token      |                     |
   |                            |                     |
   | --- Token Request  ----------------------------> |
   |                            |                     |
   | <---------------------------- New Access Token - |
   |                               + RS Information   |
   |                            |                     |
   | --- Update /authz-info --> |                     |
   |     New Access Token       |                     |
   |                            |                     |
   | == Authorized Request ===> |                     |
   |                            |                     |
   | <=== Protected Resource == |                     |

]]></artwork></figure>

</section>
<section anchor="teardown" title="Token Expiration">

<t>DTLS sessions that have been established in accordance with this
profile are always tied to a specific set of access tokens. As these
tokens may become invalid at any time (either because the token has
expired or the responsible authorization server has revoked the
token), the session may become useless at some point. A resource
server therefore may decide to terminate existing DTLS sessions after
the last valid access token for this session has been deleted.</t>

<t>As specified in <eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.8.2">section 5.8.2 of
draft-ietf-ace-oauth-authz</eref>,
the resource server MUST notify the client with an error response with
code 4.01 (Unauthorized) for any long running request before
terminating the session.</t>

<t>The resource server MAY also keep the session alive for some time and
respond to incoming requests with a 4.01 (Unauthorized) error message
including AS Information to signal that the client needs to upload a
new access token before it can continue using this DTLS session. The
AS Information is created as specified in <eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.1.2">section 5.1.2 of
draft-ietf-ace-oauth-authz</eref>. The
resource server SHOULD add a <spanx style="verb">kid</spanx> parameter to the AS Information
denoting the identifier of the key that it uses internally for this
DTLS session. The client then includes this <spanx style="verb">kid</spanx> parameter in a
Client-to-AS request used to retrieve a new access token to be used
with this DTLS session. In case the key identifier is already known by
the client (e.g. because it was included in the RS Information in an
AS-to-Client response), the <spanx style="verb">kid</spanx> parameter MAY be elided from the AS
Information.</t>

<t><xref target="as-info-params"/> updates Figure 2 in <eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-10#section-5.1.2">section 5.1.2 of
draft-ietf-ace-oauth-authz</eref>
with the new <spanx style="verb">kid</spanx> parameter in accordance with <xref target="RFC8152"/>.</t>

<texttable title="Updated AS Information parameters" anchor="as-info-params">
      <ttcol align='left'>Parameter name</ttcol>
      <ttcol align='left'>CBOR Key</ttcol>
      <ttcol align='left'>Major Type</ttcol>
      <c>kid</c>
      <c>4</c>
      <c>2 (byte string)</c>
</texttable>

</section>
</section>
<section anchor="rpk-mode" title="RawPublicKey Mode">

<t>To retrieve an access token for the resource that the client wants to
access, the client requests an Access Token from the authorization
server. The client MUST add a <spanx style="verb">cnf</spanx> object carrying either its raw
public key or a unique identifier for a public key that it has
previously made known to the authorization server. To prove that the
client is in possession of this key, it MUST use the same public key
as in certificate message that is used to establish the DTLS session
with the authorization server.</t>

<t>An example Access Token request from the client to the resource server
is depicted in <xref target="rpk-authorization-message-example"/>.</t>

<figure title="Access Token Request Example for RPK Mode" anchor="rpk-authorization-message-example"><artwork><![CDATA[
   POST coaps://as.example.com/token
   Content-Format: application/cbor
   {
     grant_type:    client_credentials,
     aud:           "tempSensor4711",
     cnf: {
       COSE_Key: {
         kty: EC2,
         crv: P-256,
         x:   h'TODOX',
         y:   h'TODOY'
       }
     }
   }
]]></artwork></figure>

<t>The example shows an Access Token request for the resource identified
by the audience string “tempSensor4711” on the authorization server
using a raw public key.</t>

<t>When the authorization server authorizes a request, it will return an
Access Token and a <spanx style="verb">cnf</spanx> object in the AS-to-Client response. Before
the client initiates the DTLS handshake with the resource server, it
MUST send a <spanx style="verb">POST</spanx> request containing the new Access Token to the
authz-info resource hosted by the resource server. If this operation
yields a positive response, the client SHOULD proceed to establish a
new DTLS channel with the resource server. To use raw public key mode,
the client MUST pass the same public key that was used for
constructing the Access Token with the SubjectPublicKeyInfo structure
in the DTLS handshake as specified in <xref target="RFC7250"/>.</t>

<t>An implementation that supports the RPK mode of this profile MUST at
least support the ciphersuite
TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 <xref target="RFC7251"/> with the ed25519
curve (cf. <xref target="RFC8032"/>, <xref target="I-D.ietf-tls-rfc4492bis"/>).</t>

<t><list style="hanging">
  <t hangText='Note:'>
  According to <xref target="RFC7252"/>, CoAP implementations MUST support the
ciphersuite TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 <xref target="RFC7251"/>
and the NIST P-256 curve. As discussed in <xref target="RFC7748"/>, new ECC
curves have been defined recently that are considered superior to
the so-called NIST curves. The curve that is mandatory to implement
in this specification is said to be efficient and less dangerous
regarding implementation errors than the secp256r1 curve mandated in
<xref target="RFC7252"/>.</t>
</list></t>

<t>The Access Token is constructed by the authorization server such that
the resource server can associate the Access Token with the Client’s
public key. If CBOR web tokens <xref target="I-D.ietf-ace-cbor-web-token"/> are
used as recommended in <xref target="I-D.ietf-ace-oauth-authz"/>, the authorization
server MUST include a <spanx style="verb">COSE_Key</spanx> object in the <spanx style="verb">cnf</spanx> claim of the
Access Token. This <spanx style="verb">COSE_Key</spanx> object MAY contain a reference to a key
for the client that is already known by the resource server (e.g.,
from previous communication). If the authorization server has no
certain knowledge that the Client’s key is already known to the
resource server, the Client’s public key MUST be included in the
Access Token’s <spanx style="verb">cnf</spanx> parameter.</t>

</section>
<section anchor="psk-mode" title="PreSharedKey Mode">

<t>To retrieve an access token for the resource that the client wants to
access, the client MAY include a <spanx style="verb">cnf</spanx> object carrying an identifier
for a symmetric key in its Access Token request to the authorization
server.  This identifier can be used by the authorization server to
determine the session key to construct the proof-of-possession token
and therefore MUST specify a symmetric key that was previously
generated by the authorization server as a session key for the
communication between the client and the resource server.</t>

<t>Depending on the requested token type and algorithm in the Access
Token request, the authorization server adds RS Information to the
response that provides the client with sufficient information to setup
a DTLS channel with the resource server.  For symmetric
proof-of-possession keys (c.f. <xref target="I-D.ietf-ace-oauth-authz"/>), the
client must ensure that the Access Token request is sent over a secure
channel that guarantees authentication, message integrity and
confidentiality.</t>

<t>When the authorization server authorizes the client it returns an
AS-to-Client response with the profile parameter set to <spanx style="verb">coap_dtls</spanx>
and a <spanx style="verb">cnf</spanx> parameter carrying a <spanx style="verb">COSE_Key</spanx> object that contains the
symmetric session key to be used between the client and the resource
server as illustrated in <xref target="at-response"/>.</t>

<!-- msg1 -->

<figure title="Example Access Token response" anchor="at-response"><artwork><![CDATA[
   2.01 Created
   Content-Format: application/cbor
   Location-Path: /token/asdjbaskd
   Max-Age: 86400
   {
      access_token: h'd08343a10...
      (remainder of CWT omitted for brevity)
      token_type:   pop,
      alg:          HS256,
      expires_in:   86400,
      profile:      coap_dtls,
      cnf: {
        COSE_Key: {
          kty: symmetric,
          k: h'73657373696f6e6b6579'
        }
      }
   }
]]></artwork></figure>

<t>In this example, the authorization server returns a 2.01 response
containing a new Access Token.  The information is transferred as a
CBOR data structure as specified in <xref target="I-D.ietf-ace-oauth-authz"/>. The
Max-Age option tells the receiving Client how long this token will be
valid.</t>

<t>A response that declines any operation on the requested resource is
constructed according to <eref target="https://tools.ietf.org/html/rfc6749#section-5.2">Section 5.2 of RFC
6749</eref>, (cf. Section
5.7.3 of <xref target="I-D.ietf-ace-oauth-authz"/>).</t>

<figure title="Example Access Token response with reject" anchor="token-reject"><artwork><![CDATA[
    4.00 Bad Request
    Content-Format: application/cbor
    {
      error: invalid_request
    }
]]></artwork></figure>

<section anchor="psk-dtls-channel" title="DTLS Channel Setup Between C and RS">

<t>When a client receives an Access Token from an authorization server,
it checks if the payload contains an <spanx style="verb">access_token</spanx> parameter and a
<spanx style="verb">cnf</spanx> parameter. With this information the client can initiate
establishment of a new DTLS channel with a resource server. To use
DTLS with pre-shared keys, the client follows the PSK key exchange
algorithm specified in Section 2 of <xref target="RFC4279"/> using the key conveyed
in the <spanx style="verb">cnf</spanx> parameter of the AS response as PSK when constructing the
premaster secret.</t>

<t>In PreSharedKey mode, the knowledge of the session key by the client
and the resource server is used for mutual authentication between both
peers. Therefore, the resource server must be able to determine the
session key from the Access Token. Following the general ACE
authorization framework, the client can upload the Access Token to the
resource server’s authz-info resource before starting the DTLS
handshake. Alternatively, the client MAY provide the most recent
Access Token in the <spanx style="verb">psk_identity</spanx> field of the ClientKeyExchange
message. To do so, the client MUST treat the contents of the
<spanx style="verb">access_token</spanx> field from the AS-to-Client response as opaque data and
not perform any re-coding.</t>

<t>Note: As stated in section 4.2 of <xref target="RFC7925"/>, the PSK identity should
be treated as binary data in the Internet of Things space and not
assumed to have a human-readable form of any sort.</t>

<t>If a resource server receives a ClientKeyExchange message that
contains a <spanx style="verb">psk_identity</spanx> with a length greater zero, it uses the
contents as index for its key store (i.e., treat the contents as key
identifier). The resource server MUST check if it has one or more
Access Tokens that are associated with the specified key. If no valid
Access Token is available for this key, the DTLS session setup is
terminated with an <spanx style="verb">illegal_parameter</spanx> DTLS alert message.</t>

<t>If no key with a matching identifier is found the resource server the
resource server MAY process the decoded contents of the <spanx style="verb">psk_identity</spanx>
field as access token that is stored with the authorization
information endpoint before continuing the DTLS handshake. If the
decoded contents of the <spanx style="verb">psk_identity</spanx> do not yield a valid access
token for the requesting client, the DTLS session setup is terminated
with an <spanx style="verb">illegal_parameter</spanx> DTLS alert message.</t>

<t><list style="hanging">
  <t hangText='Note1: As a resource server cannot provide a client with a meaningful PSK identity hint in'>
  response to the client’s ClientHello message, the resource server
SHOULD NOT send a ServerKeyExchange message.</t>
  <t hangText='Note2:'>
  According to <xref target="RFC7252"/>, CoAP implementations MUST support the
ciphersuite TLS_PSK_WITH_AES_128_CCM_8 <xref target="RFC6655"/>. A client is
therefore expected to offer at least this ciphersuite to the resource server.</t>
</list></t>

<t>This specification assumes that the Access Token is a PoP token as
described in <xref target="I-D.ietf-ace-oauth-authz"/> unless specifically stated
otherwise. Therefore, the Access Token is bound to a symmetric PoP key
that is used as session key between the client and the resource
server.</t>

<t>While the client can retrieve the session key from the contents of the
<spanx style="verb">cnf</spanx> parameter in the AS-to-Client response, the resource server uses
the information contained in the <spanx style="verb">cnf</spanx> claim of the Access Token to
determine the actual session key when no explicit <spanx style="verb">kid</spanx> was provided
in the <spanx style="verb">psk_identity</spanx> field.  Usually, this is done by including a
<spanx style="verb">COSE_Key</spanx> object carrying either a key that has been encrypted with a
shared secret between the authorization server and the resource
server, or a key identifier that can be used by the resource server to
lookup the session key.</t>

<t>Instead of the <spanx style="verb">COSE_Key</spanx> object, the authorization server MAY include
a <spanx style="verb">COSE_Encrypt</spanx> structure to enable the resource server to calculate
the session key from the Access Token. The <spanx style="verb">COSE_Encrypt</spanx> structure
MUST use the <spanx style="emph">Direct Key with KDF</spanx> method as described in <eref target="https://tools.ietf.org/html/rfc8152#section-12.1.2">Section
12.1.2 of RFC
8152</eref>.  The
authorization server MUST include a Context information structure
carrying a PartyU <spanx style="verb">nonce</spanx> parameter carrying the nonce that has been
used by the authorization server to construct the session key.</t>

<t>This specification mandates that at least the key derivation algorithm
<spanx style="verb">HKDF SHA-256</spanx> as defined in <xref target="RFC8152"/> MUST be supported.  This key
derivation function is the default when no <spanx style="verb">alg</spanx> field is included in
the <spanx style="verb">COSE_Encrypt</spanx> structure for the resource server.</t>

</section>
<section anchor="updating-authorization-information" title="Updating Authorization Information">

<t>Usually, the authorization information that the resource server keeps
for a client is updated by uploading a new Access Token as described
in <xref target="update"/>.</t>

<t>If the security association with the resource server still exists and
the resource server has indicated support for session renegotiation
according to <xref target="RFC5746"/>, the new Access Token MAY be used to
renegotiate the existing DTLS session. In this case, the Access Token
is used as <spanx style="verb">psk_identity</spanx> as defined in <xref target="psk-dtls-channel"/>. The
Client MAY also perform a new DTLS handshake according to
<xref target="psk-dtls-channel"/> that replaces the existing DTLS session.</t>

<t>After successful completion of the DTLS handshake the resource server
updates the existing authorization information for the client
according to the new Access Token.</t>

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

<t>This document specifies a profile for the Authentication and
Authorization for Constrained Environments (ACE) framework
<xref target="I-D.ietf-ace-oauth-authz"/>. As it follows this framework’s general
approach, the general security and privacy considerations from section
6 and section 7 also apply to this profile.</t>

<t>Constrained devices that use DTLS <xref target="RFC6347"/> are inherently
vulnerable to Denial of Service (DoS) attacks as the handshake
protocol requires creation of internal state within the device.  This
is specifically of concern where an adversary is able to intercept the
initial cookie exchange and interject forged messages with a valid
cookie to continue with the handshake.</t>

<t><xref target="I-D.tiloca-tls-dos-handshake"/> specifies a TLS extension to prevent
this type of attack which is applicable especially for constrained
environments where the authorization server can act as trust anchor.</t>

</section>
<section anchor="privacy-considerations" title="Privacy Considerations">

<t>An unprotected response to an unauthorized request may disclose
information about the resource server and/or its existing relationship
with the client. It is advisable to include as little information as
possible in an unencrypted response. When a DTLS session between the
client and the resource server already exists, more detailed
information may be included with an error response to provide the
client with sufficient information to react on that particular error.</t>

<t>Note that some information might still leak after DTLS session is
established, due to observable message sizes, the source, and the
destination addresses.</t>

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

<t>The following registrations are done for the ACE OAuth Profile
Registry following the procedure specified in
<xref target="I-D.ietf-ace-oauth-authz"/>.</t>

<t>Note to RFC Editor: Please replace all occurrences of “&SELF;” with
the RFC number of this specification and delete this paragraph.</t>

<t>Profile name: coap_dtls</t>

<t>Profile Description: Profile for delegating client authentication and
authorization in a constrained environment by establishing a Datagram
Transport Layer Security (DTLS) channel between resource-constrained
nodes.</t>

<t>Profile ID:  1</t>

<t>Change Controller:  IESG</t>

<t>Reference:  &SELF;</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='https://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<abstract><t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='2119'/>
<seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>



<reference  anchor="RFC8174" target='https://www.rfc-editor.org/info/rfc8174'>
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
<author initials='B.' surname='Leiba' fullname='B. Leiba'><organization /></author>
<date year='2017' month='May' />
<abstract><t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t></abstract>
</front>
<seriesInfo name='BCP' value='14'/>
<seriesInfo name='RFC' value='8174'/>
<seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>



<reference  anchor="RFC4279" target='https://www.rfc-editor.org/info/rfc4279'>
<front>
<title>Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)</title>
<author initials='P.' surname='Eronen' fullname='P. Eronen' role='editor'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig' role='editor'><organization /></author>
<date year='2005' month='December' />
<abstract><t>This document specifies three sets of new ciphersuites for the Transport Layer Security (TLS) protocol to support authentication based on pre-shared keys (PSKs).  These pre-shared keys are symmetric keys, shared in advance among the communicating parties.  The first set of ciphersuites uses only symmetric key operations for authentication. The second set uses a Diffie-Hellman exchange authenticated with a pre-shared key, and the third set combines public key authentication of the server with pre-shared key authentication of the client.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4279'/>
<seriesInfo name='DOI' value='10.17487/RFC4279'/>
</reference>



<reference  anchor="RFC5746" target='https://www.rfc-editor.org/info/rfc5746'>
<front>
<title>Transport Layer Security (TLS) Renegotiation Indication Extension</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<author initials='M.' surname='Ray' fullname='M. Ray'><organization /></author>
<author initials='S.' surname='Dispensa' fullname='S. Dispensa'><organization /></author>
<author initials='N.' surname='Oskov' fullname='N. Oskov'><organization /></author>
<date year='2010' month='February' />
<abstract><t>Secure Socket Layer (SSL) and Transport Layer Security (TLS) renegotiation are vulnerable to an attack in which the attacker forms a TLS connection with the target server, injects content of his choice, and then splices in a new TLS connection from a client.  The server treats the client's initial TLS handshake as a renegotiation and thus believes that the initial data transmitted by the attacker is from the same entity as the subsequent client data.  This specification defines a TLS extension to cryptographically tie renegotiations to the TLS connections they are being performed over, thus preventing this attack.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5746'/>
<seriesInfo name='DOI' value='10.17487/RFC5746'/>
</reference>



<reference  anchor="RFC6347" target='https://www.rfc-editor.org/info/rfc6347'>
<front>
<title>Datagram Transport Layer Security Version 1.2</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<author initials='N.' surname='Modadugu' fullname='N. Modadugu'><organization /></author>
<date year='2012' month='January' />
<abstract><t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol.  The DTLS protocol provides communications privacy for datagram protocols.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.  This document updates DTLS 1.0 to work with TLS version 1.2.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6347'/>
<seriesInfo name='DOI' value='10.17487/RFC6347'/>
</reference>



<reference  anchor="RFC7252" target='https://www.rfc-editor.org/info/rfc7252'>
<front>
<title>The Constrained Application Protocol (CoAP)</title>
<author initials='Z.' surname='Shelby' fullname='Z. Shelby'><organization /></author>
<author initials='K.' surname='Hartke' fullname='K. Hartke'><organization /></author>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<date year='2014' month='June' />
<abstract><t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t><t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t></abstract>
</front>
<seriesInfo name='RFC' value='7252'/>
<seriesInfo name='DOI' value='10.17487/RFC7252'/>
</reference>



<reference  anchor="RFC7925" target='https://www.rfc-editor.org/info/rfc7925'>
<front>
<title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig' role='editor'><organization /></author>
<author initials='T.' surname='Fossati' fullname='T. Fossati'><organization /></author>
<date year='2016' month='July' />
<abstract><t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t><t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery.  The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t></abstract>
</front>
<seriesInfo name='RFC' value='7925'/>
<seriesInfo name='DOI' value='10.17487/RFC7925'/>
</reference>



<reference  anchor="RFC8152" target='https://www.rfc-editor.org/info/rfc8152'>
<front>
<title>CBOR Object Signing and Encryption (COSE)</title>
<author initials='J.' surname='Schaad' fullname='J. Schaad'><organization /></author>
<date year='2017' month='July' />
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.</t></abstract>
</front>
<seriesInfo name='RFC' value='8152'/>
<seriesInfo name='DOI' value='10.17487/RFC8152'/>
</reference>



<reference anchor="I-D.ietf-ace-oauth-authz">
<front>
<title>Authentication and Authorization for Constrained Environments (ACE)</title>

<author initials='L' surname='Seitz' fullname='Ludwig Seitz'>
    <organization />
</author>

<author initials='G' surname='Selander' fullname='Goeran Selander'>
    <organization />
</author>

<author initials='E' surname='Wahlstroem' fullname='Erik Wahlstroem'>
    <organization />
</author>

<author initials='S' surname='Erdtman' fullname='Samuel Erdtman'>
    <organization />
</author>

<author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
    <organization />
</author>

<date month='February' day='13' year='2018' />

<abstract><t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments.  The framework is based on a set of building blocks including OAuth 2.0 and CoAP, thus making a well-known and widely used authorization solution suitable for IoT devices.  Existing specifications are used where possible, but where the constraints of IoT devices require it, extensions are added and profiles are defined.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-ace-oauth-authz-10' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-ace-oauth-authz-10.txt' />
</reference>



<reference anchor="I-D.tiloca-tls-dos-handshake">
<front>
<title>Extension for protecting (D)TLS handshakes against Denial of Service</title>

<author initials='M' surname='Tiloca' fullname='Marco Tiloca'>
    <organization />
</author>

<author initials='L' surname='Seitz' fullname='Ludwig Seitz'>
    <organization />
</author>

<author initials='M' surname='Hoeve' fullname='Maarten Hoeve'>
    <organization />
</author>

<author initials='O' surname='Bergmann' fullname='Olaf Bergmann'>
    <organization />
</author>

<date month='October' day='28' year='2017' />

<abstract><t>This document describes an extension for TLS and DTLS to protect the server from Denial of Service attacks against the handshake protocol, carried out by an on-path adversary.  The extension includes a nonce and a Message Authentication Code (MAC) over that nonce, encoded as a Handshake Token that a Trust Anchor entity computes and provides to the client.  The server registered at the Trust Anchor verifies the MAC to determine whether continuing or aborting the handshake.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-tiloca-tls-dos-handshake-01' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-tiloca-tls-dos-handshake-01.txt' />
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC6655" target='https://www.rfc-editor.org/info/rfc6655'>
<front>
<title>AES-CCM Cipher Suites for Transport Layer Security (TLS)</title>
<author initials='D.' surname='McGrew' fullname='D. McGrew'><organization /></author>
<author initials='D.' surname='Bailey' fullname='D. Bailey'><organization /></author>
<date year='2012' month='July' />
<abstract><t>This memo describes the use of the Advanced Encryption Standard (AES) in the Counter with Cipher Block Chaining - Message Authentication Code (CBC-MAC) Mode (CCM) of operation within Transport Layer Security (TLS) and Datagram TLS (DTLS) to provide confidentiality and data origin authentication.  The AES-CCM algorithm is amenable to compact implementations, making it suitable for constrained environments.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6655'/>
<seriesInfo name='DOI' value='10.17487/RFC6655'/>
</reference>



<reference  anchor="RFC7250" target='https://www.rfc-editor.org/info/rfc7250'>
<front>
<title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
<author initials='P.' surname='Wouters' fullname='P. Wouters' role='editor'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig' role='editor'><organization /></author>
<author initials='J.' surname='Gilmore' fullname='J. Gilmore'><organization /></author>
<author initials='S.' surname='Weiler' fullname='S. Weiler'><organization /></author>
<author initials='T.' surname='Kivinen' fullname='T. Kivinen'><organization /></author>
<date year='2014' month='June' />
<abstract><t>This document specifies a new certificate type and two TLS extensions for exchanging raw public keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS).  The new certificate type allows raw public keys to be used for authentication.</t></abstract>
</front>
<seriesInfo name='RFC' value='7250'/>
<seriesInfo name='DOI' value='10.17487/RFC7250'/>
</reference>



<reference  anchor="RFC7251" target='https://www.rfc-editor.org/info/rfc7251'>
<front>
<title>AES-CCM Elliptic Curve Cryptography (ECC) Cipher Suites for TLS</title>
<author initials='D.' surname='McGrew' fullname='D. McGrew'><organization /></author>
<author initials='D.' surname='Bailey' fullname='D. Bailey'><organization /></author>
<author initials='M.' surname='Campagna' fullname='M. Campagna'><organization /></author>
<author initials='R.' surname='Dugal' fullname='R. Dugal'><organization /></author>
<date year='2014' month='June' />
<abstract><t>This memo describes the use of the Advanced Encryption Standard (AES) in the Counter and CBC-MAC Mode (CCM) of operation within Transport Layer Security (TLS) to provide confidentiality and data-origin authentication.  The AES-CCM algorithm is amenable to compact implementations, making it suitable for constrained environments, while at the same time providing a high level of security.  The cipher suites defined in this document use Elliptic Curve Cryptography (ECC) and are advantageous in networks with limited bandwidth.</t></abstract>
</front>
<seriesInfo name='RFC' value='7251'/>
<seriesInfo name='DOI' value='10.17487/RFC7251'/>
</reference>



<reference  anchor="RFC7748" target='https://www.rfc-editor.org/info/rfc7748'>
<front>
<title>Elliptic Curves for Security</title>
<author initials='A.' surname='Langley' fullname='A. Langley'><organization /></author>
<author initials='M.' surname='Hamburg' fullname='M. Hamburg'><organization /></author>
<author initials='S.' surname='Turner' fullname='S. Turner'><organization /></author>
<date year='2016' month='January' />
<abstract><t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS).  These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t></abstract>
</front>
<seriesInfo name='RFC' value='7748'/>
<seriesInfo name='DOI' value='10.17487/RFC7748'/>
</reference>



<reference  anchor="RFC8032" target='https://www.rfc-editor.org/info/rfc8032'>
<front>
<title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
<author initials='S.' surname='Josefsson' fullname='S. Josefsson'><organization /></author>
<author initials='I.' surname='Liusvaara' fullname='I. Liusvaara'><organization /></author>
<date year='2017' month='January' />
<abstract><t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA).  The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves.  An example implementation and test vectors are provided.</t></abstract>
</front>
<seriesInfo name='RFC' value='8032'/>
<seriesInfo name='DOI' value='10.17487/RFC8032'/>
</reference>



<reference anchor="I-D.ietf-tls-rfc4492bis">
<front>
<title>Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS) Versions 1.2 and Earlier</title>

<author initials='Y' surname='Nir' fullname='Yoav Nir'>
    <organization />
</author>

<author initials='S' surname='Josefsson' fullname='Simon Josefsson'>
    <organization />
</author>

<author initials='M' surname='Pegourie-Gonnard' fullname='Manuel Pegourie-Gonnard'>
    <organization />
</author>

<date month='May' day='5' year='2017' />

<abstract><t>This document describes key exchange algorithms based on Elliptic Curve Cryptography (ECC) for the Transport Layer Security (TLS) protocol.  In particular, it specifies the use of Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) key agreement in a TLS handshake and the use of Elliptic Curve Digital Signature Algorithm (ECDSA) and Edwards Digital Signature Algorithm (EdDSA) as authentication mechanisms.  This document obsoletes and replaces RFC 4492.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tls-rfc4492bis-17' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tls-rfc4492bis-17.txt' />
</reference>



<reference anchor="I-D.ietf-ace-cbor-web-token">
<front>
<title>CBOR Web Token (CWT)</title>

<author initials='M' surname='Jones' fullname='Michael Jones'>
    <organization />
</author>

<author initials='E' surname='Wahlstroem' fullname='Erik Wahlstroem'>
    <organization />
</author>

<author initials='S' surname='Erdtman' fullname='Samuel Erdtman'>
    <organization />
</author>

<author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
    <organization />
</author>

<date month='February' day='2' year='2018' />

<abstract><t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties.  The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR) and CBOR Object Signing and Encryption (COSE) is used for added application layer security protection.  A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value.  CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-ace-cbor-web-token-12' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-ace-cbor-web-token-12.txt' />
</reference>




    </references>


<!--  LocalWords:  Datagram CoAP CoRE DTLS introducer URI
 -->
<!--  LocalWords:  namespace Verifier JSON timestamp timestamps PSK
 -->
<!--  LocalWords:  decrypt UTC decrypted whitespace preshared HMAC
-->

<!-- Local Variables: -->
<!-- coding: utf-8 -->
<!-- ispell-local-dictionary: "american" -->
<!-- End: -->



  </back>

<!-- ##markdown-source:
H4sIACpznVoAA9V97XbbRpbg/3qKWuecjTRNMpIsy7a206cVWY61sSOtZE9m
NukjFYEiiRYIcFCgZEbtfZp5hnmBfrG9H/UJgrLSfZLu4cmJKRCounXrfn8U
hsOhyOq8qKaHctlOhi+EaIu21IfylWrVtFFz+b5RlVnUTSvfqpVu5KXOlk3R
ruTWq/dvL7fleVNPilLLSd3Io2U701VbZKot6kqqKqdLdVP8zFfwpuO6Mm2j
ikrn8qS6LZq6msNDRm4dHZ9sCzUeN/r2EG47Oh/iFCKvs0rNAaa8UZN2WGgA
VGV6mLelGSo7vh6WqtWmFTn8cyj3dnZfDHeeDneeCQBGT+tmdShNmwtRLJpD
2TZL0+7t7Lzc2ROq0erQL0vc1c3NtKmXi0MJ8Mgf4E9Aj/wWL4kbvYLf80N5
WrW6qXQ7fIUwCWFaWOyVKusKJl9pIxbFofyxrbOBNIC7Rk8MfFvN8cufhGCo
D4UcCgmfojIAwUh+q5scnsVLvOLLVk9UVej4l7qBzfpQFbe6MUX71/9s5TeN
BgzK9//3lG4A7GrdHsrz2rQTlc3k06c7+/s79FsGSzy0D/CFOsfdHu69ePrs
pb2yrFpEF8w5V9WKLi5mtLLf7b8c7u/tDvcAuwdPX+4c0I96roryUE4Jxj+2
PxcjgDFZ29lIfqObKQxXRas7K9UkvQ7PwXKZWP5pFrkfL3Jswe1d5jEss246
qzxWjWkB8viXf6I93NuNl5epcd27tG9HwCIlELluorV9+9f/AvGQ/kJrO2mK
zJi6ShbzWjV//a8pCJZKHkQr+a4A7okWsnuwL1/spOu4vNO5Xa2jthpmHhk7
8x+1nXCU1fME8LcIeNH+HEH9dpnfFdPoMoF8cXp5Ii9Pjy8TmC+zmdalvv3r
f05he3afR3C/XVZ5BPbe3lP5/LNglzQ3wA1z/7Ep4IsQFVJGC8QAAkFevD7e
2919ab++2H2+b7/u7z13V5893z+wXw+e7j+3X5/vPdtzX1/uPfMj8NXT4auR
F501CiCSnT+739qirDM1RJma12Y4A7SamboBmERRTToQHhw8exZm3Qlfd93X
5/svHAA7T1MAcIpmku3vv9wbF2YNtmxcN8M7PR629Y2u4GeBKgUQTmjEz+XJ
29eH8smPMPjw3+DzpydCDIdDqcaoWDIQx+9nhZFmobNi4pRRriegcoxUchFp
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
pMp5xP8PylDcnF95AAA=

-->

</rfc>

