<?xml version="1.0" encoding="UTF-8"?>

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

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-tls-md5-sha1-deprecate-09" number="9155" ipr="trust200902" updates="5246" obsoletes="" submissionType="IETF" category="std"
consensus="true" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true"
version="3">

  <!-- xml2rfc v2v3 conversion 3.10.0 -->

 <front>
   <title abbrev="Signature Hashes in (D)TLS 1.2">Deprecating MD5 and SHA-1 Signature Hashes in TLS 1.2 and DTLS 1.2</title>
   <seriesInfo name="RFC" value="9155"/>

   <author fullname="Loganaden Velvindron" initials="L." surname="Velvindron">
      <organization>cyberstorm.mu</organization>
      <address>
        <postal>
          <street/>
         <city>Rose Hill</city>
          <region/>
          <code/>
          <country>Mauritius</country>
        </postal>
        <phone>+230 59762817</phone>
        <email>logan@cyberstorm.mu</email>
     </address>
    </author>
    <author fullname="Kathleen Moriarty" initials="K." surname="Moriarty">
      <organization abbrev="CIS">Center for Internet Security</organization>
      <address>
        <postal>
          <street/>
          <city>East Greenbush</city>
          <region>NY</region>
          <country>United States of America</country>
        </postal>
        <email>Kathleen.Moriarty.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Alessandro Ghedini" initials="A." surname="Ghedini">
      <organization>Cloudflare Inc.</organization>
      <address>
        <email>alessandro@cloudflare.com</email>
      </address>
    </author>
   <date year="2021" month="December"/>
   <area>Security</area>
   <workgroup>TLS</workgroup>

   <keyword>tls</keyword>
    
    <abstract>
<t>
           The MD5 and SHA-1 hashing algorithms are increasingly vulnerable to attack, and this document deprecates their use in TLS 1.2 and DTLS 1.2 digital signatures.
        However, this document does not deprecate SHA-1 with Hashed Message Authentication Code (HMAC), as used in record protection. This document updates RFC 5246.
      </t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>The usage of MD5 and SHA-1 for signature hashing in (D)TLS 1.2 is specified in <xref target="RFC5246" format="default"/>. MD5 and SHA-1 have been proven to be insecure, 
     subject to collision attacks <xref target="Wang" format="default"/>. In 2011, <xref target="RFC6151" format="default"/> detailed the security considerations, including collision attacks 
     for MD5.
     NIST formally deprecated use of SHA-1 in 2011 
   <xref target="NISTSP800-131A-R2" format="default"/> and 
    disallowed its use for digital signatures at the end of 2013, based on both the attack described in <xref target="Wang" format="default"/> and the 
    potential for brute-force attack.  In 2016, researchers from the National Institute for Research in Digital Science and Technology (INRIA) identified
    a new class of transcript collision attacks on TLS (and other protocols)
    that relies on efficient collision-finding algorithms on the underlying hash
    constructions <xref target="Transcript-Collision" format="default"/>.  Further, in 2017,
    researchers from Google and Centrum Wiskunde &amp; Informatica (CWI) Amsterdam 
    <xref target="SHA-1-Collision" format="default"/> 
    proved SHA-1 collision attacks were practical.
     This document updates <xref target="RFC5246" format="default"/> 
     in such a way that MD5 and SHA-1 <bcp14>MUST NOT</bcp14>
     be used for digital signatures.  However, this document does not deprecate SHA-1 with HMAC, as used in record protection.
     Note that the CA/Browser Forum (CABF) has also deprecated use of SHA-1 for use in certificate signatures <xref target="CABF" format="default"/>.
</t>
      <section numbered="true" toc="default">
        <name>Requirements Language</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&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>

      </section>
    </section>
    <section anchor="Signature_algorithms" numbered="true" toc="default">
      <name>Signature Algorithms</name>
      <t>
   Clients <bcp14>MUST</bcp14> include the signature_algorithms extension. Clients <bcp14>MUST NOT</bcp14> include MD5
   and SHA-1 in this extension.
      </t>
    </section>
    <section anchor="cert_requests" numbered="true" toc="default">
      <name>Certificate Request</name>
      <t>
   Servers <bcp14>SHOULD NOT</bcp14> include MD5 and SHA-1 in CertificateRequest messages.  
      </t>
    </section>
    <section anchor="serverkeyexchange" numbered="true" toc="default">
      <name>Server Key Exchange</name>
      <t>
   Servers <bcp14>MUST NOT</bcp14> include MD5 and SHA-1 in ServerKeyExchange 
   messages.  If the client receives a ServerKeyExchange message
   indicating MD5 or SHA-1, then it <bcp14>MUST</bcp14> abort the connection with
   an illegal_parameter alert. 
      </t>
    </section>
    <section anchor="CertificateVerify" numbered="true" toc="default">
      <name>Certificate Verify</name>
      <t>
   Clients <bcp14>MUST NOT</bcp14> include MD5 and SHA-1 in CertificateVerify messages. If a
   server receives a CertificateVerify message with MD5 or SHA-1, it <bcp14>MUST</bcp14>
   abort the connection with an illegal_parameter alert.
      </t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>IANA has updated the "TLS SignatureScheme" registry by changing the recommended status of 
