<?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.3 -->

<!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-00" 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="2017" month="June" day="08"/>

    <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. 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 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 PSK handshake 
<xref target="RFC4279"/> and the DTLS handshake with Raw Public Keys (RPK) <xref target="RFC7250"/>.</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>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-03#section-8.1">section 8.1 of draft-ietf-ace-oauth-authz.</eref></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”, “MAY”, and “OPTIONAL” in this
document are to be interpreted as described in RFC 2119 <xref target="RFC2119"/>.</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 C and 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 AS for
a protected resource hosted on 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, C MAY
send an initial Unauthorized Resource Request message to RS.  RS then
denies the request and sends the address of its AS back to C.</t>

<t>Instead of the initial Unauthorized Resource Request message, C MAY
look up the desired resource in a
resource directory (cf. <xref target="I-D.ietf-core-resource-directory"/>).</t>

<t>Once C knows AS’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"/>.
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 AS decides that the request is to be authorized it
generates an access token response for 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 C and RS.
Is also adds a <spanx style="verb">cnf</spanx> parameter with additional data for the establishment of a
secure DTLS channel between C and RS.  The semantics of the ‘cnf’ parameter depend on the type of key used between C and RS, see <xref target="rpk-mode"/> and <xref target="psk-mode"/>.</t>

<t>The Access Token returned by AS then can be used by C to establish a
new DTLS session with RS. When C intends to use asymmetric
cryptography in the DTLS handshake with RS, C MUST upload the Access Token to
the <spanx style="verb">/authz-info</spanx> resource on RS before starting the DTLS handshake, as
described in <eref target="https://tools.ietf.org/html/draft-ietf-ace-oauth-authz-03#section-8.1">section 8.1 of draft-ietf-ace-oauth-authz</eref>.  If only symmetric cryptography is used between C and RS, 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 C has retrieved the Access Token from 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 RS and AS so that AS can
provide C and RS with sufficient information to establish a secure
channel, and convey
authorization information specific for this communication relationship
to RS.</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="rreq" title="Unauthorized Resource Request Message">

<t>The optional Unauthorized Resource Request message is a request for a resource
hosted by RS for which no proper authorization is granted. RS MUST
treat any CoAP request for a resource other than <spanx style="verb">/authz-info</spanx>
as Unauthorized Resource Request message when any of the
following holds:</t>

<t><list style="symbols">
  <t>The request has been received on an unprotected channel.</t>
  <t>RS has no valid access token for the sender of the
request regarding the requested action on that resource.</t>
  <t>RS has a valid access token for the sender of the
request, but this does not allow the requested action on the requested
resource.</t>
</list></t>

<t>Note: These conditions ensure that RS can handle requests autonomously
once access was granted and a secure channel has been established
between C and RS. The resource <spanx style="verb">/authz-info</spanx> is publicly accessible
to be able to upload new access tokens to RS (cf. <xref target="I-D.ietf-ace-oauth-authz"/>).</t>

<t>Unauthorized Resource Request messages MUST be denied with a client error
response. In this response, the Resource Server SHOULD provide
proper AS Information to enable the Client to request an
access token from RS’s Authorization Server as described in <xref target="as-info"/>.</t>

<t>The response code MUST be 4.01 (Unauthorized) in case the sender of
the Unauthorized Resource Request message is not authenticated, or if
RS has no valid access token for C. If RS has an access token for C
but not for the resource that C has requested, RS
MUST reject the request with a 4.03 (Forbidden). If RS has
an access token for C but it does not cover the action C
requested on the resource, RS MUST reject the request with a 4.05
(Method Not Allowed).</t>

<t><list style="hanging">
  <t hangText='Note:'>
  The use of the response codes 4.03 and 4.05 is intended to prevent
infinite loops where a dumb Client optimistically tries to access
a requested resource with any access token received from AS.
As malicious clients could pretend to be C to determine C’s
privileges, these detailed response codes must be used only when a
certain level of security is already available which can be achieved
only when the Client is authenticated.</t>
</list></t>

</section>
<section anchor="as-info" title="AS Information">

<t>The AS Information is sent by RS as a response to an
Unauthorized Resource Request message (see <xref target="rreq"/>) to point the sender of the
Unauthorized Resource Request message to RS’s AS. The AS
information is a set of attributes containing an absolute URI (see
Section 4.3 of <xref target="RFC3986"/>) that specifies the AS in charge of RS.</t>

<t><list style="hanging">
  <t hangText='TBD: We might not want to add more parameters in the AS information because'>
  this would not only reveal too much information about RS’s
capabilities to unauthorized peers but also be of little value as C
cannot really trust that information anyway.</t>
</list></t>

