[Plants] Re: Scope and charter

David Benjamin <davidben@chromium.org> Tue, 19 August 2025 17:04 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 AE10E5610EFB for <plants@mail2.ietf.org>; Tue, 19 Aug 2025 10:04:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -8.083
X-Spam-Level:
X-Spam-Status: No, score=-8.083 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.017, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham 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 slWROBPoniUY for <plants@mail2.ietf.org>; Tue, 19 Aug 2025 10:04:15 -0700 (PDT)
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) (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 B43975610EEE for <plants@ietf.org>; Tue, 19 Aug 2025 10:04:15 -0700 (PDT)
Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-afcb7abfc5cso945274766b.3 for <plants@ietf.org>; Tue, 19 Aug 2025 10:04:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1755623055; x=1756227855; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=jP53eq1WpX9z9ZIymcNGrHthQMlGcWKkfG0FdBAyzfk=; b=LYB61W4/Kuf7kE8pFqRu9zMgMQS4pbq1D4G2UGc9M1qD9zGY6oWdA3KTOVH6MUJbaU ARsRsR5NA61iO2ckeOOoCwjUbRDcucA+Iwf/Y5l2dEhoKLlMLnS2exENMxsLZ1+q3D0n jywa15DdWIBKeRa/q/g30IuLcF3EESgRUUmDA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755623055; x=1756227855; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=jP53eq1WpX9z9ZIymcNGrHthQMlGcWKkfG0FdBAyzfk=; b=S35uYwQ3lrOrS3VmZpT4lEEuk/mGK0bIdcDYNnerVg2Ez5vfxDe0iGX7reAsZFelpo zZLgNzUXZyfZSrk2FpSFbpYRityum75uyswZmR1q0TgKJi8lfYyaZOTt/v3wSwc/uHSr xXPtpgA3ifMdB3TdPM40uo7/B6kERhn5PBGi8IRWE8/FAPtk9+TNRev514NiPtahPlio GVqD4/hP2MXSn5y2rOI98zzlc2MoN8VMeGiu4cvexvDM2OC/EeEDr8BN/YUDXccrZeA3 FDupfiXviB8Bd73frbJ9j0RZvYdnKqhzTrcwdU+1QiA1uPfAdDD31BXQJ3KQDjHXT1yM ry2g==
X-Gm-Message-State: AOJu0YwjSE2QbTC2bZ5MGJFDnrwhQA0HMgrvIhS5tTPp/oAU0iu0ArwT vzNH/vxy+ppKSLl9WC5PYMD0Swpdl2QSQi0BD9Ph27TYWdlty+/yL7vl3mZ8Izyv+rxu6Esmd5M AwwkBLcs9ZEygyEV5vGi3P1EdLVu/i9p5qF+XaXbUjiZa4uQh/VLZf1UUDA==
X-Gm-Gg: ASbGnctqwTOSnyJuG782PBIsdU3coimaPrfiG0HuCJ1KwT1AlokqwytwSnanwJ2ELrI UR/2NqLlWcGvRwUr2+HGXmeaq4MquK5wYXWLs2GhxUSxBTwKj/USBdJPllepHj7d3ly5GrhHNnK 1km47m7RBQbBUjs98hfg6uiv4XbGoMkbPOoA2iSSKwFdUhSm0ycsmZ7MDG3QLLu2YHQgUcOyaNt Lr5IU9ovVM9qXGryqAhYmEG6urhvijVBhx63Cd3ZYY=
X-Google-Smtp-Source: AGHT+IH2reEdrB44pxObEiyqAdGwsnUgtab4gGNY4gUQ9k0fMPLI22rZ+d4VCX3joAVdmgriU+vc1SVTSC7IteJOnn8=
X-Received: by 2002:a17:907:1c08:b0:af9:3116:e104 with SMTP id a640c23a62f3a-afddc95dab7mr330493266b.3.1755623054227; Tue, 19 Aug 2025 10:04:14 -0700 (PDT)
MIME-Version: 1.0
References: <CAMjbhoWghiphLsq8OS-hOiYTPDSkO-_o9JYq2Wbtey4oBW6eyA@mail.gmail.com> <97AE4984-E6B4-4C3C-9A7B-7A0900110FDF@thomwiggers.nl> <CAFR824w+pzfyKDXWWJ0uytFLKF3id9uL_JY2Du9458YxXZzG2w@mail.gmail.com> <PH3PPFA3FE8A23F1AB56FA437BE4CA8C418C12DA@PH3PPFA3FE8A23F.namprd11.prod.outlook.com> <CAFR824wUSFNTDzFn2hMbaa+3Jpe2apa82x74D3zp5NrZBgquWQ@mail.gmail.com> <CAF8qwaC+_R6qAQiEmHbg+s4zoOEvOiTS8CYB8CMwyrQsAM=84g@mail.gmail.com> <31435.1755103402@obiwan.sandelman.ca>
In-Reply-To: <31435.1755103402@obiwan.sandelman.ca>
From: David Benjamin <davidben@chromium.org>
Date: Tue, 19 Aug 2025 13:03:57 -0400
X-Gm-Features: Ac12FXzbw69fgXYgufDJ4zgZ0AunH4mw4sGWNZlX1VXpV9TsN45B-4QNvLSduJY
Message-ID: <CAF8qwaDuYOUT=nxvsVjgP+94f6Wc0s9zeODoGChrDgqamqDpzw@mail.gmail.com>
To: Michael Richardson <mcr@sandelman.ca>
Content-Type: multipart/alternative; boundary="000000000000828730063cbad8fb"
Message-ID-Hash: TWNRKRVAAKDPGARSH5QI3GEDOI4ABUXI
X-Message-ID-Hash: TWNRKRVAAKDPGARSH5QI3GEDOI4ABUXI
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: plants@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Plants] Re: Scope and charter
List-Id: "PKI, Logs, And Tree Signatures" <plants.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/plants/-icDMfo0S4DegWU29PvcPR91pTA>
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 Wed, Aug 13, 2025 at 12:43 PM Michael Richardson <mcr@sandelman.ca>
wrote:

