Re: draft-ietf-privacypass-batched-tokens-08 early Httpdir review

Thibault Meunier <ot-ietf@thibault.uk> Tue, 27 October 2026 21:20 UTC

Received: from mab.w3.org (mab.w3.org [IPv6:2600:1f18:7d7a:2700:d091:4b25:8566:8113]) (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 47E9046 for <httpbisa-archive-bis2Juki@ietf.org>; Tue, 27 Oct 2026 21:20:09 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=w3.org header.s=s1 header.b=OKNarUmo; dkim=pass header.d=thibault.uk header.s=protonmail2 header.b=k2FWsLol; spf=pass (mx.ietf.org: domain of "ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=ietf.org@listhub.w3.org" designates 2600:1f18:7d7a:2700:d091:4b25:8566:8113 as permitted sender) smtp.mailfrom="ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=ietf.org@listhub.w3.org"; dmarc=pass (policy=quarantine) header.from=thibault.uk
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:Content-Type:MIME-Version:References:In-Reply-To:Message-ID: Cc:From:To:Date:Reply-To; bh=jWXuIXMw2VvIQaD/qRVLl2jPih3uGDjbANB2KiiKyUQ=; b= OKNarUmoH36Ij5A6lHnFOI0RxZCCTfzmnMh2bbpfmAn0AcdHCU8cHXf0trzhJJOH+JcN4xuadH7S/ gpcR0dITsE2qMtW/Gkva7/feLLJGP4DsmmSf06gZ/BNG8iMfNN4PWEiHW5J+XgEVVbIziKcfi5Vt0 s1Qy1QrqmU+2N3eruLiVw76WcIYny2l9fVl0n3XDvKi+fFlir9VhvY5PFUOfC/hi7kbzzg+/7CfzP XtWCIrVJh0iooVOXsDqwF+YIcQ4ye9sk8D+ocCCF0ICx44dk3HcUF5TGNc24NfsC9X/kvddwZFE/S VyBn7dpIOxG1vn9LJlKYsJwCR4qn0uyqfA==;
Received: from lists by mab.w3.org with local (Exim 4.98.2) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1xLoZI-0000000CwW2-3Acq for ietf-http-wg-dist@listhub.w3.org; Tue, 27 Oct 2026 21:18:52 +0000
Resent-Date: Tue, 27 Oct 2026 21:18:52 +0000
Resent-Message-Id: <E1xLoZI-0000000CwW2-3Acq@mab.w3.org>
Received: from ip-10-0-0-224.ec2.internal ([10.0.0.224] helo=puck.w3.org) by mab.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from <ot-ietf@thibault.uk>) id 1xLoZE-0000000CwV0-36wX for ietf-http-wg@listhub.w3.internal; Tue, 27 Oct 2026 21:18:48 +0000
Received-SPF: pass (puck.w3.org: domain of thibault.uk designates 109.224.244.117 as permitted sender) client-ip=109.224.244.117; envelope-from=ot-ietf@thibault.uk; helo=mail-244117.protonmail.ch;
Received: from mail-244117.protonmail.ch ([109.224.244.117]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from <ot-ietf@thibault.uk>) id 1xLoZD-00000008P59-1VzR for ietf-http-wg@w3.org; Tue, 27 Oct 2026 21:18:48 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thibault.uk; s=protonmail2; t=1793135922; x=1793395122; bh=jWXuIXMw2VvIQaD/qRVLl2jPih3uGDjbANB2KiiKyUQ=; 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=k2FWsLol121zh6yvCideR705rm86h30iH0Q4/Cr6sbVjvXPyJFym63gSupJvpCXfE I/4r9AkispIhqnQgsLh0x8VZCcPy+LZKpXs7XzUUjC1gbqaAHWBnVcwsE8S4uOuOlA sI799fK+Xhpow4OZtbkh7bwm4QqquVi4EFOOjM/+wQAgteLE4rJuxTGuEqiB6kO1kV Gq2Cv20/VlEDOUOYeczkPnnn5gGd+5vUk5SKFtyEuBI4cmmfUcpZlSOhcpqXc6zOu+ YEAl7kkhCF0e8B4OV8fZLQeuyAQ/6lx/xRuxoo9dNmNUOTfirmst2yQ5taAJudbhmA UyqsAoMw4F5qA==
Date: Tue, 27 Oct 2026 21:18:38 +0000
To: Martin Thomson <mt@lowentropy.net>
From: Thibault Meunier <ot-ietf@thibault.uk>
Cc: ietf-http-wg@w3.org, draft-ietf-privacypass-batched-tokens.all@ietf.org, privacy-pass@ietf.org
Message-ID: <hF-1TfpJqHLtlfPD2-wx7HnWPv9N9T2pdx62cAk5zdlvVKS_xRRH0KD4kWX0C09CjSIWAU0RxVDpkO1rQvrybiiqw3ek6TxjmMHLioiNmck=@thibault.uk>
In-Reply-To: <179187259801.321843.16342442327175125561@dt-datatracker-66f49ddcbd-pbt9f>
References: <179187259801.321843.16342442327175125561@dt-datatracker-66f49ddcbd-pbt9f>
Feedback-ID: 60844204:user:proton
X-Pm-Message-ID: 3fcb7804fcdc96fc0e0f99a62f1e83ed60cec29d
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-W3C-Hub-DKIM-Status: validation passed: (address=ot-ietf@thibault.uk domain=thibault.uk), signature is good
X-W3C-Hub-Spam-Status: No, score=-4.8
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1xLoZD-00000008P59-1VzR e9e0d385ecaaed50a9ee2e6bea198b43
X-Original-To: ietf-http-wg@w3.org
Subject: Re: draft-ietf-privacypass-batched-tokens-08 early Httpdir review
Archived-At: <https://www.w3.org/mid/hF-1TfpJqHLtlfPD2-wx7HnWPv9N9T2pdx62cAk5zdlvVKS_xRRH0KD4kWX0C09CjSIWAU0RxVDpkO1rQvrybiiqw3ek6TxjmMHLioiNmck=@thibault.uk>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/54378
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>
X-Spamd-Bar: ------------------

