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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3161 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3161.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC5652 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5652.xml">
<!ENTITY RFC6211 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6211.xml">
<!ENTITY RFC5083 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5083.xml">
<!ENTITY RFC5280 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
<!ENTITY RFC6210 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6210.xml">
<!ENTITY RFC8017 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8017.xml">
]>

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

<rfc ipr="trust200902" docName="draft-ietf-lamps-cms-update-alg-id-protect-04" category="std" updates="5652">

  <front>
    <title abbrev="CMS Algorithm Identifier Protection">Update to the Cryptographic Message Syntax (CMS) for Algorithm Identifier Protection</title>

    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <postal>
          <street>516 Dranesville Road</street>
          <city>Herndon, VA</city>
          <code>20170</code>
          <country>US</country>
        </postal>
        <email>housley@vigilsec.com</email>
      </address>
    </author>

    <date year="2020" month="August" day="27"/>

    <area>Security</area>
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document updates the Cryptographic Message Syntax (CMS) specified in RFC 5652 to ensure that algorithm identifiers in signed-data and authenticated-data content types are adequately protected.</t>



    </abstract>


  </front>

  <middle>


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

<t>This document updates the Cryptographic Message Syntax (CMS) <xref target="RFC5652"/> to ensure that algorithm identifiers in signed-data and authenticated-data content types are adequately protected.</t>

<t>The CMS signed-data Content Type <xref target="RFC5652"/>, unlike X.509 certificates <xref target="RFC5280"/>, can be vulnerable to algorithm substitution attacks.  In an algorithm substitution attack, the attacker changes either the algorithm identifier or the parameters associated with the algorithm identifier to change the verification process used by the recipient.  The X.509 certificate structure protects the algorithm identifier and the associated parameters by signing them.</t>

<t>In an algorithm substitution attack, the attacker looks for a different algorithm that produces the same result as the algorithm used by the originator.  As an example, if the signer of a message used SHA-256 <xref target="SHS"/> as the digest algorithm to hash the message content, then the attacker looks for a weaker hash algorithm that produces a result that is of the same length.  The attacker’s goal is to find a different message that results in the same hash value, which is called a cross-algorithm collision.  Today, there are many hash functions that produce 256-bit results.  One of them may be found to be weak in the future.</t>

<t>Further, when a digest algorithm produces a larger result than is needed by a digital signature algorithm, the digest value is reduced to the size needed by the signature algorithm.  This can be done both by truncation and modulo operations, with the simplest being straightforward truncation.  In this situation, the attacker needs to find a collision with the reduced digest value.  As an example, if the message signer uses SHA-512 <xref target="SHS"/> as the digest algorithm and ECDSA with the P-256 curve <xref target="DSS"/> as the signature algorithm, then the attacker needs to find a collision with the first half of the digest.</t>

<t>Similar attacks can be mounted against parameterized algorithm identifiers.  When looking at randomized hash functions, such as the example in <xref target="RFC6210"/>, the algorithm identifier parameter includes a random value that can be manipulated by an attacker looking for collisions.  Some other algorithm identifiers include complex parameter structures, and each value provides another opportunity for manipulation by an attacker.</t>

<t>This document makes two updates to CMS to provide protection for the algorithm identifier.  First, it mandates a convention followed by many implementations by requiring the originator to use the same hash algorithm to compute the digest of the message content and the digest of signed attributes.  Second, it recommends that the originator include the CMSAlgorithmProtection attribute <xref target="RFC6211"/>.</t>

</section>
<section anchor="terms" title="Terminology">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” in this  document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

</section>
<section anchor="required-use-the-same-hash-algorithm" title="Required use the same hash algorithm">

<t>This section updates <xref target="RFC5652"/> to require the originator to use the same hash algorithm to compute the digest of the message content and the digest of signed attributes.</t>

<section anchor="rfc-5652-section-53" title="RFC 5652, Section 5.3">

<t>Change the paragraph describing the digestAlgorithm as follows:</t>

<t>OLD:</t>

<t><list style='empty'>

  <t>digestAlgorithm identifies the message digest algorithm, and any
   associated parameters, used by the signer.  The message digest is
   computed on either the content being signed or the content
   together with the signed attributes using the process described in
   Section 5.4.  The message digest algorithm SHOULD be among those
   listed in the digestAlgorithms field of the associated SignerData.
   Implementations MAY fail to validate signatures that use a digest
   algorithm that is not included in the SignedData digestAlgorithms
   set.</t>
</list></t>

<t>NEW:</t>

