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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3748 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3748.xml">
<!ENTITY RFC7228 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
<!ENTITY RFC8152 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8152.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8446 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
<!ENTITY I-D.ietf-lake-reqs SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-reqs.xml">
<!ENTITY I-D.ietf-ace-oauth-authz SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oauth-authz.xml">
<!ENTITY I-D.mattsson-cose-cbor-cert-compress SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.mattsson-cose-cbor-cert-compress.xml">
<!ENTITY I-D.irtf-cfrg-hpke SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.irtf-cfrg-hpke.xml">
<!ENTITY I-D.selander-ace-coap-est-oscore SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.selander-ace-coap-est-oscore.xml">
<!ENTITY I-D.ietf-6tisch-minimal-security SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-6tisch-minimal-security.xml">
<!ENTITY I-D.ietf-lake-edhoc SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-edhoc.xml">
<!ENTITY I-D.palombini-core-oscore-edhoc SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.palombini-core-oscore-edhoc.xml">
]>

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

<rfc ipr="trust200902" docName="draft-selander-ace-ake-authz-03" category="info">

  <front>
    <title abbrev="Lightweight Authorization for AKE.">Lightweight Authorization for Authenticated Key Exchange.</title>

    <author initials="G." surname="Selander" fullname="Goeran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Mattsson" fullname="John Preuss Mattsson">
      <organization>Ericsson AB</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Vucinic" fullname="Malisa Vucinic">
      <organization>INRIA</organization>
      <address>
        <email>malisa.vucinic@inria.fr</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <author initials="A." surname="Schellenbaum" fullname="Aurelio Schellenbaum">
      <organization>Institute of Embedded Systems, ZHAW</organization>
      <address>
        <email>aureliorubendario.schellenbaum@zhaw.ch</email>
      </address>
    </author>

    <date year="2021" month="May" day="04"/>

    
    
    

    <abstract>


<t>This document describes a procedure for augmenting the authenticated Diffie-Hellman key exchange EDHOC with third party assisted authorization targeting constrained IoT deployments (RFC 7228).</t>



    </abstract>


  </front>

  <middle>


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

<t>For constrained IoT deployments <xref target="RFC7228"/> the overhead contributed by security protocols may be significant which motivates the specification of lightweight protocols that are optimizing, in particular, message overhead (see <xref target="I-D.ietf-lake-reqs"/>).
This document describes a procedure for augmenting the lightweight authenticated Diffie-Hellman key exchange EDHOC <xref target="I-D.ietf-lake-edhoc"/> with third party assisted authorization.</t>

<t>The procedure involves a device, a domain authenticator and an authorization server.
The device and authenticator perform mutual authentication and authorization, assisted by the authorization server which provides relevant authorization information to the device (a “voucher”) and to the authenticator.</t>

<t>The protocol assumes that authentication between device and authenticator is performed with EDHOC, and defines the integration of a lightweight authorization procedure using the Auxiliary Data defined in EDHOC.</t>

<t>In this document we consider the target interaction to be “enrollment”, for example certificate enrollment (such as <xref target="I-D.selander-ace-coap-est-oscore"/>) or joining a network for the first time (e.g. <xref target="I-D.ietf-6tisch-minimal-security"/>), but it can be applied to authorize other target interactions.</t>

<t>The protocol enables a low message count by performing authorization and enrollment in parallel with authentication, instead of in sequence which is common for network access.
It further reuses protocol elements from EDHOC leading to reduced message sizes on constrained links.</t>

<t>This protocol is applicable to a wide variety of settings, and can be mapped to different authorization architectures.
This document specifies a profile of the ACE framework <xref target="I-D.ietf-ace-oauth-authz"/>.
Other settings such as EAP <xref target="RFC3748"/> are out of scope for this specification.</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>

</section>
</section>
<section anchor="prob-desc" title="Problem Description">

<t>The (potentially constrained) device wants to enroll into a domain over a constrained link.
The device authenticates and enforces authorization of the (non-constrained) domain authenticator with the help of a voucher, and makes the enrollment request.
The domain authenticator authenticates the device and authorizes its enrollment.
Authentication between device and domain authenticator is made with the lightweight authenticated Diffie-Hellman key exchange protocol EDHOC  <xref target="I-D.ietf-lake-edhoc"/>.
The procedure is assisted by a (non-constrained) authorization server located in a non-constrained network behind the domain authenticator providing information to the device and to the domain authenticator as part of the protocol.</t>

