<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-selander-lake-cred-hash-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="EDHOC Credential Hash">Hashing Authentication Credentials in EDHOC</title>
    <seriesInfo name="Internet-Draft" value="draft-selander-lake-cred-hash-00"/>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Vučinić" fullname="Mališa Vučinić">
      <organization>Inria</organization>
      <address>
        <email>malisa.vucinic@inria.fr</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area>Security</area>
    <workgroup>LAKE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 45?>

<t>This document defines a COSE header parameter which signals that an authentication credential is replaced by the hash of the authentication credential in the protocol message computations. This further relaxes the need for transporting authentication credentials in EDHOC, which reduces protocol message sizes and improves performance in constrained networks.</t>
    </abstract>
  </front>
  <middle>
    <?line 49?>

<section anchor="intro">
      <name>Introduction</name>
      <t>The lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman over COSE (EDHOC, <xref target="RFC9528"/>) supports a variety of authentication credentials and different options for identifying credentials during the protocol execution. The latter allows the protocol messages to carry, for example, references or unique identifiers instead of the authentication credentials, thereby reducing message size and improving performance in constrained networks.</t>
      <t>In this document we describe a new mode of processing authentication credentials in EDHOC which further relaxes the need for transporting them. This new mode is signalled with a new COSE header parameter using an existing protocol mechanism and does not require any changes to the message format.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <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.