Hi Martin,

I've proposed some changes on GitHub https://github.com/ietf-wg-privacypass/ietf-draft-privacypass-batched-tokens/pull/58

I have not added anything on redirect to stay in line with [RFC9578]. Would a reference to [RFC9110] be sufficient here, or are you looking for specific handling?

On point I'm still unsure about is how to best satisfy "Using HTTP Status Code" of [RFC9205]. The PR removes normative MUST qualifying HTTP status code, replaces 422 with 400, removes 206 partial response discussion, and allow successful responses without forcing a status code. Is this the type of writing you were referring to in your review?

[RFC9578] https://datatracker.ietf.org/doc/html/rfc9578
[RFC9110] https://datatracker.ietf.org/doc/html/rfc9110
[RFC9205] https://datatracker.ietf.org/doc/html/rfc9205

Best,
Thibault

On Tuesday, October 13th, 2026 at 08:25, Martin Thomson via Datatracker <noreply@ietf.org> wrote:

> Document: draft-ietf-privacypass-batched-tokens
> Title: Batched Token Issuance Protocol
> Reviewer: Martin Thomson
> Review result: Almost Ready
> 
> I've really only looked at the HTTP integration in this draft.  The bulk of the
> work is the two cryptographic protocols for obtaining multiple tokens.  On that
> part, I've not spent any time.
> 
> The HTTP integration is pretty straightforward: each protocol has a request for
> tokens, which returns the tokens in response.  Each protocol has a media type
> defined for request and response, which is perfectly fine and in line with how
> RFC 9578 does it.  I see no major problems in the high-level approach.  Where
> it gets a bit rough is in the use of status codes.  More on that below.
> 
> The description of how a client might obtain the URL where these requests are
> sent is a little thin.  RFC 9578 has a section on configuration, which
> addresses what a client needs to be given to use the protocol.  This draft sort
> of slides past that question a little too quickly for my taste.  One question
> I'd want answered is whether each protocol (of which there would be three now)
> would be expected to operate on different resources and with different keys.  I
> can see how you might be able to use content negotiation for this, but I'm
> unsure about the security properties you get if the RFC 9578 public keys are
> reused.  That's something to look at addressing.
> 
> The draft plays a little fast and loose with concepts from other PP documents,
> so I'd suggest tightening things up with references.  For instance, there is a
> token type that is taken from a challenge and fed as input to the request.  A
> citation for that datum, so it could be possible to get more detail on where it
> came from, would have been a great help.
> 
> The draft variously requires a 200, 400, or 422 status code with "MUST"-level
> strength.  BCP 56 advises against making such strong requirements.  Noting that
> the client can use a successful response to the POST request if it carries the
> right response media type works.  It seems like you might need to deal with
> redirects.  For this, I recommend reviewing Section 4.6 of RFC 9205.  For
> instance, the 400 requirement might be something that a resource could use a
> 5xx series response for (indicating that it's a problem at the resource, not
> with the request; after all, the request could be valid) or a 429 response (the
> "you ask too much" code) or something else entirely.  HTTP relies heavily on
> status codes being more flexible than this specification currently allows for.
> 
> The requirement to use a 206 status code is not going to work very well without
> a fresh definition of a range type for Content-Range.  You probably don't want
> the pain that comes from that.  It's probably enough to say that a successful
> response might contain fewer than the number of requested tokens, such that
> clients need to cope.
> 
> As a minor point, I'm not sure that your design requires a minimal encoding for
> the RFC 9000 variable-length integer encoding.  As a general rule, I recommend
> avoiding unnecessary requirements, especially if you aren't enforcing them.  If
> you want this sort of thing, then you need to mandate *receiver* handling.  (I
> don't think you need a length prefix at all, but who am I to tell someone using
> TLS syntax that?)
> 
> 
> 
>