<t>The objective of this document is to specify such a protocol which is lightweight over the constrained link and reuses elements of EDHOC. See illustration in <xref target="fig-overview"/>.</t>

<figure title="Overview of message flow. Link between U anv V is constrained but link between V and W is not. Voucher Info and Voucher are sent in EDHOC Auxiliary Data." anchor="fig-overview"><artwork align="center"><![CDATA[
                   Voucher
             EDHOC  Info
+----------+  |    |   +---------------+  Voucher  +---------------+
|          |  |    |   |               |  Request  |               |
|  Device  |--|----o-->|    Domain     |---------->| Authorization |
|          |<-|---o----| Authenticator |<----------|     Server    |
|    (U)   |--|---|--->|      (V)      |  Voucher  |       (W)     |
|          |      |    |               |  Response |               |
+----------+      |    +---------------+           +---------------+
                  Voucher

]]></artwork></figure>

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

<section anchor="device" title="Device">

<t>The device is pre-provisioned with an identity ID_U and asymmetric key credentials: a private key, a public key (PK_U), and optionally a public key certificate (Cert_PK_U), issued by a trusted third party such as e.g. the device manufacturer, used to authenticate to the domain authenticator. ID_U may be a reference or pointer to the certificate.</t>

<t>The device is also provisioned with information about its authorization server:</t>

<t><list style="symbols">
  <t>At least one static public DH key of the authorization server (G_W) used to ensure secure communication with the device (see <xref target="U-W"/>).</t>
  <t>Location information about the authorization server (LOC_W), e.g. its domain name. This information may be available in the device certificate Cert_PK_U.</t>
</list></t>

</section>
<section anchor="domain-auth" title="Domain Authenticator">

<t>The domain authenticator has a private key and a corresponding public key PK_V used to authenticate to the device.</t>

<t>The domain authenticator needs to be able to locate the authorization server of the device for which LOC_W is expected to be sufficient. The communication between domain authenticator and authorization server is assumed to be mutually authenticated and protected; authentication credentials and communication security is out of scope, except for as specified below in this section.</t>

<t>The domain authenticator may in principle use differents credentials for authenticating to the authorization server and to the device, for which PK_V is used. However, the domain authenticator MUST prove possession of private key of PK_V to the authorization server since the authorization server is asserting (by means of the voucher to the device) that this credential belongs to the domain authenticator.</t>

<t>In this version of the draft it is assumed that the domain authenticator authenticates to the authorization server with PK_V using some authentication protocol providing proof of possession of the private key, for example TLS 1.3 <xref target="RFC8446"/>. A future version of this draft may specify explicit proof of possession of the private key of PK_V in the voucher request, e.g., by including a signature of the voucher request with the private key corresponding to PK_V.</t>

</section>
<section anchor="authorization-server" title="Authorization Server">

<t>The authorization server has the private DH key corresponding to G_W, which is used to secure the communication with the device (see <xref target="U-W"/>).</t>

<t>Authentication credentials and communication security used with the domain authenticator is out of scope, except for the need to verify the possession of the private key of PK_V as specified in <xref target="domain-auth"/>.</t>

<t>The authorization server provides to the device the authorization decision for enrollment with the domain authenticator in the form of a voucher.
The authorization server provides information to the domain authenticator about the device, such as the the device’s certificate Cert_PK_U.</t>

<t>The authorization server needs to be available during the execution of the protocol.</t>

</section>
</section>
<section anchor="the-protocol" title="The Protocol">

<t>Three security sessions are going on in parallel (as detailed in the subsections):</t>

<t><list style="symbols">
  <t>Between device (U) and (domain) authenticator (V),</t>
  <t>between authenticator and authorization server (W), and</t>
  <t>between device and authorization server mediated by the authenticator.</t>
</list></t>

<t>The most relevant message fields of EDHOC <xref target="I-D.ietf-lake-edhoc"/> in this specification are shown within brackets { … } (see <xref target="fig-protocol"/>):</t>

