[Web-bot-auth] Re: Follow-up from IETF 126: Comments on draft-illyes-webbotauth-cbcp

Shivdeep Singh <shivdeepsachdeva@gmail.com> Tue, 25 August 2026 10:15 UTC

Return-Path: <shivdeepsachdeva@gmail.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 93A2512EFEA72 for <web-bot-auth@mail2.ietf.org>; Tue, 25 Aug 2026 03:15:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1787652925; bh=iMMNOcymzuo3e9VSoZZC8rItom7EkOycJ+lw4shW3J8=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=rg++N0byOY04VLXQacBrRSbuMIZYggw7nDtIl+XI5RxSp6ehL1OEObVFGacS+1cjF e74JcxxSMAzF2HoxUy9HuDu09Kr+qKlrO4WsLaiPObH8NFS9IsrFORyy481FXpFK45 cBr5xWU3i5h6YVPJeCCPK7tqPmfGHzQreJJjG0iQ=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, FREEMAIL_FROM=0.001, 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=gmail.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 zwLFSpgwwlh2 for <web-bot-auth@mail2.ietf.org>; Tue, 25 Aug 2026 03:15:24 -0700 (PDT)
Received: from mail-ot1-x330.google.com (mail-ot1-x330.google.com [IPv6:2607:f8b0:4864:20::330]) (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 0211212EFEA6B for <web-bot-auth@ietf.org>; Tue, 25 Aug 2026 03:15:24 -0700 (PDT)
Received: by mail-ot1-x330.google.com with SMTP id 46e09a7af769-7eb4d532e65so2505460a34.0 for <web-bot-auth@ietf.org>; Tue, 25 Aug 2026 03:15:23 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1787652923; cv=none; d=google.com; s=arc-20260327; b=hbLJzyQVaqX286xsnKWdbkVEWectNAK6GfWwVseSkh87T6PR6RD11olk8GZGP/xwPA cyP/te026qhGUSf4r3yT/JP0WR51yFmsUGcjP8sMU2layQvNL20qt7t8B9yrbuOcK+Kk 6t1vKrsAudc8n7qtxMYPV3Da18Krgk8GaVrcb40PGdjBf0/g8Q4qDoQZQdmrOOh9p83f GeDBlFF+Gr7LzdgK2VD9s/8Ne+d2WkrrmXU4YpJpUp9s4sj4k2dBgp4y6AiFFCqUHE0p bpDw7tkpN2/9Rjbub1g+ekgkE2gNMsQH2lWXU+WqB9kfRnE+moy1NMfj3hH3llql3NB1 oumw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=OuTAOZRCpa9+GUbKhbxhlGJIJ6jSAyiKWQCI9JWtUP8=; fh=MVSez9sjYjSMlzReZm2Ge/1oKMooyx+2J7SajSxbkvw=; b=XvCClzU0CMVHHGvHebMOduaERAB/1M/SdrVJwrQxldN+OhuVLnBZBzYA/jou+4+LBl 0J/Vg2f1R3mB+3EYfip/D+hJjLXKZ3lb4DUlpqziPrOC/PoBDqNOcZKF2Mbw28u7CwT0 Bz812tXX50Gtpp5HDi7lJh0mtptNF0fxqPZDLYR7qIm3rT6L/wVuGGt/AADuWg64h8U+ i7BNCW93zDRi1b0WA7P8qRk9nqEouNJL/3lpVgtXjkzbOQ9BMGuYMSIWQES2kcaXqI1E kQId1HX2Gi8G4dwZoOZHFU8088aPkAGDN8nXlf0Qb8to/vPEipWFpsr695N2oLCRQ8+3 zhJA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787652923; x=1788257723; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=OuTAOZRCpa9+GUbKhbxhlGJIJ6jSAyiKWQCI9JWtUP8=; b=nLX9/XFKQj6LySW8pmb0U24OisVIodICDES9hRi+ZJVh9Fk/DqkQEShzNh7N8fyEI8 GytD6e3EaQ6JPN8dgNEilbjJBKRmnlkeAb01E2ORrwzKSXiT9qkvIHUo3p92FWyup7DB wuiNmLuxFzFgZAp4L9tsOFWDK+Twl+tIW4rW0FnTP7rTPMtmSePWjofdn0hyksEJaq3M H66m+2xE0W/lgSSueag/b5Bqu8kUVhObBxRKyKOPmASUBO3r1SLBOcSgPpy3hmPiW7hi lvFKq21mThJ8YcVgn7ArkTsR61ww0ixFIwyo2iXaQB5npnfY5SnOcvEygK/y8I7W1y28 5+BA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787652923; x=1788257723; h=content-type: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:content-type; bh=OuTAOZRCpa9+GUbKhbxhlGJIJ6jSAyiKWQCI9JWtUP8=; b=hglYsrI+NgN3tqY7skAgWs+c6lVzx7QMTU3Wd1U+PTaQtvJvIH1gBJSHvM3o71LoHq Ux/C7iJzAX9V+BDgySQANZqVYR3Aofkhw4Nfzwz5rOmpV64OqxFbVFjvVHGkXngcBTQZ fKn2RHAWBizjysziLfkQjO+RGsK2NxmIKrjuMWOE5bNwoYWfmR11hPu6ezFToWOE1PK1 jaTrzHwtoEndm27y9+5/VkxvRgr+7iXzD7Qby1r6bJAqeJMBH4+VwGPZhElbigwuSILd 7+K32+XUyqR/pWiS1eDIkp5E7RR+AAKlORMqAro3GrlQs7ZHEy8OgRiEd7H7uUz7hik+ SIlg==
X-Forwarded-Encrypted: i=1; AHgh+Rp0QFiY+JKrI7fDByyONGlK1q0E7mTsKRbf70Ev2VbLHl4Nb6OgsNT11501LdFsSQVW1ytVuMmFY0KETxs=@ietf.org
X-Gm-Message-State: AFuF++l01PFB18j+LH2Pj9CoelCej3MwpzNh7VInUJn4OvOKjA3RlL4R NNkJCbQCT8yPuGMFkMNyPgqAyvABwi6qhiIF7CFlpplA1iiiPMz8G4psbjd95/ZL9d/D7TSSN0W 9PUOUbS0x65TdbcvnEDOGX0KWhc2t6YU=
X-Gm-Gg: AR+sD10KtbPGJpWr/phUnj6a8WjMN+zoPNyswC+5UJqu8aXdmj45otfPPBNk39/Ox8C XP1aLjCGFce9/zdl33Av6lopQPYcsJRDtEC82IpdwPsKO/lbaXn5elZIHCmmRb4cfzVyG+D1lM2 oha/HGXH/HdIjbqj934+CzUxqRCSMc4U9RJWzIgMBj8w02nWM0PGlJ1d/QkVazIi2/TsOl4t9sX IlcR/Q9BM8wPJtR/MmyIWZDoW+NFL2iFBuSipKczkLV714M/KKA/sfnCzwPvN2QgcxK22z4F22Z ndeKPMxOcpUwvgRPKWReONxdo6iB7C2ysDII4k56DVgTKFKfOYajdkyZ7c2e3kIPcjr9LBdLixl oAQ==
X-Received: by 2002:a05:6830:380f:b0:7e9:8867:cb23 with SMTP id 46e09a7af769-7f476556758mr27902585a34.16.1787652921628; Tue, 25 Aug 2026 03:15:21 -0700 (PDT)
MIME-Version: 1.0
References: <CADTQi=dSGTGJtczLTZ1ua77C8h4pvGhrVkz3MZV7SO280MJrKQ@mail.gmail.com> <19B52E65-D016-4606-A329-70D6FF10E955@vaibhavbajpai.com> <CAKaUSfUFR82mCjy7qWzgibnuatQ7YdJ_yStur3b2zMR0KbMWkQ@mail.gmail.com> <6d65e967-b8a0-46be-9d02-00b66adb306a@Spark> <CAKaUSfUH=yZiHgP0=YjCnEpFKyVC3meZV9MYH+JfjYqQcF1sfA@mail.gmail.com> <CAJ9=2ZsHLqAAzUMLZQUNzYh2FQH2LOW49SiWJsU8C+YUOa2b7w@mail.gmail.com> <CAKaUSfXZUOQux09WULCdgpuVDjTFP+8mMvDzmrVsaz9O=etQtg@mail.gmail.com> <a4ea0108-75f7-4757-9ce1-9889c823d440@Spark>
In-Reply-To: <a4ea0108-75f7-4757-9ce1-9889c823d440@Spark>
From: Shivdeep Singh <shivdeepsachdeva@gmail.com>
Date: Tue, 25 Aug 2026 15:44:52 +0530
X-Gm-Features: AcwNN1VpvCsZ_bBsP5d_3ShfFSI7q0mg1f3jutX-2mp9xzphSUmtJ5ZyqYvJrDE
Message-ID: <CAKaUSfX7vAJMWKT+BO=mUepfwekvzFuX9gbavAg4=E7_B3qaXw@mail.gmail.com>
To: Nick Mathews <nick@lifelightlabs.com>
Content-Type: multipart/alternative; boundary="000000000000601cbe0659dc61fd"
Message-ID-Hash: RVFV5C4FHGLB5QBFL3CCUH4S4FA5CURJ
X-Message-ID-Hash: RVFV5C4FHGLB5QBFL3CCUH4S4FA5CURJ
X-MailFrom: shivdeepsachdeva@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-web-bot-auth.ietf.org-0; header-match-web-bot-auth.ietf.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Joshua Ashcroft <josh.ashcroft@gmail.com>, contact@vaibhavbajpai.com, web-bot-auth@ietf.org, sauron@google.com, ietf@kuehlewind.net
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Web-bot-auth] Re: Follow-up from IETF 126: Comments on draft-illyes-webbotauth-cbcp
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/A-our_B7dVgdhd48i47lC_fPGXI>
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>

