<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-mldsa-06" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <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-06"/>
    <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="2026" month="September" day="11"/>
    <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>The Module-Lattice-Based Digital Signature Algorithm (ML-DSA) is a
post-quantum digital signature algorithm
standardised by the US National Institute of Standards and Technology (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="RFC9846"/>, 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 maps three new SignatureScheme values for the three
ML-DSA parameter sets listed in Section 4, Table 1 of <xref target="FIPS204"/>
to the SignatureAlgorithmIdentifiers from <xref target="RFC9881"/> 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">Signature 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 (2.16.840.1.101.3.4.3.17)</td>
          </tr>
          <tr>
            <td align="left">mldsa65(0x0905)</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">id-ML-DSA-65 (2.16.840.1.101.3.4.3.18)</td>
          </tr>
          <tr>
            <td align="left">mldsa87(0x0906)</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">id-ML-DSA-87 (2.16.840.1.101.3.4.3.19)</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"/>,
which are not used here
because of the reasons laid out in <xref section="8.3" sectionFormat="of" target="RFC9881"/>.</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.3.3" sectionFormat="of" target="RFC9846"/>, these values indicate support
for signing using the given AlgorithmIdentifier shown in <xref target="schemes"/>
as defined in <xref target="RFC9881"/>.</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.5.2" sectionFormat="of" target="RFC9846"/>, using
Algorithm 2 (ML-DSA.Sign) and Algorithm 3 (ML-DSA.Verify)
of <xref target="FIPS204"/> respectively. The context (ctx) parameter
<bcp14>MUST</bcp14> be the empty string. Note that the context parameter of FIPS 204
is different from the context string of <xref section="4.5.2" sectionFormat="of" target="RFC9846"/>.</t>
        <t>The corresponding end-entity
certificate <bcp14>MUST</bcp14> use the corresponding AlgorithmIdentifier
from <xref target="schemes"/> in its SubjectPublicKeyInfo.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations described in Appendices <xref target="RFC9846" section="C.2" sectionFormat="bare"/> and <xref target="RFC9846" section="F.1" sectionFormat="bare"/> of <xref target="RFC9846"/>
and <xref section="4.5.2" sectionFormat="of" target="RFC9846"/> apply. In particular, signature-based modes of
TLS depend on the signature scheme being secure against chosen message
attacks <xref target="SIGMA"/>. Per Section 3.1 of
<xref target="FIPS204"/>, ML-DSA is designed to meet this property.</t>
      <t>Implementation failures, such as side channels, in cryptographic primitives can
also compromise the primitive and thus a TLS connection depending on it.
Sections 3.4 and 3.6 of <xref target="FIPS204"/> discuss additional considerations for
implementing ML-DSA, including guidance on the choice of hedged vs deterministic
variants. These considerations apply when ML-DSA is used for TLS.</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="RFC9847"/>.</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>
      <t>As defined in <xref section="3" sectionFormat="of" target="RFC9847"/>, the value N indicates</t>
      <ul empty="true">
        <li>
          <t>That the item has not been evaluated by the IETF and
that the IETF has made no statement about the suitability of
the associated mechanism. This does not necessarily mean that
the mechanism is flawed, only that no consensus exists. The
IETF might have consensus to leave an item marked as "N" on the
basis of the item having limited applicability or usage constraints</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <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 obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="RFC9881">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Algorithm Identifiers for the Module-Lattice-Based Digital Signature Algorithm (ML-DSA)</title>
            <author fullname="J. Massimo" initials="J." surname="Massimo"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>Digital signatures are used within X.509 certificates and 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 CRLs. The conventions for the associated signatures, subject public keys, and private key are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9881"/>
          <seriesInfo name="DOI" value="10.17487/RFC9881"/>
        </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="RFC9847">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document updates the changes to the 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.</t>
              <t>This document updates RFC 8447.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9847"/>
          <seriesInfo name="DOI" value="10.17487/RFC9847"/>
        </reference>
        <reference anchor="SIGMA">
          <front>
            <title>SIGMA: The ‘SIGn-and-MAc’ Approach to Authenticated Diffie-Hellman and Its Use in the IKE Protocols</title>
            <author fullname="Hugo Krawczyk" initials="H." surname="Krawczyk">
              <organization/>
            </author>
            <date year="2003"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 400-425"/>
          <seriesInfo name="DOI" value="10.1007/978-3-540-45146-4_24"/>
          <seriesInfo name="ISBN" value="[&quot;9783540406747&quot;, &quot;9783540451464&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
      </references>
    </references>
    <?line 165?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to
    Alicja Kario,
    John Mattsson,
    Rebecca Guthrie,
    Alexander Bokovoy,
    Niklas Block,
    Ryan Appel,
    Loganaden Velvindron,
    David Benjamin,
    Viktor Dukhovni,
    Daniel Van Geest,
    Martin Thomson,
    Wang Guilin,
    Muhammad Usama Sardar,
    and Nick Sullivan
    for their review and feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