<?line -6?>
        </t>
        <t>Readers are expected to be familiar with EDHOC <xref target="RFC9528"/>.</t>
      </section>
    </section>
    <section anchor="back">
      <name>Background</name>
      <section anchor="back-edhoc">
        <name>Authentication Credentials in EDHOC</name>
        <t>Public key authentication credentials in EDHOC are described in <xref section="3.5" sectionFormat="of" target="RFC9528"/>. (Pre-shared keys are out of scope.)</t>
        <t>The authentication credentials for the Initiator (I) and the Responder (R) are denoted CRED_I and CRED_R, respectively. To allow more flexibility in identifying and obtaining the credential, the EDHOC protocol does not have dedicated message fields for CRED_I and CRED_R. Instead the fields ID_CRED_I and ID_CRED_R are intended to facilitate the retrieval of the authentication credentials and the authentication keys. ID_CRED_I and ID_CRED_R are of type COSE header_map and contain one or more COSE header parameters, see corresponding IANA register. Some examples below for the case when the authentication credential (here CRED_R, similar applies to CRED_I) is an X.509 certificate:</t>
        <ol spacing="normal" type="1"><li>
            <t>CRED_R may be referenced by including the COSE header parameter x5u in the ID_CRED_R field of EDHOC message 2. x5u contains a URI to the Responder's certificate, for example, at some certificate repository.</t>
          </li>
          <li>
            <t>If the certificate is already available to the Initiator, then it can be identified using the COSE header parameter x5t in ID_CRED_R. x5t contains the certificate hash.</t>
          </li>
          <li>
            <t>ID_CRED_R can contain both x5u and x5t, allowing retrival and/or verification of the X.509 certificate.</t>
          </li>
        </ol>
        <t>(Note that in case the certificate do need to be transported it can be included with the COSE header parameter x5chain in ID_CRED_R or ID_CRED_I.)</t>
      </section>
      <section anchor="est-oscore">
        <name>Lightweight Certificate Enrolment with EST-OSCORE</name>
        <t>EST-OSCORE <xref target="I-D.ietf-ace-coap-est-oscore"/> specifies a lightweight certificate enrolment protocol protecting EST payloads over CoAP with OSCORE <xref target="RFC8613"/>.</t>
        <t>In the same spirit as in <xref target="back-edhoc"/>, the EST-OSCORE enrolment request from the EST client may result in a response from the Certification Authority (CA) containing a reference to and/or hash of the issued certificate, rather than the certificate itself. In this case the certificate is not available to the client (= the subject of the certificate) but of course the public/private key pair is. Hence, the client should be able to authenticate using EDHOC to a peer by providing a reference and/or hash of the certificate as described <xref target="back-edhoc"/>. This could be favorable if the client is on a constrained network and the peer and CA is on a non-constrained network, since the certificate is only transported over the non-constrained network compared to twice over the constrained network.</t>
        <t>However, this doesn't work directly with the current message processing in <xref target="RFC9528"/> as we explain in <xref target="edhoc-proc"/>, followed by a straightforward fix that makes it work in <xref target="repl-cred"/>.</t>
      </section>
    </section>
    <section anchor="edhoc-proc">
      <name>Authentication Credentials in EDHOC Message Processing</name>
      <t>When the EDHOC protocol was designed it was assumed that each endpoint has access to its own credential, and that it obtained the other endpoint's credential at least the first time it was used. Hence it was feasible to include the authentication credentials in the protocol message computations:</t>
      <ul spacing="normal">
        <li>
          <t>CRED_R is used in the computation of the message field Signature_or_MAC_2 (see <xref section="5.3.2" sectionFormat="of" target="RFC9528"/>):
          </t>
          <ul spacing="normal">
            <li>
              <t>MAC_2 is computed with context_2 = &lt;&lt; C_R, ID_CRED_R, TH_2, CRED_R, ? EAD_2 &gt;&gt;.</t>
            </li>
            <li>
              <t>The 'signature' field of the COSE_Sign1 object is computed with external_aad = &lt;&lt; TH_2, CRED_R, ? EAD_2 &gt;&gt;.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>CRED_R is included in the transcript hash TH_3 which is used to calculate, e.g., keys for message 3:
          </t>
          <ul spacing="normal">
            <li>
              <t>TH_3 = H(TH_2, PLAINTEXT_2, CRED_R), where H() is the EDHOC hash algorithm of the selected cipher suite.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>CRED_I is used in the computation of the message field Signature_or_MAC_3 (see <xref section="5.4.2" sectionFormat="of" target="RFC9528"/>):
          </t>
          <ul spacing="normal">
            <li>
              <t>MAC_3 is computed with context_3 = &lt;&lt; ID_CRED_I, TH_3, CRED_I, ? EAD_3 &gt;&gt;.</t>
            </li>
            <li>
              <t>The 'signature' field of the COSE_Sign1 object is computed with external_aad = &lt;&lt; TH_3, CRED_I, ? EAD_3 &gt;&gt;.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>CRED_I is included in the transcript hash TH_4 which is used to calculate, e.g., keys for message 4 and the session key PRK_out:
          </t>
          <ul spacing="normal">
            <li>
              <t>TH_4 = H(TH_3, PLAINTEXT_3, CRED_I), where H() is the EDHOC hash algorithm of the selected cipher suite.</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Since <xref target="RFC9528"/> requires the peers to use the authentication credentials to perform the protocol computations, and a client enrolling a certificate as described in the example in <xref target="est-oscore"/> only obtains a reference and/or a hash, it would not be able to use that certificate when authenticating to other peers.</t>
    </section>
    <section anchor="repl-cred">
      <name>Replacing Authentication Credential with Hash</name>
      <t>To ensure the integrity of the authentication credentials it is sufficient to include in the computation a digest of the relevant authentication credentials using a secure hash function.</t>
      <t>With this in mind we define a new mode of processing credentials in EDHOC where an authentication credential is replaced by a secure hash of that credential. The hash function used is the EDHOC hash function of the selected cipher suite, see <xref section="3.6" sectionFormat="of" target="RFC9528"/>.</t>
      <section anchor="new-cose-header-parameter">
        <name>New COSE Header Parameter</name>
        <t>The new processing mode is indicated with the COSE header parameter 'Hashed Credential', see <xref target="header-param"/>. The parameter has no value.</t>
      </section>
      <section anchor="new-processing">
        <name>New Processing</name>
        <t>The presence of the COSE header parameter 'Hashed Credential' in an ID_CRED_R indicates that CRED_R SHALL be replaced with H(CRED_R) in all EDHOC protocol computations, where H() is the EDHOC hash algorithm of the selected cipher suite. Analogously, the presence of the 'Hashed Credential' in an ID_CRED_I indicates that CRED_I SHALL be replaced with H(CRED_I) in all EDHOC protocol computations.</t>
        <t>Note that this parameter may be (typically is) present together with other COSE header parameters identifying the credential.</t>
        <t>The EDHOC processing described in <xref target="edhoc-proc"/> is thus replaced by the following:</t>
        <ul spacing="normal">
          <li>
            <t>H(CRED_R) is used in the computation of the message field Signature_or_MAC_2:
            </t>
            <ul spacing="normal">
              <li>
                <t>MAC_2 is computed with context_2 = &lt;&lt; C_R, ID_CRED_R, TH_2, H(CRED_R), ? EAD_2 &gt;&gt;.</t>
              </li>
              <li>
                <t>The 'signature' field of the COSE_Sign1 object is computed with external_aad = &lt;&lt; TH_2, H(CRED_R), ? EAD_2 &gt;&gt;.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>H(CRED_R) is included in the transcript hash TH_3:
            </t>
            <ul spacing="normal">
              <li>
                <t>TH_3 = H(TH_2, PLAINTEXT_2, H(CRED_R)).</t>
              </li>
            </ul>
          </li>
          <li>
            <t>H(CRED_I) is used in the computation of the message field Signature_or_MAC_3:
            </t>
            <ul spacing="normal">
              <li>
                <t>MAC_3 is computed with context_3 = &lt;&lt; ID_CRED_I, TH_3, H(CRED_I), ? EAD_3 &gt;&gt;.</t>
              </li>
              <li>
                <t>The 'signature' field of the COSE_Sign1 object is computed with external_aad = &lt;&lt; TH_3, H(CRED_I), ? EAD_3 &gt;&gt;.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>H(CRED_I) is included in the transcript hash TH_4:
            </t>
            <ul spacing="normal">
              <li>
                <t>TH_4 = H(TH_3, PLAINTEXT_3, H(CRED_I)).</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Replacing the credential with the hash value from a secure hash function does not impact the integrity properties. But it must be the correct hash and computed over the correct credential.</t>
      <t>In case the Initiator's own credential is hashed without it having access to the credential, like the client in the example of <xref target="est-oscore"/>, then the Initiator needs to obtain the hash of the credential from a trusted source. Similar for the Responder.</t>
      <t>In case the Responder's credential is hashed, the then Initiator MUST verify that the credential hash is correct, and vice versa. Each peer typically needs access to the other peer's credential anyway, to be able to authenticate, verify credential and/or meta-data, etc.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>There are no privacy considerations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="header-param">
        <name>COSE Header Parameters Registry</name>
        <t>IANA is requested to register the entry 'Hashed Credential' in the "COSE Header Parameters" registry under the registry group "CBOR Object Signing and Encryption (COSE)" (see <xref target="fig-header-params"/>). The parameter has no value. The Value Registry for this item is empty and omitted from the table below.</t>
        <figure anchor="fig-header-params">
          <name>COSE Header Parameter.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="144" width="568" viewBox="0 0 568 144" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
                <path d="M 112,32 L 112,128" fill="none" stroke="black"/>
                <path d="M 176,32 L 176,128" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,128" fill="none" stroke="black"/>
                <path d="M 560,32 L 560,128" fill="none" stroke="black"/>
                <path d="M 8,32 L 560,32" fill="none" stroke="black"/>
                <path d="M 8,62 L 560,62" fill="none" stroke="black"/>
                <path d="M 8,66 L 560,66" fill="none" stroke="black"/>
                <path d="M 8,128 L 560,128" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="52">Name</text>
                  <text x="144" y="52">Label</text>
                  <text x="208" y="52">Value</text>
                  <text x="252" y="52">Type</text>
                  <text x="336" y="52">Description</text>
                  <text x="44" y="84">Hashed</text>
                  <text x="136" y="84">TBD</text>
                  <text x="224" y="84">-</text>
                  <text x="304" y="84">The</text>
                  <text x="364" y="84">credential</text>
                  <text x="432" y="84">shall</text>
                  <text x="468" y="84">be</text>
                  <text x="516" y="84">replaced</text>
                  <text x="60" y="100">Credential</text>
                  <text x="308" y="100">with</text>
                  <text x="344" y="100">the</text>
                  <text x="380" y="100">hash</text>
                  <text x="412" y="100">of</text>
                  <text x="440" y="100">the</text>
                  <text x="500" y="100">credential</text>
                  <text x="300" y="116">in</text>
                  <text x="348" y="116">protocol</text>
                  <text x="440" y="116">computations.</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+------------+-------+------------+----------------------------------+
