[{"author": "Daniel Gillmor", "text": "<p>batteries not included</p>", "time": "2026-07-20T12:06:39.000Z"}, {"author": "Rich Salz", "text": "<p>The \"extra\" chair on the stage is leftover from the previous session to accomodate a presenter who had physical issues. It could be removed and the mic stand put back into the common position.</p>", "time": "2026-07-20T12:08:53.000Z"}, {"author": "Bas Westerbaan", "text": "<p>ACME today? Isn't that Thursday?</p>", "time": "2026-07-20T12:11:52.000Z"}, {"author": "Daniel Gillmor", "text": "<p>yes, it's thursday.</p>", "time": "2026-07-20T12:12:12.000Z"}, {"author": "Mike Ounsworth", "text": "<p>\"Log number encoded in serial<br>\n\u25cf 16-bit log number, 48-bit entry index\"</p>\n<p>Didn't PKI move to randomized serial numbers as the obvious point to inject entropy into the TBSCertificate?<br>\nIs this design point addressed in the draft?</p>", "time": "2026-07-20T12:12:24.000Z"}, {"author": "Bas Westerbaan", "text": "<p>That's the randomizer.</p>", "time": "2026-07-20T12:12:43.000Z"}, {"author": "Bas Westerbaan", "text": "<p>Only relevant if the hash is weak (which it isn't), or if you want to eek out more than 128-bit security from a 256-bit hash. <a href=\"https://mailarchive.ietf.org/arch/msg/plants/FN8L2-C2AjN7QxpX6RC7b3tnxi8/\">https://mailarchive.ietf.org/arch/msg/plants/FN8L2-C2AjN7QxpX6RC7b3tnxi8/</a></p>", "time": "2026-07-20T12:13:44.000Z"}, {"author": "Mike Ounsworth", "text": "<p>draft-ietf-plants-merkle-tree-certs-05 has 0 CTRL+F hits for \"randomizer\". Is that an addition that's not in the draft yet?</p>\n<p>What I'm looking for is the details: is randomizer an X.509v3 extn in the TBSCert of the leaf entry?</p>", "time": "2026-07-20T12:14:48.000Z"}, {"author": "Brendan McMillion", "text": "<p>Randomizer isn't built-in. It's a to-be-written extension</p>", "time": "2026-07-20T12:15:19.000Z"}, {"author": "Daniel Gillmor", "text": "<p>relative OID would be my preference as well, fwiw.</p>", "time": "2026-07-20T12:15:22.000Z"}, {"author": "Yoav Nir", "text": "<p>The bikeshed question is not about the color. It's about whether we make the bike shed of galvanized iron or aluminum.  (actually aluminium because the book is British)</p>", "time": "2026-07-20T12:16:48.000Z"}, {"author": "Aaron Gable", "text": "<p>Do we have any upki representatives to speak to their implementation plan / timeline?</p>", "time": "2026-07-20T12:19:48.000Z"}, {"author": "Viktor Dukhovni", "text": "<p>@bob-beck signal chat me...</p>", "time": "2026-07-20T12:20:19.000Z"}, {"author": "Deb Cooley", "text": "<p>@aarongable - mic?</p>", "time": "2026-07-20T12:20:54.000Z"}, {"author": "David Benjamin", "text": "<p>Re randomizer, yeah, the mailing list discussion was inconclusive, so extensions are a way to strategically kick the can down the road. :-)</p>", "time": "2026-07-20T12:21:08.000Z"}, {"author": "Mike Ounsworth", "text": "<p><span class=\"user-mention silent\" data-user-id=\"829\">David Benjamin</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223103\">said</a>:</p>\n<blockquote>\n<p>Re randomizer, yeah, the mailing list discussion was inconclusive, so extensions are a way to strategically kick the can down the road. :-)</p>\n</blockquote>\n<p>I'm asking to see the details so I can noodle on whether that's security-equivalent to randomized Serial.</p>", "time": "2026-07-20T12:21:57.000Z"}, {"author": "Bas Westerbaan", "text": "<p>Did you read the thread, Mike? :)</p>", "time": "2026-07-20T12:22:25.000Z"}, {"author": "David Benjamin", "text": "<p>Details would just be to allocate extension zero to have contents \"16 random bytes\" and you put that in every entry.</p>", "time": "2026-07-20T12:22:35.000Z"}, {"author": "Mike Ounsworth", "text": "<p><span class=\"user-mention silent\" data-user-id=\"549\">Bas Westerbaan</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223111\">said</a>:</p>\n<blockquote>\n<p>Did you read the thread, Mike? :)</p>\n</blockquote>\n<p>Yes, I see that it has more replies than I can read while I'm setting here.<br>\nAm asking whether there is a section in the draft with the current proposal. Yes, or no?</p>", "time": "2026-07-20T12:23:22.000Z"}, {"author": "Thom Wiggers", "text": "<p>instructions unclear, put <code>\"16 random bytes\"</code> into the extension</p>", "time": "2026-07-20T12:23:26.000Z"}, {"author": "Bas Westerbaan", "text": "<p>No, not in the current proposal.</p>", "time": "2026-07-20T12:24:42.000Z"}, {"author": "Bas Westerbaan", "text": "<p>Happy to walk you through the details later.</p>", "time": "2026-07-20T12:25:00.000Z"}, {"author": "Bas Westerbaan", "text": "<p>And of course we can add text to the security considerations if you feel it's not obvious</p>", "time": "2026-07-20T12:26:15.000Z"}, {"author": "David Benjamin", "text": "<p>Re putting it in the serial, previously, we put randomizers in the serial number just because:</p>\n<ul>\n<li>It's a field that already exists</li>\n<li>Unlike extensions, it's in front, and it's kinda nice to put it in the front</li>\n</ul>\n<p>But for MTC, we're defining a new structure that is being hashed so we can just define it to do whatever we want. So we're not forced to jam it into the serial.</p>", "time": "2026-07-20T12:26:53.000Z"}, {"author": "Mike Ounsworth", "text": "<p>(I have now skimmed the email thread. I didn't see an obvious block of ASN.1 defn's + MUST's / SHOULD's. Is that in the email thread and I just missed it?)</p>", "time": "2026-07-20T12:27:08.000Z"}, {"author": "Dennis Jackson", "text": "<p>Appeal to git is a novel strategy for pitching simplicity</p>", "time": "2026-07-20T12:29:52.000Z"}, {"author": "Sean Turner", "text": "<p><span aria-label=\"100\" class=\"emoji emoji-1f4af\" role=\"img\" title=\"100\">:100:</span></p>", "time": "2026-07-20T12:30:15.000Z"}, {"author": "Daniel Gillmor", "text": "<p>plus, git rebase is an incredible opportunity for concealing shennanigans in dev history</p>", "time": "2026-07-20T12:30:30.000Z"}, {"author": "Stefan Santesson", "text": "<p>What prevents the act of reconciling a log from creating new forks that needs to be reconciled?</p>", "time": "2026-07-20T12:32:45.000Z"}, {"author": "Dennis Jackson", "text": "<p>If mirrors get stuck, it may become an emergency due to paused issuance. If monitors get stuck, its a temporary loss of observability which is resolved when the monitor is fixed.</p>", "time": "2026-07-20T12:33:36.000Z"}, {"author": "Yoav Nir", "text": "<p>I've spent way too long resolving conflicts from git rebase.</p>", "time": "2026-07-20T12:33:52.000Z"}, {"author": "Dennis Jackson", "text": "<p>That suggests to me that keeping the mirrors simpler might be the way to go.</p>", "time": "2026-07-20T12:33:55.000Z"}, {"author": "Stephen Farrell", "text": "<p>anyone planning any formal methods work on plants related things? eg. this stuff</p>", "time": "2026-07-20T12:34:04.000Z"}, {"author": "Devon O'Brien", "text": "<p>I'm honestly a lot more interested in building ecosystem capability and agility to respond to a hosed log instead of introducing a complex graph-theoretic class of failure modes to an already error-prone ecosystem.</p>", "time": "2026-07-20T12:34:24.000Z"}, {"author": "David Benjamin", "text": "<p>Fortunately, if we're wrong and this does turn out to be super easy (I'm dubious), we can set maxSerial to only allow one log and now log generations are a no-op.</p>", "time": "2026-07-20T12:35:51.000Z"}, {"author": "Bob Beck", "text": "<p>presumably of course the CA won't be a jerk.</p>", "time": "2026-07-20T12:36:10.000Z"}, {"author": "Daniel Gillmor", "text": "<p>plus, there are (at least) two different ways to do any reconciliation.  are we going to fork based on which reconciliation choice was made?</p>", "time": "2026-07-20T12:36:42.000Z"}, {"author": "Mike Ounsworth", "text": "<p><span class=\"user-mention silent\" data-user-id=\"55\">Stephen Farrell</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223160\">said</a>:</p>\n<blockquote>\n<p>anyone planning any formal methods work on plants related things? eg. this stuff</p>\n</blockquote>\n<p>Yeah. How do we convince ourselves that we've sufficiently considered all the edge-cases that need to be considered? Are we there already? How do we know?</p>", "time": "2026-07-20T12:37:02.000Z"}, {"author": "Robert Moskowitz", "text": "<p>@MikeO:  Is that by its nature, open ended?</p>", "time": "2026-07-20T12:37:54.000Z"}, {"author": "Robert Moskowitz", "text": "<p>Is it really deterministic?  Or non-deterministic.</p>", "time": "2026-07-20T12:38:43.000Z"}, {"author": "Bob Beck", "text": "<p>Ooops we had a bug in our CA was auto forking the tree, but reconcillation made it invisible.. <br>\nuntil the log fell over.</p>", "time": "2026-07-20T12:39:03.000Z"}, {"author": "Mike Ounsworth", "text": "<p>@BobMoskowitz -- Yes, but for example TLS 1.3 design + formal methods goes a long way to at least attempting to reach \"completeness\". I'm just musing out loud about what the equivalent bar is for the MTC design.</p>", "time": "2026-07-20T12:39:29.000Z"}, {"author": "Dennis Jackson", "text": "<p>I do think we need the arch draft pronto. If only to concisely set out what the system is intended to achieve (when deployed 'correctly'). That will give the formal methods folks something to shoot at.</p>", "time": "2026-07-20T12:39:38.000Z"}, {"author": "Bas Westerbaan", "text": "<p>Yeah, some manual friction in generations is actually a feature not a bug.</p>", "time": "2026-07-20T12:40:07.000Z"}, {"author": "Russ Housley", "text": "<p>With major decisions behind us, an arch doc now seems do-able</p>", "time": "2026-07-20T12:40:31.000Z"}, {"author": "Stefan Santesson", "text": "<p>What happens if a certificate gets stuck in a fork that eventually is abandoned, does that not just cause the certificate to fail validation. Does this needs to be fixed?</p>", "time": "2026-07-20T12:40:32.000Z"}, {"author": "Thom Wiggers", "text": "<p>it should still be auditable that this stuck certificate ever existed</p>", "time": "2026-07-20T12:41:03.000Z"}, {"author": "Stephen Farrell", "text": "<p>The timelines I recall for the TLSv1.3 analyses might impact on plants milestones. More importantly might conflict with announcements related to plants and timelines.</p>", "time": "2026-07-20T12:41:27.000Z"}, {"author": "Peter van Dijk", "text": "<p>Total backseat driver here. How about something closer to git merge than git rebase? That gives us something visible</p>", "time": "2026-07-20T12:41:27.000Z"}, {"author": "Daniel Gillmor", "text": "<p>i like Aaron's \"merge log entry\" more than the rebase.</p>", "time": "2026-07-20T12:41:36.000Z"}, {"author": "Stefan Santesson", "text": "<p>And why ia that a problem. Not saying that it isn't</p>", "time": "2026-07-20T12:41:37.000Z"}, {"author": "Thom Wiggers", "text": "<p>@Stefan: the first goal here transparency, to ensure CAs behave and don't create certificates for people they shouldn't be signing for</p>", "time": "2026-07-20T12:42:16.000Z"}, {"author": "Stefan Santesson", "text": "<p>OK. Thanks.</p>", "time": "2026-07-20T12:42:34.000Z"}, {"author": "David Benjamin", "text": "<p>ISTM that pairwise could still flipflop because rebase(A, B) != rebase(B, A).</p>", "time": "2026-07-20T12:43:35.000Z"}, {"author": "Dennis Jackson", "text": "<p><a href=\"/user_uploads/2/62/rhrQb80u8jv3xyb-438gX-Fm/image.png\">image.png</a><br>\nShameless self citation for what transparency means</p>\n<div class=\"message_inline_image\"><a href=\"/user_uploads/2/62/rhrQb80u8jv3xyb-438gX-Fm/image.png\" title=\"image.png\"><img data-original-content-type=\"image/png\" data-original-dimensions=\"2010x1098\" src=\"/user_uploads/thumbnail/2/62/rhrQb80u8jv3xyb-438gX-Fm/image.png/840x560.webp\"></a></div>", "time": "2026-07-20T12:43:37.000Z"}, {"author": "Stephen Farrell", "text": "<p>davidben realising some issue at the mic =&gt; maybe that formal analysis stuff's needed before deployment?</p>", "time": "2026-07-20T12:45:46.000Z"}, {"author": "Mike Ounsworth", "text": "<p>\"What if the same serial number exists on two forks?\"<br>\n--&gt; This is a problem introduced by removing strong random serial numbers, right? <span aria-label=\"thinking\" class=\"emoji emoji-1f914\" role=\"img\" title=\"thinking\">:thinking:</span> <br>\nI would very much like to see the full proposal for non-random serials written out because I think the details matter!</p>", "time": "2026-07-20T12:46:41.000Z"}, {"author": "David Benjamin", "text": "<p>So the \"invisible same serial number\" problem doesn't exist right now. The log generations strategy (intentionally!) makes it very visible.</p>", "time": "2026-07-20T12:47:39.000Z"}, {"author": "Felix Linker", "text": "<p><span class=\"user-mention silent\" data-user-id=\"55\">Stephen Farrell</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223214\">said</a>:</p>\n<blockquote>\n<p>davidben realising some issue at the mic =&gt; maybe that formal analysis stuff's needed before deployment?</p>\n</blockquote>\n<p>I would not advise to add a dependency on formal analysis <span aria-label=\"innocent\" class=\"emoji emoji-1f607\" role=\"img\" title=\"innocent\">:innocent:</span> Though, formal analysis is definitely desirable</p>", "time": "2026-07-20T12:48:10.000Z"}, {"author": "Thom Wiggers", "text": "<p>does a new generation point to \"this old generation was retired at point X\"?</p>", "time": "2026-07-20T12:48:27.000Z"}, {"author": "Bas Westerbaan", "text": "<blockquote>\n<p>I would very much like to see the full proposal for non-random serials written out because I think the details matter!</p>\n</blockquote>\n<p>I haven't heard anyone propose before to reintroduce random serial numbers. Random serial numbers were a hack. We shouldn't bring them back as-is.</p>", "time": "2026-07-20T12:48:38.000Z"}, {"author": "Stephen Farrell", "text": "<p>@felix: yeah it's tricky given the announced timelines. OTOH, discovering badness later could make us quite sad</p>", "time": "2026-07-20T12:49:00.000Z"}, {"author": "Aaron Gable", "text": "<p>@Thom Wiggers No, but it could with a new log entry type. And that might help resolve the \"what if a CA tries to continue appending to a previous log generation\" concern.</p>", "time": "2026-07-20T12:49:48.000Z"}, {"author": "Mike Ounsworth", "text": "<p><span class=\"user-mention silent\" data-user-id=\"549\">Bas Westerbaan</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223225\">said</a>:</p>\n<blockquote>\n<p>I haven't heard anyone propose before to reintroduce random serial numbers. Random serial numbers were a hack. We shouldn't bring them back as-is.</p>\n</blockquote>\n<p>Sure, and I'm not proposing to bring them back. I'm proposing that doing a differential security analysis relative to the properties of the X.509 that we've studied to death requires having the precise details of the new thing written down.</p>", "time": "2026-07-20T12:50:04.000Z"}, {"author": "Rich Salz", "text": "<p>I'd be interested in (helping) with the arch document if everyone else is busy</p>", "time": "2026-07-20T12:51:09.000Z"}, {"author": "Bas Westerbaan", "text": "<p>Perhaps a different proposal to consider: have an optional entry type to be added on a new log generation that contains the hash (or hashes) of the previous generation (forks.)</p>", "time": "2026-07-20T12:54:25.000Z"}, {"author": "Rich Salz", "text": "<p>I do kinda like the reconciliation thing if it means we get log entry types '&lt;&lt;&lt;&lt;&lt;&lt;' etc</p>", "time": "2026-07-20T12:54:30.000Z"}, {"author": "Daniel Gillmor", "text": "<p>Rich <span aria-label=\"joy\" class=\"emoji emoji-1f602\" role=\"img\" title=\"joy\">:joy:</span></p>", "time": "2026-07-20T12:54:52.000Z"}, {"author": "Bob Beck", "text": "<p>pki rebase --hard</p>", "time": "2026-07-20T12:55:46.000Z"}, {"author": "Bob Beck", "text": "<p>I was worried we would not get any bad plant puns<br>\nthank god someone remembered to keep their presentation up to standards.</p>", "time": "2026-07-20T12:56:50.000Z"}, {"author": "David Benjamin", "text": "<p>I feel very silly now for forgetting haha.</p>", "time": "2026-07-20T12:57:27.000Z"}, {"author": "Aaron Gable", "text": "<p>Is the idea here that the LDP is baked into the cert via extension, like the CRLDP today?</p>", "time": "2026-07-20T12:57:38.000Z"}, {"author": "Rich Salz", "text": "<p>puns:PLANTS :: dadjokes:dads ?</p>", "time": "2026-07-20T12:57:43.000Z"}, {"author": "Bas Westerbaan", "text": "<p>For those speaking at SAAG later: SAAG is Hindi for \"leafy greens\".</p>", "time": "2026-07-20T12:58:03.000Z"}, {"author": "Deb Cooley", "text": "<p>is plants overgrown into saag?</p>", "time": "2026-07-20T12:58:33.000Z"}, {"author": "Bob Beck", "text": "<p>and some people were annoyed at me for naming a draft leafy greens....</p>", "time": "2026-07-20T12:58:37.000Z"}, {"author": "Daniel Gillmor", "text": "<p>certificate hierarchies and network availability: CHANA SAAG</p>", "time": "2026-07-20T13:00:14.000Z"}, {"author": "Aritra Banerjee", "text": "<p>Now that's creative!</p>", "time": "2026-07-20T13:01:08.000Z"}, {"author": "Bas Westerbaan", "text": "<p>John might kill Russ with those puns</p>", "time": "2026-07-20T13:02:04.000Z"}, {"author": "Bob Beck", "text": "<p>+11 for puns.</p>", "time": "2026-07-20T13:02:35.000Z"}, {"author": "Jonathan Hammell", "text": "<p>Will those draft branches be rebased in the future?</p>", "time": "2026-07-20T13:03:55.000Z"}, {"author": "Bob Beck", "text": "<p>you mean pruned and grafted...</p>", "time": "2026-07-20T13:04:42.000Z"}, {"author": "Bas Westerbaan", "text": "<p>I can answer how it's useful for downgrade detection. It's important to distinguish two kind of classical certs: the one to show a legacy client and the one to provision at a legacy server (that can't sign with PQ). It's only the latter case that causes a downgrade, but also you only need to issue that one if you have a legacy server. That does require a misissuance, but that can be detected with transparency.</p>", "time": "2026-07-20T13:05:32.000Z"}, {"author": "Bas Westerbaan", "text": "<p><span class=\"user-mention\" data-user-id=\"1226\">@Aaron Gable</span> You can do even better compression with non-random serial numbers in MTC: <a href=\"https://github.com/bwesterb/go-ncrlite\">https://github.com/bwesterb/go-ncrlite</a></p>", "time": "2026-07-20T13:06:18.000Z"}, {"author": "David Benjamin", "text": "<p>saag will also talk a bit about this. <a href=\"https://www.chromium.org/Home/chromium-security/post-quantum-auth-roadmap/\">https://www.chromium.org/Home/chromium-security/post-quantum-auth-roadmap/</a> has a write-up, but saag will have even more fun pictures. :-)</p>", "time": "2026-07-20T13:07:38.000Z"}, {"author": "David Benjamin", "text": "<p><span class=\"user-mention silent\" data-user-id=\"549\">Bas Westerbaan</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223304\">said</a>:</p>\n<blockquote>\n<p><span class=\"user-mention silent\" data-user-id=\"1226\">Aaron Gable</span> You can do even better compression with non-random serial numbers in MTC: <a href=\"https://github.com/bwesterb/go-ncrlite\">https://github.com/bwesterb/go-ncrlite</a></p>\n</blockquote>\n<p>Yeah, it really feels like we could do nicer things with revocation now that our serials dense and ordered. Maybe size savings, maybe more natural sharding for CAs that want to keep their CDN pushes small, maybe something else.</p>", "time": "2026-07-20T13:11:03.000Z"}, {"author": "David Benjamin", "text": "<p>(Isn't a plain counter how serials originally worked? I thought making them random was a later development.)</p>", "time": "2026-07-20T13:11:49.000Z"}, {"author": "Deb Cooley", "text": "<p>This is true.</p>", "time": "2026-07-20T13:12:07.000Z"}, {"author": "Deb Cooley", "text": "<p>It was added as a result of a hash that was less secure than we liked.</p>", "time": "2026-07-20T13:12:34.000Z"}, {"author": "Yoav Nir", "text": "<p>That was the RapidSSL MD5 thing, right?</p>", "time": "2026-07-20T13:13:43.000Z"}, {"author": "Russ Housley", "text": "<p>The random was added to the serial because of the Bleichenbacher Attack</p>", "time": "2026-07-20T13:14:05.000Z"}, {"author": "Deb Cooley", "text": "<p>To make the 'next certificate' issued be less predictable.</p>", "time": "2026-07-20T13:14:55.000Z"}, {"author": "Russ Housley", "text": "<p>Yep</p>", "time": "2026-07-20T13:15:32.000Z"}, {"author": "Aaron Gable", "text": "<p>In summary: x509v3 still doesn't require serial randomness; the CA/BF Baseline Requirements require it. It was introduced in 2016 (Ballot 164) as a result of chosen-prefix attacks against MD5.<br>\n<a href=\"https://cabforum.org/2016/03/31/ballot-164-certificate-serial-number-entropy/\">https://cabforum.org/2016/03/31/ballot-164-certificate-serial-number-entropy/</a></p>", "time": "2026-07-20T13:15:35.000Z"}, {"author": "Yoav Nir", "text": "<p>Yeah, because RapidSSL used a serial serial number, so the attackers could predict (and manipulate by requesting certificates) the serial number of the rogue certificate.</p>", "time": "2026-07-20T13:16:07.000Z"}, {"author": "Bas Westerbaan", "text": "<p>Those numbers are actually quite a bit better than I expected.</p>", "time": "2026-07-20T13:16:22.000Z"}, {"author": "Devon O'Brien", "text": "<p>It was also sheer luck that serial number was in the right place in the certificate (i.e. before the key) and had the right format/shape/purpose to store some entropy</p>", "time": "2026-07-20T13:16:40.000Z"}, {"author": "Bas Westerbaan", "text": "<p><span class=\"user-mention silent\" data-user-id=\"549\">Bas Westerbaan</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223336\">said</a>:</p>\n<blockquote>\n<p>Those numbers are actually quite a bit better than I expected.</p>\n</blockquote>\n<p>Still a terrifying long way to go.</p>", "time": "2026-07-20T13:16:51.000Z"}, {"author": "Devon O'Brien", "text": "<p>This was not a principled decision by any means</p>", "time": "2026-07-20T13:16:53.000Z"}, {"author": "Deb Cooley", "text": "<p>right.  The other option was to add random to the fast moving parts of the 'not before' and 'not after'.</p>", "time": "2026-07-20T13:17:17.000Z"}, {"author": "Deb Cooley", "text": "<p>(was my pref)</p>", "time": "2026-07-20T13:17:37.000Z"}, {"author": "Josh G", "text": "<p>hard to know if what's been migrated is what's easiest to migrate, or the most important</p>", "time": "2026-07-20T13:18:06.000Z"}, {"author": "Aaron Gable", "text": "<p>Heh, sorry, Let's Encrypt is \"doing this four certificate business\" right now. It's necessary for any CA which is trying to support both old (trusted by out-of-date clients <em>only</em>) and new (trusted by up-to-date clients only) roots simultaneously.</p>", "time": "2026-07-20T13:20:51.000Z"}, {"author": "Bob Beck", "text": "<p>in private pki (speaking from a consultant role in past lives) four and more is usually some form of encoding your org chart into your certificate chain.</p>", "time": "2026-07-20T13:21:40.000Z"}, {"author": "David Benjamin", "text": "<p>How to deal with old vs new clients, the perennial PKI problem. :-)</p>", "time": "2026-07-20T13:22:18.000Z"}, {"author": "Daniel Gillmor", "text": "<p>perennial IETF problem</p>", "time": "2026-07-20T13:22:28.000Z"}, {"author": "Daniel Gillmor", "text": "<p>\"the curse of the deployed base\"</p>", "time": "2026-07-20T13:22:53.000Z"}, {"author": "Dennis Jackson", "text": "<p>\"What are these people doing in my tent? How do I get them to leave? What will happen to them if they are chucked out?\"</p>", "time": "2026-07-20T13:23:25.000Z"}, {"author": "Dennis Jackson", "text": "<p>(overheard at the IETF)</p>", "time": "2026-07-20T13:23:52.000Z"}, {"author": "Daniel Gillmor", "text": "<p>it's usually more like \"what will happen to my tent if they are chucked out?\"</p>", "time": "2026-07-20T13:24:50.000Z"}, {"author": "Mike Ounsworth", "text": "<p><span class=\"user-mention silent\" data-user-id=\"331\">Deb Cooley</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223328\">said</a>:</p>\n<blockquote>\n<p>To make the 'next certificate' issued be less predictable.</p>\n</blockquote>\n<p>I'm curious to think through the implications of being able to predict a future not-yet-issued leaf of the Merkle tree -- ie what is the bad thing that happens if you don't have randomness in the MTC leaf? My intuition is that the bad thing here is quite a bit different from the bad thing in traditional X.509 (which largely boils down to RSA / ECDSA hash collisions).</p>", "time": "2026-07-20T13:27:26.000Z"}, {"author": "David Benjamin", "text": "<p>It's ultimately the same thing: how strong do you believe your hash is. If your hash is collision-resistant, it's fine.</p>", "time": "2026-07-20T13:28:31.000Z"}, {"author": "David Benjamin", "text": "<p>One hopes we're no longer playing with MD5 anymore. For SHA-256... if a 256-bit hash does not give you enough bits of collision resistance for you, then maybe you want the randomizer.</p>", "time": "2026-07-20T13:29:07.000Z"}, {"author": "Daniel Gillmor", "text": "<p>agreed, the only problem motivating randomized IDs was MD5's collision-resistance failure</p>", "time": "2026-07-20T13:29:16.000Z"}, {"author": "Aaron Gable", "text": "<p>Also, you'd have to predict the entire checkpoint subtree, not just a single entry.</p>", "time": "2026-07-20T13:29:45.000Z"}, {"author": "Mike Ounsworth", "text": "<p><span class=\"user-mention silent\" data-user-id=\"829\">David Benjamin</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223396\">said</a>:</p>\n<blockquote>\n<p>It's ultimately the same thing: how strong do you believe your hash is. If your hash is collision-resistant, it's fine.</p>\n</blockquote>\n<p>I don't follow this. If I know the exact value of a future MTC leaf, then I run the hash _forward_ to build an inclusion proof for this not-yet-issued leaf, which is a thing that my intuition tells me shouldn't be good. Since this is not a collision attack, I'm not following how using a collision-resistant hash protects you?</p>", "time": "2026-07-20T13:29:57.000Z"}, {"author": "David Benjamin", "text": "<p>(Re number of bits, personally, I don't really believe in counting to 2^128. I have a low attention span and will get bored before then. But opinions vary.)</p>", "time": "2026-07-20T13:30:19.000Z"}, {"author": "Andrew Dolan", "text": "<p>Along with the idea of a deployment guidance, and perhaps to be paired with the use cases draft, I'd like to see a good side by side breakdown of MTC sizes, particularly between where you do and don't have landmark relative certs. IIRC the MTC draft has some of this started already (estimates)</p>", "time": "2026-07-20T13:32:49.000Z"}, {"author": "David Benjamin", "text": "<p><span class=\"user-mention silent\" data-user-id=\"5873\">Mike Ounsworth</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223403\">said</a>:</p>\n<blockquote>\n<p><span class=\"user-mention silent\" data-user-id=\"829\">David Benjamin</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223396\">said</a>:</p>\n<blockquote>\n<p>It's ultimately the same thing: how strong do you believe your hash is. If your hash is collision-resistant, it's fine.</p>\n</blockquote>\n<p>I don't follow this. If I know the exact value of a future MTC leaf, then I run the hash _forward_ to build an inclusion proof for this not-yet-issued leaf, which is a thing that my intuition tells me shouldn't be good. And I don't think that requires collision-resistance of the hash?</p>\n</blockquote>\n<p><em>If</em> you could collide the hash and control <code>attacker.example</code>, you can find a colliding pair A and B, where A has SANs <code>attacker.example</code> and B has SANs <code>target.example</code>. You present the first one to the CA, get them to sign it, but actually that certificate also certifies B. And now you've caused the CA to certify an unauthorized cert for <code>target.example</code>.</p>", "time": "2026-07-20T13:33:20.000Z"}, {"author": "Mike Ounsworth", "text": "<p>Sure. Collision attacks against MTC are clearly bad in exactly the same way as for traditional X.509.<br>\nWhat I'm questioning is your assertion that collision attacks are the only class of attacks that the randomness is protecting against.<br>\nMy intuition is telling me that there are some Merle tree specific attacks that the randomness is also helping with (ie randomness helps with attacks that don't have regular-X.509 analogs).</p>", "time": "2026-07-20T13:34:34.000Z"}, {"author": "David Benjamin", "text": "<p>Oh I see. Not sure I'm following your attack, but maybe I'm not reading it right. You could certainly compute what the inclusion proof <em>would have been</em> if the next entry is xyz. But that inclusion proof will lead to a root hash that presumably wasn't signed by the CA.</p>", "time": "2026-07-20T13:35:47.000Z"}, {"author": "Daniel Gillmor", "text": "<p>what's the other attack, Mike?</p>", "time": "2026-07-20T13:35:52.000Z"}, {"author": "David Benjamin", "text": "<p>(Or a subtree. But one way or another, we only accept the tree hashes that are <em>somehow</em> authenticated by the CA.)</p>", "time": "2026-07-20T13:36:38.000Z"}, {"author": "Bas Westerbaan", "text": "<p><span class=\"user-mention\" data-user-id=\"5873\">@Mike Ounsworth</span> To be very clear, the randomizer is not necessary for MTC as-is at 128-bit security level, because SHA2 is a good hash.</p>", "time": "2026-07-20T13:37:33.000Z"}, {"author": "Mike Ounsworth", "text": "<p><span class=\"user-mention silent\" data-user-id=\"637\">Daniel Gillmor</span> <a href=\"#narrow/channel/421-plants/topic/ietf-126/near/223428\">said</a>:</p>\n<blockquote>\n<p>what's the other attack, Mike?</p>\n</blockquote>\n<p>I don't know. Maybe (hopefully) there isn't one.<br>\nMy ENTIRE point here is that since the details of the randomness scheme (including the security model of the attacks it's intending to protect against) doesn't seem to have been written down yet, it's a bit difficult to construct an attack against it, or state that there isn't one. <span aria-label=\"yum\" class=\"emoji emoji-1f60b\" role=\"img\" title=\"yum\">:yum:</span></p>", "time": "2026-07-20T13:38:20.000Z"}, {"author": "Dennis Jackson", "text": "<p>The randomizer lives in a weird place. The kinds of people that have weird excessive requirements are going to want a different hash anyway (IMO)</p>", "time": "2026-07-20T13:38:45.000Z"}, {"author": "Bas Westerbaan", "text": "<p>By the way, Andy H\u00fclsing who replied in the thread, is the world expert on this kind of stuff.</p>", "time": "2026-07-20T13:39:08.000Z"}]