<t><list style="symbols">
  <t>G_X: the x-coordinate of the ephemeral public Diffie-Hellman key of party U</t>
  <t>AD_1: Auxiliary Data of message_1</t>
  <t>AD_2: Auxiliary Data of message_2</t>
  <t>ID_CRED_R: data enabling the party U to obtain the credentials containing the public authentication key of the responder V</t>
  <t>ID_CRED_I: data enabling the party V to obtain the credentials containing the public authentication key of the initiator U</t>
  <t>Sig_or_MAC_2: a signature or MAC made by party V with use of the private key of V</t>
  <t>Sig_or_MAC_3: a signature or MAC made by party U with use of the private key of U</t>
</list></t>

<figure title="W-assisted authorization of AKE between U and V: EDHOC between U and V, and Voucher Request/Response between V and W." anchor="fig-protocol"><artwork align="center"><![CDATA[
U                                    V                              W
|                                    |                              |
|            {G_X, AD_1}             |                              |
+----------------------------------->|                              |
|          EDHOC message_1           |    G_X, CC, AEAD(K_1; ID_U)  |
|                                    +----------------------------->|
|                                    |    Voucher Request (VREQ)    |
|                                    |                              |
|                                    |    G_X, CERT_PK_U, Voucher   |
|                                    |<-----------------------------+
|                                    |    Voucher Response (VRES)   |
|  {ID_CRED_R, Sig_or_MAC_2, AD_2}   |                              |
|<-----------------------------------+                              |
|          EDHOC message_2           |                              |
|                                    |                              |
|      {ID_CRED_I, Sig_or_MAC_3}     |                              |
+----------------------------------->|                              |
|          EDHOC message_3           |                              |

where
AD_1 = (T0, LOC_W, CC, AEAD(K1; ID_U))
AD_2 = (T1, Voucher)
Voucher = AEAD(K_2; V_TYPE, PK_V, G_X, ID_U)

]]></artwork></figure>

<section anchor="U-W" title="Device &lt;-&gt; Authorization Server">

<t>The communication between device and authorization server is carried out via the authenticator protected between the endpoints (protocol between U and W in <xref target="fig-protocol"/>) using an ECIES hybrid encryption scheme (see <xref target="I-D.irtf-cfrg-hpke"/>): The device uses the private key corresponding to its ephemeral DH key G_X generated for EDHOC message_1 (see <xref target="U-V"/>) together with the static public DH key of the authorization server G_W to generate a shared secret G_XW. The shared secret is used to derive AEAD encryption keys to protect data between device and authorization server. The data is carried in AD_1 and AD_2 (between device and authenticator) and in Voucher Request/Response (between authenticator and authorization server).</t>

<t>TODO: Reference relevant ECIES scheme in <xref target="I-D.irtf-cfrg-hpke"/>.</t>

<t>TODO: Define derivation of encryption keys (K_1, K_2) and nonces (N_1, N_2) for the both directions</t>

<t>AD_1 SHALL be the following CBOR sequence:</t>

<figure><artwork><![CDATA[
AD_1 = (
    T0:              int,
    LOC_W:           tstr,
    CC:              bstr,
    CIPHERTEXT_RQ:   bstr
)
]]></artwork></figure>

<t>where</t>

<t><list style="symbols">
  <t>T0 is the Auxiliary Data Type (TBD in relevant IANA registry)</t>
</list></t>

<t>and the rest is Voucher Info:</t>

<t><list style="symbols">
  <t>LOC_W is location information about the authorization server</t>
  <t>CC is a crypto context identifier for the security context between the device and the authorization server</t>
  <t>‘CIPHERTEXT_RQ’ is the authenticated encrypted identity of the device with CC as Additional Data, more specifically:</t>
</list></t>

<t>‘CIPHERTEXT_RQ’ is ‘ciphertext’ of COSE_Encrypt0 (Section 5.2-5.3 of <xref target="RFC8152"/>) computed from the following:</t>

<t><list style="symbols">
  <t>the secret key K_1</t>
  <t>the nonce N_1</t>
  <t>‘protected’ is a byte string of size 0</t>
  <t>‘plaintext and ‘external_aad’ as below:</t>
</list></t>

<figure><artwork><![CDATA[
plaintext = (
    ID_U:            bstr
 )
]]></artwork></figure>
<figure><artwork><![CDATA[
external_aad = (
    CC:              bstr
 )
]]></artwork></figure>

<t>where</t>

<t><list style="symbols">
  <t>ID_U is the identity of the device, for example a reference or pointer to the device certificate</t>
  <t>CC is defined above.</t>
</list></t>

<t>AD_2 SHALL be the following CBOR sequence:</t>

