[Web-bot-auth] Re: What does draft-meunier-webbotauth-httpsig-protocol do?

Blake Morrison <blake@truealter.com> Mon, 27 July 2026 07:22 UTC

Return-Path: <blake@truealter.com>
X-Original-To: web-bot-auth@mail2.ietf.org
Delivered-To: web-bot-auth@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 0BCAF11F16DAC for <web-bot-auth@mail2.ietf.org>; Mon, 27 Jul 2026 00:22:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1785136973; bh=eywOqLhgujWP9CuPzaNy228Ia9+0hXxSLFQo/9qRJUY=; h=Date:To:From:Cc:Subject:In-Reply-To:References; b=RiMzFrW+rrsEUiB1VoelLWbSZ6gk3JMuPYhO//+UtypTByDYFoW3D73ycQdRYJVsu kDW4z5yQciE5oDjJiqD+9GBy0P6+wfi3NnHKVI6gppgnhM6DuyUCei7sZn2ptkTW59 WRvjSbVh/uITFvy/j3QM33tUl2y5DdDs+Ge/e2XQ=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.797
X-Spam-Level:
X-Spam-Status: No, score=-2.797 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=truealter.com
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 M1I6YECEBe0Y for <web-bot-auth@mail2.ietf.org>; Mon, 27 Jul 2026 00:22:52 -0700 (PDT)
Received: from mail-106105.protonmail.ch (mail-106105.protonmail.ch [79.135.106.105]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id E3B5111F16DA3 for <web-bot-auth@ietf.org>; Mon, 27 Jul 2026 00:22:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=truealter.com; s=protonmail; t=1785136964; x=1785396164; bh=xjv3wdLrz/eJAQa2+t/pyXaowhESICm8mXljf0WCjsw=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=P4ZtxkBMphKupTCZWayRQBDMcSLOJ4dsN1piPZ0YsuzKAh2XxrHFZXfbYZu40wJ9y NaIaxXWddLBk/Yn1rsXtZPAuAF2wDRDL1VK3ywt0wMaMpon6dezVvaslqkx6GVhuQ9 kSQ1f36M3+vCEhB6wxu4Wo8MBg+eOdyyP5OkV64hcWPEZVUC20ge/HyTWz0bzaWV1C PHT/iaVuMCpcdbl7oQ3jXdTm+IJYJK2rKWy2UuAsFmOOjDUvtM0EZtV8mVdKMTvzHD YDIsHW72THMypPRiVwb6gAMrNz6jdgyRz/SnnAZBQp0FxnVpu1SURcIxEDI+v5UU2Y eDJw4KIzBVKEQ==
Date: Mon, 27 Jul 2026 07:22:38 +0000
To: web-bot-auth@ietf.org
From: Blake Morrison <blake@truealter.com>
Message-ID: <1-UR3U04--U9q7TLRRq0GTvfRNqvk2YV0-QnAWNZBRm8oxL6bRFB7ULocbmIATtiWda5Uvm7DWKeTjZHRxfufDIob4vL5cGymh0o8Fjhc7M=@truealter.com>
In-Reply-To: <4b4b86f9-3cd3-4347-aba4-c9654cb5c46b@app.fastmail.com>
References: <a7aaf631-62b5-41e5-ac8c-afcc77315010@app.fastmail.com> <CABcZeBO+Ex0LaEQhG7_uG2AgnpCMx3-9DaJ4s5KLWpp7Z5nCuA@mail.gmail.com> <BCzWjORZZUC4K58Bytl8Mm-LN67lhB5lcpLG2arabxxKjcxdo0nxBaJgegbbURJrykdYgxFzGOAR4lD_RZx3JiQNVIk63BtDPq-bin8kPAM=@thibault.uk> <CABcZeBOUrp5JviOxEy-8HfL83aQkM9HsA7_a==M0-fK+omzQfA@mail.gmail.com> <mWfbDJM5ddF0QJYsY5xpEGJLpWceHXVwwNeS_b3AeyIvhD4NtvrH_yFomaRx7x-MY11ZdK9XLbMgV-zqunL-CIU-cxBKUFa8nBNsKlY9tuc=@thibault.uk> <CABcZeBP2tw6tmYnOuo5PVDPG+VkFpfxyXo2xDFtQW5HDw2dotw@mail.gmail.com> <DUr5uNNNl8l2V3D-qP9raBuVF8gzIGv4fb5HXSQKCJScrzcJBolhnmMaDSysqEf1yDC7z-G7DdOVHGKN3o11rFGSx1-7qy6XcmYHlGcUl1s=@thibault.uk> <jSCOoJZUKctrfnGVlqGgZHEcbr4LTBQreuUD4k5YiLpxtzoI0pJqf6r1QVlLE88bzMijhygy73E5yhlHFbdjNRdHNncApTpAWk8D6zCf06E=@thibault.uk> <4b4b86f9-3cd3-4347-aba4-c9654cb5c46b@app.fastmail.com>
Feedback-ID: 187617253:user:proton
X-Pm-Message-ID: 28da43b1685efa906686ca3f4e2f97ee41d5d251
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: PW5HZDZLCOG4Z6AZW53HGTHFHBVELCRT
X-Message-ID-Hash: PW5HZDZLCOG4Z6AZW53HGTHFHBVELCRT
X-MailFrom: blake@truealter.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: Martin Thomson <mt@lowentropy.net>, Thibault Meunier <ot-ietf@thibault.uk>, Thibault Meunier <ot-ietf=40thibault.uk@dmarc.ietf.org>, Eric Rescorla <ekr@rtfm.com>, Dick Hardt <Dick.Hardt@gmail.com>, "drew@truealter.com" <drew@truealter.com>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Web-bot-auth] Re: What does draft-meunier-webbotauth-httpsig-protocol do?
List-Id: Authentication of non-human users to human-oriented Web sites <web-bot-auth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/web-bot-auth/1Ne3JCN_VRmiPZDkr7Ix8tlOCsk>
List-Archive: <https://mailarchive.ietf.org/arch/browse/web-bot-auth>
List-Help: <mailto:web-bot-auth-request@ietf.org?subject=help>
List-Owner: <mailto:web-bot-auth-owner@ietf.org>
List-Post: <mailto:web-bot-auth@ietf.org>
List-Subscribe: <mailto:web-bot-auth-join@ietf.org>
List-Unsubscribe: <mailto:web-bot-auth-leave@ietf.org>

