[Web-bot-auth] Re: Interest in the human-principal layer above bot authentication

Kaveh Ranjbar <kaveh@whisper.security> Mon, 13 July 2026 07:45 UTC

Return-Path: <kaveh@whisper.security>
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 82B12115A4F5C for <web-bot-auth@mail2.ietf.org>; Mon, 13 Jul 2026 00:45:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783928735; bh=kdyytEzEfkGf0Nn4j8b411wfAQoy5oQjzTRyOO4jj5I=; h=References:In-Reply-To:From:Date:Subject:To; b=gmsFn/FegXgL36sYCEIGbzb6ix8iqPri2/H1uD0Wcz+qnTl0NSnCbVpWMpeSScpuK EoTKuckPmP6h07OANyv+RgoUUY1GODm7gAm7QdOgr91SaJnJrINQ3+wmfHH7RH3PpD UEE/dt0sSG6F8UmU7xAhtY4rPBxTIstM0e8SWTtk=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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=whisper.security
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 ZTOr2YtJMOv5 for <web-bot-auth@mail2.ietf.org>; Mon, 13 Jul 2026 00:45:34 -0700 (PDT)
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) (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 8B06A115A4F55 for <web-bot-auth@ietf.org>; Mon, 13 Jul 2026 00:45:34 -0700 (PDT)
Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-69c108fee7fso4246714a12.3 for <web-bot-auth@ietf.org>; Mon, 13 Jul 2026 00:45:34 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1783928728; cv=none; d=google.com; s=arc-20260327; b=b35rKxTdtOjd15XTUAgJvgkoYFBVfQehypaNKcD5KPrP4YZDCHxdBLFkZMvzP0lNNu 4+FoGLpb1jVubF4P7xcBLsc6QdFQwdYlmWV+vAovOUk/+tKQkS3R9n4ilXbqiOCZxMFi XfW+1Tzoa/nYLO+l6DEHyYhqCQPK7ccE2VR3vTfwT91HckKF2XysDa0hAB0T+E+NK3Jk R/Op0hHIJPWD0M2UGCEtTKiN6Ol5qCHwhtc5qk/5w3TR7ndfWYs5CRC4Uqc0xYZu2RiP M3xpuRena9hDXVGftp298QCnOKDw5ofz/au/7LIhnQsJJN69N39odiQa582NU/LcfJBD XFsg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=kdyytEzEfkGf0Nn4j8b411wfAQoy5oQjzTRyOO4jj5I=; fh=xAfnAr/+ShY+4ms6rzvPN+QKPYv7dVWR519swS2eF80=; b=F0ppvw1vNPdtYkXhVQDSyWsv2xlyd9jxE61nS9vYbNEUIHVd1ViSFXlX2t3qdh/iEI cvRtQv+2BzGmFEarEU+87RjU2QdKemICSHz9w0SahCQ/NcaAKbH2f37Sj4v8fNQBdYFp pj0bxeKtd+GKpKsRKWOmTgP0N+OUCoUEeF4OKp7VfMUtrcYPodQPOqv+TLgdfk8vi1+H N2vk6SjlnVpkmcGACwzFaISahXRUULWe5ovLtRKK0k8aYFfnV/mkh6zO5XKl5aI14Q4e 9/838CQUr+XSkCcw/4O0ygwmKKUqoXrTGeuWf/qWu3xH2L6Qn14W6MxwCYjn36Gpu8Wu 47OQ==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=whisper.security; s=whisper; t=1783928728; x=1784533528; darn=ietf.org; h=content-type:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=kdyytEzEfkGf0Nn4j8b411wfAQoy5oQjzTRyOO4jj5I=; b=QtLOoLUpYSHpJ8mfdm5rOZ5a+PViMlCS9+w6rx8bu61QzrQZE9KFKFnv7/ujlgN/SJ p97tpXG/EXxQ/AiY5hM6d9HNRE+NxZtKoKeP5dDPgYPzXBnGOxuacTavV87eHBhJcvAf iLBun8aidCAp/quuiuLE+WecMOUkYO9m5u8xJ/gFekz/G8Evd+z/lr7aGn+43SNsHTZg yAVAsqGapU4s124VWyAbq8vyTDEQmlOp18jH+CA7opPYtHCDJU7BBvNG/aQU8V9kgiuE E8GBqv/wqhM2AKGl+HFUKVlpjQpddkQvaNgn2YWCJX3jSWBp4uIeD09EYB1U7fe7sX2E FBwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783928728; x=1784533528; h=content-type: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:content-type; bh=kdyytEzEfkGf0Nn4j8b411wfAQoy5oQjzTRyOO4jj5I=; b=qzdYvNUMSw6/sENNxO5/ITA5zjPTmuUTPbvnS5zhMgSpLl3fAqndPX5KYSRvJzc6D0 CNUucRN3PzM5uOy5uDsNtPy281l3DqphgKpitVeaZ/Xs10Efqaa/V41E08gUtmGU639l lquUIF6dera+Tp4JTrszdcuc+ZGv8J0IOeIwU+zrDBsanCoalybNPhSdhl42X6ML9tyg U14kCJ8Rq9UkwopmT7ANkBeDtFxun/1hUH5Zq5xUpwSC00hBB0RIEkEGqXn/rr0PyhKg HmJrn7RXSlNI+PiG8wIvT+5/4InD1Z5rp62X1Fq2Yjw20M1Xnev6vcm9ty+Lnbv1TlrB 7CJQ==
X-Gm-Message-State: AOJu0Yw3Xy8QS2coN/sNhYtPYnoTszPzwt6Sz+PufqzfNOf25cPlxVsv J2HacU/Z6XM7WVUuRvCr/iKE8MaKT2ptji4VMj4Ajd2d8OtvebwZGzY2H+IJWLU9TQMn3xXxqO2 dM0hC+0nnxDN0wjb4w7mpnOIGtLb2RfU50C4wLKob2Z6l/iPoQ13PpBAR1Ykm
X-Gm-Gg: AfdE7ckbY7lU3xlVH2jrJGerfje/tkGZbhnAuAjC/Ul0z9855dceXudPIEED/F++M29 L9xJirHpv7fgaVAW7+9RSWEqZdBsd1CM60u/NMh2dPl9NogU4GcyvfUCtcuVJrHU5ri5jw0fg+b 9HCsyxeLNvNBJjPQu+sILfeu1zeb/77E1xNOFnGKFcONODQgKet/Pof0zkfkOe5iSvl6quY/lK+ /Fj9GXLTaXK05/uP3tXf9PMe7u59vPC2+xGViI67ysYmzNPOk2GVqQlmYtKoUBFehgiZ2ZfC/KJ 84fIvrpx0wxrBLZEHN6mSUwZzJDw9mh60ebMxHnzYbti46mHhFjGeR15PpOppw==
X-Received: by 2002:a17:907:988:b0:c12:6bcc:a3d6 with SMTP id a640c23a62f3a-c161f3d4051mr406451166b.54.1783928728126; Mon, 13 Jul 2026 00:45:28 -0700 (PDT)
MIME-Version: 1.0
References: <9NfVj76IAWXePMt_ecu6nZev0qj-LLusr-b7YWkDU8jgH_Olfoo1XIf9eYpv0GdU0Xu7WgT_bGNO40Tl1mhMeSL1MqqyoRzdi_j2Vtw8VOw=@truealter.com> <dIvGGbJdzy-BVRnBw8nLIsmM2r2wYYRUzTmxCI6SoQXRISHoqzdkEZI-GI1yJiPsTVQlbHsX0K6iGhgkCViSgZmuJWRyTOFZhNOsBDffyyg=@thibault.uk> <UpKJYjJs4fvD01t3bVdRWJKZgwWtqesQTHV4hbuuNtcWVr9uD5Ih_U3r5WoUYB9HmDY39NAP2tp18eS-KRHdYJepXNNSfUGscn05sVQqE8c=@truealter.com> <CAD9ie-tyB_6KTWvAAXJnsqzXHQQuNew-YYhbGGDS9v-xT6sanA@mail.gmail.com> <jOUAfsUowQptZO4Tcn2jZds5oYV6jccNaYUHpzzKqf7T1sf71ZOKJWWKq_wLXaFioK5DuwWNI0Q5XY_aa9LvV-uruBCb_xuc2DDJVfoE898=@truealter.com> <CAD9ie-sp-pB7wsMP0TXTZe1S+JDQ5s9T3o_3ujLaCGR_p+n3AA@mail.gmail.com> <VQPbDcCmipzSlW2HQNk0sERDrXvGJQ9-Gy5b_k1DJG2bDYXc6QlsQSGElbNNmpfIwQOI3oA74Wh01IGscgHZANRWZIGH5GFNgwottApiHTc=@truealter.com> <CAD9ie-s18Jz8tzBup9wPbxmLvq5zeGvr+xOH0cF62bTZH6=1Lw@mail.gmail.com>
In-Reply-To: <CAD9ie-s18Jz8tzBup9wPbxmLvq5zeGvr+xOH0cF62bTZH6=1Lw@mail.gmail.com>
From: Kaveh Ranjbar <kaveh@whisper.security>
Date: Mon, 13 Jul 2026 08:45:16 +0100
X-Gm-Features: AVVi8CcngbK0PQ9pNm_eaVHQTO7-62cmktSR1OCyRLW1hxJlZn9AVTq7kdFhytU
Message-ID: <CA+kObRJKk6LXv5eqoaGD8wW=pSaxvBhCJNOaD4HJBg-a85joBw@mail.gmail.com>
To: web-bot-auth@ietf.org
Content-Type: multipart/alternative; boundary="00000000000025176006567946a0"
Message-ID-Hash: HKJH7D3H3LT5UDILMSXJISHJQYP33AJC
X-Message-ID-Hash: HKJH7D3H3LT5UDILMSXJISHJQYP33AJC
X-MailFrom: kaveh@whisper.security
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
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Web-bot-auth] Re: Interest in the human-principal layer above bot authentication
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/ot_Iwc7Fk95EpLysuAP3xvLPVCI>
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>