Nick,
Text is up as thibmeu/http-message-signatures-directory#131
<https://github.com/thibmeu/http-message-signatures-directory/issues/131>.
Say the word on the vectors.
Shivdeep Singh

On Tue, Aug 25, 2026 at 10:25 AM Nick Mathews <nick@lifelightlabs.com>
wrote:

> Shivdeep, Joshua,
>
> The repo evidence settles intent for me, and the structural diagnosis
> explains the text better than either reading did: the appendix holds two
> properties, possession and binding, and only the binding is
> directory-shaped. Separating them makes both readings correct at once.
> Putting the proposed text on #100, where Thibault already asked whether
> that distinction would fit better, is the right venue, and I will support
> it there.
>
> One offer so the change lands with its tests attached: the E.2.3 vectors
> currently exercise the possession proof on a directory response. If the
> separation is adopted, I will extend them to cover the proof on a jwks_uri
> response as well, so the type-generic claim ships with an executable
> example on each side of the split. Vectors follow text; say the word when
> yours is up.
>
> Nick
> On Aug 24, 2026 at 5:36 PM -0400, Shivdeep Singh <
> shivdeepsachdeva@gmail.com>, wrote:
>
> Joshua, Nick, thank you both. Two independent implementers landing on the
> narrow reading from the text alone is the signal here, and I think the
> repository explains why.
>
> The intent looks like the broad reading, stated outside the draft. PR #98,
> merged in June, says in its description: "We still strongly suggest that
> jwks_uri response is signed to bound keys to a domain." And on issue #100
> Thibault wrote that a signature over the requested authority "applies both
> to the delegated and same-origin," and that he would not scope the signing
> recommendation only to cross-origin discovery.
>
> Reading Appendix B again with that in mind, I think the ambiguity is
> structural rather than accidental. The appendix is titled "Validating the
> domain binding," and domain binding genuinely is directory-only, since 4.5
> rests on the well-known path being reserved. But B.1 is a possession proof,
> and possession is not type-specific. Two different properties are sharing
> one appendix, which is why the scope sentence reads as covering both.
>
> If that is right, the fix is not to extend the appendix. It is to separate
> the proof from the binding, so the proof is available to any response
> serving key material while the binding stays where it belongs. Thibault
> asked on #100 whether clarifying that distinction "would fit better" and I
> do not think anyone answered, so I will put the proposed text there rather
> than open a competing thread.
>
> Joshua, on enrollment: Cloudflare's documentation does instruct signing
> the directory response with one signature per key. Whether enrollment
> rejects an unsigned directory in practice I have not tested, so I would put
> it no stronger than that.
>
> And your point that a minted origin binds 4.5 to the host rather than the
> operator is the sharper version of what my draft calls principal mapping. I
> will carry it into my revision with attribution.
>
> Shivdeep
>
> On Mon, Aug 24, 2026 at 11:46 AM Joshua Ashcroft <josh.ashcroft@gmail.com>
> wrote:
>
>> Shivdeep, Nick, Vaibhav,
>>
>> Second implementer datapoint on the scope question first: we implement
>> B.1 on directory-type responses only, same reading as Nick's verifier,
>> for the same reason - it is what the text licenses and what the vectors
>> cover. So a production verifier and now two production directories have
>> independently landed on the narrow reading, which makes the ambiguity
>> worth a sentence whichever way it resolves.
>>
>> One consequence I have not seen raised: the scope decision has an
>> enrollment multiplier. Cloudflare's enrollment requires a signature of
>> your directory, the B.1 artifact, as a condition of registration. If
>> B.1 is directory-only, then operators pushed to jwks_uri or cimd are
>> not just losing domain binding and rotation per 4.3 - they cannot
>> produce the artifact the flagship enrollment gate requires. The BCP
>> would be pointing the operators least able to comply at a mechanism
>> that locks them out of the program that makes signing worthwhile in the
>> first place. Whichever scope is intended, the sentence belongs where
>> those operators will read it.
>>
>> Shivdeep, your four-under-one deployment makes concrete what I was
>> about to describe hypothetically, so let me answer the
>> origin-per-operator cost from the other host seat. We run per-identity
>> origins, and the marginal cost has been a wildcard certificate and a
>> routing rule: a subdomain allocated once at onboarding, directory type
>> at its well-known path, rotation and B.1 intact. The same move covers
>> Vaibhav's per-purpose point, since a distinct purpose is just another
>> subdomain. -02's redirect prohibition pushed us into the adjacent shape
>> last week - each authority serving its own 200 with its own proof - and
>> that migration was a routing rule and a second proof, not new
>> infrastructure (details in my implementer's report from Aug 19). So
>> from where I sit the origin requirement is real but cheap.
>>
>> The honest limit is a different one, and it may deserve a sentence
>> wherever the scope sentence lands: a minted origin is an origin under
>> the host's domain, so the 4.5 domain binding names the host, not the
>> operator. The operator gets directory-type mechanics - rotation, B.1,
>> the enrollment artifact - but the name those bind to is mine. Whether
>> that is acceptable depends on what domain binding is for, and the
>> answer is probably policy for the verifier rather than a rule here,
>> but the asymmetry should be visible rather than discovered.
>>
>> And yes to your offer: if Thibault lands on directory-only, your
>> sentence in the place a jwks_uri or cimd operator would actually find
>> it is the right fix, and a PR beats leaving it with the editors. I
>> second Nick's ask for the scope confirmation before the BCP points
>> operators at the mechanism.
>>
>> On the merits of the scope itself: as Nick observed, nothing in the
>> B.1 construction consumes a directory-format field - it applies
>> mechanically to any HTTPS response that serves key material - and a
>> proof mechanism gated on controlling an origin selects for who can
>> pay, not who holds the key, which is the same scaling problem this
>> protocol exists to retire.
>>
>> Joshua Ashcroft
>>
>> On Fri, Aug 21, 2026 12:17 AM, Shivdeep Singh <shivdeepsachdeva@gmail.com>
>> wrote:
>>
>>> Nick, thank you, and the tag is the sharper version of this. I had the
>>> scope sentence and the consumption path in 5.5.3. That a conformant proof
>>> must carry tag=http-message-signatures-directory is what makes it concrete,
>>> since that value has no story on a jwks_uri response.
>>>
>>> Agreed that the ambiguity is the problem rather than either reading.
>>>
>>> This is not hypothetical at our end. We serve a hosted directory
>>> carrying four operators' keys under one identifier. Per-tenant authorities
>>> would resolve that, but they require an origin per operator, so the route
>>> for operators without one is per-tenant jwks_uri, which lands squarely in
>>> the gap.
>>>
>>> So if Thibault lands on directory-only, I am happy to draft the sentence
>>> for wherever a jwks_uri or cimd operator would actually find it: that key
>>> material published under those types cannot carry an Appendix B proof, and
>>> that a verifier receiving it redistributed falls back to the thumbprint
>>> identifier in 4.3, which does not survive rotation. Happy to open it as a
>>> PR, or leave it with the editors.
>>>
>>> Shivdeep
>>>
>>> On Fri, Aug 21, 2026 at 8:49 AM Nick Mathews <nick@lifelightlabs.com>
>>> wrote:
>>>
>>>> Shivdeep, Vaibhav, Gary,
>>>>
>>>> Speaking to the Appendix B question as the contributor of the test
>>>> vectors that validate it (E.2.3), not for the spec text itself.
>>>>
>>>> I think both of your readings have support in the text as written,
>>>> which is the problem. The framing sentence describes the concern: what a
>>>> verifier checks when it wants the domain a key is published under, rather
>>>> than the URL on its own. Nothing in the B.1 construction consumes a
>>>> directory-format field; it is a per-key signature over @authority and
>>>> content-digest with created and expires, and that applies mechanically to
>>>> any HTTPS response that serves key material, including a hosted jwks_uri.
>>>> But the normative hooks are directory-shaped: the required tag value is
>>>> literally http-message-signatures-directory, and the consumption path runs
>>>> through 5.5.3. So an implementer today cannot claim conformant proofs on a
>>>> jwks_uri response even though the mechanism would work there.
>>>>
>>>> Our verifier implements B.1 on directory responses only, because that
>>>> is what the text licenses and what the vectors cover. If the intent is
>>>> any-type, the appendix should say so and give the tag a story for
>>>> non-directory responses. If the intent is directory-only, then the
>>>> consequence you describe, jwks_uri and cimd operators falling back to
>>>> thumbprint identity with no rotation per 4.3, deserves a sentence where
>>>> those operators will find it. Either sentence is cheap and the ambiguity is
>>>> not. I would like to see Thibault confirm the intended scope before the BCP
>>>> points operators at the mechanism.
>>>>
>>>> On the point 3 convergence, one merchant-side datapoint:
>>>> distinguishable per-purpose identities are not just registry hygiene. Our
>>>> policy layer keys rules on the resolved identifier, so a crawler that
>>>> separates search from training from assistant retrieval gets separate
>>>> policy rows a merchant can treat differently. A single generic identity
>>>> collapses that to one row, and the measurement in the paper matches what we
>>>> see from merchants: they want to say yes to one purpose and no to another,
>>>> and the identifier is the only handle they have.
>>>>
>>>> Nick
>>>> On Aug 20, 2026 at 6:26 AM -0400, Shivdeep Singh <
>>>> shivdeepsachdeva@gmail.com>, wrote:
>>>>
>>>> Vaibhav, Gary, Nick,
>>>>
>>>> Point 3 and Nick's argument converge on the same mechanism, and I have
>>>> a scope question about it.
>>>>
>>>> Under draft-meunier-webbotauth-httpsig-protocol-02 an identity is the
>>>> resolved Signature-Agent URL, so distinguishable per-purpose crawlers mean
>>>> distinct URLs. An operator without a stable origin cannot use the directory
>>>> type, since 5.5 requires that member value to be an origin, which leaves
>>>> jwks_uri or cimd.
>>>>
>>>> Appendix B opens with "It applies to the directory type in Section
>>>> 5.5." I read that two ways. Either the possession proof in B.1 is available
>>>> only to the directory type, in which case jwks_uri and cimd material can
>>>> never satisfy 5.5.3 and falls back to thumbprint identity, which 4.3 says
>>>> has no rotation. Or the scope line is about domain binding specifically,
>>>> the concern of that appendix, and B.1's mechanism is available to any type,
>>>> in which case saying so would help implementers.
>>>>
>>>> I do not think this changes either recommendation. It affects who can
>>>> act on them, so it seemed worth asking before the BCP points operators at
>>>> the mechanism.
>>>>
>>>> Shivdeep Singh
>>>>
>>>> On Thu, Aug 20, 2026 at 2:53 PM Vaibhav Bajpai <
>>>> contact@vaibhavbajpai.com> wrote:
>>>>
>>>>> Hi everyone,
>>>>>
>>>>> This paper just got published, and we believe would be
>>>>> valuable input to the BCP draft:
>>>>>
>>>>> >From robots.txt to ai.txt: Mapping the Evolution of Web Permissions
>>>>> in the Age of AI
>>>>> https://dl.acm.org/doi/pdf/10.1145/3831956.3831960
>>>>>
>>>>> The measurements suggest that being identifiable and respecting
>>>>> robots.txt is
>>>>> necessary, but no longer sufficient. The harder emerging problem is
>>>>> ensuring
>>>>> that authenticated crawlers interpret a fragmented set of publisher
>>>>> signals
>>>>> consistently, predictably, and according to the intended type of AI
>>>>> use.
>>>>>
>>>>> Our measurements show that today’s system combines heavy dependence on
>>>>> robots.txt,
>>>>> fragmented AI-specific policies, inconsistent naming, and only
>>>>> partially
>>>>> coherent configurations.
>>>>>
>>>>>
>>>>> To this end, here is some input for the BCP:
>>>>>
>>>>> 1.) Define how crawlers should handle conflicting signals and
>>>>> precedence:
>>>>> Explicitly establish that discovery/descriptor files do not grant
>>>>> access and
>>>>> recommend conservative handling of contradictory permission signals.
>>>>>
>>>>> 2.) Separate crawler identity by purpose. Search, training, and
>>>>> user-triggered/assistant retrieval should be distinguishable where they
>>>>> represent materially different uses. Measurements show that that
>>>>> publishers
>>>>> are expressing use-specific preferences: e.g., search=yes, ai-train=no.
>>>>>
>>>>> 3.) Strengthen identity requirements and encourage a canonical crawler
>>>>> registry: Documentation alone isn’t solving crawler identity, as is
>>>>> apparent
>>>>> from the very large number of unrecognized User-Agent strings in our
>>>>> measurements. Plus, when an operator runs crawlers for materially
>>>>> different
>>>>> purposes, those crawlers should have distinguishable identities, e.g.:
>>>>>
>>>>>   ExampleSearchBot
>>>>>   ExampleTrainingBot
>>>>>   ExampleAssistantFetcher
>>>>>
>>>>>   rather than one generic ExampleBot.
>>>>>
>>>>> 4.) Explicitly prohibit identity evasion/policy shopping: A crawler
>>>>> shouldn’t
>>>>> spoof identities, rotate identifiers to evade rules, or choose
>>>>> whichever
>>>>> applicable policy gives it the most permissive result.
>>>>>
>>>>> 5.) Encourage policy revalidation rather than indefinitely caching
>>>>> permission
>>>>> decisions: Crawlers should periodically revalidate cached
>>>>> crawler-policy
>>>>> resources and must not assume that a previously observed permission
>>>>> remains
>>>>> valid indefinitely.
>>>>>
>>>>> 6.) Require transparent interpretation and validation. Crawler
>>>>> operators should
>>>>> document supported policy mechanisms, conflict behavior and caching,
>>>>> and
>>>>> ideally provide a URL testing tool showing publishers exactly how their
>>>>> crawler interprets the site’s policies, e.g., “This is how our crawler
>>>>> interprets your site.”
>>>>>
>>>>> Kind regards, Vaibhav
>>>>>
>>>>> > On 27. Jul 2026, at 14:42, Sauron <sauron=
>>>>> 40google.com@dmarc.ietf.org> wrote:
>>>>> >
>>>>> > Hi all,
>>>>> > Thanks for the engagement and support during the working group
>>>>> session at IETF126.
>>>>> > As mentioned during the meeting, we are looking for even more
>>>>> feedback on the Crawler Best Practices draft:
>>>>> https://datatracker.ietf.org/doc/draft-illyes-webbotauth-cbcp/ /
>>>>> https://github.com/garyillyes/cbcp Specifically, input on the scope,
>>>>> rate control conventions, and handling of non-malicious crawlers would be
>>>>> really useful to help move the draft forward. Please send any comments to
>>>>> the list or open issues directly on GitHub.
>>>>> > Thanks,
>>>>> > Gary
>>>>> > PS: if you have ideas where to send the following two drafts that
>>>>> CBCP depends on, that would be hugely welcome
>>>>> > 1. JAFAR:
>>>>> https://datatracker.ietf.org/doc/draft-illyes-webbotauth-jafar/
>>>>> > 2. REP-ext https://datatracker.ietf.org/doc/draft-illyes-repext/
>>>>> > _______________________________________________
>>>>> > 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
>>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>