<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.17 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-tschofenig-cose-cek-hkdf-sha256-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Encryption Key Derivation in COSE">Encryption Key Derivation in the COSE using HKDF with SHA-256</title>

    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <email>Hannes.Tschofenig@gmx.net</email>
        <uri>https://www.h-brs.de</uri>
      </address>
    </author>

    <date year="2024" month="July" day="08"/>

    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>COSE</keyword> <keyword>AEAD Downgrade Attack</keyword>

    <abstract>


<?line 59?>

<t>This document specifies the derivation of the content-encryption key in
CBOR Object Signing and Encryption (COSE). This mechanism protects against
attacks where an attacker manipulates the content-encryption algorithm
identifier.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-tschofenig-cose-cek-hkdf-sha256/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        COSE Working Group mailing list (<eref target="mailto:cose@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/cose/about/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cose/"/>.
      </t>
    </note>


  </front>

  <middle>


<?line 66?>

<section anchor="introduction"><name>Introduction</name>

<t>This document specifies the derivation of the content-encryption key
for COSE. The use of this mechanism provides protection against
where the
attacker manipulates the content-encryption algorithm identifier. This
attack has been demonstrated against CMS and the mitigation can be
found in <xref target="I-D.ietf-lamps-cms-cek-hkdf-sha256"/>.  This attack is generic
and can apply to other protocols with similar characteristics, such as
COSE. However, the attack requires several preconditions:</t>

<t><list style="numbers" type="1">
  <t>The attacker intercepts a COSE Encrypt payload that uses either
AES-CCM or AES-GCM <xref target="RFC5084"/>.</t>
  <t>The attacker converts the intercepted content into a "garbage" COSE
Encrypt payload composed of AES-CBC guess blocks.</t>
  <t>The attacker sends the "garbage" message to the victim, who then
reveals the result of the decryption to the attacker.</t>
  <t>If any of the transformed plaintext blocks match the guess for
that block, then the attacker learns the plaintext for that
block.</t>
</list></t>

<t>With highly structured messages, one block can reveal the only
sensitive part of the original message.</t>

<t>This attack is thwarted if the encryption key depends upon the
delivery of the unmodified algorithm identifier.</t>

<t>The mitigation for this attack has two parts:</t>

<t><list style="symbols">
  <t>Potential recipients include a new parameter, cek-hkdf, in the
outermost protected header of the COSE_Encrypt payload to indicate
support for this mitigation. This parameter <bcp14>MUST</bcp14> use the value true.</t>
  <t>Perform encryption with a derived content-encryption key or
content-authenticated-encryption key. The new CEK' is the result
of deriving a CEK. This key derivation uses the alg parameter
found in the outermost COSE_Encrypt header.</t>
</list></t>

<figure><artwork><![CDATA[
CEK' = HKDF(CEK, COSE_Encrypt.alg)
]]></artwork></figure>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>

<?line -18?>

</section>
<section anchor="use-of-of-hkdf-with-sha-256-to-derive-encryption-keys"><name>Use of of HKDF with SHA-256 to Derive Encryption Keys</name>

<t>The mitigation uses the HMAC-based Extract-and-Expand Key Derivation
Function (HKDF) <xref target="RFC5869"/> to derive output keying material (OKM) from
input key material (IKM). HKDF is used with the SHA-256 hash
function <xref target="FIPS180"/>.</t>

<t>If an attacker were to change the originator-provided COSE_Encrypt
algorithm identifier then the recipient will derive a different
content-encryption key.</t>

<t>The CEK_HKDF function uses the HKDF-Extract and HKDF-
Expand functions to derive the OKM from the IKM:</t>

<figure><artwork><![CDATA[
Inputs:
  IKM        Input keying material
  alg        COSE_Key algorithm identifier

Output:
  OKM      output keying material (same size as IKM)
]]></artwork></figure>

<t>The output OKM is calculated as follows:</t>

<figure><artwork><![CDATA[
  OKM_SIZE = len(IKM)
  IF OKM_SIZE > 8160 THEN raise error

  salt = "CBOR Object Signing and Encryption"
  PRK = HKDF-Extract(salt, IKM)

  OKM = HKDF-Expand(PRK, alg, OKM_SIZE)
]]></artwork></figure>

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

<t>This mitigation always uses HKDF with SHA-256. One KDF algorithm was selected to avoid the need for negotiation. In the future, if a weakness is found in the KDF algorithm, a new attribute will need to be assigned for use with an alternative KDF algorithm.</t>

<t>If the attacker removes the cek-hkdf header parameter from the COSE_Encrypt header prior to delivery to the recipient, then the recipient will not attempt to derive CEK', which will deny the recipient access to the content, but will not assist the attacker in recovering the plaintext content.</t>

<t>If the attacker changes the value of the COSE_Encrypt alg parameter prior to delivery to the recipient, then the recipient will derive a different CEK', which will not assist the attacker in recovering the plaintext content. Providing the algorithm identifer as an input to the key derivation function is sufficient to mitigate the attack described in <xref target="RS2023"/>, but this mitigation includes both the object identifier and the parameters to protect against some yet-to-be-discovered attack that only manipulates the parameters.</t>

<t>Implementations <bcp14>MUST</bcp14> protect the content-encryption keys, this includes the CEK and CEK'. Compromise of a content-encryption key may result in disclosure of the associated encrypted content. Compromise of a content-authenticated-encryption key may result in disclosure of the associated encrypted content or allow modification of the authenticated content and the additional authenticated data (AAD).</t>

<t>Implementations <bcp14>MUST</bcp14> randomly generate content-encryption keys and content-authenticated-encryption keys. Content key distribution methods are described in Section 8.5 of <xref target="RFC9052"/> and in Section 6 of <xref target="RFC9053"/>. These algorithms define derivation and protection of content-encryption keys.</t>

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

<t>IANA is requested to add a new header parameter to the "COSE Common
Header Parameters" established with <xref target="RFC9052"/>.</t>

<figure><artwork><![CDATA[
+-----------+-------+--------------+-------------+------------------+
| Name      | Label | Value Type   | Value       | Description      |
|           |       |              | Registry    |                  |
+-----------+-------+--------------+-------------+------------------+
| cek-hkdf  | TBD   | bool         | N/A         | CEK-HKDF-SHA256  |
+-----------+-------+--------------+-------------+------------------+
]]></artwork></figure>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC9052">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
      <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="96"/>
  <seriesInfo name="RFC" value="9052"/>
  <seriesInfo name="DOI" value="10.17487/RFC9052"/>
</reference>

<reference anchor="RFC9053">
  <front>
    <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <date month="August" year="2022"/>
    <abstract>
      <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
      <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9053"/>
  <seriesInfo name="DOI" value="10.17487/RFC9053"/>
</reference>

<reference anchor="RFC5084">
  <front>
    <title>Using AES-CCM and AES-GCM Authenticated Encryption in the Cryptographic Message Syntax (CMS)</title>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <date month="November" year="2007"/>
    <abstract>
      <t>This document specifies the conventions for using the AES-CCM and the AES-GCM authenticated encryption algorithms with the Cryptographic Message Syntax (CMS) authenticated-enveloped-data content type. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5084"/>
  <seriesInfo name="DOI" value="10.17487/RFC5084"/>
</reference>

<reference anchor="RFC5869">
  <front>
    <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
    <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
    <author fullname="P. Eronen" initials="P." surname="Eronen"/>
    <date month="May" year="2010"/>
    <abstract>
      <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5869"/>
  <seriesInfo name="DOI" value="10.17487/RFC5869"/>
</reference>


<reference anchor="FIPS180" target="https://csrc.nist.gov/pubs/fips/180-4/upd1/final">
  <front>
    <title>Secure Hash Standard (SHS), FIPS PUB 180-4</title>
    <author >
      <organization>National Institute of Standards and Technology (NIST)</organization>
    </author>
    <date year="2015" month="August"/>
  </front>
</reference>


<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="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 title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.ietf-lamps-cms-cek-hkdf-sha256">
   <front>
      <title>Encryption Key Derivation in the Cryptographic Message Syntax (CMS) using HKDF with SHA-256</title>
      <author fullname="Russ Housley" initials="R." surname="Housley">
         <organization>Vigil Security, LLC</organization>
      </author>
      <date day="8" month="July" year="2024"/>
      <abstract>
	 <t>   This document specifies the derivation of the content-encryption key
   or the content-authenticated-encryption key in the Cryptographic
   Message Syntax (CMS).  The use of this mechanism provides protection
   against where the attacker manipulates the content-encryption
   algorithm identifier or the content-authenticated-encryption
   algorithm identifier.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-cek-hkdf-sha256-02"/>
   
</reference>


<reference anchor="RS2023" target="https://datatracker.ietf.org/meeting/118/materials/slides-118-lamps-attack-against-aead-in-cms">
  <front>
    <title>AEAD-to-CBC Downgrade Attacks on CMS</title>
    <author initials="F." surname="Strenzke" fullname="Falko Strenzke">
      <organization>MTG AG</organization>
    </author>
    <author initials="J." surname="Roth" fullname="Johannes Roth">
      <organization>MTG AG</organization>
    </author>
    <date year="2023" month="November"/>
  </front>
</reference>


    </references>


<?line 196?>

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

<t>The author would like to thank Russ Housley and Ken Takayama for their feedback. The content of this document re-uses from the work done by Russ and applies it to COSE.</t>

</section>


  </back>

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

-->

</rfc>

