<?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.2 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-housley-lamps-cms-cek-hkdf-sha256-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="Encryption Key Derivation in CMS">Encryption Key Derivation in the Cryptographic Message Syntax (CMS) using HKDF with SHA-256</title>
    <seriesInfo name="Internet-Draft" value="draft-housley-lamps-cms-cek-hkdf-sha256-00"/>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <postal>
          <city>Herndon, VA</city>
          <country>US</country>
        </postal>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <date year="2023" month="November" day="30"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 82?>

<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>
  <middle>
    <?line 90?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document specifies the derivation of the content-encryption key for the
Cryptographic Message Syntax (CMS) enveloped-data content type <xref target="RFC5652"/>, the
content-encryption key for the CMS encrypted-data content type <xref target="RFC5652"/>, or the
content-authenticated-encryption key for the authenticated-enveloped-data
content type <xref target="RFC5083"/>.</t>
      <t>The use of this mechanism provides protection against where the attacker manipulates the
content-encryption algorithm identifier or the content-authenticated-encryption
algorithm identifier.  Johannes Roth and Falko Strenzke presented such an attack
at IETF 118 <xref target="RS2023"/>, where:</t>
      <ol spacing="normal" type="1"><li>
          <t>The attacker intercepts a CMS Authenticated-Enveloped-Data content <xref target="RFC5083"/>
that uses either AES-CCM or AES-GCM <xref target="RFC5084"/>.</t>
        </li>
        <li>
          <t>The attacker turns the intercepted content into a "garbage" CMS Enveloped-Data
content <xref section="6" sectionFormat="of" target="RFC5652"/> that is composed of AES-CBC guess blocks.</t>
        </li>
        <li>
          <t>The attacker sends the "garbage" message to the victim, and the victim reveals
the result of the decryption with the attacker.</t>
        </li>
        <li>
          <t>If any of the transformed plaintext blocks match the guess for that block, then
the attacker learns the plaintext for that block.</t>
        </li>
      </ol>
      <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 three parts:</t>
      <ul spacing="normal">
        <li>
          <t>Potential recipients include the object identifier for the use-cms-cek-hkdf-sha256
attribute (with no parameters) in S/MIME Capabilities to indicate support for
this mitigation.</t>
        </li>
        <li>
          <t>As a flag to the recipient that this mitigation is being used, carry the
use-cms-cek-hkdf-sha256 attribute in the unprotected attributes.</t>
        </li>
        <li>
          <t>Perform encryption with a derived content-encryption key or
content-authenticated-encryption key:</t>
        </li>
      </ul>
      <artwork><![CDATA[
      CEK' = HKDF(CEK, AlgorithmIdentifier)
]]></artwork>
      <section anchor="asn1">
        <name>ASN.1</name>
        <t>CMS values are generated using ASN.1 <xref target="X680"/>, using the Basic
Encoding Rules (BER) and the Distinguished Encoding Rules
(DER) <xref target="X690"/>.</t>
      </section>
      <section anchor="terminology">
        <name>Terminology</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>
    <section anchor="cmskdf">
      <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 materiam (OKM) from
input key material (IKM).  HKDF is used with the SHA-256 hash function
<xref target="FIPS180"/>.  The derivation includes the DER-encoded AlgoritmIdentifier as
the optional info input value.  If an attacker were to change the
originator-provided AlgoritmIdentifier, then the recipient will derive a
different content-encryption key or content-authenticated-encryption key.</t>
      <t>The CMS_CEK_HKDF_SHA256 function uses the HKDF-Extract and HKDF-Expand functions
to derive the OKM from the IKM:</t>
      <artwork><![CDATA[
Inputs:
   IKM      input keying material
   info     DER-encoded AlgoritmIdentifier

Output:
   OKM      output keying material (same size as IKM)

The output OKM is calculated as follows:

   OKM_SIZE = len(IKM)
   IF OKM_SIZE > 8160 THEN raise error

   salt = "The Cryptographic Message Syntax"
   PRK = HKDF-Extract(salt, IKM)

   OKM = HKDF-Expand(PRK, info, OKM_SIZE)
   
]]></artwork>
    </section>
    <section anchor="attr-def">
      <name>The use-cms-cek-hkdf-sha256 Attribute</name>
      <t>The use-cms-cek-hkdf-sha256 attribute specifies that the CMS_CEK_HKDF_SHA256
