<?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.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-mldsa-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="Use of ML-DSA in TLS 1.3">Use of ML-DSA in TLS 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-mldsa-01"/>
    <author fullname="Tim Hollebeek">
      <organization>DigiCert</organization>
      <address>
        <email>tim.hollebeek@digicert.com</email>
      </address>
    </author>
    <author fullname="Sophie Schmieg">
      <organization>Google</organization>
      <address>
        <email>sschmieg@google.com</email>
      </address>
    </author>
    <author initials="B. E." surname="Westerbaan" fullname="Bas Westerbaan">
      <organization>Cloudflare</organization>
      <address>
        <email>bas@cloudflare.com</email>
      </address>
    </author>
    <date year="2025" month="September" day="26"/>
    <area>Security</area>
    <workgroup>Transport Layer Security§</workgroup>
    <keyword>ML-DSA</keyword>
    <keyword>FIPS204</keyword>
    <abstract>
      <?line 50?>

<t>This memo specifies how the post-quantum signature scheme ML-DSA (FIPS 204)
is used for authentication in TLS 1.3.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://tlswg.github.io/tls-mldsa/draft-ietf-tls-mldsa.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-tls-mldsa/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/tlswg/tls-mldsa"/>.</t>
    </note>
  </front>
  <middle>
    <?line 56?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>ML-DSA is a post-quantum module-lattice-based digital signature algorithm
standardised by NIST in <xref target="FIPS204"/>.</t>
      <t>This memo specifies how ML-DSA can be negotiated for authentication in TLS 1.3
via the <tt>signature_algorithms</tt> and <tt>signature_algorithms_cert</tt> extensions.</t>
    </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="ml-dsa-signaturescheme-values">
      <name>ML-DSA SignatureScheme values</name>
      <t>As defined in <xref target="RFC8446"/>, the SignatureScheme namespace is used for
the negotiation of signature scheme for authentication via the
<tt>signature_algorithms</tt> and <tt>signature_algorithms_cert</tt> extensions.
This document adds three new SignatureScheme values for the three
ML-DSA parameter sets from <xref target="FIPS204"/> as follows.</t>
      <table anchor="schemes">
        <name>SignatureSchemes for ML-DSA</name>
        <thead>
          <tr>
            <th align="left">SignatureScheme</th>
            <th align="left">FIPS 204</th>
            <th align="left">Certificate AlgorithmIdentifier</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">mldsa44(0x0904)</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">id-ML-DSA-44</td>
          </tr>
          <tr>
            <td align="left">mldsa65(0x0905)</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">id-ML-DSA-64</td>
          </tr>
          <tr>
            <td align="left">mldsa87(0x0906)</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">id-ML-DSA-87</td>
          </tr>
        </tbody>
      </table>
      <t>Note that these are different from the HashML-DSA pre-hashed
variants defined in Section 5.4 of <xref target="FIPS204"/>.</t>
      <section anchor="certificate-chain">
        <name>Certificate chain</name>
        <t>For the purpose of signalling support for signatures on certificates
as per <xref section="4.2.4" sectionFormat="of" target="RFC8446"/>, these values indicate support
for signing using the given AlgorithmIdentifier shown in <xref target="schemes"/>
as defined in <xref target="MLDSACERTS"/>.</t>
      </section>
      <section anchor="handshake-signature">
        <name>Handshake signature</name>
        <t>When one of those SignatureScheme values is used in a CertificateVerify message,
then the signature <bcp14>MUST</bcp14> be computed and verified as specified in
<xref section="4.4.3" sectionFormat="of" target="RFC8446"/>, and the corresponding end-entity
certificate <bcp14>MUST</bcp14> use the corresponding AlgorithmIdentifier from <xref target="schemes"/>.</t>
        <t>The context parameter defined in <xref target="FIPS204"/> Algorithm 2 and 3
<bcp14>MUST</bcp14> be the empty string.</t>
      </section>
      <section anchor="tls-12">
        <name>TLS 1.2</name>
        <t>The schemes defined in this document <bcp14>MUST NOT</bcp14> be used in TLS 1.2 <xref target="RFC5246"/>
or earlier versions.
A peer that receives ServerKeyExchange or CertificateVerify message in a TLS
1.2 connection with schemes defined in this document <bcp14>MUST</bcp14> abort the connection
with an illegal_parameter alert.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC8446"/> (eg. appendix C.2)
and <xref target="FIPS204"/> (Section 3.6) apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests new entries to the TLS SignatureScheme registry,
according to the procedures in <xref section="6" sectionFormat="of" target="TLSIANA"/>.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Description</th>
            <th align="left">Recommended</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0x0904</td>
            <td align="left">mldsa44</td>
            <td align="left">N</td>
            <td align="left">This document.</td>
          </tr>
          <tr>
            <td align="left">0x0905</td>
            <td align="left">mldsa65</td>
            <td align="left">N</td>
            <td align="left">This document.</td>
          </tr>
          <tr>
            <td align="left">0x0906</td>
            <td align="left">mldsa87</td>
            <td align="left">N</td>
            <td align="left">This document.</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="FIPS204">
          <front>
            <title>Module-lattice-based digital signature standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.204"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </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="RFC5246">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
            <author fullname="T. Dierks" initials="T." surname="Dierks"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5246"/>
          <seriesInfo name="DOI" value="10.17487/RFC5246"/>
        </reference>
        <reference anchor="TLSIANA">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Venafi</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="21" month="July" year="2025"/>
            <abstract>
              <t>   This document updates the changes to TLS and DTLS IANA registries
   made in RFC 8447.  It adds a new value "D" for discouraged to the
   Recommended column of the selected TLS registries and adds a
   "Comment" column to all active registries that do not already have a
   "Comment" column.  Finally, it updates the registration request
   instructions.

   This document updates RFC 8447.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8447bis-15"/>
        </reference>
        <reference anchor="MLDSACERTS">
          <front>
            <title>Internet X.509 Public Key Infrastructure - Algorithm Identifiers for the Module-Lattice-Based Digital Signature Algorithm (ML-DSA)</title>
            <author fullname="Jake Massimo" initials="J." surname="Massimo">
              <organization>AWS</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>AWS</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="26" month="June" year="2025"/>
            <abstract>
              <t>   Digital signatures are used within X.509 certificates, Certificate
   Revocation Lists (CRLs), and to sign messages.  This document
   specifies the conventions for using FIPS 204, the Module-Lattice-
   Based Digital Signature Algorithm (ML-DSA) in Internet X.509
   certificates and certificate revocation lists.  The conventions for
   the associated signatures, subject public keys, and private key are
   also described.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-dilithium-certificates-12"/>
        </reference>
      </references>
    </references>
    <?line 145?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Alicja Kario, John Mattsson, Rebecca Guthrie, Alexander Bokovoy,
    Niklas Block, Ryan Appel, and Loganaden Velvindron
    for their review and feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
