All about partitioned cookies (CHIPS)
What is cross site tracking?
Cross-site tracking allows companies, advertisers, and data aggregators to create comprehensive profiles of individuals’ online behaviour by aggregating data from various sources.
The primary purpose of cross-site tracking is often for targeted advertising, as it enables advertisers to deliver personalised ads based on a user’s browsing history and interests. While this can enhance the relevancy of advertisements for users, it also raises concerns about privacy and data security.
For example:
- A user visits
https://website-1.example
, which embeds content fromhttps://website-3.example
.https://website-3.example
sets a cookie on the user’s device. - The user visits
https://website-2.example
, which also embedshttps://website-3.example
. This new instance ofhttps://website-3.example
is still able to access the cookie set when the user was on the previous page.
This works because cookies are currently stored with a key based on the host or domain name of the site that set them, aka the host key. In the above case the cookie would be stored with a key of ("website-3.example")
.
How does CHIPS work?
Browsers with CHIPS support introduce a novel attribute for the Set-Cookie HTTP header: “Partitioned.” When this attribute is enabled, site owners can opt in to utilizing CHIPS.
Revisiting the example we described in the previous section:
- A user visits
https://website-1.example
, which embeds content fromhttps://website-3.example
.https://website-3.example
sets a cookie on the user’s device usingPartitioned
, meaning that the site owner opts in to CHIPS. - The storage key for the cookie would now be
{("https://website-1.example"), ("website-3.example")}
. - When the user visits
https://website-2.example
, which also embedshttps://website-3.example
, this new embedded instance is no longer able to access the cookie because the partition key doesn’t match.
Which website will enforce chips….a.com or third party?
Browser:
- The browser, such as Chrome or Firefox, is responsible for enforcing CHIPS and ensuring cookies are stored in separate partitions based on the website they originated from. This prevents unauthorized cross-site sharing of information.
Chrome and other browsers play a crucial role in enforcing CHIPS and ensuring cookies with partitioned state work correctly, the initial setting for partitions actually happens at the website level within the code used to set cookies.
Here’s the breakdown:
- Website Code: When a website wants to set a cookie, they use code (often involving libraries or frameworks) that includes specifying attributes like name, value, expiration time, and
Partitioned
. Partitioned
Attribute: This attribute, introduced with CHIPS, indicates that the cookie should be stored in a separate “partition” for that specific website within the user’s browser.- Browser Enforcement: When the browser receives the cookie with the
Partitioned
attribute, it ensures it’s stored and accessed separately from cookies from other websites, even if they originate from the same domain.
So basically main website will have to say that I want partition enabled so that any third party website isnt able to access cookie set inside a.com at other website say b.com
That’s partially correct, but the process is a little more nuanced. Here’s a breakdown:
Enabling Partitioning:
- The main website (a.com) doesn’t have an explicit setting to “enable partitioning” for all third-party content. The responsibility primarily lies with the third-party service (b.com) who sets the ads or chat box.
- However, a.com can play a role in promoting CHIPS-compliant third-party providers. They can choose partners who actively implement CHIPS and set partitioned cookies correctly.
Third-Party Responsibility:
- The third-party service (b.com) needs to ensure their code uses the
Partitioned
attribute when setting cookies on a.com. This separates their cookie data from a.com’s own cookies within the browser. - If b.com doesn’t implement CHIPS, their cookie on a.com could still be accessible to them, potentially containing information about your activity on a.com.
Browser Enforcement:
- Ultimately, the browser enforces the partitioning. When a cookie with the
Partitioned
attribute arrives, the browser stores it in a separate “partition” specifically for b.com, preventing a.com from accessing it directly.
How Partitioning Works (Example):
- Main Website: Let’s say you visit
www.newssite.com
. - Embedded Content:
www.newssite.com
embeds an advertisement iframe fromwww.adprovider.com
. - Cookie Set:
www.adprovider.com
, when embedded inwww.newssite.com
, sets a cookie. It includes thePartitioned
attribute in theSet-Cookie
header. - Browser Partitioning: Your browser recognizes that the cookie originates from a third-party context (
www.adprovider.com
) that’s different from the top-level site (www.newssite.com
). It automatically partitions that cookie by the top-level site context. - Later Visit: You visit another website,
www.shoppingsite.com
, which also includes an ad fromwww.adprovider.com
. Because the cookie was partitioned, the browser won’t send the cookie fromwww.newssite.com
‘s partition to the ad provider on thewww.shoppingsite.com
domain.