function defined in <xref target="cmskdf"/> to derive the content-encryption key or the
content-authenticated-encryption key.</t>
      <t>The use-cms-cek-hkdf-sha256 attribute <bcp14>MUST</bcp14> be a unprotected attribute or an
unauthenticated attribute; it <bcp14>MUST NOT</bcp14> be an signed attribute,
authenticated attribute, or protected attribute.</t>
      <t>The following object identifier identifies the use-cms-cek-hkdf-sha256
attribute:</t>
      <sourcecode type="asn.1"><![CDATA[
   id-aa-use-cms-cek-hkdf-sha256 OBJECT IDENTIFIER ::= { TBD1 }
]]></sourcecode>
      <t>The use-cms-cek-hkdf-sha256 attribute values have ASN.1 type of NULL.</t>
      <t>Using the conventions from <xref target="RFC5911"/>, the use-cms-cek-hkdf-sha256 attribute
is defined as:</t>
      <sourcecode type="asn.1"><![CDATA[
  aa-useCMSCEKHKDFSHA256 ATTRIBUTE ::=
      { TYPE NULL IDENTIFIED BY id-aa-use-cms-cek-hkdf-sha256 }
]]></sourcecode>
    </section>
    <section anchor="smimecapabilities-attribute-conventions">
      <name>SMIMECapabilities Attribute Conventions</name>
      <t>The SMIMECapabilities Attribute is defined in <xref section="2.5.2" sectionFormat="of" target="RFC8551"/>.  An
S/MIME client announces the set of cryptographic functions it supports using the
SMIMECapabilities attribute.</t>
      <t>If an S/MIME client is supports the mechanism in this document, the
id-use-cms-cek-hkdf-sha256 OID <bcp14>SHOULD</bcp14> be included in the set of
cryptographic functions.  The parameter with this encoding <bcp14>MUST</bcp14> be absent.</t>
      <t>The encoding for id-use-cms-cek-hkdf-sha256, in hexadecimal, is:</t>
      <artwork><![CDATA[
   30 TBD
]]></artwork>
    </section>
    <section anchor="use-of-of-hkdf-with-sha-256-with-cms">
      <name>Use of of HKDF with SHA-256 with CMS</name>
      <t>This section describe the originator and recipient processing to implement
this mitigation for each of the CMS encrypting content types.</t>
      <section anchor="enveloped-data-content-type">
        <name>Enveloped-Data Content Type</name>
        <t>As specified in <xref section="6" sectionFormat="of" target="RFC5652"/>, the fourth step of constructing an