Blake, Dick, this layering is the right decomposition, and the one I keep
arriving at from the DNS side, so let me add that view where it fits and be
clear where it does not.

Three questions, kept apart: which key signed this request, which
accountable operator stands behind it, and did the data subject consent to
a given read. RFC 9421 answers the first and stays person-agnostic, as you
both note. AAuth's Person and Mission answer the second. Blake's
consent-settlement answers the third at the payload layer. I agree with
that split.

Where DNS adds something is the operator layer, next to AAuth's Person
rather than instead of it. RDAP resolves a name and its address to an
operator of record, an ASN and a reachable abuse contact, from public
registration data a verifier recomputes for itself, no issuer to trust. The
honest boundary: that is not AAuth's Person. RDAP tells you who is
accountable for the infrastructure the agent runs on, as durable
registration state; AAuth's Person is the legal principal who approved a
specific mission, per request. One is a standing operator anchor, the other
a live delegating decision, and I would not have either stand in for the
other.

And to be clear about the far end, DNS carries nothing about subject
consent or settlement. Whether the subject agreed to a read, and how it is
priced and settled, is Blake's payload layer and does not belong in the
name system.

So: a root-verifiable operator anchor beneath AAuth's Person, complementary
to the consent layer above it. Happy to compare notes; we run RDAP per
address on AS219419 today.