<figure><artwork><![CDATA[
AD_2 = (
    T1:             int,
    Voucher:        bstr
)
]]></artwork></figure>

<t>where</t>

<t><list style="symbols">
  <t>T1 is the Auxiliary Data Type (TBD in relevant IANA registry)</t>
</list></t>

<t>and ‘Voucher’ is defined in <xref target="voucher"/>.</t>

<section anchor="voucher" title="Voucher">

<t>The voucher is an assertion by the authorization server to the device that the authorization server has performed the relevant verifications and that the device is authorized to continue the protocol with the authenticator. The voucher consists essentially of a message authentication code which binds the identity of the authenticator to message_1 of EDHOC.</t>

<t>More specifically ‘Voucher’ is the ‘ciphertext’ of COSE_Encrypt0 (Section 5.2 of <xref target="RFC8152"/>) computed from the following:</t>

<t><list style="symbols">
  <t>the secret key K_2</t>
  <t>the nonce N_2</t>
  <t>‘protected’ is a byte string of size 0</t>
  <t>‘plaintext’ is empty (plaintext =  nil)</t>
  <t>‘external_aad’ as below:</t>
</list></t>

<figure><artwork><![CDATA[
external_aad = bstr .cbor external_aad_array
]]></artwork></figure>
<figure><artwork><![CDATA[
external_aad_array = [
    V_TYPE:        int,
    PK_V:          bstr,
    G_X:           bstr,
    CC:            bstr,
    ID_U:          bstr
]
]]></artwork></figure>

<t>where</t>

<t><list style="symbols">
  <t>‘V_TYPE’ indicates the type of voucher used</t>
  <t>PK_V is a COSE_Key containing the public authentication key of the authenticator. The public key MUST be an Elliptic Curve Diffie-Hellman key, COSE key type ‘kty’ = ‘EC2’ or ‘OKP’.
  <list style="symbols">
      <t>COSE_Keys of type OKP SHALL only include the parameters 1 (kty), -1 (crv), and -2 (x-coordinate). COSE_Keys of type EC2 SHALL only include the parameters 1 (kty), -1 (crv), -2 (x-coordinate), and -3 (y-coordinate). The parameters SHALL be encoded in decreasing order.</t>
    </list></t>
  <t>G_X is the ephemeral key of the device sent in EDHOC message_1</t>
  <t>CC and ID_U are defined in <xref target="U-W"/></t>
</list></t>

<t>All parameters, except ‘V_TYPE’, are as received in the voucher request (see <xref target="V-W"/>).</t>

<t>TODO: Consider making the voucher a CBOR Map to indicate type of voucher, to indicate the feature (cf. <xref target="V-W"/>). Alternatively, include V_TYPE in ‘unprotected’.</t>

</section>
</section>
<section anchor="U-V" title="Device &lt;-&gt; Authenticator">

<t>The device and authenticator run the EDHOC protocol authenticated with public keys (PK_U and PK_V) of the device and the authenticator, see protocol between U and V in <xref target="fig-protocol"/>. The normal EDHOC processing is omitted here.</t>

<section anchor="message-1" title="Message 1">

<section anchor="device-processing" title="Device processing">

<t>The device composes EDHOC message_1 with specific parameters pre-configured, such as EDHOC method. The correlation properties (see Section 3.1 of <xref target="I-D.ietf-lake-edhoc"/>) are defined by the transport of the messages. The static public DH key G_W of the authorization server defines the ECDH curve of the selected cipher suite in SUITES_I. As part of the normal EDHOC processing, the device generates the ephemeral public key G_X. A new G_X MUST be generated for each execution of the protocol. The ephemeral key G_X is reused in the ECIES scheme, see <xref target="U-W"/>.</t>

<t>The device sends EDHOC message_1 with AD_1 as specified in <xref target="U-W"/>.</t>

</section>
<section anchor="authenticator-processing" title="Authenticator processing">

<t>The authenticator receives EDHOC message_1 from the device, which triggers the voucher request to the authorization server as described in <xref target="V-W"/>.</t>

</section>
</section>
<section anchor="message-2" title="Message 2">

<section anchor="authenticator-processing-1" title="Authenticator processing">

<t>The authenticator receives the voucher response from the authorization server as described in <xref target="V-W"/>.</t>