<t>The message MAY also contain a nonce generated by RS to ensure freshness
in case that the RS and AS do not have synchronized clocks.</t>

<t><xref target="as-info-payload"/> shows an example for an AS Information message
payload using CBOR <xref target="RFC7049"/> diagnostic notation.</t>

<figure title="AS Information payload example" anchor="as-info-payload"><artwork><![CDATA[
    4.01 Unauthorized
    Content-Format: application/ace+cbor
    {AS: "coaps://as.example.com/token",
     nonce: h'e0a156bb3f'}
]]></artwork></figure>

<t>In this example, the attribute AS points the receiver of this message
to the URI “coaps://as.example.com/token” to request access
permissions. The originator of the AS Information payload
(i.e., RS) uses a local clock that is loosely synchronized with a time
scale common between RS and AS (e.g., wall clock time). Therefore, it has included a parameter <spanx style="verb">nonce</spanx> for replay attack prevention (c.f. <xref target="nonce"/>).</t>

<t><list style="hanging">
  <t hangText='Note: There is an ongoing discussion how freshness of access tokens'>
  can be achieved in constrained environments. This specification for
now assumes that RS and AS do not have a common understanding of time that
allows RS to achieve its security objectives without explicitly adding
a nonce.</t>
</list></t>

<t>The examples in this document are written in CBOR diagnostic notation
to improve readability. <xref target="as-info-cbor"/> illustrates the binary
encoding of the message payload shown in <xref target="as-info-payload"/>.</t>

<figure title="AS Information example encoded in CBOR" anchor="as-info-cbor"><artwork><![CDATA[
a2                                   # map(2)
    00                               # unsigned(0) (=AS)
    78 1c                            # text(28)
       636f6170733a2f2f61732e657861
       6d706c652e636f6d2f746f6b656e  # "coaps://as.example.com/token"
    05                               # unsigned(5) (=nonce)
    45                               # bytes(5)
       e0a156bb3f
]]></artwork></figure>

</section>
<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,
C is authorized to access resources covered by the Access Token it has
uploaded to the <spanx style="verb">/authz-info</spanx> resource hosted by RS.</t>

<t>On the server side (i.e., RS), successful establishment of the DTLS
channel binds C to the access token, functioning as a proof-of-possession associated key.  Any request that RS receives on this channel MUST be checked against these authorization rules that are associated with the identity of C.  Incoming CoAP requests that are not authorized
with respect to any Access Token that is associated with C MUST be
rejected by RS with 4.01 response as described in <xref target="rreq"/>.</t>

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

<t>RS 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 RS.</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</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>C cannot always know a priori if a Authorized Resource Request
will succeed. If C repeatedly gets AS Information messages (cf. <xref target="as-info"/>) as response
to its requests, it SHOULD request a new Access Token from AS in order to
continue communication with RS.</t>

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

<t>The Client can update the authorization information stored at
RS at any time. To do so, the Client requests from AS a new Access Token
for the intended action on the respective resource and uploads
this Access Token to the <spanx style="verb">/authz-info</spanx> resource on RS.</t>

<t><xref target="update-overview"/> depicts the message flow where C requests a new
Access Token after a security association between C and RS has been
established using this protocol.</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>
<section anchor="rpk-mode" title="RawPublicKey Mode">

<t>To retrieve an access token for the resource that C wants to access, C
requests an Access Token from AS. C 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 AS.</t>

<t>An example Access Token request from C to RS 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 AS  using a raw public key.</t>

<t>When AS authorizes a request, it will return an Access Token and a
<spanx style="verb">cnf</spanx> object in the AS-to-Client response. Before C initiates the DTLS
handshake with RS, it MUST send a <spanx style="verb">POST</spanx> request containing the new
Access Token to the <spanx style="verb">/authz-info</spanx> resource hosted by RS. If this
operation yields a positive response, C SHOULD proceed to establish a
new DTLS channel with RS. To use raw public key mode, C 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><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. C is therefore expected to offer at least
this ciphersuite to RS.</t>
</list></t>

<t>The Access Token is constructed by AS such that RS 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 AS 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 C that is already known by RS (e.g.,
from previous communication). If the AS has no certain knowledge that
the Client’s key is already known to RS, 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 C wants to access, C
MAY include a <spanx style="verb">cnf</spanx> object carrying an identifier for a symmetric key
in its Access Token request to AS.  This identifier can be used by AS
to determine the session key to construct the proof-of-possession
token and therefore MUST specify a symmetric key that was previously
generated by AS as a session key for the communication between C and
RS.</t>

