[Plants] Re: Higher forgery resistance almost for free?
David Benjamin <davidben@chromium.org> Fri, 11 September 2026 18:44 UTC
Return-Path: <davidben@google.com>
X-Original-To: plants@mail2.ietf.org
Delivered-To: plants@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 18623139292DD for <plants@mail2.ietf.org>; Fri, 11 Sep 2026 11:44:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1789152293; bh=cUBajcDg6JPBDjLHipTAzKtntWc3Ke5SS5DDVqyGDiQ=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=dbdR6b2Y2zDpziH0Dj5vR1blwakNY5Ra2bQqOPvtj64mUw6JxW/oO5i9KUScUpPE1 8e8XHybPJy7iT4UtYgHwi31yufqeovmh2bl8UqBbMLGGf+RHVcXYpfs2aTWcvj1JpD nc/VePdhcUdalTYqV5GCmH7rfMRs8W+9L8S7nfHc=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -9.489
X-Spam-Level:
X-Spam-Status: No, score=-9.489 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, USER_IN_DEF_SPF_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=chromium.org
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 Hp1zggyW70w2 for <plants@mail2.ietf.org>; Fri, 11 Sep 2026 11:44:52 -0700 (PDT)
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 0D16B139292C8 for <plants@ietf.org>; Fri, 11 Sep 2026 11:44:52 -0700 (PDT)
Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-6a99776ff70so1938426a12.2 for <plants@ietf.org>; Fri, 11 Sep 2026 11:44:52 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1789152285; cv=none; d=google.com; s=arc-20260327; b=YbPr5Cmwo0CfyjDGsIjoFW0KGYKC0sVLBnICx7qb2Tbv7/pWUgSfl9L/T2hpZb/svx NOhz7go/2K9HgmzNZsW3wjbrNJ8GnbVitdD74tbfSuO9ZOSIZekhwA/cQbj3oBjLJwTe /F25tnrPFRW0qPUHui5sSXJjtZ90yA49krkns/PZ/5xkPcU3lWIt+bzAoOmqb/3CGR3x ptk8/vlZO9mGa7lVghpZrYOKE67AoTQYcMKi0846jyWDzZw6X/34CHN26YSyjibfgFlX Lo1DmIQr+hOR5poYHtRNr0vt8vMU9T6/8xcaYxOCjedLUwPMgrmVLxcNhXKVcTBbpNH8 J/MA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=sE+By1Pzr8pQc3YsnkghSjtKx36vXxk7Rh3kSL7peLs=; fh=vrMJAx2wXHGjZgZ5mS9Q8v2Bf0hZewXMmveWTFfb9wo=; b=IYuiE4taAWDdv+MKrh2J7VOkyiAlpZfc2s9Se/esiwF5LqZEkg96aJAjPaYBKvoohG jlH8IfIYsSsWTr7aQRCZjr8JkdatHMDnOv7nag0zFzABKuQ1wrx51lXz1vIUD5WOrLYj 4jCctqBgj3aNPDxMCnRkVPqSkhWMBIPXV3TmG0oNU0YCThLvLKrAT8BEDy4l6ZpieWEv BcbEDB8TCCE3spCA/HbpaG3eITEa/A3lSWDSjh/9IJlXlIJaScUOvYRm3mLAqEJxaN4v Q+nfpCV3rxo+yH6YOPcAHQpRKUKqtvBd9FYzBuFKY1p6Wr8ei/PTUav6XJBar8chUVhL jqvA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1789152285; x=1789757085; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=sE+By1Pzr8pQc3YsnkghSjtKx36vXxk7Rh3kSL7peLs=; b=PSyMfojMrCYOBcnBddF2e0XT/eRl1hhQob78Wu/WjZ49Dua+tqyp+yg+MHjRXI4BJp Uxk/tOo+hZU9KWzpdARnXJexOQ92wkxIEnAjiTsM/TZuXX56NVQgZlTxzMAbDjTsiIYN mrwvGDqDrMplLbBoaAihJWZWlpzDjBdCm6uGc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789152285; x=1789757085; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=sE+By1Pzr8pQc3YsnkghSjtKx36vXxk7Rh3kSL7peLs=; b=lFzmkUpcwoerG8PREt+MxRnErrYSrRujuqmjt+DmU1wsoQH8uattK9L8Gb5yJvBAf6 nFOGAbpJxwNMvYGQ7EQldBdfGs5+vQ/XSx7HeI8bC/SKH3LNuJk33zyBBYvjn0uqNvmu eCYfwrltR6g9SYT00N99vEqBFEYvfU7iGKCHyYpQpk9abFJHMJ/bH64dtDFFSRmMV3RC JNlXmNefjGfkdX17Rbu4ycRUUpxj2apcsON8MmQzlgCxIwdL/sOuQfVowiGbtZszbSwL SBv1M1d3shYYKt2UNOIaCZXA3r3GqODSiWEvDi2dVYf7ehqU5+GILGWOV60TJgtwJMae 7V9Q==
X-Forwarded-Encrypted: i=1; AKwUvBwuhwJ6OoPcEifs2O/zDQiP/FXYHwunnUTRmb4ASC5Zvl74w9vGr7wbH5KwFW7ghexRok2NEtY=@ietf.org
X-Gm-Message-State: AFuF++mFaLyRkrAR7lKG1LSkUlzUn+/KYzBD9/wYCk0KJXYnMB64NvL0 aEltLKjsXctxMW7i5l2EL1TBLdLbj+KOoHvq/jBM/h5re/MTwH/fLQKb3xRkdeGftwgrsTJI7Fs /9VBzO9zT4usCxb4ZEHVj/MCpzsrFPSFre4LWJlg=
X-Gm-Gg: AYBFou0TDHxIccIn1L5I2bN4jStXw2in5QrYxNk7w7sqnEgvLfaBJ6nDkivNbsYP3om bOSvcxQgSUvBGrQ3mFnyxwLNYQq8+DnQf+5sgjOHgk/zHa8JtT97Q48L2aGQe7J8z9xuJMPk8Hd GcnIAbXBxXjRz3A3YCwFQWAUyYQhHYkq7STllo2wnN9fRrZmdBaFZDih+Glcjc0OOUFWRb8fHUG MAhsnFmp4DAnkKNj6qmmIMuo340gN9WbGLFOSACRCJvENDR/J7F+QElwdag3739tdK1y/nwOI0H FKdBpJgakZ7JSwiisz7B7UkLD2TrQh7I+faB2OpNB2ggBUnkKVXeFe2ibO71mvk5bTieDBg1dO8 +FcZPqvE31DsWE/nUmXnWVEpSDLhscQNwrmXjJOTVZHuomAghLHPp
X-Received: by 2002:a05:6402:538c:b0:6a6:2419:8539 with SMTP id 4fb4d7f45d1cf-6a9b5659d43mr2506988a12.16.1789152284515; Fri, 11 Sep 2026 11:44:44 -0700 (PDT)
MIME-Version: 1.0
References: <CAMjbhoV1d6Ayfei=GaG8NnFTcWUq8sZ-u5oCM8xp2wXAQRQdbw@mail.gmail.com> <PH3PPFA3FE8A23FBA824621E615DA42D2B0C157A@PH3PPFA3FE8A23F.namprd11.prod.outlook.com> <CAMjbhoVdtvNYUA_Ucdv-R+6f+y7Sr63RnFG5B==i4oVMp7LHug@mail.gmail.com> <SA1PR09MB115140CADC2AF6ECC38652AC485BE2@SA1PR09MB11514.namprd09.prod.outlook.com> <CAF8qwaC6B6q3K7Us3P8N8KzuKem5o-BO2fgR2A2+b+La5jPXgA@mail.gmail.com>
In-Reply-To: <CAF8qwaC6B6q3K7Us3P8N8KzuKem5o-BO2fgR2A2+b+La5jPXgA@mail.gmail.com>
From: David Benjamin <davidben@chromium.org>
Date: Fri, 11 Sep 2026 14:44:27 -0400
X-Gm-Features: AcwNN1XugfUKNB_UxBrd7lTxZh-sCL0Y3VQLJExQIAXLl9dGdrZMJTYH6HuYeG0
Message-ID: <CAF8qwaBhwUh5CPT4eiTyvYKA9eHrLSv=oaNX=CC6vc9Qvsi9iQ@mail.gmail.com>
To: "cwwynn@uwe.nsa.gov" <cwwynn=40uwe.nsa.gov@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="0000000000005fa5d3065b397a59"
Message-ID-Hash: 2EG3ZRLVK62KXK6AM66IOP7FRCOTPEPI
X-Message-ID-Hash: 2EG3ZRLVK62KXK6AM66IOP7FRCOTPEPI
X-MailFrom: davidben@google.com
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
CC: Bas Westerbaan <bas=40cloudflare.com@dmarc.ietf.org>, "Scott Fluhrer (sfluhrer)" <sfluhrer=40cisco.com@dmarc.ietf.org>, "plants@ietf.org" <plants@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Plants] Re: Higher forgery resistance almost for free?
List-Id: "PKI, Logs, And Tree Signatures" <plants.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/plants/NBs0oFc9N5kNKjE3chpx0dUbU_4>
List-Archive: <https://mailarchive.ietf.org/arch/browse/plants>
List-Help: <mailto:plants-request@ietf.org?subject=help>
List-Owner: <mailto:plants-owner@ietf.org>
List-Post: <mailto:plants@ietf.org>
List-Subscribe: <mailto:plants-join@ietf.org>
List-Unsubscribe: <mailto:plants-leave@ietf.org>
On Fri, Sep 11, 2026 at 1:03 PM David Benjamin <davidben@chromium.org> wrote: > Hi Casey! This is really great feedback, thanks! > > For specifically the first deployments in the Web PKI (where we care about > having a network of cosigners), I think it's important to define a mode > that is compatible with RFC 6962 and tlog (i.e. SHA-256, no indices in the > various hashes), so that we can reuse the wealth of existing software built > around this tree construction. This is particularly important given the > tight timelines for the PQ transition. > > But that's not to say that should be the only tree construction. The core > ideas of MTCs would work just fine with SHA-384, SHA-384 truncated, more > involved HashNode functions, etc. And the nice thing about this space is > that you can very naturally key everything on the CA, so this all reduces > to how to juggle different CAs and how to define the parameters for each > CA. Maybe a different MTC CA would look like you describe, or maybe even > the Web PKI would eventually support both. > > For that, I think one immediate conclusion here is that the CA format > below was not right. It assumed the tree would *only* be parameterized by > the underlying hash function, and you've described a host of other things. > > https://www.ietf.org/archive/id/draft-ietf-plants-merkle-tree-certs-05.html#name-representing-certification- > > I think I'm now fully convinced we should make the change outlined here: > https://github.com/ietf-plants-wg/merkle-tree-certs/issues/293 > > In that model, the hash construction defined in the draft today would be > signaled by the id-pe-mtcCertificationAuthority-SHA256 extension. But then > another construction with perhaps a wider hash, perhaps indices > incorporated into the node hashes, perhaps truncation of said wider hash, > etc., might be id-pe-mtcCertificationAuthority-SHA384-Casey (insert better > name here :-) ). I think this is a much better extensibility model. I can > put together a PR for that so we have something concrete to look at there. > Done here. https://github.com/ietf-plants-wg/merkle-tree-certs/pull/315 > A minor note: > > > It seems like a best practice to include the leaf indices when > performing the internal hash and also add serialNumber to > TBSCertificateLogEntry. For example, the NIST hash-based signatures > incorporate addresses when performing a hash. > > I think, operationally, it would make sense to put the addresses (and > possibly the log ID?) into the hash and then *not* put the serialNumber > in the TBSCertificateLogEntry. Once you have the leaf index and the log ID, > all information in the serialNumber is already represented. The reason to > omit the serialNumber is mostly a layering problem. If you imagine the CA's > log component, it probably has some general operation like > `AddEntry(entryData []byte)` that adds the entry as an opaque byte string. > AddEntry might potentially need to sequence concurrent calls, etc., and so > the caller of AddEntry may not actually know the leaf index ahead of time. > But if the leaf index needs to be swizzled into entryData in some complex > way, this means some layer *after* sequencing needs to be aware of the > details of TBSCertificateLogEntry. > > And so I think the right way to do this would be, similar to the > hash-based signatures, to define it as part of the various HashNode and > HashLeaf functions and keep the entry contents opaque. > > On Fri, Sep 11, 2026 at 11:40 AM cwwynn@uwe.nsa.gov <cwwynn= > 40uwe.nsa.gov@dmarc.ietf.org> wrote: > >> Hi all, >> >> I wanted to revisit the idea of incorporating leaf indices into hashing, >> as previously mentioned by Scott. There was only a bit of discussion at >> the time, and I believe it's important to voice support for adding this >> feature. It seems like a best practice to include the leaf indices when >> performing the internal hash and also add serialNumber to >> TBSCertificateLogEntry. For example, the NIST hash-based signatures >> incorporate addresses when performing a hash. >> >> If used to protect data in NSS, we would recommend a MTC CA use one of >> the (CNSA) SHA2 hash algorithms with a larger internal state (i.e. SHA-384 >> or SHA-512) possibly truncated when needed to maintain practical tree and >> inclusion proof sizes while still mitigating the Antonov attack. Adding >> indices into the hashing process would further enhance security towards >> multi-target second preimage resistance. We would also prefer to use the >> proposed CA-added 32 random bytes extension field. One takeaway from the >> Antonov attack was that SHA-256 often provides less security than presumed, >> so it shouldn't be used with ML-DSA-87 keys. >> >> Best, >> Casey >> >> ------------------------------ >> *From:* Bas Westerbaan <bas=40cloudflare.com@dmarc.ietf.org> >> *Sent:* Friday, March 27, 2026 1:32 PM >> *To:* Scott Fluhrer (sfluhrer) <sfluhrer=40cisco.com@dmarc.ietf.org> >> *Cc:* Bas Westerbaan <bas=40cloudflare.com@dmarc.ietf.org>; >> plants@ietf.org <plants@ietf.org> >> *Subject:* [Plants] Re: Higher forgery resistance almost for free? >> >> >> >> By the way, I agree with the randomizer idea (and also don't forget to >> include the Merkle tree position when you hash together two nodes - a cheap >> way to prevent multitarget attacks). >> >> >> An earlier draft did, but the current one doesn't as it's based on >> plain rfc6962 CT-log trees. Indeed there is a multi-target attack there: >> say, find some x such that H_internal(H_leaf(leaf), x) matches an existing >> internal node. Then we can create a fake inclusion proof, of course >> updating the claimed index appropriately. That's similarly in the 256 - >> lg(number of certificates in tree) regime as the multi-target attack on the >> SPKI hash. >> >> Some notes here: >> >> This would be a surprisingly short authentication path, and a verifier >> could detect it. That doesn't help much: restricting ourselves to only >> targeting the lower nodes just removes half the targets. >> >> Hashing the leaf index into the leaf would also prevent this. Still, the >> other multi-target attack I mentioned still exists. >> >> Best, >> >> Bas >> >> >> >> >> >> ------------------------------ >> *From:* Bas Westerbaan <bas=40cloudflare.com@dmarc.ietf.org> >> *Sent:* Friday, March 27, 2026 12:10 PM >> *To:* plants@ietf.org <plants@ietf.org> >> *Subject:* [Plants] Higher forgery resistance almost for free? >> >> Hey all, >> >> For the certificate transparency use case we need to make sure that a >> Certificate Authority can't issue a certificate without it being public. We >> don't want the CA to able to issue two completely different certificates, >> one harmless and one malicious at the same leaf. That requires >> collision resistance of the hash. Hence we use SHA-256 to gain 128-bit of >> transparency security. >> >> A 256-bit hash in Merkle trees can give much more than 128-bit forgery >> resistance—256 bits even. This is well known: CNSA 2 is even happy with LMS >> using SHA-256 truncated to 192 bits, which of course only achieves 192-bit >> security. >> >> So MTC as-is has 256-bit forgery resistance? Not quite: we need to make >> some changes, and there are some caveats. >> >> In the current draft, the leafs (TBSCertificateLogEntry) are mostly >> predictable by an attacker. Thus with 128-bit work, an attacker can find a >> collision: a harmless TBSCertificateLogEntry which it'll ask the CA to >> issue which has the same hash as a nefarious TBSCertificateLogEntry. [1] >> >> The standard way to solve this is to make the leaf unpredictable to the >> attacker, by including a CA-picked random value (randomizer) in each leaf. >> [2] That'll boost the forgery resistance above 192 bits and well along to >> 256-bits [3]. >> >> The downside is that we need to add that 32-byte randomizer in each >> certificate. >> >> Worth it? >> >> I would say so. >> >> Best, >> >> Bas >> >> >> >> >> >> [1] There are some minor hurdles: it'll need to guess the serial number >> correctly. And it'll need some immaterial field to vary to create attempts >> for the colission. Oh, and of course 128-bit work, but we're suspending >> disbelief for a moment. >> >> [2] Add 32-byte randomizer field in MerkleTreeCertEntry and MTCProof. >> >> [3] There is a multi-target attack against subjectPublicKeyInfoHash. >> Suppose there are 2^30 leafs with the same algorithm in >> subjectPublicKeyInfo. Then we only need to try 2^226 randomly generated >> subjectPublicKeyInfos to find a second preimage with some leaf. The >> standard way to thwart this is to add an *address* (leaf index) to the >> hash. That's not ideal, as plain SHA-256(subjectPublicKeyInfo) is quite >> standard now. The randomizer acts as an address for the leafs themselves. >> There is still an issue though. >> >> Even with addresses, SHA-256 isn't "distinct-function multi-target >> second-primage resistant" (DM-SPR) because it has a small internal state. >> This allows for a clever multi-target attack negating the addresses by >> finding successive colissions on the internal state, which was pointed out >> by Antonov, and improved by Perlner, Kelsey, and Cooper. See section 3.3 of >> ( https://eprint.iacr.org/2022/1061.pdf ). The attack requires room in >> the message for the logarithmically many collision values after the >> address. It'll depend on the algorithm whether that's feasable for the >> subjectPublicKeyInfo, and we can remove that room by moving >> subjectPublicKeyHash earlier in TBSCertificateLogEntry. The rigorous >> solution is not to use SHA-256, but a hash that is DM-SPR, such as >> SHAKE-256. But is that worth it? With a trillion certificates the attack is >> still in the order of 217-bit work. >> >> _______________________________________________ >> Plants mailing list -- plants@ietf.org >> To unsubscribe send an email to plants-leave@ietf.org >> >> _______________________________________________ >> Plants mailing list -- plants@ietf.org >> To unsubscribe send an email to plants-leave@ietf.org >> >
- [Plants] Higher forgery resistance almost for fre… Bas Westerbaan
- [Plants] Re: Higher forgery resistance almost for… Filippo Valsorda
- [Plants] Re: Higher forgery resistance almost for… Scott Fluhrer (sfluhrer)
- [Plants] Re: Higher forgery resistance almost for… Filippo Valsorda
- [Plants] Re: Higher forgery resistance almost for… Bas Westerbaan
- [Plants] Re: Higher forgery resistance almost for… cwwynn@uwe.nsa.gov
- [Plants] Re: Higher forgery resistance almost for… David Benjamin
- [Plants] Re: Higher forgery resistance almost for… David Benjamin
- [Plants] Re: Higher forgery resistance almost for… cwwynn@uwe.nsa.gov
- [Plants] Re: Higher forgery resistance almost for… Russ Housley
- [Plants] Re: Higher forgery resistance almost for… Bas Westerbaan
- [Plants] Re: Higher forgery resistance almost for… Viktor Dukhovni
- [Plants] Re: Higher forgery resistance almost for… Bas Westerbaan
- [Plants] Re: Higher forgery resistance almost for… Michael Richardson
- [Plants] Re: Higher forgery resistance almost for… Bas Westerbaan
- [Plants] Re: Higher forgery resistance almost for… Bas Westerbaan
- [Plants] Re: Higher forgery resistance almost for… Filippo Valsorda
- [Plants] Re: Higher forgery resistance almost for… Brendan McMillion
- [Plants] Re: Higher forgery resistance almost for… Andrew Ayer
- [Plants] Re: Higher forgery resistance almost for… Bas Westerbaan
- [Plants] Re: Higher forgery resistance almost for… David Benjamin
- [Plants] Re: Higher forgery resistance almost for… Amir Herzberg
- [Plants] Re: Higher forgery resistance almost for… Bas Westerbaan
- [Plants] Re: Higher forgery resistance almost for… Amir Herzberg
- [Plants] Re: Higher forgery resistance almost for… Chase Abbott
- [Plants] Re: Higher forgery resistance almost for… Bas Westerbaan
- [Plants] Re: Higher forgery resistance almost for… David Benjamin
- [Plants] Re: Higher forgery resistance almost for… Andreas Hülsing