<t>The authenticator sends EDHOC message_2 to the device with the voucher (see <xref target="U-W"/>) in AD_2. The public key PK_V is carried in ID_CRED_R of message_2 encoded as a COSE header_map, see Section 4.1 of <xref target="I-D.ietf-lake-edhoc"/>. The Sig_or_MAC_2 field calculated using the private key corresponding to PK_V is either signature or MAC depending on EDHOC method.</t>

</section>
<section anchor="device-processing-1" title="Device processing">

<t>In addition to normal EDHOC verifications, the device MUST verify the voucher by calculating the same message authentication code as when it was generated (see <xref target="voucher"/>) and compare with what was received in message_2.</t>

<t>The input in this calculation includes:</t>

<t><list style="symbols">
  <t>The ephemeral key G_X, sent in message_1.</t>
  <t>The identity ID_U, sent in message_1.</t>
  <t>The public key of the authenticator PK_V, received in message_2.</t>
</list></t>

<t>If the voucher does not verify, the device MUST discontinue the protocol.</t>

</section>
</section>
<section anchor="message-3" title="Message 3">

<section anchor="device-processing-2" title="Device processing">

<t>If all verifications are passed, the device sends EDHOC message_3.</t>

<t>The message field ID_CRED_I contains data enabling the authenticator to retrieve the public key of the device, PK_U. Since the authenticator before sending message_2 received a certificate of PK_U from the authorization server (see <xref target="V-W"/>), ID_CRED_I SHALL be a COSE header_map of type ‘kid’ with the empty byte string as value:</t>

<figure><artwork><![CDATA[
ID_CRED_I =
{
  4 : h''
}
]]></artwork></figure>

<t>The Sig_or_MAC_3 field calculated using the private key corresponding to PK_U is either signature or MAC depending on EDHOC method.</t>

<t>AD_3 MAY contain an enrolment request, see <xref target="I-D.mattsson-cose-cbor-cert-compress"/>, or other request which the device is now authorized to make.</t>

<t>EDHOC message_3 may be combined with an OSCORE request, see <xref target="I-D.palombini-core-oscore-edhoc"/>.</t>

</section>
<section anchor="authenticator-processing-2" title="Authenticator processing">

<t>The authenticator performs the normal EDHOC verifications of message_3, with the exception that the Sig_or_MAC_3 field MUST be verified using the public key included in Cert_PK_U (see <xref target="voucher_response"/>) received from the authorization server. The authenticator MUST ignore any key related information obtained in ID_CRED_I.</t>

<t>This enables the authenticator to verify that message_3 was generated by the device authorized by the authorization server as part of the associated Voucher Request/Response procedure (see <xref target="V-W"/>).</t>

</section>
</section>
</section>
<section anchor="V-W" title="Authenticator &lt;-&gt; Authorization Server">

<t>The authenticator and authorization server are assumed to have, or to be able to, set up a secure connection, for example TLS 1.3 authenticated with certificates. The authenticator is assumed to authenticate with the public key PK_V, see <xref target="domain-auth"/>.</t>

<t>This secure connection protects the Voucher Request/Response Protocol (see protocol between V and W in <xref target="fig-protocol"/>).</t>

<t>The ephemeral public key G_X sent in EDHOC message_1 from device to authenticator serves as challenge/response nonce for the Voucher Request/Response Protocol, and binds together instances of the two protocols.</t>

<section anchor="voucher-request" title="Voucher Request">

<section anchor="authenticator-processing-3" title="Authenticator processing">

<t>Unless already in place, the authenticator and the authorization server establish a secure connection. The autenticator uses G_X received from the device as a nonce associated to this connection with the authorization server. If the same value of the nonce G_X is already used for a connection with this or other authorization server, the protocol SHALL be discontinued.</t>

<t>The authenticator sends the voucher request to the authorization server. The Voucher_Request SHALL be a CBOR array as defined below:</t>

<figure><artwork><![CDATA[
Voucher_Request = [
    G_X:             bstr,
    CC:              bstr,
    CIPHERTEXT_RQ:   bstr
]
]]></artwork></figure>

<t>where the parameters are defined in <xref target="U-W"/>.</t>

<t>TODO: Add in VREQ the optional parameters ?PK_V:bstr, and ?PoP:bstr to support the case when V uses different keys to authenticate to U and W.
One case to study is when V authenticates to U with static DH and to W with signature.</t>

</section>
<section anchor="authorization-server-processing" title="Authorization Server processing">

<t>The authorization server receives the voucher request, verifies and decrypts the identity ID_U of the device, and associates the nonce G_X to ID_U.
If G_X is not unique among nonces associated to this identity, the protocol SHALL be discontinued.</t>

</section>
</section>
<section anchor="voucher_response" title="Voucher Response">

<section anchor="authorization-server-processing-1" title="Authorization Server processing">

<t>The authorization server uses the identity of the device, ID_U, to look up the device certificate, Cert_PK_U.</t>

<t>The authorization server retrieves the public key of V used to authenticate the secure connection with the authenticator, and constructs the corresponding COSE_Key as defined in <xref target="voucher"/>.</t>

<t>The authorization server generates the voucher response and sends it to the authenticator over the secure connection. The Voucher_Response SHALL be a CBOR array as defined below:</t>

<figure><artwork><![CDATA[
Voucher_Response = [
    G_X:            bstr,
    CERT_PK_U:      bstr,
    Voucher:        bstr
]
]]></artwork></figure>

<t>where</t>

<t><list style="symbols">
  <t>G_X is copied from the associated voucher request.</t>
  <t>CERT_PK_U is the device certificate of the public key PK_U, issued by a trusted third party. The format of this certificate is out of scope.</t>
  <t>The voucher is defined in <xref target="voucher"/>.</t>
</list></t>

</section>
<section anchor="authenticator-processing-4" title="Authenticator processing">

<t>The authenticator receives the voucher response from the authorization server over the secure connection. If the received G_X does not match the value of the nonce associated to the secure connection, the protocol SHALL be discontinued.</t>

<t>The authenticator verifies the certificate CERT_PK_U.</t>

<t>TODO: The voucher response may contain a “Voucher-info” field as an alternative to make the Voucher a CBOR Map (see <xref target="U-W"/>)</t>

</section>
</section>
</section>
</section>
<section anchor="ace-profile" title="ACE Profile">

<t>The messages specified in this document may be carried between the endpoints in various protocols. This section defines an embedding as a profile of the ACE framework (see Appendix C of <xref target="I-D.ietf-ace-oauth-authz"/>).</t>

<t>U plays the role of the ACE Resource Server (RS).
V plays the role of the ACE Client (C).
W plays the role of the ACE Authorization Server (AS).</t>

<t>C and RS use the Auxiliary Data in the EDHOC protocol to communicate.
C and RS use the EDHOC protocol to protect their communication.
EDHOC also provides mutual authentication of C and RS, assisted by the AS.</t>

<section anchor="protocol-overview" title="Protocol Overview">

<figure title="Overview of the protocol mapping to ACE" anchor="fig-mapping-ace"><artwork align="center"><![CDATA[
   RS                                C                     AS
   |          EDHOC message_1        |                     |
   |  AD1=AS Request Creation Hints  |                     |
   |-------------------------------->|     POST /token     |
   |                                 |-------------------->|
   |                                 |                     |
   |                                 | Access Token +      |
   |          EDHOC message_2        |  Access Information |
   |          AD2=Access Token       |<--------------------|
   |<--------------------------------|                     |
   |          EDHOC message_3        |                     |
   |-------------------------------->|                     |

]]></artwork></figure>

<t>RS proactively sends the AS Request Creation Hints message to C to signal the information on where C can reach the AS.
RS piggybacks the AS Request Creation Hints message using Auxiliary Data of EDHOC message_1.
Before continuing the EDHOC exchange, based on the AS Request Creation Hints information, C sends a POST request to the token endpoint at the AS requesting the access token.
The AS issues an assertion to C that is cryptographically protected based on the secret shared between the AS and RS.
In this profile, the assertion is encoded as a Bearer Token.
C presents this token to RS in the Auxiliary Data of the EDHOC message_2.
RS verifies the token based on the possession of the shared secret with the AS and authenticates C.</t>

</section>
<section anchor="as-request-creation-hints" title="AS Request Creation Hints">

<t>Parameters that can appear in the AS Request Creation Hints message are specified in Section 5.1.2. of <xref target="I-D.ietf-ace-oauth-authz"/>.
RS MUST use the “AS” parameter to transport LOC_W, i.e. an absolute URI where C can reach the AS.
RS MUST use the “audience” parameter to transport the CBOR sequence consisting of two elements: CC, the crypto context; CIPHERTEXT_RQ, the authenticated encrypted identity of the RS.
The “cnonce” parameter MUST be implied to G_X, i.e. the ephemeral public key of the RS in the underlying EDHOC exchange.
The “cnonce” parameter is not carried in the AS Request Creation Hints message for byte saving reasons.
AS Request Creation Hints MUST be carried within Auxiliary Data of the EDHOC message_1 (AD_1).</t>