Enveloped-data is:</t>
        <artwork><![CDATA[
4.  The content is encrypted with the content-encryption key.
    Content encryption may require that the content be padded to a
    multiple of some block size; see Section 6.3 of [RFC5652].

]]></artwork>
        <t>To implement this mitigation, the originator expands this step as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Include the use-cms-cek-hkdf-sha256 attribute in the UnprotectedAttributes.</t>
          </li>
          <li>
            <t>Derive the new content-encryption key (CEK') from the
original content-encryption key (CEK) and the
ContentEncryptionAlgorithmIdentifier:</t>
          </li>
        </ul>
        <artwork><![CDATA[
CEK' = CMS_CEK_HKDF_SHA256(CEK, ContentEncryptionAlgorithmIdentifier)
]]></artwork>
        <ul spacing="normal">
          <li>
            <t>The content is encrypted with the new content-encryption key (CEK').
Content encryption may require that the content be padded to a
multiple of some block size; see <xref section="6.3" sectionFormat="of" target="RFC5652"/>.</t>
          </li>
        </ul>
        <t>If the use-cms-cek-hkdf-sha256 attribute is present in the UnprotectedAttributes of
an Enveloped-Data Content Type, then the recipient derives the new content-encryption
key (CEK') as shown above, and uses it for decryption of the EncryptedContent.  If
the use-cms-cek-hkdf-sha256 attribute is not present in the UnprotectedAttributes,
then the recipient uses the original content-encryption key (CEK) for decryption of
the EncryptedContent.</t>
      </section>
      <section anchor="encrypted-data-content-type">
        <name>Encrypted-Data Content Type</name>
        <t>As specified in <xref section="8" sectionFormat="of" target="RFC5652"/>, the content-encryption key
is managed by other means.</t>
        <t>To implement this mitigation, the originator performs the following:</t>
        <ul spacing="normal">
          <li>
            <t>Include the use-cms-cek-hkdf-sha256 attribute in the UnprotectedAttributes.</t>
          </li>
          <li>
            <t>Derive the new content-encryption key (CEK') from the
original content-encryption key (CEK) and the
ContentEncryptionAlgorithmIdentifier:</t>
          </li>
        </ul>
        <artwork><![CDATA[
CEK' = CMS_CEK_HKDF_SHA256(CEK, ContentEncryptionAlgorithmIdentifier)
]]></artwork>
        <ul spacing="normal">
          <li>
            <t>The content is encrypted with the new content-encryption key (CEK').
Content encryption may require that the content be padded to a
multiple of some block size; see <xref section="6.3" sectionFormat="of" target="RFC5652"/>.</t>
          </li>
        </ul>
        <t>If the use-cms-cek-hkdf-sha256 attribute is present in the UnprotectedAttributes of
an Encrypted-Data Content Type, then the recipient derives the new content-encryption
key (CEK') as shown above, and uses it for decryption of the EncryptedContent.  If
the use-cms-cek-hkdf-sha256 attribute is not present in the UnprotectedAttributes,
then the recipient uses the original content-encryption key (CEK) for decryption of
the EncryptedContent.</t>
      </section>
      <section anchor="authenticated-enveloped-data-content-type">
        <name>Authenticated-Enveloped-Data Content Type</name>
        <t>As specified in <xref section="2" sectionFormat="of" target="RFC5083"/>, the fifth step of constructing an
Authenticated-Enveloped-Data is:</t>
        <artwork><![CDATA[
5.  The attributes collected in step 4 are authenticated and the CMS
    content is authenticated and encrypted with the content-
    authenticated-encryption key.  If the authenticated encryption
    algorithm requires either the additional authenticated data (AAD)
    or the content to be padded to a multiple of some block size,
    then the padding is added as described in Section 6.3 of
    [RFC5652].

]]></artwork>
        <t>To implement this mitigation, the originator expands this step as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Include the use-cms-cek-hkdf-sha256 attribute in the UnauthAttributes.</t>
          </li>
          <li>
            <t>Derive the new content-authenticated-encryption key (CEK') from the
original content-authenticated-encryption key (CEK) and the
ContentEncryptionAlgorithmIdentifier:</t>
          </li>
        </ul>
        <artwork><![CDATA[
CEK' = CMS_CEK_HKDF_SHA256(CEK, ContentEncryptionAlgorithmIdentifier)
]]></artwork>
        <ul spacing="normal">
          <li>
            <t>The attributes collected in step 4 are authenticated and the CMS
content is authenticated and encrypted with the new
content-authenticated-encryption key (CEK').  If the authenticated
encryption algorithm requires either the additional authenticated data (AAD)
or the content to be padded to a multiple of some block size,
then the padding is added as described in <xref section="6.3" sectionFormat="of" target="RFC5652"/>.</t>
          </li>
        </ul>
        <t>If the use-cms-cek-hkdf-sha256 attribute is present in the UnauthAttributes
of an Enveloped-Data Content Type, then the recipient derives the new
content-authenticated-encryption key (CEK') as shown above, and uses it for
authenticated decryption of the EncryptedContent and the authentication of the
AAD.  If the use-cms-cek-hkdf-sha256 attribute is not present in the
UnauthAttributes, then the recipient uses the original
content-authenticated-encryption (CEK) for decryption  and authentication of
the EncryptedContent and the authentication of the AAD.</t>
      </section>
    </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 use-cms-cek-hkdf-sha256 attribute from the
unprotected attributes or unauthenticated attributes, then the recipient will
derive a different CEK', which will not assist the attacker in recovering the
plaintext content.</t>
      <t>If the attacker changes the ContentEncryptionAlgorithmIdentifier, then the
recipient will derive a different CEK', which will not assist the attacker in
recovering the plaintext content.  The AlgorithmIdentifier object identifier is
sufficient to mitigate the attack described in <xref target="RS2023"/>, but this mitigation
includes 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 and
content-authenticated-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.  Using an inadequate pseudo-random
number generator (PRNG) to generate cryptographic keys can result in little or
no security.  An attacker may find it much easier to reproduce the PRNG
environment that produced the keys, and then searching the resulting small set
of possibilities, rather than brute force searching the whole key space.  The
generation of quality random numbers is difficult.  <xref target="RFC4086"/> offers important
guidance on this topic.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>If the message-digest attribute is included in the AuthAttributes,
then the attribute value will contain the unencrypted one-way hash
value of the plaintext of the content.  Disclosure of this hash value
enables content tracking, and it can be used to determine if the
plaintext matches one or more candidate contents.  For these reasons,
the AuthAttributes <bcp14>SHOULD NOT</bcp14> contain the message-digest attribute.</t>
    </section>
    <section anchor="operations-considerations">
      <name>Operations Considerations</name>
      <t>CMS is often used to provide encryption in messaging environments,
where various forms of unsolicited messages (such as spam and phishing)
represent a significant volume of unwanted traffic.  Mitigation strategies
for unwanted message traffic involve analysis of message plaintext.  When
recipients accept unsolicited encrypted messages, they become even more
vulnerable to unwanted traffic since many mitigation strategies will be
unable to access the message plaintext.  Therefore, software that receives
messages that have been encrypted using CMS ought to provide alternate
mechanisms to handle the unwanted message traffic.  One approach that
does not require disclosure of keying material to a server is to reject
or discard encrypted messages unless they purport to come from a member
of a previously approve originator list.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>For the ASN.1 Module in the <xref target="appendix-asn1"/> of this document, IANA
is requested to assign an object identifier (OID) for the module
identifier (TBD0) with a Description of "id-mod-CMS-CEK-HKDF-SHA256-2023".  The
OID for the module should be allocated in the "SMI Security for S/MIME Module Identifier"
registry (1.2.840.113549.1.9.16.0).</t>
      <t>For the use-cms-cek-hkdf-sha256 attribute definition in <xref target="attr-def"/> of this
document, IANA is requested to assign an object identifier (OID) (TBD1) with a
Description of "id-aa-use-cms-cek-hkdf-sha256".  The OID for the module
should be allocated in the "SMI Security for<br/>
S/MIME Attributes" registry (1.2.840.113549.1.9.16.2).</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Mike Ounsworth for his careful review and constructive comments.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5083">
          <front>
            <title>Cryptographic Message Syntax (CMS) Authenticated-Enveloped-Data Content Type</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="November" year="2007"/>
            <abstract>
              <t>This document describes an additional content type for the Cryptographic Message Syntax (CMS). The authenticated-enveloped-data content type is intended for use with authenticated encryption modes. All of the various key management techniques that are supported in the CMS enveloped-data content type are also supported by the CMS authenticated-enveloped-data content type. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5083"/>
          <seriesInfo name="DOI" value="10.17487/RFC5083"/>
        </reference>
        <reference anchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </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="RFC8551">
          <front>
            <title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="B. Ramsdell" initials="B." surname="Ramsdell"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0. S/MIME provides a consistent way to send and receive secure MIME data. Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality. Compression can be used to reduce data size. This document obsoletes RFC 5751.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8551"/>
          <seriesInfo name="DOI" value="10.17487/RFC8551"/>
        </reference>
        <reference anchor="FIPS180">
          <front>
            <title>Secure Hash Standard (SHS)</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="180-4"/>
        </reference>
        <reference anchor="X680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information technology -- Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.680"/>
          <seriesInfo name="ISO/IEC" value="8824-1:2021"/>
        </reference>
        <reference anchor="X690" target="https://www.itu.int/rec/T-REC-X.690">
          <front>
            <title>Information technology -- ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1-2021"/>
        </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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </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="RFC5911">
          <front>
            <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5911"/>
          <seriesInfo name="DOI" value="10.17487/RFC5911"/>
        </reference>
        <reference anchor="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </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="J." surname="Roth" fullname="Johannes Roth">
              <organization>MTG AG</organization>
            </author>
            <author initials="F." surname="Strenzke" fullname="Falko Strenzke">
              <organization>MTG AG</organization>
            </author>
            <date year="2023" month="November" day="08"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 436?>

<section anchor="appendix-asn1">
      <name>ASN.1 Module</name>
      <t>This ASN.1 Module builds upon the conventions established in <xref target="RFC5911"/> and <xref target="RFC5912"/>.</t>
      <sourcecode type="asn.1"><![CDATA[
<CODE STARTS>

CMS-CEK-HKDF-SHA256-Module-2023
  { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
    id-smime(16) id-mod(0) id-mod-CMS-CEK-HKDF-SHA256-2023(TBD0) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS
  ATTRIBUTE
  FROM PKIX-CommonTypes-2009   -- in [FRC5912]
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-pkixCommon-02(57) }

  SMIME-CAPS
  FROM AlgorithmInformation-2009 -- in [FRC5911]
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-algorithmInformation-02(58) } ;


--
-- use-CMS-CEK-HKDF-SHA256 Attribute
--

UnprotectedAttrs ATTRIBUTE ::= { aa-useCMSCEKHKDFSHA256, ... }

id-aa-use-cms-cek-hkdf-sha256 OBJECT IDENTIFIER ::= { TBD1 }

aa-useCMSCEKHKDFSHA256 ATTRIBUTE ::=
    { TYPE NULL IDENTIFIED BY id-aa-use-cms-cek-hkdf-sha256 }

--
-- S/MIIME Capability for use-CMS-CEK-HKDF-SHA256
--

SMimeCaps SMIME-CAPS ::= { cap-useCMSCEKHKDFSHA256, ... }

cap-useCMSCEKHKDFSHA256 SMIME-CAPS ::=
    { -- No value -- IDENTIFIED BY id-aa-use-cms-cek-hkdf-sha256 }
     
END

<CODE ENDS>
]]></sourcecode>
    </section>
    <section anchor="cmscekhkdfsha256-function-examples">
      <name>CMS_CEK_HKDF_SHA256 Function Examples</name>
      <t>This appendix provides two test vectores for the CMS_CEK_HKDF_SHA256 function.</t>
      <section anchor="cmscekhkdfsha256-with-aes-128-gcm">
        <name>CMS_CEK_HKDF_SHA256 with AES-128-GCM</name>
        <t>This test vector uses includes an AlgorithmIdentifier for<br/>
AES-128-GCM.</t>
        <artwork><![CDATA[
IKM = c702e7d0a9e064b09ba55245fb733cf3

The AES-128-CGM AlgorithmIdentifier:
 algorithm=2.16.840.1.101.3.4.1.6
 parameters=GCMParameters:
  aes-nonce=0x5c79058ba2f43447639d29e2
  aes-ICVlen is ommited; it indicates the DEFAULT of 12

DER-encoded AlgorithmIdentifier:
  301b0609608648016503040106300e040c5c79058ba2f43447639d29e2

OKM = 2124ffb29fac4e0fbbc7d5d87492bff3

]]></artwork>
      </section>
      <section anchor="cmscekhkdfsha256-with-aes-128-cbc">
        <name>CMS_CEK_HKDF_SHA256 with AES-128-CBC</name>
        <t>This test vector uses includes an AlgorithmIdentifier for<br/>
AES-128-CBC.</t>
        <artwork><![CDATA[
IKM = c702e7d0a9e064b09ba55245fb733cf3

The AES-128-CBC AlgorithmIdentifier:
 algorithm=2.16.840.1.101.3.4.1.2
 parameters=AES-IV=0x651f722ffd512c52fe072e507d72b377

DER-encoded AlgorithmIdentifier:
  301d06096086480165030401020410651f722ffd512c52fe072e507d72b377

OKM = 9cd102c52f1e19ece8729b35bfeceb50

]]></artwork>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
+2cnSAAA

-->

</rfc>
