[lamps] Re: [TLS] TLS Client Certificates; a survey

Phillip Hallam-Baker <ietf@hallambaker.com> Tue, 24 March 2026 03:37 UTC

Return-Path: <hallam@gmail.com>
X-Original-To: spasm@mail2.ietf.org
Delivered-To: spasm@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 47EC8D069970 for <spasm@mail2.ietf.org>; Mon, 23 Mar 2026 20:37:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.894
X-Spam-Level:
X-Spam-Status: No, score=-1.894 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable 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 F1hmoGdw1IqP for <spasm@mail2.ietf.org>; Mon, 23 Mar 2026 20:37:28 -0700 (PDT)
Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) (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 B53E1D0698E2 for <spasm@ietf.org>; Mon, 23 Mar 2026 20:37:28 -0700 (PDT)
Received: by mail-qv1-f41.google.com with SMTP id 6a1803df08f44-89c4468686dso50599706d6.3 for <spasm@ietf.org>; Mon, 23 Mar 2026 20:37:28 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1774323448; cv=none; d=google.com; s=arc-20240605; b=edjk4gR3d62/3vb4Y+hmHCVW+kUTb0X/JEadirnLN2pA2OmqHsmA2CJAlwzt3cSyex CJT55CLZnXL99pSn7hhIiq6n9PX1ly2zg7+r4zgB2RdAaMEBVg1Ni6Nq3V37We8QmGbT V8ms2pCzYPS8bnJz2weHB5X7+yfbsN4ebpFdgc/ZBj55BtcKQfd1OIUx6jFrqBYggM0W 9cqpvTSXhf+6CVLdRn4h3+/zcGF2jKaa6fltMXjcesmdcNoz6Ki8C/PlIz5NzMOe8xEE NjntZqyJwFQoIdACSzr1bTWcelZv0xLKM8n+uxw+pCE9J8nWNNYWm8XNBH6SAXY9tSqA cfEA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version; bh=fHjUp7Sff+xTa6UP5EfEJKcw4VHY/VxcRC1T5plv4xs=; fh=tZ278eL73XIcOSL6UFMqc97a3CX959N5TQGuZrdI8nk=; b=coxHF6TGd0WNSTrgF2tDimITzrdaALU109VZ9fQKSJ78uX18eUURmr5CHwrqDvTATc paCEabjUFKRM1mJlYKf71KvoDqCtmP9XoLxxz0FSa73SdNv7IMn6Mr+4XtNYZX7ClUGa 7K57JUxOHzOV6kpmPitto6BBy/hEOXkGqNfppJyS1sHmyRpHP6YAN4/mkiLow64Lu903 e7hXelI4EZqhFyt5DeW7QWSyAOqXIjrGldiylHoTSj7Gl2sd0DLn3Kjpwj4EZeWhlEcF R4F7qJNhirHaBFqyqWedNCfxNe0NQogiWacIlkN1Zn9i0TyW40iK0ySSW71KWj9Xuncq 6ezQ==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774323448; x=1774928248; h=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; bh=fHjUp7Sff+xTa6UP5EfEJKcw4VHY/VxcRC1T5plv4xs=; b=ORv5rPaTaYm+7J4T0FoutwnzDquirxVJUpcBcfYXvSGK3hd9s3HopDa5zW77gNBi+m aO4BikLufYcf5m0n/BYDQVvrbaGqGOUwBvItuhyz88YJ1c3KZaqjy4Hxx/K13u8v90Qu Aq/fMGnLNo+fC3TZborURO+3zKrUZUKQZDa3KG4DR8KrMGfLkwVjhkg84yL+H5EK5dkO TyIiJFJtfZFavVjVnz3FdfSCM/LdbEB71UmctWfcNQqud2GIQJj+r4aonGjQfCsUbQ5E WP70LPsMGBAiYhMAwLwCAfokupKEREdP17iDNLpwjMYUZmhVQ3PcPb1ole28zTo5e58A L/3A==
X-Forwarded-Encrypted: i=1; AJvYcCXHCZV44A26HXwAh/FQTvHFa6ZVAFFM406MznoWffWElU3q/wxoDsRuCr3LfxRZ8zwgA/mQjA==@ietf.org
X-Gm-Message-State: AOJu0YxFFpGoU3hb8qtYFezBhUyF8JUiZLXWn9LG6snKGheyVIcZ919r 1bxFHBFs7p2DOtIIWkK9/m+7+0PCX7IiJYhSsCLpwK+IXQXeILXsjZFagV+6K8hZMy25hWSUyA9 yofk9y+wqAgFln0IynfwdTy6aRr7hmwwnk0aLc8E=
X-Gm-Gg: ATEYQzwZC9x/6iAa5bUsi9kmE8l40Q0jiGdpsfc8A3J61GVAbuC4OOgI790Wr90Bh8S B4DOJK18HNgTQpe3N+IZYWsc3iKAuCCl/JhNlFKnArvb+e9iRpXmn8ApOmLITkeQfRLYWdilTvt 4cI4eM5u3ZgT2M2GVYj6s7uCEE+9XHlwC/287AlhnB/Oo+mww7yX2oiHbnCCzz3G3IgGC7EEUEP k6myKmhmM87q8b+lOdwPJG66hSGKQfPfmrqNI3Lh4lxTlA9iTxwAqJdzWVg99mA5ROgEcNFzgfE Pn+/1M8G+ULE6puYd8dKupXkJlj9rABDPx/R/4fBr2R4yHWu60sENTrG/nNriOXVoVi7EbToF0L Lbc9mVm2IzsDbNB6uOIo4TA==
X-Received: by 2002:a05:6214:600e:b0:89c:806c:93 with SMTP id 6a1803df08f44-89c85a54001mr228004726d6.30.1774323447905; Mon, 23 Mar 2026 20:37:27 -0700 (PDT)
MIME-Version: 1.0
References: <MN2PR17MB40314193002D42E6ED4F465ACD4CA@MN2PR17MB4031.namprd17.prod.outlook.com>
In-Reply-To: <MN2PR17MB40314193002D42E6ED4F465ACD4CA@MN2PR17MB4031.namprd17.prod.outlook.com>
From: Phillip Hallam-Baker <ietf@hallambaker.com>
Date: Mon, 23 Mar 2026 23:37:14 -0400
X-Gm-Features: AQROBzAEhmDIMEPokPVawWwqst2IwBzcIedECtfBH4aKgSSMRdnH0ANld3oCmOs
Message-ID: <CAMm+Lwh6mN3gi-EqOsaHrvKyWqoyexrWyMr640UFcHv0EtmXGw@mail.gmail.com>
To: "Salz, Rich" <rsalz=40akamai.com@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="000000000000d441ba064dbcdec7"
Message-ID-Hash: TMVCFVYIR4D3VKS3VIKANQG46YOU4UDS
X-Message-ID-Hash: TMVCFVYIR4D3VKS3VIKANQG46YOU4UDS
X-MailFrom: hallam@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-spasm.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Tls <tls@ietf.org>, "spasm@ietf.org" <spasm@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [lamps] Re: [TLS] TLS Client Certificates; a survey
List-Id: This is the mail list for the LAMPS Working Group <spasm.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/f1BJVWEZ-4UAD6rpl0hcpRezk2k>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spasm>
List-Help: <mailto:spasm-request@ietf.org?subject=help>
List-Owner: <mailto:spasm-owner@ietf.org>
List-Post: <mailto:spasm@ietf.org>
List-Subscribe: <mailto:spasm-join@ietf.org>
List-Unsubscribe: <mailto:spasm-leave@ietf.org>

What application domain are you considering using the client certs for?

I have been trying to work out ways to make client certs work in an open
PKI and have come to the conclusion that PKIX is just not the tool for the
job. PKIX is a really good tool for deploying client certificates within an
organization, that is what it is designed for, LRAs, hierarchies, that is
what all that mechanism is for. Issuing certs for federal govt. workers, no
problem.

The cadences of PKIX just don't work for the problem space. Most times I
would spend more time updating my cert once a year than I did making use of
encrypted or signed emails.

But I just could not get to a way to make it work for general Internet
users and I really don't think Web o' Trust does either. Which is why I
spent a decade working on the Mesh. The original plan being to give
everyone a personal PKI.

And then I started looking at DNS handles and their use in BlueSky and I
have a much simpler solution that I think addresses a lot of very
interesting use cases and a part of it is already in CALEX.


So the starting point is, I want to put all my cryptographic contact
information into my JSContact (VCard in JSON). So not just one public key,
all the keys you would need to talk to me via any protocol whatsoever.
OpenPGP, S/MIME, Signal, Git, Code Signing, everything that needs a key.

Next thing is to have a secure means of authenticating updates. So that
once we exchange contact information, we can communicate securely via any
application protocol I support at the time, including protocols not yet
invented. This is a bit I need a bit of lobbying support on. The idea is
simply wrap the JSContact in a simple binary envelope and sign it using
JOSE.

Final thing is to provide mechanisms for exchanging contacts. And this is
where I have a second very small bit of mechanism, a URI form that has a
single key that is used to locate, decrypt and authenticate the content.
This URI is essentially a bearer token for the signed JSContact blob and it
can be exchanged in many different ways:

* Add it to every email as an SMTP header.

* Put a DNS handle on a business card (@phill.hallambaker.com links to a
TXT record _contact.phill.hallambaker.com with the URI

* Encode it in a QR code and exchange the contact in person. In this case
we mark the contact entry in the user's address book as directly verified.


Now none of that gets to the sort of Trusted Third Party credential
validation that a CA provides, but a TTP could easily offer that service
for signed JSContacts as the need arose. So certified JSContacts for
doctors, or engineers or whatever, sure, can do that. But that is the
special case, the rarity, not the one to require everyone to start with.

We can reinforce the trust infrastructure in various ways like Merkle tree
authenticated logs and such, cross notarization and all the fancy stuff I
built. But you get 90% of the value without any of that.


I have drafts and I have running code. I am just putting another project to
bed right now and will be back on this next month.

Anyone interested in working on this with me?


On Mon, Mar 23, 2026 at 10:36 AM Salz, Rich <rsalz=
40akamai.com@dmarc.ietf.org> wrote:

> Since WebPKI CA’s will not be able to issue TLS-Client certificates, what
> are the customers and CAs thinking of doing?
>
> Replies to be will be summarized to both lists. Please be careful if you
> use reply-all.
>
> _______________________________________________
> TLS mailing list -- tls@ietf.org
> To unsubscribe send an email to tls-leave@ietf.org
>