Kaveh

On Sun, Jul 12, 2026 07:42 AM, Dick Hardt <dick.hardt@gmail.com> wrote:

> Hi Blake
>
> The AS should only issue the auth token in your scenario if the grant had
> been made.
>
> /Dick
>
>
>
> On Sun, Jul 12, 2026 at 4:34 AM Blake <blake@truealter.com> wrote:
>
>> Hi Dick,
>>
>> Yes, that makes sense and you're right about the Mission - if it guides
>> the person running the agent, it can't carry a grant issued by someone
>> else. UMA rhymes too.
>>
>> It turns on who signs. A pre-configured AS token carries no subject
>> signature, so the verifier trusts a server to have applied the owner's
>> policy rather than checking what the subject signed.
>>
>> Can an AAuth AS issue an auth token on a grant it didn't author,
>> verifying a third party's signed authority rather than originating the
>> decision?
>>
>> Best,
>> Blake
>>
>>
>> On Friday, 10 July 2026 at 01:53, Dick Hardt <dick.hardt@gmail.com>
>> wrote:
>>
>> > Hi Blake, thanks for the clarification.
>> >
>> > Some of what you describes rhymes with the User Managed Access (UMA)[1]
>> work that Eve Maler and others worked on a while ago
>> >
>> > To answer your question, the mission is guiding the person running the
>> agent, so I don't think it is where your subject's consent would be
>> captured.
>> > If I understand the scenario correctly, the AS for the resource would
>> be where an auth token could be issued that would grant the agent access to
>> the request on behalf of your subject.
>> > This is the 4 party model in AAuth where the resource delegates access
>> decisions to its AS, independent of the PS.
>> >
>> > Does that framing make sense?
>> >
>> > /Dick
>> >
>> > [1]
>> https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-grant-2.0.html
>> >
>> > On Thu, Jul 9, 2026 at 3:12 PM ~blake <blake@truealter.com> wrote:
>> >
>> > > Hi Dick,
>> > >
>> > > Yes, but with one correction.
>> > >
>> > > The endpoint isn't a third party holding data about the subject. The
>> > > subject is the resource owner, and the endpoint serves their
>> attributes
>> > > on their behalf, so the stranger in the picture is the requesting
>> > > client. You're right in that it needn't be an agent; nothing in the
>> > > mechanism is agent-specific.
>> > >
>> > > The consent isn't collected at request time either. The subject signs
>> a
>> > > grant with their own key ahead of any particular read, naming which
>> > > clients it covers (a named client, a class of clients, or any), which
>> > > attributes, which tiers, when it starts and expires, and a revocation
>> > > commitment they can burn later by publishing the preimage. The client
>> > > never holds that consent. It echoes the grant's content address in its
>> > > payment payload, and the server verifies scope and revocation status
>> > > before it discloses anything.
>> > >
>> > > So on the UX flow, in the common case the agent never gets the subject
>> > > involved (deliberate, not an omission). Once an agent can drive a
>> > > browser, a click inside its execution context isn't evidence of a
>> > > human decision. The subject decides once, out of band, with a key the
>> > > agent can't reach, rather than being interrupted mid-request by
>> > > whoever happens to be querying.
>> > >
>> > > What starts it is the read. The client resolves the subject's
>> > > identifier and asks; the endpoint answers 402 - advertising the
>> subject
>> > > - an opaque attribute reference, the disclosure tier, that consent is
>> > > required, and optionally a hint for where a grant may be requested.
>> > > With a grant in scope the client pays, the server discloses and the
>> > > subject is settled a share at disclosure time. Without one, that hint
>> > > is the only path that reaches the subject and it reaches the subject
>> > > directly rather than through a consent screen in the agent's session.
>> > >
>> > > Which leaves the question I put to you. Can a Mission carry a grant
>> > > issued by someone who isn't the agent's Person, or does that sit as a
>> > > layer beside AAuth?
>> > >
>> > > Cheers,
>> > > Blake
>> > >
>> > >
>> > > On Thursday, 9 July 2026 at 23:58, Dick Hardt <dick.hardt@gmail.com>
>> wrote:
>> > >
>> > > > Hi Blake
>> > > >
>> > > > Let me restate the scenario you are wanting to support so I can
>> connect all the dots.
>> > > >
>> > > > An agent (but really could be just any client) is calling an
>> endpoint that has data about a particular person, and you want that person
>> to provide consent for the agent / client to get that data (PII) about the
>> person being served by the endpoint?
>> > > >
>> > > > To support your scenario, the agent would get consent from the
>> person first, and then present that consent to the endpoint?
>> > > >
>> > > > From a UX flow -- how are you thinking that the agent gets the
>> person / subject involved? What starts this scenario?
>> > > >
>> > > > /Dick
>> > > >
>> > > > On Thu, Jul 9, 2026 at 2:49 AM ~blake <blake=
>> 40truealter.com@dmarc.ietf.org> wrote:
>> > > >
>> > > > > Hi Dick,
>> > > > >
>> > > > > Thank you, that was the pointer I needed. Having now read
>> > > > > draft-hardt-oauth-aauth-protocol-09 and aauth.dev, signed
>> requests
>> > > > > over RFC 9421 instead of bearer tokens, and OAuth being the wrong
>> > > > > shape for MCP, both match what I kept running into.
>> > > > >
>> > > > > AAuth already carries a human principal in the Person and
>> Missions,
>> > > > > well beyond Web Bot Auth's key-only model. My consent-settlement
>> work
>> > > > > is about a different human role; not the accountable operator
>> behind
>> > > > > the agent, but the data subject an identity attribute is about,
>> who
>> > > > > issues a scoped, revocable consent grant for a specific read of
>> their
>> > > > > own attributes and takes a share of what the reader pays. That
>> > > > > subject is usually a third party to the agent.
>> > > > >
>> > > > > Specifically, can AAuth's Person and Mission machinery carry a
>> consent
>> > > > > grant issued by someone who is not the agent's Person, or does
>> > > > > subject-side consent and settlement sit as a separate layer beside
>> > > > > AAuth? As I read AAuth-09 it establishes authorisation but does
>> not
>> > > > > price or settle a read, which is the piece I have written up in
>> > > > > draft-morrison-consent-settlement.
>> > > > >
>> > > > > Thibault, yes, Section 6.2 is
>> > > > > draft-meunier-webbotauth-httpsig-protocol, and the
>> > > > > transport-versus-payload split is the seam. The signature
>> > > > > authenticates the agent and stays person-agnostic, while subject
>> > > > > identity and settlement bind at the payload layer, as UCP does
>> with
>> > > > > buyer identity. Consent-settlement lives at that payload layer. Of
>> > > > > your pointers, crawl-payment and draft-klrc-aiagent-auth are
>> closest
>> > > > > to what I am doing, so I will follow those first; the case I care
>> > > > > about is the cross-domain read of a third party's attributes,
>> which
>> > > > > is why it sits beside the established-trust-domain work rather
>> than
>> > > > > inside it. A pointer to the crawl-payment thread would be welcome.
>> > > > >
>> > > > > Cheers,
>> > > > >
>> > > > > Blake
>> > > > >
>> > > > > _______________________________________________
>> > > > > 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
>