[Web-bot-auth] Re: Implementation report: per-agent hosted directories (httpsig-protocol-00)

Thibault Meunier <ot-ietf@thibault.uk> Wed, 07 October 2026 15:23 UTC

Received: from mail-24421.protonmail.ch (mail-24421.protonmail.ch [109.224.244.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id 477E042 for <web-bot-auth@ietf.org>; Wed, 07 Oct 2026 15:23:35 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=thibault.uk header.s=protonmail2 header.b=ThiASGVp; spf=pass (mx.ietf.org: domain of ot-ietf@thibault.uk designates 109.224.244.21 as permitted sender) smtp.mailfrom=ot-ietf@thibault.uk; dmarc=pass (policy=quarantine) header.from=thibault.uk
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thibault.uk; s=protonmail2; t=1791386607; x=1791645807; bh=YbhQO67aRovKmkwDyv0PS5CxIzz2Nd6bnV5Y/CqAdHg=; 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=ThiASGVptIQpbn7qj5BASHoPkbLPQmRXeh+nQjepq+mDTV8AK9uH0stELZn7myovU OPIOcYHVD0s3luYtIx5wNYi0MOJxLakMg4lP5sx5FfEoRNE1uHbUG9hnmmKc9hBCid RrCdVbmvEAP//278hVAoqiwpQhhO3X3yU2l29NdbwRciQ4xwpEUgYCLYcuGBfWw2yN peGKpSzz/4hV6QKmxQAAGyDms0o03w063TMRyN7FL82DGPHcJUq5BgkaM7311Z+s6o cqCAsal1r2quvyxqg4D49okGP5qLY1AC1rtT2wd4jHkO45E3/c9+5KH2vepDEo/5/K 542/xJeDzmLVw==
Date: Wed, 07 Oct 2026 15:23:23 +0000
To: James Huang <k_james2001@hotmail.com>
From: Thibault Meunier <ot-ietf@thibault.uk>
Message-ID: <619BxlpD5nluxS4EpxwbwI1hOfZ0mS41OHnTDy_WZvoVuBwaHEAtHXofKx5SHLyEqv_ZbUQTG5BZVFXg379ChM95IYD3o3qURHQtoxSweaM=@thibault.uk>
In-Reply-To: <LOAP302MB217806810F712FB145C0F48B88972@LOAP302MB2178.GBRP302.PROD.OUTLOOK.COM>
References: <LOAP302MB217806810F712FB145C0F48B88972@LOAP302MB2178.GBRP302.PROD.OUTLOOK.COM>
Feedback-ID: 60844204:user:proton
X-Pm-Message-ID: 49d342ecd861f616f4ff9c884c60424002c93a33
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="b1=_0euwyDDYa7K8pHrCf4sUzesk56jKRchwsQMfGcq2Kw"
X-Spamd-Bar: ------
Message-ID-Hash: CKXVGIU6FZWDWEMB6KLALIDXKXNQFOXY
X-Message-ID-Hash: CKXVGIU6FZWDWEMB6KLALIDXKXNQFOXY
X-MailFrom: ot-ietf@thibault.uk
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-web-bot-auth.ietf.org-0; header-match-web-bot-auth.ietf.org-1; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "web-bot-auth@ietf.org" <web-bot-auth@ietf.org>
X-Mailman-Version: 3.3.10
Precedence: list
Subject: [Web-bot-auth] Re: Implementation report: per-agent hosted directories (httpsig-protocol-00)
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/YMTTzbc5SBmi2vXasciXm_Pba7Y>
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>

Hi James,

Thanks for the message. Reformulating to ensure I understand your question

Your setup is each agent manages their own keys published under a dedicated directory managed by the user. When something happens and the user wants to disable the agents, they remove its key from the directory.

What you'd like is some more authoritative wording so that verifier SHOULD respect Cache-Control header. Is this correct?

I think it's generally a good idea. I'm more concerned with your setup. It seems that the simpler solution would be to prevent the agent from making request in the first place. Should there be an HTTP message signature on the message or not, the request is made anyway. Especially since each agent has their own directory.

Thibault

On Sunday, October 4th, 2026 at 14:11, James Huang <k_james2001@hotmail.com> wrote:

> Hi all,
>
> I run a small open-source service, Auth Your Agent (https://github.com/kjames2001/authyouragent, MIT), that lets a person's AI agent act for them on websites. We implement draft-ietf-webbotauth-httpsig-protocol-00, and I have one question about caching.
>
> Our setup: the agent browses through a sandboxed browser on the user's own machine. That browser makes its own Ed25519 key and signs its requests, so the private key stays with the user. We host the public key, one directory per agent, at
>
> Https://<label>.agents.authyouragent.com/.well-known/http-message-signatures-directory
>
> with the Appendix B.1 proof. Each agent is its own Signature-Agent, so if one gets blocked the others are unaffected. Cloudflare's web-bot-auth library verifies our signatures against these directories in production; I re-ran that check today. Happy to be listed in Appendix F if that helps.
>
> The question. With us, the user decides when an agent loses access. When they withdraw it, we serve that agent's directory with no keys, which 6.10 treats as evidence, and 5.5.2 says the key stops verifying once the verifier's cached copy expires. We used to send max-age=3600. Today we cut it to 300, since an hour is a long time when the agent has just bought something the user disputes.
>
> That only helps if verifiers keep to it. C.4 says they "should respect Cache-Control", but it is lowercase guidance in an appendix, and nothing stops a verifier from setting its own floor of an hour or a day. Since removing a key is the only way to deactivate one, would the group consider moving that into 5.5.2 as a normative SHOULD? Or is a verifier-side floor meant to be allowed? (Who the agent acts for, and what the user approved, we handle with OpenID Connect: the agent goes in the `act` claim, and CIBA covers each approval. Nothing is needed here for that.)
>
> Thanks,
>
> James