| Name       | Label | Value Type | Description                      |
+============+=======+============+==================================+
| Hashed     | TBD   |     -      | The credential shall be replaced |
| Credential |       |            | with the hash of the credential  |
|            |       |            | in protocol computations.        |
+------------+-------+------------+----------------------------------+
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <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="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="I-D.ietf-ace-coap-est-oscore">
          <front>
            <title>Protecting EST Payloads with OSCORE</title>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus</organization>
            </author>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>Inria</organization>
            </author>
            <author fullname="Timothy Claeys" initials="T." surname="Claeys">
         </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   Enrollment over Secure Transport (EST) is a certificate provisioning
   protocol over HTTPS [RFC7030] or CoAPs [RFC9148].  This document
   specifies how to carry EST over the Constrained Application Protocol
   (CoAP) protected with Object Security for Constrained RESTful
   Environments (OSCORE).  The specification builds on the EST-coaps
   [RFC9148] specification, but uses OSCORE and Ephemeral Diffie-Hellman
   over COSE (EDHOC) instead of DTLS.  The specification also leverages
   the certificate structures defined in
   [I-D.ietf-cose-cbor-encoded-cert], which can be optionally used
   alongside X.509 certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-coap-est-oscore-08"/>
        </reference>
      </references>
    </references>
    <?line 177?>

<section numbered="false" anchor="acknowledgment">
      <name>Acknowledgments</name>
    </section>
  </back>
  <!-- ##markdown-source:
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
WiZDFIfR67U0oz3+C8k2FLgxKgAA

-->

</rfc>