> David Benjamin <davidben@chromium.org> wrote:
>     > On other use cases, I think it’s important to keep the scope at
> transparent
>     > PKIs, as so many requirements come from that. Other cultivars
> (private PKIs
>     > and IoT came up) may partially overlap, sow it can make sense to
> consider
>     > them, but their exact requirements and limitations will be different.
>
> private PKIs aren't a uniform, distinct thing.
> The only thing they have in common is that they aren't installed by default
> in /etc/ssl/certs.   Beyond that, there is more overlap with some WebPKIs
> than
> there are differences.
> Enterprise private PKIs have the most in common, perhaps.
> And quite possibly have even *MORE* need for additional mechanism around
> revocation.
>
> Even *IoT* PKIs are not distinct, as IoT is a marketing, and not technical
> term.
> Today, most IoT PKIs are about identifying the devices by the cloud.
> (Because, most IoT today, are device to cloud, as a private vertical)
> The device to cloud trust is far too often consisting of pinning the public
> key of the cloud, no indirection at all.  Often *literally* curl --cacert.
> (It makes me very sad)
>

Oh certainly. My point was less to exclude private PKIs or IoT cases and
more trying to be clear on what problem space we are and aren't targeting.
The shape of your PKI will depend heavily on the requirements of your
application, specifically how connectivity looks like between the players
in the system. (I can't claim credit for this insight. It was part of Ryan
Sleevi's saag presentation at IETF 109. The insight that PKI design follows
the connectivity model really stuck with me.)

Let's take revocation as an example:

On the Web, the Web's RP <-> CA connectivity is nonexistent. We cannot
assume that RPs can talk to CAs, CAs usually cannot handle the load that
the Web's scale produces, and there are privacy constraints on pinging a
third party that is affiliated with neither the website the user's visiting
nor the user agent. RPs in the Web can, kinda by construction, assume
connectivity to the server they're *currently* talking to, at (and only at)
the time they are trying to talk to the server. They often can ping their
software vendor periodically in the background, but cannot guarantee
connectivity, especially at the time of an actual connection. And then both
communication paths are limited by their own privacy constraints.

That connectivity model means, *specifically on the Web*, RPs fetching
CA-hosted CRLs or OCSP responses is not viable. Instead, our revocation
solutions that look more like:

1. Short-lived certificates and their equivalents: The only way to tightly
upper bound on the revocation delay is expiry of the server payload. One
way or another, *something* that the server hands the client *must* be
bounded to our target revocation delay, with the server <-> CA channel
(i.e. how good is your automation) being the main limiting factor today.

2. Out-of-band revocation lists like CRLite and CRLsets: We can, best
effort, have the software vendor push down revocation information. This is
bounded by how well the RP can actually get updates, and how compactly we
can represent the universe of revocations before they expire (ties into
cert lifetime above).

Again, that was specifically for the Web. Other applications might look
very different. Perhaps in some other application, your servers have poor
CA connectivity (e.g. poor server <-> CA automation), but your clients have
good connectivity to a commercial CA, e.g. because these are all clients on
some enterprise network. And perhaps, at the scale of that
application's PKI, the CA is able to and maybe even better than the
enterprise at hosting things. In that environment, online OCSP checks
perhaps *are* a better answer over short-lived certificates.

That's why we don't see one-size-fits-all PKIs. They depend on
requirements. When we try to force the PKI to be one-size-fits-all, things
don't work well. I think it's key that our solutions are clear on the
problem space that they are good for. Then applications can decide whether
they are a good fit for them, or whether they should go with a slightly
different model.

Now, back to the problem at hand. Here, the transparency requirement is
both the cause and solution to our problems. The PQ overhead is especially
pronounced when you need to carry signatures from extra entities like logs.
But the opportunity to do clever things with Merkle Trees naturally falls
out of needing to build these anyway. And thus I think that's the right
space for this work to target. That's not to say this is a Web-only
solution. (The draft charter tries to avoid saying "Web".) The Web is just
the prototypical application with this shape of requirement.

Whether that fits "private PKI" depends on your private PKI. "Private
PKIs", as you say, are not uniform. It's a really vague term that tends to
just mean "everything else". I would imagine that some private PKIs have a
lot in common with this problem space, and some do not:

* Perhaps you're a commercial CA and operate a private PKI on behalf of a
customer, may you *do* want auditability! Perhaps you would use something
like MTCs to log everything you sign, and publish it, not publicly, but to
your customer. Then you could tell the customer, "look, you are trusting me
with all your authentication, but I've chosen to use a certificate design
that guarantees things are in this log, that I will publish to you to
audit."

* Or perhaps you're self-hosting your private PKI for, I dunno, jobs in a
data center, so you trust the CA. But maybe you want some assurance against
your CA machines getting compromised, and want to use the append-only log
as a defense against that.

* Or perhaps all this is too much operational overhead for your private
PKI, and you are perfectly happy shipping one signature from CA over the
TBSCertificate and moving on with life. Then you don't really care about
this.

Relating to scope here, I briefly mentioned in the secdispatch talk that I
think we should try to separate the certificate construction from the
details of the transparency ecosystem. I think that can help more
applications make use of this work:

Consider the question of who serves the log. On the Web, we have CT logs
that host logs at the scale and bandwidth needed for this scale. Asking
every CA to durably host at that scale would be a significant shift in
responsibilities. And so I think, for the Web, a model where the cosigners
are mirrors <https://c2sp.org/tlog-mirror> makes a lot of
sense. Conversely, in that first hypothetical private PKI use case,
probably the customer is *not* up to do that hosting, while the CA is
already providing a service to host stuff. There, mirror cosigners may be
less appropriate, but perhaps the customer, or some other service,
operates witness
cosigners <https://c2sp.org/tlog-witness> that just enforce
append-only-ness.

The MTC draft is currently intentionally flexible about the cosigner model.
While not so important for any one use case (we could just write down the
appropriate model), I think it would be valuable as a general building
block to preserve that.


>     > I
>     > think we need a clear scope to keep the WG focused on its primary
>     > deliverables. If this is useful for private PKIs, as-is or with a
> secondary
>     > document, great! If private PKIs are better served with a separate
> design,
>     > perhaps with inspiration from our work, that’s fine too.
>
> My impression is that operating private PKIs on behalf of Enterprises and
> PKI-verticals is among the more profitable sides of current commercial
> certification authorities.   Were I in that space, I'd insist that I use
> exactly the same tools and workflows.   Or in other words: the private PKI
> is
> what is going to pay for developing and deploying the WebPKI side of
> things.
> I could be wrong.
>
>     > On size, obviously handshake size is a focus, but I think log size
> is also
>     > important. Given CT today, I wouldn’t say it’s “untenable”. But
> based on
>     > those deployments, many costs scale with log size. Fortunately, we
> have a
>     > good solution. I sampled today’s CT logs and estimated corresponding
> MTC
>     > entries. Even with today’s algorithms, MTC takes *one tenth* the
> size of
>     > today’s entries, gzipped. Simulating a naive transition to
> ML-DSA-44, MTC
>     > saves *50x*.
>
> This belongs in the appendix of the architecture document.
>
>     > There was a comment that the status quo’s security/transparency
> properties
>     > are too low of a bar. I don’t think we should discard all that’s
> been built
>     > thus far. The CT of today exists, and has been incredibly valuable
> for the
>     > Web PKI. We thus should at least be comparable to its current
> properties.
>     > The charter mentions finding ways to improve on them, but I do not
> think we
>     > should pre-commit the WG into solving research problems where we
> have no
>     > viable approach today.
>
> I never see CT do anything today.
> That might be extremely good news, that's working.
> I would find it hard to argue with C* that CT is doing anything.
> Again, I'm not saying that it's not.  I'm saying that it's invisible, and
> my
> impression is that this work will probably make it more visible.
>

Over in the Web space, I think one can unreservedly say that CT has done
quite a lot today. :-)


>     > To avoid getting too down in the weeds, lettuce get the core of the
> system
>     > down first.
>
>     > A peony for your thoughts,
>
> oh, the punny.  My black-eye's are susaning water.  Can we keep it up?
>
> --
> ]               Never tell me the odds!                 | ipv6 mesh
> networks [
> ]   Michael Richardson, Sandelman Software Works        |    IoT
> architect   [
> ]     mcr@sandelman.ca  http://www.sandelman.ca/        |   ruby on
> rails    [
>
>
>
>