-
Notifications
You must be signed in to change notification settings - Fork 255
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cross-site group management iframe tracking vector #61
Comments
Hi Mike, thanks for the clear write-up of the privacy threat you're thinking about. It looks to me like this has nothing to do with TURTLEDOVE's interest groups specifically, and instead a DSP could carry out this same attack any time it gets to load any resource on the user's device. For example, the inclusion of a "cookie matching pixels" in the winning contextualy-targeted creative, with a URL parameter indicating the event-id of the ad auction, would get us to the same place. From the Privacy Sandbox point of view, the answer is that we need to prevent device fingerprinting as part of our work on mitigating workarounds. This is true whether the actor in question is a DSP, an SSP, or any other party.
I'm happy to hear what you have in mind! But this isn't just a targeted threat from DPSs, it's a pervasive part of the privacy protection effort. |
@michaelkleber: Thanks; my main concern was nailing down that despite a scenario like the above, you wouldn't change your stance that iframes on the owning origin are the TURTLEDOVE-style solution here. I.E., that cross-site management of interest groups shouldn't be further restricted in some way, and that these and similar attacks will be mitigated elsewhere but not by changing this aspect of (your stance on TERN vs) TURTLEDOVE. |
Yup! We're on the same page. |
In #58 (@appascoe's TERN update PR) there was some discussion of a desire to manage interest groups as part of contextual responses. I.E., when a DSP provides a contextual bid response, it should have the ability to also specify additional desired interest groups for the user to join (perhaps under certain conditions such as winning the final auction, or at random).
The PR originally provided a facility for DSP responses to include group management information (now removed and to be followed up separately); @michaelkleber pointed out that this could lead to interference since no means were specified for the UA to verify authenticity, and suggested that cross-site iframes are already anticipated in TURTLEDOVE as supporting this use case.
As I wrote in this comment, I think this would represent a cross-site tracking vector unless some additional specifications are made.
Here is the scenario I imagine:
publisher-1.example
integrates withssp.example
publisher-2.example
integrates withssp.example
ssp.example
conveys to DSPs contextual bid requests, but either claims IP-blindness with respect to DSPs and doesn't pass user IP addresses, or passes only a privacy-masked IP for rough geolocation (in line with practices today)dsp.example
integrates withssp.example
as a buyerdsp.example
integrates withadvertiser.example
User A visits
publisher-1.example/10-facts-about-cats
. Assumingssp.example
does not pass user IP addresses to DSPs,dsp.example
receives a contextual bid request with information about the page, plus any first-party informationpublisher-1.example
decides to provide, but no other definite cross-site information about user A.dsp.example
now knows the following about user A:?
A1234
publisher-1.example/10-facts-about-cats
As part of its contextual response,
dsp.example
instructsssp.example
to create a cross-site iframe withsrc="dsp.example/add_to_interest_groups?token=<some_token>"
.some_token
is either a unique id associated with the original request or otherwise somehow directly associated with the original page context.At some point the UA will activate that iframe. It will load a DSP-specified resource, which as part of (2) will include information about the original context, and so any fingerprinting surfaces such as IP become directly available to the DSP and linkable to cross-site behavior.
dsp.example
now knows the following (imagine IP+FLoC cohort as a semi-stable mostly-unique ID, though even IP alone may suffice as a noisier 3p cookie substitute):(1.1.1.1, AX3Y)
A1234
publisher-1.example/10-facts-about-cats
User A visits
advertiser.example/premium-dog-toys
, then visitspublisher-2.example/10-facts-about-dogs
. The contextual response iframe eventually activates. Extending the above,dsp.example
now knows the following:(1.1.1.1, AX3Y)
A1234
publisher-1.example/10-facts-about-cats
(1.1.1.1, AX3Y)
C3333
advertiser.example/premium-dog-toys
(1.1.1.1, AX3Y)
B4321
publisher-2.example/10-facts-about-dogs
I.E., it is able to build a cross-site profile despite having only been provided with first-party and contextual information.
User A later visits
publisher-1
again.dsp.example
can look up the first-party idA1234
and access the user's cross-site history for all pages which had a cross-site iframe activation (advertisers and publishers), without any collusion between any parties.One reason to distinguish between an SSP vs a DSP being exposed to fingerprinting surfaces such as IP is that there are far fewer entities to potentially audit for IP-blindness if limited to SSPs.
I see a number of possible resolutions here, but am first curious what you think of this scenario.
The text was updated successfully, but these errors were encountered: