<?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 RFC8949 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
<!ENTITY RFC7252 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
<!ENTITY RFC7925 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7925.xml">
<!ENTITY RFC7959 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7959.xml">
<!ENTITY RFC8152 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8152.xml">
<!ENTITY RFC8613 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8613.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.ietf-ace-coap-est SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-coap-est.xml">
<!ENTITY RFC2985 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2985.xml">
<!ENTITY RFC2986 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2986.xml">
<!ENTITY RFC5272 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5272.xml">
<!ENTITY RFC5280 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
<!ENTITY RFC5914 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5914.xml">
<!ENTITY RFC6024 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6024.xml">
<!ENTITY RFC6347 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
<!ENTITY RFC7228 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
<!ENTITY RFC7030 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7030.xml">
<!ENTITY RFC8392 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8392.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-ace-oscore-profile SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oscore-profile.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.ietf-core-oscore-groupcomm SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-groupcomm.xml">
<!ENTITY I-D.ietf-cose-x509 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-x509.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.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 ipr="trust200902" docName="draft-selander-ace-coap-est-oscore-05" category="std">

  <front>
    <title abbrev="EST-oscore">Protecting EST Payloads with OSCORE</title>

    <author initials="G." surname="Selander" fullname="Goeran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="S." surname="Raza" fullname="Shahid Raza">
      <organization>RISE</organization>
      <address>
        <email>shahid.raza@ri.se</email>
      </address>
    </author>
    <author initials="M." surname="Furuhed" fullname="Martin Furuhed">
      <organization>Nexus</organization>
      <address>
        <email>martin.furuhed@nexusgroup.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="T." surname="Claeys" fullname="Timothy Claeys">
      <organization></organization>
      <address>
        <email>timothy.claeys@gmail.com</email>
      </address>
    </author>

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

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

    <abstract>


<t>This document specifies public-key certificate enrollment procedures protected with lightweight application-layer security protocols suitable for Internet of Things (IoT) deployments. The protocols leverage payload formats defined in Enrollment over Secure Transport (EST) and existing IoT standards including the Constrained Application Protocol (CoAP), Concise Binary Object Representation (CBOR) and the CBOR Object Signing and Encryption (COSE) format.</t>



    </abstract>


  </front>

  <middle>


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

<t>One of the challenges with deploying a Public Key Infrastructure (PKI) for the Internet of Things (IoT) is certificate enrollment, because existing enrollment protocols are not optimized for constrained environments <xref target="RFC7228"/>.</t>

<t>One optimization of certificate enrollment targeting IoT deployments is specified in EST-coaps (<xref target="I-D.ietf-ace-coap-est"/>), which defines a version of Enrollment over Secure Transport <xref target="RFC7030"/> for transporting EST payloads over CoAP <xref target="RFC7252"/> and DTLS <xref target="RFC6347"/>, instead of secured HTTP.</t>

<t>This document describes a method for protecting EST payloads over CoAP or HTTP with OSCORE <xref target="RFC8613"/>. OSCORE specifies an extension to CoAP which protects the application layer message and can be applied independently of how CoAP messages are transported. OSCORE can also be applied to CoAP-mappable HTTP which enables end-to-end security for mixed CoAP and HTTP transfer of application layer data. Hence EST payloads can be protected end-to-end independent of underlying transport and through proxies translating between between CoAP and HTTP.</t>

<t>OSCORE is designed for constrained environments, building on IoT standards such as CoAP, CBOR <xref target="RFC8949"/> and COSE <xref target="RFC8152"/>, and has in particular gained traction in settings where message sizes and the number of exchanged messages needs to be kept at a minimum, such as 6TiSCH <xref target="I-D.ietf-6tisch-minimal-security"/>, or for securing multicast CoAP messages <xref target="I-D.ietf-core-oscore-groupcomm"/>. Where OSCORE is implemented and used for communication security, the reuse of OSCORE for other purposes, such as enrollment, reduces the code footprint.</t>

<t>In order to protect certificate enrollment with OSCORE, the necessary keying material (notably, the OSCORE Master Secret, see <xref target="RFC8613"/>) needs to be established between EST-oscore client and EST-oscore server. For this purpose we assume the use of the lightweight authenticated key exchange protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>. Other methods for key establishment are described in <xref target="alternative-auth"/>.</t>

<t>Other ways to optimize the performance of certificate enrollment and certificate based authentication described in this draft include the use of:</t>

<t><list style="symbols">
  <t>Compact representations of X.509 certificates (see <xref target="I-D.mattsson-cose-cbor-cert-compress"/>)</t>
  <t>Certificates by reference (see <xref target="I-D.ietf-cose-x509"/>)</t>
  <t>Compact representations of EST payloads (see <xref target="cbor-payloads"/>)</t>
</list></t>

<section anchor="operational" title="Operational Differences with EST-coaps">

<t>The protection of EST payloads defined in this document builds on EST-coaps <xref target="I-D.ietf-ace-coap-est"/> but transport layer security is replaced, or complemented, by protection of the transfer- and application layer data (i.e., CoAP message fields and payload). This specification deviates from EST-coaps in the following respects:</t>

<t><list style="symbols">
  <t>The DTLS record layer is replaced, or complemented, with OSCORE.</t>
  <t>The DTLS handshake is replaced, or complemented, with the lightweight authenticated key exchange protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>, and makes use of the following features:
  <list style="symbols">
      <t>Authentication based on certificates is complemented with  authentication based on raw public keys.</t>
      <t>Authentication based on signature keys is complemented with authentication based on static Diffie-Hellman keys, for certificates/raw public keys.</t>
      <t>Authentication based on certificate by value is complemented with authentication based on certificate/raw public keys by reference.</t>
    </list></t>
  <t>One new EST function, /rpks, is defined for installation of compact explicit TAs in the EST client.</t>
  <t>The EST payloads protected by OSCORE can be proxied between constrained networks supporting CoAP/CoAPs and non-constrained networks supporting HTTP/HTTPs with a CoAP-HTTP proxy protection without any security processing in the proxy (see <xref target="proxying"/>). The concept “Registrar” and its required trust relation with EST server as described in Section 6 of <xref target="I-D.ietf-ace-coap-est"/> is therefore redundant.</t>
</list></t>

<t>So, while the same authentication scheme (Diffie-Hellman key exchange authenticated with transported certificates) and the same EST payloads as EST-coaps also apply to EST-oscore, the latter specifies other authentication schemes and a new matching EST function. The reason for these deviations is that a significant overhead can be removed in terms of message sizes and round trips by using a different handshake, public key type or transported credential, and those are independent of the actual enrollment procedure.</t>

<t><xref target="alternative-auth"/> discusses yet other authentication and secure communication methods.</t>

</section>
</section>
<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 <xref target="RFC2119"/>. These
words may also appear in this document in lowercase, absent their
normative meanings.</t>

<t>This document uses terminology from <xref target="I-D.ietf-ace-coap-est"/> which in turn is based on <xref target="RFC7030"/> and, in turn, on <xref target="RFC5272"/>.</t>

<t>The term “Trust Anchor” follows the terminology of <xref target="RFC6024"/>: “A trust anchor represents an authoritative entity via a public key and associated data. The public key is used to verify digital signatures, and the associated data is used to constrain the types of information for which the trust anchor is authoritative.” One example of specifying more compact alternatives to X.509 certificates for exchanging trust anchor information is provided by the TrustAnchorInfo structure of <xref target="RFC5914"/>, the mandatory parts of which essentially is the SubjectPublicKeyInfo structure <xref target="RFC5280"/>, i.e., an algorithm identifier followed by a public key.</t>

</section>
<section anchor="authentication" title="Authentication">

<t>This specification replaces the DTLS handshake in EST-coaps with the lightweight authenticated key exchange protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>. During initial enrollment the EST-oscore client and server run EDHOC <xref target="I-D.ietf-lake-edhoc"/> to authenticate and establish the OSCORE security context with which the EST payloads are protected.</t>

<t>EST-oscore clients and servers MUST perform mutual authentication.
The EST server and EST client are responsible for ensuring that an acceptable cipher suite is negotiated.
The client MUST authenticate the server before accepting any server response. The server MUST authenticate the client and provide relevant information to the CA for decision about issuing a certificate.</t>

<section anchor="edhoc" title="EDHOC">

<t>EDHOC supports authentication with certificates/raw public keys (referred to as “credentials”), and the credentials may either be transported in the protocol, or referenced. This is determined by the identifier of the credential of the endpoint, ID_CRED_x for x= Initiator/Responder, which is transported in an EDHOC message. This identifier may be the credential itself (in which case the credential is transported), or a pointer such as a URI to the credential (e.g., x5t, see <xref target="I-D.ietf-cose-x509"/>) or some other identifier which enables the receiving endpoint to retrieve the credential.</t>

</section>
<section anchor="certificate-based-authentication" title="Certificate-based Authentication">

<t>EST-oscore, like EST-coaps, supports certificate-based authentication between EST client and server. In this case the client MUST be configured with an Implicit or Explicit Trust Anchor (TA) <xref target="RFC7030"/> database, enabling the client to authenticate the server. During the initial enrollment the client SHOULD populate its Explicit TA database and use it for subsequent authentications.</t>

<t>The EST client certificate SHOULD conform to <xref target="RFC7925"/>. The EST client and/or EST server certificate MAY be a (natively signed) CBOR certificate <xref target="I-D.mattsson-cose-cbor-cert-compress"/>.</t>

</section>
<section anchor="channel-binding" title="Channel Binding">

<t>The <xref target="RFC5272"/> specification describes proof-of-possession as the ability of a client to prove its possession of a private key which is linked to a certified public key. In case of signature key, a proof-of-possession is generated by the client when it signs the PKCS#10 Request during the enrollment phase. Connection-based proof-of-possession is OPTIONAL for EST-oscore clients and servers.</t>

<t>When desired the client can use the EDHOC-Exporter API to extract channel-binding information and provide a connection-based proof-of possession. Channel-binding information is obtained as follows</t>

<t>edhoc-unique = EDHOC-Exporter(“EDHOC Unique”, length),</t>

<t>where length equals the desired length of the edhoc-unique byte string. The client then adds the edhoc-unique byte string as a challengePassword (see Section 5.4.1 of <xref target="RFC2985"/>) in the attributes section of the PKCS#10 Request to prove to the server that the authenticated EDHOC client is in possession of the private key associated with the certification request, and signed the certification request after the EDHOC session was established.</t>

</section>
<section anchor="optimizations" title="Optimizations">

<t><list style="symbols">
  <t>The last message of the EDHOC protocol, message_3, MAY be combined with an OSCORE request, enabling authenticated Diffie-Hellman key exchange and a protected CoAP request/response (which may contain an enrolment request and response) in two round trips <xref target="I-D.palombini-core-oscore-edhoc"/>.</t>
  <t>The certificates MAY be compressed, e.g. using the CBOR encoding defined in <xref target="I-D.mattsson-cose-cbor-cert-compress"/>.</t>
  <t>The certificate MAY be referenced instead of transported <xref target="I-D.ietf-cose-x509"/>. The EST-oscore server MAY use information in the credential identifier field of the EDHOC message (ID_CRED_x) to access the EST-oscore client certificate, e.g., in a directory or database provided by the issuer. In this case the certificate may not need to be transported over a constrained link between EST client and server.</t>
  <t>Conversely, the response to the PKCS#10 request MAY be a reference to the enrolled certificate rather than the certificate itself. The EST-oscore server MAY in the enrolment response to the EST-oscore client include a pointer to a directory or database where the certificate can be retrieved.</t>
</list></t>

</section>
<section anchor="RPK-TA" title="RPK-based Trust Anchors">

<t>A trust anchor is commonly a self-signed certificate of the CA public key. In order to reduce transport overhead, the trust anchor could be just the CA public key and associated data (see <xref target="terminology"/>), e.g., the SubjectPublicKeyInfo, or a public key certificate without the signature. In either case they can be compactly encoded, e.g. using CBOR encoding <xref target="I-D.mattsson-cose-cbor-cert-compress"/>. A client MAY request an unsigned trust anchors using the /rpks function (see <xref target="dist-rpks"/>).</t>

<t>Client authentication can be performed with long-lived RPKs installed by the manufacturer. Re-enrollment requests can be authenticated through a valid certificate issued previously by the EST-oscore server or by using the key material available in the Implicit TA database.</t>

<t>TODO: Sanity check this. Review the use of Implicit TA vs. Explicit TA.</t>

</section>
</section>
<section anchor="protocol-design-and-layering" title="Protocol Design and Layering">
<t>EST-oscore uses CoAP <xref target="RFC7252"/> and Block-Wise <xref target="RFC7959"/> to transfer EST messages in the same way as <xref target="I-D.ietf-ace-coap-est"/>. Instead of DTLS record layer, OSCORE <xref target="RFC8613"/> is used to protect the EST payloads. <xref target="fig-stack"/> below shows the layered EST-oscore architecture.</t>

<figure title="EST protected with OSCORE." anchor="fig-stack"><artwork align="center"><![CDATA[
+------------------------------------------------+
|          EST request/response messages         |
+------------------------------------------------+
|   CoAP with OSCORE   |   HTTP with OSCORE      |
+------------------------------------------------+
|   UDP  |  DTLS/UDP   |   TCP   |   TLS/TCP     |
+------------------------------------------------+

]]></artwork></figure>

<t>EST-oscore follows much of the EST-coaps and EST design.</t>

<section anchor="discovery" title="Discovery and URI">
<t>The discovery of EST resources and the definition of the short EST-coaps URI paths specified in Section 5.1 of <xref target="I-D.ietf-ace-coap-est"/>, as well as the new Resource Type defined in Section 9.1 of <xref target="I-D.ietf-ace-coap-est"/> apply to EST-oscore. Support for OSCORE is indicated by the “osc” attribute defined in Section 9 of <xref target="RFC8613"/>, for example:</t>

<figure><artwork><![CDATA[
     REQ: GET /.well-known/core?rt=ace.est.sen

     RES: 2.05 Content
   </est>; rt="ace.est";osc

]]></artwork></figure>

</section>
<section anchor="dist-rpks" title="Distribution of RPKs">

<t>The EST client can request a copy of the current CA public keys.</t>

<t>TODO: Map relevant parts of section 4.1 of RFC 7030 and other EST function related content from RFC7030 and EST-coaps.</t>

<t>RATIONALE: EST-coaps provides the /crts operation. A successful request from the client to this resource will be answered with a bag of certificates which is subsequently installed in the Explicit TA.  Motivated by the specification of more compact trust anchors (see <xref target="terminology"/>) we define here the new EST function /rpks which returns a set of RPKs to be installed in the Explicit TA database.</t>

</section>
<section anchor="est-functions" title="Mandatory/optional EST Functions">
<t>The EST-oscore specification has the same set of required-to-implement functions as EST-coaps. The content of <xref target="table_functions"/> is adapted from Section 5.2 in <xref target="I-D.ietf-ace-coap-est"/> and uses the updated URI paths (see <xref target="discovery"/>).</t>

<texttable title="Mandatory and optional EST-oscore functions" anchor="table_functions">
      <ttcol align='left'>EST functions</ttcol>
      <ttcol align='left'>EST-oscore implementation</ttcol>
      <c>/crts</c>
      <c>MUST</c>
      <c>/sen</c>
      <c>MUST</c>
      <c>/sren</c>
      <c>MUST</c>
      <c>/skg</c>
      <c>OPTIONAL</c>
      <c>/skc</c>
      <c>OPTIONAL</c>
      <c>/att</c>
      <c>OPTIONAL</c>
</texttable>

<t>TODO: Add /rpks OPTIONAL</t>

</section>
<section anchor="payload-formats" title="Payload formats">
<t>Similar to EST-coaps, EST-oscore allows transport of the ASN.1 structure of a given Media-Type in binary format. In addition, EST-oscore uses the same CoAP Content-Format Options to transport EST requests and responses . <xref target="table_mediatypes"/> summarizes the information from Section 5.3 in <xref target="I-D.ietf-ace-coap-est"/>.</t>

<texttable title="EST functions and there associated Media-Type and IANA numbers" anchor="table_mediatypes">
      <ttcol align='left'>URI</ttcol>
      <ttcol align='left'>Content-Format</ttcol>
      <ttcol align='left'>#IANA</ttcol>
      <c>/crts</c>
      <c>N/A                                            (req)</c>
      <c>-</c>
      <c>&#160;</c>
      <c>application/pkix-cert                          (res)</c>
      <c>287</c>
      <c>&#160;</c>
      <c>application/pkcs-7-mime;smime-type=certs-only  (res)</c>
      <c>281</c>
      <c>/sen</c>
      <c>application/pkcs10                             (req)</c>
      <c>286</c>
      <c>&#160;</c>
      <c>application/pkix-cert                          (res)</c>
      <c>287</c>
      <c>&#160;</c>
      <c>application/pkcs-7-mime;smime-type=certs-only  (res)</c>
      <c>281</c>
      <c>/sren</c>
      <c>application/pkcs10                             (req)</c>
      <c>286</c>
      <c>&#160;</c>
      <c>application/pkix-cert                          (res)</c>
      <c>287</c>
      <c>&#160;</c>
      <c>application/pkcs-7-mime;smime-type=certs-only  (res)</c>
      <c>281</c>
      <c>/skg</c>
      <c>application/pkcs10                             (req)</c>
      <c>286</c>
      <c>&#160;</c>
      <c>application/multipart-core                     (res)</c>
      <c>62</c>
      <c>/skc</c>
      <c>application/pkcs10                             (req)</c>
      <c>286</c>
      <c>&#160;</c>
      <c>application/multipart-core                     (res)</c>
      <c>62</c>
      <c>/att</c>
      <c>N/A                                            (req)</c>
      <c>-</c>
      <c>&#160;</c>
      <c>application/csrattrs                           (res)</c>
      <c>285</c>
</texttable>

<t>NOTE: CBOR is becoming a de facto encoding scheme in IoT settings. There is already work in progress on CBOR encoding of X.509 certificates <xref target="I-D.mattsson-cose-cbor-cert-compress"/>, and this can be extended to other EST messages, see <xref target="cbor-payloads"/>.</t>

</section>
<section anchor="message-bindings" title="Message Bindings">
<t>The EST-oscore message characteristics are identical to those specified in Section 5.4 of <xref target="I-D.ietf-ace-coap-est"/>. It is RECOMMENDED that</t>

<t><list style="symbols">
  <t>The EST-oscore endpoints support delayed responses</t>
  <t>The endpoints supports the following CoAP options: OSCORE, Uri-Host, Uri-Path, Uri-Port, Content-Format, Block1, Block2, and Accept.</t>
  <t>The EST URLs based on https:// are translated to coap://, but with mandatory use of the CoAP OSCORE option.</t>
</list></t>

</section>
<section anchor="coap-response-codes" title="CoAP response codes">
<t>See Section 5.5 in <xref target="I-D.ietf-ace-coap-est"/>.</t>

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

<t>The EDHOC key exchange is optimized for message overhead, in particular the use of static DH keys instead of signature keys for authentication (e.g., method 3 of <xref target="I-D.ietf-lake-edhoc"/>). Together with various measures listed in this document such as CBOR payloads (<xref target="cbor-payloads"/>), CBOR certificates <xref target="I-D.mattsson-cose-cbor-cert-compress"/>, certificates by reference (<xref target="optimizations"/>), and trust anchors without signature (<xref target="RPK-TA"/>), a significant reduction of message sizes can be achieved.</t>

<t>Nevertheless, depending on application, the protocol messages may become larger than available frame size resulting in fragmentation and, in resource constrained networks such as IEEE 802.15.4 where throughput is limited, fragment loss can trigger costly retransmissions.</t>

<t>It is RECOMMENDED to prevent IP fragmentation, since it involves an error-prone datagram reconstitution. To limit the size of the CoAP payload, this specification mandates the implementation of CoAP option Block1 and Block2 fragmentation mechanism <xref target="RFC7959"/> as described in Section 5.6 of <xref target="I-D.ietf-ace-coap-est"/>.</t>

</section>
<section anchor="delayed-responses" title="Delayed Responses">
<t>See Section 5.7 in <xref target="I-D.ietf-ace-coap-est"/>.</t>

</section>
</section>
<section anchor="proxying" title="HTTP-CoAP Proxy">
<t>As noted in Section 6 of <xref target="I-D.ietf-ace-coap-est"/>, in real-world deployments, the EST server will not always reside within the CoAP boundary.  The EST-server can exist outside the constrained network in a non-constrained network that supports HTTP but not CoAP, thus requiring an intermediary CoAP-to-HTTP proxy.</t>

<t>Since OSCORE is applicable to CoAP-mappable HTTP (see Section 11 of <xref target="RFC8613"/>) the EST payloads can be protected end-to-end between EST client and EST server independent of transport protocol or potential transport layer security which may need to be terminated in the proxy, see <xref target="fig-proxy"/>. Therefore the concept “Registrar” and its required trust relation with EST server as described in Section 6 of <xref target="I-D.ietf-ace-coap-est"/> is redundant.</t>

<t>The mappings between CoAP and HTTP referred to in Section 9.1 of <xref target="I-D.ietf-ace-coap-est"/> apply, and additional mappings resulting from the use of OSCORE are specified in Section 11 of <xref target="RFC8613"/>.</t>

<t>OSCORE provides end-to-end security between EST Server and EST Client. The use of TLS and DTLS is optional.</t>

<figure title="CoAP-to-HTTP proxy at the CoAP boundary." anchor="fig-proxy"><artwork align="center"><![CDATA[
                                       Constrained-Node Network
  .---------.                       .----------------------------.
  |   CA    |                       |.--------------------------.|
  '---------'                       ||                          ||
       |                            ||                          ||
   .------.  HTTP   .-----------------.   CoAP   .-----------.  ||
   | EST  |<------->|  CoAP-to-HTTP   |<-------->| EST Client|  ||
   |Server|  (TLS)  |      Proxy      |  (DTLS)  '-----------'  ||
   '------'         '-----------------'                         ||
                                    ||                          ||
       <------------------------------------------------>       ||
                        OSCORE      ||                          ||
                                    |'--------------------------'|
                                    '----------------------------'
]]></artwork></figure>

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

<t>TBD</t>

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

<t>TBD</t>

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

</section>
<section anchor="acknowledgments" title="Acknowledgments">

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC8949;
&RFC7252;
&RFC7925;
&RFC7959;
&RFC8152;
&RFC8613;
&I-D.ietf-lake-edhoc;
&I-D.ietf-ace-coap-est;


    </references>

    <references title='Informative References'>

&RFC2985;
&RFC2986;
&RFC5272;
&RFC5280;
&RFC5914;
&RFC6024;
&RFC6347;
&RFC7228;
&RFC7030;
&RFC8392;
&I-D.ietf-6tisch-minimal-security;
&I-D.ietf-ace-oscore-profile;
&I-D.ietf-ace-oauth-authz;
&I-D.ietf-core-oscore-groupcomm;
&I-D.ietf-cose-x509;
&I-D.mattsson-cose-cbor-cert-compress;
&I-D.palombini-core-oscore-edhoc;


    </references>


<section anchor="alternative-auth" title="Other Authentication Methods">

<t>In order to protect certificate enrollment with OSCORE, the necessary keying material (notably, the OSCORE Master Secret, see <xref target="RFC8613"/>) needs to be established between EST-oscore client and EST-oscore server. In this appendix we analyse alternatives to EDHOC, which was assumed in the body of this specification.</t>

<section anchor="ttp-assisted-authentication" title="TTP Assisted Authentication">
<t>Trusted third party (TTP) based provisioning, such as the OSCORE profile of ACE <xref target="I-D.ietf-ace-oscore-profile"/> assumes existing security associations between the client and the TTP, and between the server and the TTP. This setup allows for reduced message overhead and round trips compared to the full-fledged EDHOC key exchange. Following the ACE terminology the TTP plays the role of the Authorization Server (AS), the EST-oscore client corresponds to the ACE client and the EST-oscore server is the ACE Resource Server (RS).</t>

<figure title="Accessing EST services using a TTP for authenticated key establishment and authorization." anchor="fig-ttp"><artwork align="center"><![CDATA[
+------------+                               +------------+
|            |                               |            |
|            | ---(A)- Token Request ------> |  Trusted   |
|            |                               |   Third    |
|            | <--(B)- Access Token -------  | Party (AS) |
|            |                               |            |
|            |                               +------------+
| EST-oscore |                                  |     ^
|   Client   |                                 (F)   (E)
|(ACE Client)|                                  V     |
|            |                               +------------+
|            |                               |            | 
|            | -(C)- Token + EST Request --> | EST-oscore | 
|            |                               | server (RS)|
|            | <--(D)--- EST response ------ |            |
|            |                               |            | 
+------------+                               +------------+


]]></artwork></figure>

<t>During initial enrollment the EST-oscore client uses its existing security association with the TTP, which replaces the Implicit TA database, to establish an authenticated secure channel. The <xref target="I-D.ietf-ace-oscore-profile"/> ACE profile RECOMMENDS the use of OSCORE between client and TTP (AS), but TLS or DTLS MAY be used additionally or instead. The client requests an access token at the TTP corresponding the EST service it wants to access. If the client request was invalid, or not authorized according to the local EST policy, the AS returns an error response as described in Section 5.6.3 of <xref target="I-D.ietf-ace-oauth-authz"/>. In its responses the TTP (AS) SHOULD signal that the use of OSCORE is REQUIRED for a specific access token as indicated in section 4.3 of <xref target="I-D.ietf-ace-oscore-profile"/>. This means that the EST-oscore client MUST use OSCORE towards all EST-oscore servers (RS) for which this access token is valid, and follow Section 4.3 in <xref target="I-D.ietf-ace-oscore-profile"/> to derive the security context to run OSCORE. The ACE OSCORE profile RECOMMENDS the use of CBOR web token (CWT) as specified in <xref target="RFC8392"/>. The TTP (AS) MUST also provision an OSCORE security context to the EST-oscore client and EST-oscore server (RS), which is then used to secure the subsequent messages between the client and the server.  The details on how to transfer the OSCORE contexts are described in section 3.2 of <xref target="I-D.ietf-ace-oscore-profile"/>.</t>

<t>Once the client has retrieved the access token it follows the steps in <xref target="I-D.ietf-ace-oscore-profile"/> to install the OSCORE security context and presents the token to the EST-oscore server. The EST-oscore server installs the corresponding OSCORE context and can either verify the validity of the token locally or request a token introspection at the TTP. In either case EST policy decisions, e.g., which client can request enrollment or reenrollment, can be implemented at the TTP. Finally the EST-oscore client receives a response from the EST-oscore server.</t>

</section>
<section anchor="psk-based-authentication" title="PSK Based Authentication">
<t>Another method to bootstrap EST services requires a pre-shared OSCORE security context between the EST-oscore client and EST-oscore server. Authentication using the Implicit TA is no longer required since the shared security context authenticates both parties. The EST-oscore client and EST-oscore server need access to the same OSCORE Master Secret as well as the OSCORE identifiers (Sender ID and Recipient ID) from which an OSCORE security context can be derived, see <xref target="RFC8613"/>. Some optional parameters may be provisioned if different from the default value:</t>

<t><list style="symbols">
  <t>an ID context distinguishing between different OSCORE security contexts to use,</t>
  <t>an AEAD algorithm,</t>
  <t>an HKDF algorithm,</t>
  <t>a master salt, and</t>
  <t>a replay window size.</t>
</list></t>

</section>
</section>
<section anchor="cbor-payloads" title="CBOR Encoding of EST Payloads">

<t>Current EST based specifications transport messages using the ASN.1 data type declaration. It would be favorable to use a more compact representation better suitable for constrained device implementations. In this appendix we list CBOR encodings of requests and responses of the mandatory EST functions (see <xref target="est-functions"/>).</t>

<section anchor="distribution-of-ca-certificates-crts" title="Distribution of CA Certificates (/crts)">

<t>The EST client can request a copy of the current CA certificates.
In EST-coaps and EST-oscore this is done using a GET request to /crts (with empty payload). 
The response contains a chain of certificates used to establish an Explicit Trust Anchor database for subsequent authentication of the EST server.</t>

<t>CBOR encoding of X.509 certificates is specified in <xref target="I-D.mattsson-cose-cbor-cert-compress"/>. CBOR encoding of certificate chains is specified below. This allows for certificates encoded using the CBOR certificate format, or as binary X.509 data wrapped as a CBOR byte string.</t>

<t>CDDL:</t>

<figure><artwork><![CDATA[
certificate chain = (
   + certificate : bstr
)
certificate = x509_certificate / cbor_certificate
]]></artwork></figure>

</section>
<section anchor="enrollmentre-enrollment-of-clients-sen-sren" title="Enrollment/Re-enrollment of Clients (/sen, /sren)">

<t>Existing EST standards specify the enrollment request to be a PKCS#10 formated message <xref target="RFC2986"/>. The essential information fields for the CA to verify are the following:</t>

<t><list style="symbols">
  <t>Information about the subject, here condensed to the subject common name,</t>
  <t>subject public key, and</t>
  <t>signature made by the subject private key.</t>
</list></t>

<t>CDDL:</t>

<figure><artwork><![CDATA[
certificate request = (
   subject_common_name : bstr,
   public_key : bstr
   signature : bstr,
   ? ( signature_alg : int, public_key_info : int )
)
]]></artwork></figure>

<t>The response to the enrollment request is the subject certificate, for which CBOR encoding is specified in <xref target="I-D.mattsson-cose-cbor-cert-compress"/>.</t>

<t>The same message content in request and response applies to re-enrollment.</t>

<t>TODO:  PKCS#10 allows inclusion of attributes, which can be used to specify extension requests, see Section 5.4.2 of <xref target="RFC2985"/>. CBOR encoding of the challengePassword attribute needs to be defined (see <xref target="channel-binding"/>). What other attributes are relevant?</t>

<section anchor="cbor-certificate-request-examples" title="CBOR Certificate Request Examples">

<t>Here is an example of CBOR encoding of certificate request as defined in the previous section.</t>

<t>114 bytes:</t>

<t>(
  h’0123456789ABCDF0’,
  h’61eb80d2abf7d7e4139c86b87e42466f1b4220d3f7ff9d6a1ae298fb9adbb464’,
  h’30440220064348b9e52ee0da9f9884d8dd41248c49804ab923330e208a168172dcae1
  27a02206a06c05957f1db8c4e207437b9ab7739cb857aa6dd9486627b8961606a2b68ae’
)</t>

<t>In the example above the signature is generated on an ASN.1 data structure. To validate this, the receiver needs to reconstruct the original data structure. Alternatively, in native mode, the signature is generated on the profiled data structure, in which case the overall overhead is further reduced.</t>

</section>
<section anchor="asn1-certificate-request-examples" title="ASN.1 Certificate Request Examples">

<t>A corresponding certificate request of the previous section using ASN.1 is shown in <xref target="fig-ASN1"/>.</t>

<figure title="ASN.1 Structure." anchor="fig-ASN1"><artwork align="center"><![CDATA[
SEQUENCE {
   SEQUENCE {
     INTEGER 0
     SEQUENCE {
       SET {
         SEQUENCE {
           OBJECT IDENTIFIER commonName (2 5 4 3)
           UTF8String '01-23-45-67-89-AB-CD-F0'
           }
         }
       }
     SEQUENCE {
       SEQUENCE {
         OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
         OBJECT IDENTIFIER prime256v1 (1 2 840 10045 3 1 7)
         }
       BIT STRING
         (65 byte public key)
       }
   SEQUENCE {
     OBJECT IDENTIFIER ecdsaWithSHA256 (1 2 840 10045 4 3 2)
     }
   BIT STRING
     (64 byte signature)
]]></artwork></figure>

<t>In Base64, 375 bytes:</t>

<figure><artwork><![CDATA[
-----BEGIN CERTIFICATE REQUEST-----
MIHcMIGEAgEAMCIxIDAeBgNVBAMMFzAxLTIzLTQ1LTY3LTg5LUFCLUNELUYwMFkw
EwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYeuA0qv31+QTnIa4fkJGbxtCINP3/51q
GuKY+5rbtGSeZn3l8rVbU0jVEBWvKhAd98JeqgsuauGHRNWt2FqJ1aAAMAoGCCqG
SM49BAMCA0cAMEQCIAZDSLnlLuDan5iE2N1BJIxJgEq5IzMOIIoWgXLcrhJ6AiBq
BsBZV/HbjE4gdDe5q3c5y4V6pt2UhmJ7iWFgaitorg==
-----END CERTIFICATE REQUEST-----
]]></artwork></figure>

<t>In hex, 221 bytes:</t>

<figure><artwork><![CDATA[
3081dc30818402010030223120301e06035504030c1730312d32332d34352d36
372d38392d41422d43442d46303059301306072a8648ce3d020106082a8648ce
3d0301070342000461eb80d2abf7d7e4139c86b87e42466f1b4220d3f7ff9d6a
1ae298fb9adbb4649e667de5f2b55b5348d51015af2a101df7c25eaa0b2e6ae1
8744d5add85a89d5a000300a06082a8648ce3d04030203470030440220064348
b9e52ee0da9f9884d8dd41248c49804ab923330e208a168172dcae127a02206a
06c05957f1db8c4e207437b9ab7739cb857aa6dd9486627b8961606a2b68ae
]]></artwork></figure>

</section>
</section>
</section>


  </back>

<!-- ##markdown-source:
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
wt3dccqZmkar6bRS+b+Rw7UxkngAAA==

-->

</rfc>

