[Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-tls-mldsa-03.txt> (Use of ML-DSA in TLS 1.3) to Informational RFC
"D. J. Bernstein" <djb@cr.yp.to> Thu, 04 June 2026 09:11 UTC
Return-Path: <djb-dsn2-1406711340.7506@cr.yp.to>
X-Original-To: last-call@mail2.ietf.org
Delivered-To: last-call@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 6217DFAAF5C3 for <last-call@mail2.ietf.org>; Thu, 4 Jun 2026 02:11:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1780564304; bh=2BoIzALzLC2Y2hfa8zkpTY1vt8NcJTCohawxOAy3U6E=; h=Date:From:To:Subject:In-Reply-To; b=pKd078+ueIRI3f3Vn5mdndlAIbdtcmPKV1p/IpxzjK4hW/2rm0MKIfRFoV1t9HDH8 VQduBGzeDyZFRRM2JyBQDsFT3xVhMvT6PVnnRuoPZTzfPlO0NnkNN6udBNZYLXruuA kJOJv2u3omQQwqFMfuhQre0Frox0/fCFmm4c1QaU=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -4.197
X-Spam-Level:
X-Spam-Status: No, score=-4.197 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AGAuEYU5RB47 for <last-call@mail2.ietf.org>; Thu, 4 Jun 2026 02:11:43 -0700 (PDT)
Received: from salsa.cs.uic.edu (salsa.cs.uic.edu [131.193.32.108]) by mail2.ietf.org (Postfix) with SMTP id 4420CFAAF463 for <last-call@ietf.org>; Thu, 4 Jun 2026 02:10:35 -0700 (PDT)
Received: (qmail 978159 invoked by uid 1010); 4 Jun 2026 09:10:34 -0000
Received: from unknown (unknown) by unknown with QMTP; 4 Jun 2026 09:10:34 -0000
Received: (qmail 2397288 invoked by uid 1000); 4 Jun 2026 09:10:35 -0000
Date: Thu, 04 Jun 2026 09:10:35 -0000
Message-ID: <20260604091035.2397286.qmail@cr.yp.to>
From: "D. J. Bernstein" <djb@cr.yp.to>
To: Muhammad Usama Sardar <muhammad_usama.sardar@tu-dresden.de>, tls@ietf.org, last-call@ietf.org
Mail-Followup-To: tls@ietf.org, last-call@ietf.org
In-Reply-To: <b40184d8-fc60-4aca-b80e-18d40fb7c2d4@tu-dresden.de>
Message-ID-Hash: 4XKXU5AA3VFIHCDH4U2MWXZMHD3636RP
X-Message-ID-Hash: 4XKXU5AA3VFIHCDH4U2MWXZMHD3636RP
X-MailFrom: djb-dsn2-1406711340.7506@cr.yp.to
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-tls-mldsa-03.txt> (Use of ML-DSA in TLS 1.3) to Informational RFC
List-Id: IETF Last Calls <last-call.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/oKrCjFfDUYoePOVSyWQ-URQU9Fk>
List-Archive: <https://mailarchive.ietf.org/arch/browse/last-call>
List-Help: <mailto:last-call-request@ietf.org?subject=help>
List-Owner: <mailto:last-call-owner@ietf.org>
List-Post: <mailto:last-call@ietf.org>
List-Subscribe: <mailto:last-call-join@ietf.org>
List-Unsubscribe: <mailto:last-call-leave@ietf.org>
Muhammad Usama Sardar writes: > I believe no amount of code review, testing, formal analysis of specs, > formal verification of implementation, following BCPs, etc. can lead to a > guarantee of /bug-free/ code. As I said: "Occasionally code is backed by mechanisms providing very high assurance of zero bugs." For example, the s2n-bignum implementation of X25519 has very high assurance of zero bugs. For my review of that, see https://cr.yp.to/talks.html#2025.10.07. Btw, please get in the habit of quoting what you're replying to, so that readers can more easily track the discussion. Thanks in advance. > Software is getting so complex that all of these may likely still miss > some bugs. Right. I said "occasionally". Programming practices vary. Tools for very high assurance are getting easier to use but are still expensive, so most code doesn't even try to use them. Typically programmers just write something, write a test, observe the test failing, find a fix, and repeat until tests pass; many bugs slip past the tests. That's why suddenly expanding the cryptographic ecosystem by >100000 lines of new ML-DSA code is guaranteeing many bugs, sometimes severe. The ML-DSA CVEs have already begun; it's simply a matter of time until we see severe ML-DSA CVEs; it's not plausible that the public will find and universally patch all the severe ML-DSA software vulnerabilities in time to stop real attacks. What _will_ reduce the damage is ECC+ML-DSA. Of course, there's also the risk of the ML-DSA spec being broken, but assessing that risk relies on more specialized expertise than seeing the definite problem of bugs. For example, one of the claims recently cited as evidence of lattice security was "General lattices, such as used in FrodoKEM, being broken is pretty much all but equivalent to proving P = NP"; very few readers will understand how implausible this supposed connection is given https://cims.nyu.edu/~regev/papers/cvpconp.pdf etc. The claims suggesting that there won't be bugs are much weaker, such as an unquantified claim of "exceedingly few bugs" in software for ML-DSA. Typical readers can easily check how big ML-DSA software is, already know that assurance practices vary, and conclude that there will be severe ML-DSA software vulnerabilities. > Confidentiality /and/ integrity of /what/? and /how/? Could you please > explain the concrete attack trace in simple words? Sure. To review the setup: Imagine rollout of ML-DSA in TLS, not inside ECC+ML-DSA but as solo ML-DSA. Servers will use many different ML-DSA implementations, in some cases with severe vulnerabilities. When I say "severe", I mean that the attacker can pick any message and rapidly forge a signature on that message, a signature that passes verification under the legitimate server's public key. When I say "rapidly", I mean quickly enough to generate forgeries before a TLS client times out. (The online part of this is from the message where a signature is being forged to the signature; message-independent attack computations can happen in advance.) As a concrete example, consider the AABBCC software bug---a bug that was in both official Dilithium 1.0 implementations and passed the known-answer tests used for those, a bug that my paper https://cr.yp.to/papers.html#mldsa shows is again an easy mistake to make for Dilithium 3.4 (ML-DSA) and is exploitable in <1 second on 1 laptop core. My Sage exploit scripts running at this speed are open-source for anybody to try. I expect a C exploit to be <1ms, but this is overkill. (As a side note, this particular exploit requires the attacker to see not just the public key but also _two_ legitimate signatures under that key, so you might imagine stopping this particular attack by throwing the server's public key away after _one_ signature and having the server obtain a certificate for a new public key. I think it's safe to assume that most real-world TLS usage won't look like that in the near future. Furthermore, there's no rule saying that attacks need two signatures. The AABBCC bug already degrades security after just one signature by chopping lattice dimensions in half; one of the bug patterns I showed would produce AAAABBBB even more easily, chopping lattice dimensions in half again; offhand I'd think that's already feasible to exploit with one signature, although I didn't run through the calculations.) I'll make one simplifying assumption, namely that the attacker is in control of one of the routers between the client and the legitimate server. The attacker now poses as the legitimate server---sending attacker responses to the client packets while not letting those packets through to the legitimate server. The client, believing the TLS promise of confidentiality ("Data sent over the channel after establishment is only visible to the endpoints"), then encrypts confidential data to what it thinks is a key shared with the legitimate server. In fact, that key is shared with the attacker, and the attacker simply reads the data. The client also receives data under what it thinks is a key shared with the legitimate server. The client checks an authenticator on that data and believes the TLS promise of integrity ("The server side of the channel is always authenticated ... Data sent over the channel after establishment cannot be modified by attackers without detection"). In fact, the data is simply forged by the attacker. This is a conventional man-in-the-middle attack. The only protection that TLS tries to provide against this attack is a signature, under the legitimate server's public key, of the session's key exchange. The attacker forges that signature. Please note that Simon Josefsson, one of the 14 TLS WG participants who objected to this security-damaging spec before the end of the specified WG "last call" period, already summarized this type of attack during that period in response to a claim that signature schemes "can only be exploited once a CRQC exists": > > > > They can be exploited when, for example, any pre-quantum implementation > > > > bug is identified. > > > > > > > > You can't have end-to-end confidentiality without authentication, and > > > > TLS uses signatures for authentication. > > > > > > > > Thus you could make an argument that PQ-hybrid signatures is more > > > > important than PQ KEMs, since signatures are a requirement to have ANY > > > > kind of confidentiality guarantees. > > > > > > > > Otherwise we are back to the old 1990's world of no protection against > > > > active man-in-the-middle attacks. There was no reply to that message. The claim that signature schemes "can only be exploited once a CRQC exists" was neither defended nor withdrawn. > # *Gentle reminder for outstanding objection to EUF-CMA* > Unless I missed something, I haven't seen an answer to my question in [4]. > Also, John has kindly provided substantial technical response with concrete > references in [5], to which I haven't seen a reply. Did I miss something? I'm not the only person who has already explained that those complaints about signature malleability are irrelevant to TLS. Here's the simplest way to see that those complaints are off topic: ECDSA is allowed in TLS. ECDSA signatures are malleable. Nobody has any TLS attacks exploiting this malleability (or, in deceptive terminology, exploiting a lack of "strong unforgeability"). This isn't because of a lack of study; it's because TLS is _signing the key exchange_ to ensure _integrity of the key exchange_, while integrity of the _signature_ is irrelevant. That's also why proofs end up relying solely on EUF-CMA. Procedurally, it's problematic that the complaints about signature malleability are being repeated without the answers to those complaints being addressed. Asking people to repeat the answers isn't the right approach; this just exacerbates the already excessive error-correction burden. It's much better for every objection to be officially tracked, as in ISO etc., with a requirement of the group settling on a response. My own tracking chart https://blog.cr.yp.to/20260221-structure.html already covers the "trivial attacks on strong unforgeability" argument (along with many other arguments). But an unofficial tracker doesn't have the same power as an _official_ tracker backed by enforcement of RFC 2418's rule that disagreements "must be resolved by a process of open review and discussion". ---D. J. Bernstein ===== NOTICES ===== IETF BCP 78, "Rights Contributors Provide to the IETF Trust", Section 5 (normative), "Rights in Contributions", provides a modification right "unless explicitly disallowed in the notices contained in a Contribution (in the form specified by the Legend Instructions)". The official language from IETF's "Legend Instructions" for the situation that "the Contributor does not wish to allow modifications nor to allow publication as an RFC" is as follows: "This document may not be modified, and derivative works of it may not be created, and it may not be published except as an Internet-Draft." <https://trustee.ietf.org/wp-content/uploads/Corrected-TLP-5.0-legal-provsions.pdf> The same language is used in, e.g., RFC 5831. The same language hereby applies to this document. This is not disclaiming or limiting the applicability of IETF policies; it is strictly following IETF policies. IESG claims that the "explicitly disallowed" provision in BCP 78 is limited to the examples in Section 3 in BCP 78. That is incorrect. BCP 78 states that Section 5, "Rights in Contributions", is normative, while Section 3, "Exposition of Why These Procedures Are the Way They Are", is informative. The opt-out provision in the normative text is clear, and cannot be limited by an informative section. BCP 78 does not give IESG any authority to issue changes or purported clarifications of the rules. Rationale for exercising the BCP 78 opt-out provision: I'm fine with redistribution of copies of this document. The issue is instead with modification, such as (1) IESG's May 2025 posting of an IESG-mangled version of an appeal that I had filed and (2) IETF management selling IETF mailing-list text to AI companies. This goes far beyond what copyright law allows as fair use (such as giving quotes for purposes of commentary). When I complained about the mangled document, the IETF Executive Director responded not by apologizing but instead by asserting that IETF management "has a license" to do anything it wants.
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Simon Josefsson
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Stephen Farrell
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Salz, Rich
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Dave Cridland
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Salz, Rich
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Nick Hilliard
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… John C Klensin
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Paul Wouters
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Stephen Farrell
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Salz, Rich
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Christian Huitema
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Watson Ladd
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Rob Sayre
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Brian E Carpenter
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Eliot Lear
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Eric Rescorla
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Eric Rescorla
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Salz, Rich
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Brian E Carpenter
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Eliot Lear
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… S Moonesamy
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Christian Huitema
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Eric Rescorla
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… John C Klensin
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Tim Bray
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Eric Rescorla
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Salz, Rich
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Rob Sayre
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… D. J. Bernstein
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Bron Gondwana
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… D. J. Bernstein
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Eliot Lear
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Salz, Rich
- [Last-Call] Re: [TLS] Re: Re: Last Call: <draft-i… Bron Gondwana
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Muhammad Usama Sardar
- [Last-Call] Re: [TLS] Re: Re: Re: Re: Last Call: … D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Re: Re: Re: Last Call: … Viktor Dukhovni
- [Last-Call] Re: [TLS] Re: Re: Re: Re: Re: Re: Las… D. J. Bernstein
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Brian E Carpenter
- [Last-Call] Re: [TLS] Re: Re: Last Call: <draft-i… Daniel Apon
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Brian E Carpenter
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Stephen Farrell
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Tim Bray
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Rob Sayre
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… John C Klensin
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Stephen Farrell
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Eliot Lear
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… S Moonesamy
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… John C Klensin
- [Last-Call] Re: [TLS] Re: Re: Re: Re: Last Call: … Brian E Carpenter
- [Last-Call] Re: [TLS] Re: Re: Re: Re: Re: Re: Las… Ilari Liusvaara
- [Last-Call] Re: [TLS] Re: Re: Re: Re: Re: Re: Las… John Mattsson
- [Last-Call] Re: <draft-ietf-tls-mldsa-03.txt> (Us… John C Klensin
- [Last-Call] Re: [TLS] Re: [EXT] Re: <draft-ietf-t… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: <draft-ietf-tls-mldsa-0… Muhammad Usama Sardar
- [Last-Call] Re: [TLS] Re: <draft-ietf-tls-mldsa-0… Nick Hilliard
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Re: Re: Re: Re: Re: Las… Loganaden Velvindron
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… Russ Housley
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Ilari Liusvaara
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Filippo Valsorda
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Sophie Schmieg
- [Last-Call] Re: <draft-ietf-tls-mldsa-03.txt> (Us… Brian E Carpenter
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… John Mattsson
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Loganaden Velvindron
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… Nadim Kobeissi
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… Nadim Kobeissi
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… Soatok Dreamseeker
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Bron Gondwana
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… Nadim Kobeissi
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… John Mattsson
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Filippo Valsorda
- [Last-Call] Re: [TLS] Re: Re: Last Call: <draft-i… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Re: Last Call: <draft-i… Viktor Dukhovni
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… Tanja Lange
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… Salz, Rich
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Filippo Valsorda
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… Nadim Kobeissi
- [Last-Call] Re: [TLS] Last Call: <draft-ietf-tls-… Nadim Kobeissi
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Salz, Rich
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… Falko Strenzke
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Stephen Farrell
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Muhammad Usama Sardar
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… John Mattsson
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Salz, Rich
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Salz, Rich
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… Loganaden Velvindron
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… D. J. Bernstein
- [Last-Call] Re: Last Call: <draft-ietf-tls-mldsa-… Paul Hoffman
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… Damien Miller
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Bron Gondwana
- [Last-Call] Re: [TLS] Re: <draft-ietf-tls-mldsa-0… John Mattsson
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… John Mattsson
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Deb Cooley
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… D. J. Bernstein
- [Last-Call] Re: [TLS] Re: Last Call: <draft-ietf-… Bron Gondwana
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… Falko Strenzke
- [Last-Call] Re: [TLS] Re: Re: Re: Last Call: <dra… Peter Gutmann