<t>Depending on the requested token type and algorithm in the Access
Token request, AS adds RS Information to the response that provides C
with sufficient information to setup a DTLS channel with RS.  For
symmetric proof-of-possession keys
(c.f. <xref target="I-D.ietf-ace-oauth-authz"/>), C must ensure that the Access
Token request is sent over a secure channel that guarantees
authentication, message integrity and confidentiality. This could be,
e.g., a DTLS channel (for “coaps”) or an OSCOAP
<xref target="I-D.ietf-core-object-security"/> exchange (for “coap”).</t>

<t>When AS authorizes C 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 C and RS 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: b64'SlAV32hkKG ...
      (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, AS 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.5.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 C receives an Access Token from AS, 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 C can initiate establishment of a new DTLS channel with
RS. To use DTLS with pre-shared keys, C 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 C and RS is
used for mutual authentication between both peers. Therefore, RS must
be able to determine the session key from the Access Token. Following
the general ACE authorization framework, C can upload the Access Token
to RS’s <spanx style="verb">/authz-info</spanx> resource before starting the DTLS
handshake. Alternatively, C MAY provide the most recent base64-encoded
Access Token in the <spanx style="verb">psk_identity</spanx> field of the ClientKeyExchange
message.</t>

<t>If RS receives a ClientKeyExchange message that contains a
<spanx style="verb">psk_identity</spanx> with a length greater zero, it MUST base64-decode its
contents and check if the <spanx style="verb">psk_identity</spanx> field contains a key
identifier or Access Token according to the following CDDL
specification:</t>

<figure><artwork><![CDATA[
psk_identity = {
  kid => bstr // access_token => bstr
}
]]></artwork></figure>

<t>The identifiers for the map keys <spanx style="verb">kid</spanx> and <spanx style="verb">access_token</spanx> are used
with the same meaning as in COSE <xref target="I-D.ietf-cose-msg"></xref> and the ACE
framework <xref target="I-D.ietf-ace-oauth-authz"></xref> respectively. The identifier
<spanx style="verb">kid</spanx> thus has the value 4 (see <xref target="I-D.ietf-cose-msg"/>), and the
identifier <spanx style="verb">access_token</spanx> has the value 19, respectively (see
<xref target="I-D.ietf-ace-oauth-authz"/>).</t>

<t>If the <spanx style="verb">psk_identity</spanx> field contains a key identifier, the receiver
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 instead the <spanx style="verb">psk_identity</spanx> field contains an Access Token, it must
processed in the same way as an Access Token that has been uploaded to
its <spanx style="verb">/authz-info</spanx> resource. In this case, RS continues processing the
ClientKeyExchange message if the contents of the <spanx style="verb">psk_identity</spanx>
contained a valid Access Token. Otherwise, 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 RS cannot provide C with a meaningful PSK identity hint in'>
  response to C’s ClientHello message, RS 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"/>. C is
therefore expected to offer at least this ciphersuite to RS.</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 C and RS.</t>

<t>While C can retrieve the session key from the contents of the <spanx style="verb">cnf</spanx>
parameter in the AS-to-Client response, RS 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 AS
and RS, or a key identifier that can be used by RS to lookup the
session key.</t>

<t>Instead of the <spanx style="verb">COSE_Key</spanx> object, AS MAY include a <spanx style="verb">COSE_Encrypt</spanx>
structure to enable RS 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/draft-ietf-cose-msg-23#section-12.1.2">Section 12.1.2 of draft-ietf-cose-msg</eref>.
The AS MUST include a Context information structure carrying a
PartyU <spanx style="verb">nonce</spanx> parameter carrying the nonce that has been used by AS
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="I-D.ietf-cose-msg"/> 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 RS.</t>

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

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

<t>If the security association with RS still exists and RS 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 RS updates the
existing authorization information for C according to the
new Access Token.</t>

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

<t>TODO</t>

<section anchor="unprotected-as-information" title="Unprotected AS Information">

<t>Initially, no secure channel exists to protect the communication
between C and RS. Thus, C cannot determine if the AS information
contained in an unprotected response from RS to an unauthorized
request (c.f. <xref target="as-info"/>) is authentic. It is therefore advisable to
provide C with a (possibly hard-coded) list of trustworthy
authorization servers. AS information responses referring to a URI not
listed there would be ignored.</t>

</section>
<section anchor="nonce" title="Use of Nonces for Replay Protection">

<t>RS may add a nonce to the AS Information message sent as a response to
an unauthorized request to ensure freshness of an Access Token
subsequently presented to RS. While a timestamp of some granularity
would be sufficient to protect against replay attacks, using
randomized nonce is preferred to prevent disclosure of information
about RS’s internal clock characteristics.</t>

</section>
<section anchor="privacy" title="Privacy">

<t>An unprotected response to an unauthorized request (c.f. <xref target="as-info"/>)
may disclose information about RS and/or its existing relationship
with C. It is advisable to include as little information as possible
in an unencrypted response. When a DTLS session between C and RS
already exists, more detailed information may be included with an
error response to provide C with sufficient information to react on
that particular error.</t>

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

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

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2119" target='http://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="RFC3986" target='http://www.rfc-editor.org/info/rfc3986'>
<front>
<title>Uniform Resource Identifier (URI): Generic Syntax</title>
<author initials='T.' surname='Berners-Lee' fullname='T. Berners-Lee'><organization /></author>
<author initials='R.' surname='Fielding' fullname='R. Fielding'><organization /></author>
<author initials='L.' surname='Masinter' fullname='L. Masinter'><organization /></author>
<date year='2005' month='January' />
<abstract><t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='STD' value='66'/>
<seriesInfo name='RFC' value='3986'/>
<seriesInfo name='DOI' value='10.17487/RFC3986'/>
</reference>



<reference  anchor="RFC4279" target='http://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='http://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='http://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='http://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="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='March' day='13' year='2017' />

<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-06' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-ace-oauth-authz-06.txt' />
</reference>




    </references>

    <references title='Informative References'>





<reference  anchor="RFC6655" target='http://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="RFC7049" target='http://www.rfc-editor.org/info/rfc7049'>
<front>
<title>Concise Binary Object Representation (CBOR)</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'><organization /></author>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></author>
<date year='2013' month='October' />
<abstract><t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.  These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t></abstract>
</front>
<seriesInfo name='RFC' value='7049'/>
<seriesInfo name='DOI' value='10.17487/RFC7049'/>
</reference>



<reference  anchor="RFC7250" target='http://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='http://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="I-D.ietf-core-object-security">
<front>
<title>Object Security of CoAP (OSCOAP)</title>

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

<author initials='J' surname='Mattsson' fullname='John Mattsson'>
    <organization />
</author>

<author initials='F' surname='Palombini' fullname='Francesca Palombini'>
    <organization />
</author>

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

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

<abstract><t>This document defines Object Security of CoAP (OSCOAP), a method for application layer protection of the Constrained Application Protocol (CoAP), using the CBOR Object Signing and Encryption (COSE).  OSCOAP provides end-to-end encryption, integrity and replay protection to CoAP payload, options, and header fields, as well as a secure message binding.  OSCOAP is designed for constrained nodes and networks and can be used across intermediaries and over any layer.  The use of OSCOAP is signaled with the CoAP option Object-Security, also defined in this document.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-core-object-security-03' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-core-object-security-03.txt' />
</reference>



<reference anchor="I-D.ietf-core-resource-directory">
<front>
<title>CoRE Resource Directory</title>

<author initials='Z' surname='Shelby' fullname='Zach Shelby'>
    <organization />
</author>

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

<author initials='C' surname='Bormann' fullname='Carsten Bormann'>
    <organization />
</author>

<author initials='P' surname='Stok' fullname='Peter Van der Stok'>
    <organization />
</author>

<date month='March' day='13' year='2017' />

<abstract><t>In many M2M applications, direct discovery of resources is not practical due to sleeping nodes, disperse networks, or networks where multicast traffic is inefficient.  These problems can be solved by employing an entity called a Resource Directory (RD), which hosts descriptions of resources held on other servers, allowing lookups to be performed for those resources.  This document specifies the web interfaces that a Resource Directory supports in order for web servers to discover the RD and to register, maintain, lookup and remove resource descriptions.  Furthermore, new link attributes useful in conjunction with an RD are defined.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-core-resource-directory-10' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-core-resource-directory-10.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='June' day='5' year='2017' />

<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-05' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-ace-cbor-web-token-05.txt' />
</reference>



<reference anchor="I-D.ietf-cose-msg">
<front>
<title>CBOR Object Signing and Encryption (COSE)</title>

<author initials='J' surname='Schaad' fullname='Jim Schaad'>
    <organization />
</author>

<date month='November' day='22' year='2016' />

<abstract><t>Concise Binary Object Representation (CBOR) is 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) specification.  This specification describes how to create and process signature, message authentication codes and encryption using CBOR for serialization.  This specification additionally specifies how to represent cryptographic keys using CBOR.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-cose-msg-24' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-cose-msg-24.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:
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
oS3YDLisKtuqvnyRxTzi/wFKyF8UwW0AAA==

-->

</rfc>