<t><list style='empty'>

  <t>digestAlgorithm identifies the message digest algorithm, and any
   associated parameters, used by the signer.  The message digest is
   computed on either the content being signed or the content
   together with the signedAttrs using the process described in
   Section 5.4.  The message digest algorithm SHOULD be among those
   listed in the digestAlgorithms field of the associated SignerData.
   If the signedAttrs field is present in the SignerInfo, then the same
   digest algorithm MUST be used to compute both the digest of the
   SignedData encapContentInfo eContent, which is carried in the
   message-digest attribute, and the digest of the DER-encoded
   signedAttrs, which is passed to the signature algorithm.
   Implementations MAY fail to validate signatures that use a
   digest algorithm that is not included in the SignedData
   digestAlgorithms set.</t>
</list></t>

</section>
<section anchor="rfc-5652-section-54" title="RFC 5652, Section 5.4">

<t>Add the following paragraph as the second paragraph in Section 5.4:</t>

<t>ADD:</t>

<t><list style='empty'>

  <t>When the signedAttrs field is present, the same digest algorithm
   MUST be used to compute the digest of the encapContentInfo
   eContent OCTET STRING, which is carried in the message-digest
   attribute, and the digest of the collection of attributes that
   are signed.</t>
</list></t>

<t>nit: there may be a grammar nit here, relating to the parallelism of
“compute the digest of” – I think “the collection of attributes that
are signed” should also have an “of” or “digest of” prefix.</t>

</section>
<section anchor="rfc-5652-section-56" title="RFC 5652, Section 5.6">

<t>Change the paragraph discussing the signed attributes as follows:</t>

<t>OLD:</t>

<t><list style='empty'>

  <t>The recipient MUST NOT rely on any message digest values computed
   by the originator.  If the SignedData signerInfo includes
   signedAttributes, then the content message digest MUST be
   calculated as described in Section 5.4.  For the signature to be
   valid, the message digest value calculated by the recipient MUST
   be the same as the value of the messageDigest attribute included
   in the signedAttributes of the SignedData signerInfo.</t>
</list></t>

<t>NEW:</t>

<t><list style='empty'>

  <t>The recipient MUST NOT rely on any message digest values computed
   by the originator.  If the SignedData signerInfo includes the
   signedAttrs field, then the content message digest MUST be
   calculated as described in Section 5.4, using the same digest
   algorithm to compute the digest of the encapContentInfo eContent
   OCTET STRING and the message-digest attribute.  For the signature
   to be valid, the message digest value calculated by the recipient
   MUST be the same as the value of the messageDigest attribute
   included in the signedAttrs field of the SignedData signerInfo.</t>
</list></t>

</section>
<section anchor="backward-compatibility-considerations" title="Backward Compatibility Considerations">

<t>The new requirement introduced above might lead to incompatibility with an implementation that allowed different digest algorithms to be used to compute the digest of the message content and the digest of signed attributes.  The signatures produced by such an implementation when two different digest algorithms are used will be considered invalid by an implementation that follows this specification.  However, most, if not all, implementations already require the originator to use the same digest algorithm for both operations.</t>

</section>
<section anchor="timestamp-compatibility-considerations" title="Timestamp Compatibility Considerations">

<t>The new requirement introduced above might lead to compatibility issues for timestamping systems when the originator does not wish to share the message content with the Time Stamp Authority (TSA) <xref target="RFC3161"/>.  In this situation, the originator sends a TimeStampReq to the TSA that includes a MessageImprint, which consists of a digest algorithm identifier and a digest value, then the TSA uses the originator-provided digest in the MessageImprint.</t>

<t>When producing the TimeStampToken, the TSA MUST use the same digest algorithm to compute the digest of the encapContentInfo eContent, which is an OCTET STRING that contains the TSTInfo, and the message-digest attribute within the SignerInfo.</t>

<t>To ensure that TimeStampToken values that were generated before this update remain valid, no requirement is placed on a TSA to ensure that the digest algorithm for the TimeStampToken matches the digest algorithm for the MessageImprint embedded within the TSTInfo.</t>

</section>
</section>
<section anchor="recommended-inclusion-of-the-cmsalgorithmprotection-attribute" title="Recommended inclusion of the CMSAlgorithmProtection attribute">

<t>This section updates <xref target="RFC5652"/> to recommend that the originator include the CMSAlgorithmProtection attribute <xref target="RFC6211"/> whenever signed attributes or authenticated attributes are present.</t>

<section anchor="rfc-5652-section-14" title="RFC 5652, Section 14">

