To clarify, the browser doesn’t actively send the auction nonce.  The 
browser provides an API, navigator.createAuctionNonce(), where sellers can 
request the auction nonce.

This proposal introduces a new mechanism where sellers provide nonces, but 
does not deprecate the old behavior.  We could consider deprecating the old 
behavior once this new behavior is adopted.

-Caleb
On Thursday, January 9, 2025 at 4:53:25 AM UTC-5 Yoav Weiss wrote:

> What happens if sellers don't provide nonces of their own? Do we continue 
> to send the auction nonces that can be used as an id? If so, are there 
> plans to deprecate it? If we don't, what's the compat risk?
>
> On Wed, Jan 8, 2025, 20:37 Mike Taylor <miketa...@chromium.org> wrote:
>
>> LGTM2
>> On 1/8/25 11:05 AM, Chris Harrelson wrote:
>>
>> LGTM1
>>
>> On Wed, Dec 18, 2024 at 9:19 AM Caleb Raitto <carai...@chromium.org> 
>> wrote:
>>
>>> Responses inline
>>>
>>> On Tuesday, December 3, 2024 at 9:03:22 PM UTC-5 Vladimir Levin wrote:
>>>
>>> On Mon, Nov 25, 2024 at 9:15 AM 'Orr Bernstein' via blink-dev <
>>> blink-dev@chromium.org> wrote:
>>>
>>> Contact emails 
>>>
>>> o...@google.com, pauljen...@chromium.org, carai...@chromium.org
>>>
>>>
>>> Explainer 
>>>
>>> https://github.com/WICG/turtledove/pull/1322
>>>
>>>
>>> Specification 
>>>
>>> https://github.com/WICG/turtledove/pull/1313
>>>
>>>
>>> Summary 
>>>
>>> Additional bids are a feature of the Protected Audience auction that 
>>> provide buyers with a way to include server-constructed contextual bids in 
>>> the auction, which allows negative targeting of those bids. We've 
>>> identified a potential privacy risk with the current implementation, as 
>>> well as a potential solution that addresses that risk. Additional bids come 
>>> from buyers, but are transported to the auction by the auction's seller. To 
>>> prevent replay of additional bids, additional bids rely on an auction nonce 
>>> — a unique number created by and used by the browser to uniquely identify 
>>> that auction. However, this introduces a privacy risk, in that all buyers 
>>> see the same auction nonce, and could use that auction nonce as a key to 
>>> join distinct bid requests for an auction. This proposal allows sellers to 
>>> introduce an additional nonce that gets combined with the browser-provided 
>>> one so that buyers see different combined nonces across bid requests, 
>>> preventing the joining of bid requests. The combined nonce is generated 
>>> through a one-way hash (SHA-256) to prevent the construction of a combined 
>>> nonce that matches a previous combined nonce, which could otherwise be used 
>>> to facilitate the replay of an additional bid.
>>>
>>>
>>> According to the explainer, the auction nonce (generated by the browser, 
>>> and given to the seller (?)) is combined with a seller generated nonce to 
>>> generate a bid nonce that
>>>
>>>
>>> Correct - the seller does receive the auction nonce. When constructing 
>>> the auction config, the seller creates an auction nonce using the existing 
>>> navigator.createAuctionNonce() function. The seller can then send this 
>>> auction nonce as part of the request to their contextual server.
>>>  
>>>
>>> buyers see. That's to make sure that buyers can't use the auction nonce 
>>> to figure out other bids that are happening for the same auction, right?
>>>
>>>
>>> Correct - with this change, the auction nonce is no longer given to 
>>> bidders, so that it can not be used to join bid-requests together 
>>> server-side.
>>>  
>>>
>>> Then the bid nonce is returned back to the seller. I presume this is to 
>>> identify which auction the bid is for?
>>>
>>>
>>> Right -- we want to avoid replay attacks, where a bid is entered into an 
>>> auction for which it wasn’t intended. This is why the original auction 
>>> nonce mechanism was created, and this new design should preserve this 
>>> replay attack protection.
>>>  
>>>
>>> What I don't understand is that the bid nonce is then returned to the 
>>> browser, but the browser only knows the auction nonce so wouldn't it have 
>>> no way to match that with an auction because it doesn't know seller 
>>> generated nonce for this bid?
>>>
>>>
>>> The seller nonce is also returned to the browser, via the 
>>> Ad-Auction-Additional-Bid response header 
>>> <https://github.com/WICG/turtledove/blob/main/FLEDGE.md#63-http-response-headers:~:text=The%20structure%20of,signed%20additional%20bid%3E>.
>>>  
>>> The browser can then calculate 
>>> <https://github.com/WICG/turtledove/blob/main/FLEDGE.md#61-auction-and-bid-nonces:~:text=The%20seller%20must%20combine,as%20a%20base64%20string.>
>>>  
>>> the bid nonce from the auction nonce and the seller nonce in the same way 
>>> that the seller did to send the bid nonce to the buyer. 
>>>  
>>>
>>>
>>> Another unrelated question, does this have any separate implications for 
>>> Trusted Execution Environments? Specifically, does this apply to both or 
>>> only to "local" auctions?
>>>
>>>
>>> Currently, additional bids aren’t supported for auctions conducted on 
>>> Bidding and Auction (B&A) services, although such support could be added in 
>>> the future, under a different I2S.
>>>  
>>>
>>>
>>> Thanks,
>>> Vlad
>>>  
>>>
>>>
>>> Blink component 
>>>
>>> Blink>InterestGroups 
>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EInterestGroups>
>>>
>>>
>>> TAG review 
>>>
>>> For Protected Audience: https://github.com/w3ctag/
>>> design-reviews/issues/723
>>>
>>>
>>> TAG review status 
>>>
>>> Completed for Protected Audience, resolved unsatisfied.
>>>
>>>
>>> Risks 
>>>
>>>
>>> Interoperability and Compatibility 
>>>
>>> Optional new functionality that does not break existing use.
>>>
>>>
>>> Gecko & WebKit: For Protected Audiences in general - Negative from 
>>> Mozilla 
>>> <https://github.com/mozilla/standards-positions/issues/770#issuecomment-2432124085>.
>>>  
>>> No signal from Webkit 
>>> <https://github.com/WebKit/standards-positions/issues/158#issuecomment-2432121278>
>>> .
>>>
>>>
>>> Edge: Edge is running an Origin Trial of the Ad Selection API 
>>> <https://github.com/WICG/privacy-preserving-ads/blob/main/README.md> 
>>> which shares a Web API and services protocol with Protected Audience.
>>>
>>>
>>> Web developers: Requested by ad tech in GitHub issue #1198 
>>> <https://github.com/WICG/turtledove/issues/1198>.
>>>
>>>
>>> Debuggability 
>>>
>>> Ad-Auction-Additional-Bid response headers are visible in the DevTools 
>>> Network tab, and each can be trivially decoded into an auction nonce, a 
>>> seller nonce, and a base-64 encoded signed additional bid. Errors 
>>> encountered while decoding and parsing the signed additional bid are 
>>> presented in the DevTools console. Additional bids are debuggable via 
>>> DevTools debugging of Protected Audience scoring scripts.
>>>
>>>
>>> Will this feature be supported on all six Blink platforms (Windows, Mac, 
>>> Linux, ChromeOS, Android, and Android WebView)? 
>>>
>>> It will be supported on all platforms that support Protected Audience, 
>>> so all but WebView.
>>>
>>>
>>> Is this feature fully tested by web-platform-tests 
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>> ? 
>>>
>>> Yes <https://chromium-review.googlesource.com/c/chromium/src/+/5979020> 
>>>
>>>
>>> Flag name on chrome://flags 
>>>
>>> None
>>>
>>>
>>> Finch feature name 
>>>
>>> FledgeSellerNonce
>>>
>>>
>>> Requires code in //chrome? 
>>>
>>> False
>>>
>>>
>>> Estimated milestones 
>>>
>>> Shipping on desktop and Android in M132.
>>>
>>>
>>> Anticipated spec changes 
>>>
>>> None
>>>
>>>
>>> Link to entry on the Chrome Platform Status 
>>>
>>> https://chromestatus.com/feature/5081571282124800
>>>
>>>
>>> This intent message was generated by Chrome Platform Status 
>>> <https://chromestatus.com/>.
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "blink-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to blink-dev+unsubscr...@chromium.org.
>>> To view this discussion visit https://groups.google.com/a/
>>> chromium.org/d/msgid/blink-dev/CANHsO6stZ5OtCo3xy127pz_
>>> 9w7V_NJjx2ZvfzP%2BnJowRC8cmzg%40mail.gmail.com 
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CANHsO6stZ5OtCo3xy127pz_9w7V_NJjx2ZvfzP%2BnJowRC8cmzg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "blink-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to blink-dev+unsubscr...@chromium.org.
>>> To view this discussion visit 
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/75fe8dee-bd6f-4515-b77d-4ceccda28cban%40chromium.org
>>>  
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/75fe8dee-bd6f-4515-b77d-4ceccda28cban%40chromium.org?utm_medium=email&utm_source=footer>
>>> .
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to blink-dev+unsubscr...@chromium.org.
>> To view this discussion visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw88gzSNtR_JJ15xU%2B1S45R5jEw8DQJ8SN%2BuE88zvk-0%3DQ%40mail.gmail.com
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw88gzSNtR_JJ15xU%2B1S45R5jEw8DQJ8SN%2BuE88zvk-0%3DQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to blink-dev+unsubscr...@chromium.org.
>>
> To view this discussion visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e7e3c769-85be-4984-9618-0e92b4b7ada1%40chromium.org
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e7e3c769-85be-4984-9618-0e92b4b7ada1%40chromium.org?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/92955a20-62b2-4479-bde7-22879cda4d2cn%40chromium.org.

Reply via email to