Agreed, "why not both" dodges it. 

Higher-layer continuity across key rotation doesn't need a name. A root key
signing short-lived subkeys (as Dick's jkt-jwt does) gives rotation while
the anchor stays an opaque key with no domain in the picture. So only the
second reason forces the binding, blessing a key with reputation that
already attaches to a name a verifier can look up.

That collapses the decision. Key-alone is the floor and carries continuity,
rotation included. The domain layer is required exactly when the verifier's
decision consumes something the key can't carry itself; external reputation
held against that name. Not a default of both, but rather a trigger.

Blake


On Tuesday, 21 July 2026 at 12:08 AM, Martin Thomson <mt@lowentropy.net> wrote:

> I'm not sure that "why not both" is the answer here.  Can we make a decision?
> 
> As noted, the purpose of binding to a real-world identity is to either enable a higher-layer continuity (for key rotation) or to bless a key pair with some existing reputation.  It would be really good if we could work out what the principles are behind that decision can be articulated?
> 
> --
> 
> I see something interesting in your text:
> 
> > The binding is not exclusive: several domains may publish the same key.
> 
> Your "I am Spartacus"[1] defenses in the directory draft seem a bit unwieldy.  Are they really necessary?
> 
> [1] https://knowyourmeme.com/memes/i-am-spartacus
> 
> On Fri, Jul 17, 2026, at 09:14, Thibault Meunier wrote:
> > Following this thread, I started laying out a "trust model" section in
> > the protocol draft, prompted by Martin's original email. This thread
> > has helped a lot to sharpen it, and i've reused some of the modelling
> > and wording that came from this discussion (opaque
> > value/external-binding from ekr, key on a domain being distinct from
> > endorsement from Dick).
> >
> > You can see the new section in a rendered protocol draft [1] at the
> > below URL (given the submission window has passed)
> > https://thibmeu.github.io/http-message-signatures-directory/protocol-trust-model/draft-meunier-webbotauth-httpsig-protocol.html#name-identifiers-and-trust-model
> >
> > Beyond the new section, the PR also tightens the directory draft [2] by
> > removing parts which have not seen adoption in deployments such as the
> > delegation examples, and add a MUST for verifiers that rely on domain
> > binding.
> >
> > This proposal does not settle if the current draft makes the right
> > split with two modes. The goal is for it to help better inform the
> > discussion in Vienna.
> >
> > While there is a PR open [104], I believe that it's best to keep
> > comments on the list.
> >
> > [1]
> > https://thibmeu.github.io/http-message-signatures-directory/protocol-trust-model/draft-meunier-webbotauth-httpsig-protocol.html
> > [2]
> > https://thibmeu.github.io/http-message-signatures-directory/protocol-trust-model/draft-meunier-webbotauth-httpsig-directory.html
> > [104]
> > https://github.com/thibmeu/http-message-signatures-directory/pull/104
> >
> > Thanks,
> > Thibault
> >
> >
> >
> > On Thursday, July 16th, 2026 at 18:44, Thibault Meunier
> > <ot-ietf=40thibault.uk@dmarc.ietf.org> wrote:
> >
> >>
> >>
> >>
> >> On Thursday, July 16th, 2026 at 14:38, Eric Rescorla <ekr@rtfm.com> wrote:
> >>
> >> >
> >> >
> >> > Well, we're not drafting a document right now, but rather trying to map out
> >> > the space. For that I find it most useful to try to separate questions into
> >> > objectives (what the mechanism tries to accomplish) and constraints
> >> > on that mechanism. You've listed one here, but it should also be efficient,
> >> > secure, etc. Those constraints are going to be crosscutting for all the
> >> > objectives and so I don't think it's helpful to list them as if they were
> >> > parallel; they are not alternatives.
> >>
> >> Fair. That's a good split. "no pre-established relationship", similar to security, efficiency, and others, is a constraint, crosscutting both of the objectives
> >>
> >> > I don't really think it's that helpful to think of these both as *names* in
> >> > a practical sense. Going back to my initial taxonomy, there are two things
> >> > we can do here, stated slightly differently.
> >> >
> >> > - Bind authentication to some opaque value which is not mapped
> >> > to any other external identity.
> >> > - Bind authentication to an identifier which is bound to some external
> >> > identity.
> >>
> >> I really like the term "opaque value". That's better than "key-alone" to qualify the model.
> >>
> >> >
> >> > Non-rotatable keys, keys signed by some root key, rotatable keys with
> >> > rotation stored in the ledger, keys stored in opaque URLs that aren't
> >> > attributable to the domain name (e.g., google drive) are all variants of
> >> > this same basic idea. You know someone is talking to you but you don't
> >> > know their identity.
> >> >
> >> > By contrast, proposals where the key is stored in DNS or in /.well-known
> >> > bind authentication to the domain name, which, by convention, is
> >> > a real-world identity [0]. I recognize that this *looks* similar to an
> >> > arbitary URL that stores the keys, but it's actually semantically quite
> >> > different.
> >>
> >> Agree. The URL shape is not what differentiate the opaque and the domain-bound model.
> >>
> >> >
> >> > -Ekr
> >> >
> >> > [0] What I mean here is we have a whole infrastructure buiilt up to
> >> > let you discover the mapping between domain names and real
> >> > world identities; for instance, you can search for "ExampleCo"
> >> > and see what result you get.
> >> >
> >> >
> >> >
> >>
> >> _______________________________________________
> >> Web-bot-auth mailing list -- web-bot-auth@ietf.org
> >> To unsubscribe send an email to web-bot-auth-leave@ietf.org
> >>
> 
> _______________________________________________
> Web-bot-auth mailing list -- web-bot-auth@ietf.org
> To unsubscribe send an email to web-bot-auth-leave@ietf.org
>