<t>Add the following paragraph as the eighth paragraph in Section 14:</t>

<t>ADD:</t>

<t><list style='empty'>

  <t>While there are no known algorithm substitution attacks today,
   the inclusion of the algorithm identifiers used by the originator
   as a signed attribute or an authenticated attribute makes such an
   attack significantly more difficult.  Therefore, the originator
   of a signed-data content type that includes signed attributes
   SHOULD include the CMSAlgorithmProtection attribute <xref target="RFC6211"></xref> as
   one of the signed attributes.  Likewise, the originator of an
   authenticated-data content type that includes authenticated
   attributes SHOULD include the CMSAlgorithmProtection attribute
   <xref target="RFC6211"></xref> as one of the authenticated attributes.</t>
</list></t>

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

<t>This document makes no requests of the IANA.</t>

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

<t>The security properties of the CMS <xref target="RFC5652"/> signed-data and
authenticated-data content types are updated to offer protection for
algorithm identifiers, which makes algorithm substitution attacks
significantly more difficult.</t>

<t>For the signed-data content type, the improvements specified in this
document force an attacker to mount a hash algorithm substitution attack
on the overall signature, not just on the message digest of the
encapContentInfo eContent.</t>

<t>Some digital signature algorithms have prevented hash function substitutions
by including a digest algorithm identifier as an input to the signature
algorithm.  As discussed in <xref target="HASHID"/>, such a “firewall” may not be effective
or even possible with newer signature algorithms.  For example,
RSASSA-PKCS1-v1_5 <xref target="RFC8017"/> protects the digest algorithm identifier, but
RSASSA-PSS <xref target="RFC8017"/> does not.  Therefore, it remains important that a
signer have a way to signal to a recipient which digest algorithms are allowed
to be used in conjunction with the verification of an overall signature.  This
signaling can be done as part of the specification of the signature algorithm,
in an X.509v3 certificate extension <xref target="RFC5280"/>, or some other means.  The
Digital Signature Standard (DSS) <xref target="DSS"/> takes the first approach by requiring
the use of an “approved” one-way hash algorithm.</t>

<t>For the authenticated-data content type, the improvements specified in
this document force an attacker to mount a MAC algorithm substitution
attack, which is difficult because the attacker does not know the
authentication key.</t>

<t>The CMSAlgorithmProtection attribute <xref target="RFC6211"/> offers protection for the algorithm identifiers used in the signed-data and authenticated-data content types.  However, no protection is provided for the algorithm identifiers in the enveloped-data, digested-data, or encrypted-data content types.  Likewise, The CMSAlgorithmProtection attribute provides no protection for the algorithm identifiers used in the authenticated-enveloped-data content type defined in <xref target="RFC5083"/>.  A mechanism for algorithm identifier protection for these content types is work for the future.</t>

</section>
<section anchor="acknowledgements" title="Acknowledgements">

<t>Many thanks to Jim Schaad and Peter Gutmann; without knowing it, they motivated me to write this document.  Thanks to Roman Danyliw, Ben Kaduk, and Peter Yee for their careful review and editorial suggestions.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC3161;
&RFC8174;
&RFC5652;
&RFC6211;


    </references>

    <references title='Informative References'>

&RFC5083;
&RFC5280;
&RFC6210;
&RFC8017;
<reference anchor="SHS" >
  <front>
    <title>Secure Hash Standard</title>
    <author >
      <organization>National Institute of Standards and Technology (NIST)</organization>
    </author>
    <date year="2015" month="August"/>
  </front>
  <seriesInfo name="FIPS Publication" value="180-4"/>
</reference>
<reference anchor="DSS" >
  <front>
    <title>Digital Signature Standard (DSS)</title>
    <author >
      <organization>National Institute of Standards and Technology (NIST)</organization>
    </author>
    <date year="2013" month="July"/>
  </front>
  <seriesInfo name="FIPS Publication" value="186-4"/>
</reference>
<reference anchor="HASHID" >
  <front>
    <title>On Hash Function Firewalls in Signature Schemes</title>
    <author initials="B." surname="Kaliski" fullname="Burton S. Kaliski, Jr.">
      <organization></organization>
    </author>
    <date year="2002" month="February" day="08"/>
  </front>
  <seriesInfo name="Lecture Notes in Computer Science," value="Volume 2271"/>
  <seriesInfo name="DOI" value="10.1007/3-540-45760-7_1"/>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
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
6wV5hx++0CnrGWX3fwO4X7AZgzMAAA==

-->

</rfc>