SHA-1-based signature schemes to "N" (not recommended), as defined by <xref target="RFC8447" format="default"/>.  
The following entries have been updated; other entries in the registry remain the same.
</t>
      <table align="center">
        <thead>
          <tr>
            <th align="center">Value</th>
            <th align="center">Description</th>
            <th align="center">Recommended</th>
            <th align="center">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center">0x0201</td>
            <td align="center">rsa_pkcs1_sha1</td>
            <td align="center">N</td>
            <td align="center">
              <xref target="RFC8446" format="default"/> [RFC9155]</td>
          </tr>
          <tr>
            <td align="center">0x0203</td>
            <td align="center">ecdsa_sha1</td>
            <td align="center">N</td>
            <td align="center">
              <xref target="RFC8446" format="default"/> [RFC9155]</td>
          </tr>
        </tbody>
      </table>
      <t>
IANA has also updated the reference for the "TLS SignatureAlgorithm" and "TLS
HashAlgorithm" registries to refer to this document in addition to RFCs 5246 and
8447.
</t>
    </section>
    <section anchor="Security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t> Concerns with (D)TLS 1.2 implementations falling back to SHA-1 is an issue. 
              This document updates the TLS 1.2 specification <xref target="RFC5246" format="default"/> to deprecate support for MD5
              and SHA-1 for digital signatures. However, this document does not deprecate SHA-1 with HMAC, as used in record protection.
      </t>
    </section>
  </middle>
 <back>
   <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
	<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5246.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8447.xml"/>
      </references>
      <references>
        <name>Informative References</name>
     <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6151.xml"/>

        <reference anchor="NISTSP800-131A-R2" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf">
          <front>
            <title>Transitioning the Use of Cryptographic Algorithms and Key Lengths</title>
            <author initials="E." surname="Barker" fullname="Elaine Barker">
              <organization/>
            </author>
            <author initials="A." surname="Roginsky" fullname="Allen Roginsky">
              <organization/>
            </author>
            <date month="March" year="2019"/>
          </front>
 	  <seriesInfo name="NIST Special Publication" value="800-131A, Revision 2"/>
	  <seriesInfo name="DOI" value="10.6028/NIST.SP.800-131Ar2"/>
        </reference>

        <reference anchor="CABF" target="https://cabforum.org/2014/10/16/ballot-118-sha-1-sunset/">
          <front>
            <title>Ballot 118 -- SHA-1 Sunset (passed)</title>
            <author>
              <organization>CA/Browser Forum</organization>
            </author>
            <date year="2014" month="October"/>
          </front>
        </reference>

        <reference anchor="Transcript-Collision" target="https://hal.inria.fr/hal-01244855/document">
          <front>
            <title>Transcript Collision Attacks: Breaking Authentication in TLS, IKE, and SSH
</title>
            <author initials="K." surname="Bhargavan" fullname="Karthikeyan Bhargavan">
              <organization/>
            </author>
            <author initials="G." surname="Leurent" fullname="Gaetan Leurent">
              <organization/>
            </author>
            <date month="February" year="2016"/>
          </front>
<seriesInfo name="DOI" value="10.14722/ndss.2016.23418"/>
        </reference>


        <reference anchor="SHA-1-Collision" target="https://eprint.iacr.org/2017/190">
          <front>
            <title>The First Collision for Full SHA-1</title>
            <author initials="M." surname="Stevens" fullname="Marc Stevens">
              <organization/>
            </author>
            <author initials="E." surname="Bursztein" fullname="Elie Bursztein">
              <organization/>
            </author>
            <author initials="P." surname="Karpman" fullname="Pierre Karpman">
              <organization/>
            </author>
            <author initials="A." surname="Albertini" fullname="Ange Albertini">
              <organization/>
            </author>
            <author initials="Y." surname="Markov" fullname="Yarik Markov">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>

        <reference anchor="Wang" target="https://www.iacr.org/archive/crypto2005/36210017/36210017.pdf">
          <front>
            <title>Finding Collisions in the Full SHA-1</title>
            <author initials="X." surname="Wang" fullname="Xiaoyun Wang">
              <organization/>
            </author>
            <author initials="Y." surname="Yin" fullname="Yiqun Lisa Yin">
              <organization/>
            </author>
            <author initials="H." surname="Yu" fullname="Hongbo Yu">
              <organization/>
            </author>
            <date year="2005"/>
          </front>
	  <seriesInfo name="DOI" value="10.1007/11535218_2"/>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t> The authors would like to thank <contact fullname="Hubert Kario"/> for his help in writing the initial 
              draft version of this document. We are also grateful to <contact fullname="Daniel Migault"/>, <contact fullname="Martin Thomson"/>, <contact fullname="Sean Turner"/>, <contact fullname="Christopher Wood"/>, and <contact fullname="David Cooper"/>
             for their feedback.
      </t>
    </section>
  </back>
</rfc>