<t>An example AD_1 value in CBOR diagnostic notation is shown below:</t>

<figure><artwork><![CDATA[
AD_1:
{
    "AS" : "coaps://as.example.com/token",
    "audience": << h'73',h'737570657273...' >>
}
]]></artwork></figure>

</section>
<section anchor="client-to-as-request" title="Client-to-AS Request">

<t>The protocol that provides the secure connection between C and the AS is out-of-scope.
This can, for example, be TLS 1.3.
What is important is that the two peers are mutually authenticated, and that the secure connection provides message integrity, confidentiality and freshness.
It is also necessary for the AS to be able to extract the public key of C used in the underlying security handshake.</t>

<t>C sends the POST request to the token endpoint at the AS following Section 5.6.1. of <xref target="I-D.ietf-ace-oauth-authz"/>.
C MUST set the “audience” parameter to the value received in AS Request Creation Hints.
C MUST set the “cnonce” parameter to G_X, the ephemeral public key of RS in the EDHOC exchange.</t>

<t>An example exchange using CoAP and CBOR diagnostic notation is shown below:</t>

<figure><artwork><![CDATA[
    Header: POST (Code=0.02)
    Uri-Host: "as.example.com"
    Uri-Path: "token"
    Content-Format: "application/ace+cbor"
    Payload:
    {
        "audience" : << h'73',h'737570657273...' >>
        "cnonce" : h'756E73686172...'
    }
]]></artwork></figure>

</section>
<section anchor="as-to-client-response" title="AS-to-Client Response">

<t>Given successful authorization of C at the AS, the AS responds by issuing a Bearer token and retrieves the certificate of RS on behalf of C.
The access token and the certificate are passed back to C, who uses it to complete the EDHOC exchange.
This document extends the ACE framework by registering a new Access Information parameter:</t>

<t>rsp_ad:
     OPTIONAL. Carries additional information from the AS to C associated with the access token.</t>

<t>When responding to C, the AS MUST set the “ace_profile” parameter to “edhoc-authz”.
The AS MUST set the “token_type” parameter to “Bearer”.
The access token MUST be formatted as specified in <xref target="voucher"/>.
The AS MUST set the “rsp_ad” parameter to the certificate of RS.
To be able to do so, AS first needs to decrypt the audience value, and based on it retrieve the corresponding RS certificate.</t>

<t>An example AS response to C is shown below:</t>

<figure><artwork><![CDATA[
    2.01 Created
    Content-Format: application/ace+cbor
    Max-Age: 3600
    Payload:
    {
        "ace_profile" : "edhoc-authz",
        "token_type" : "Bearer",
        "access_token" : h'666F726571756172746572...',
        "rsp_ad" : h'61726973746F64656D6F637261746963616C...'
    }
]]></artwork></figure>

<t>TODO: Add cnonce = G_X to this message to match the current version of the voucher response.</t>

</section>
</section>
<section anchor="sec-cons" title="Security Considerations">

<t>TODO: Identity protection of device</t>

<t>TODO: Use of G_X as ephemeral key between device and authenticator, and between device and authorization server</t>

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

<t>TODO: CC registry</t>

<t>TODO: Voucher type registry</t>

<t>TODO: register rsp_ad ACE parameter</t>

</section>


  </middle>

  <back>


    <references title='Informative References'>

&RFC2119;
&RFC3748;
&RFC7228;
&RFC8152;
&RFC8174;
&RFC8446;
&I-D.ietf-lake-reqs;
&I-D.ietf-ace-oauth-authz;
&I-D.mattsson-cose-cbor-cert-compress;
&I-D.irtf-cfrg-hpke;
&I-D.selander-ace-coap-est-oscore;
&I-D.ietf-6tisch-minimal-security;
&I-D.ietf-lake-edhoc;
&I-D.palombini-core-oscore-edhoc;


    </references>




  </back>

<!-- ##markdown-source:
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
hvHs5f8C00gBGk1sAAA=

-->

</rfc>

