Onderzoek naar twee uitdagingen waarmee het Chrome-team te maken kreeg bij de implementatie van CHIPS en hoe communityfeedback een sleutelrol speelde bij de ontwikkeling van het ontwerp van het voorstel.
Cookies met Independent Partitioned State (CHIPS) is een Privacy Sandbox-technologie waarmee ontwikkelaars een cookie kunnen aanmelden voor "gepartitioneerde" opslag, met afzonderlijke cookie-potten per site op het hoogste niveau.
Voorbeelden van gebruiksscenario's voor CHIPS omvatten alle scenario's waarin subbronnen voor meerdere sites een bepaalde notie van een sessie of een persistente status vereisen die is afgestemd op de activiteit van een gebruiker op een enkele site op het hoogste niveau, zoals chatwidgets van derden, kaartinsluitingen, het laden van CDN-subbronnen balancering, headless CMS-providers en meer.
CHIPS wordt ontwikkeld met als doel een open webstandaard te worden. Het wordt besproken in de PrivacyCG en heeft een origin-proefperiode van zeven maanden gehad, waarin het Chrome-team nuttige feedback heeft ontvangen. Tijdens de ontwikkeling werkte het team samen met de belangrijkste belanghebbenden om die feedback te onderzoeken, wat resulteerde in een bijgewerkt ontwerp dat het web-ecosysteem beter dient.
Laten we twee uitdagingen onderzoeken waarmee het Chrome-team te maken kreeg bij de implementatie van CHIPS en hoe communityfeedback een sleutelrol speelde bij de ontwikkeling van het ontwerp van het voorstel.
Het host-voorvoegsel verwijderen en geen Domain
Om goede beveiligingspraktijken aan te moedigen, vereist het CHIPS-ontwerp dat cookies alleen worden ingesteld door en verzonden via beveiligde protocollen en dat gepartitioneerde cookies moeten worden ingesteld met Secure
.
Naast deze vereisten stond het oorspronkelijke voorstel het Domain
attribuut niet toe op gepartitioneerde cookies. Door Domain
voor cookies weg te laten, werd het delen ervan tussen verschillende subdomeinen van derden binnen een partitie voorkomen.
Tijdens de origin-proefperiode hoorde het Chrome-team van partners en andere belanghebbenden dat de vereiste dat er geen domein vereist was, het moeilijk maakte voor sites met subdomeinen om CHIPS te implementeren. Het zou het bijvoorbeeld moeilijker maken voor shop.example.com
en pay.example.com
om gepartitioneerde koekjestrommels te delen. In andere gevallen bemoeilijkte het authenticatiestromen in ingebedde contexten .
Het Chrome-team heeft deze feedback geëvalueerd en geconcludeerd dat het verwijderen van de vereiste dat er geen domein is, geen privacyproblemen zou opleveren, maar wel de bruikbaarheid zou verbeteren. Als reactie hierop opende het CHIPS-productteam een discussie op GitHub , waarbij meer feedback werd gevraagd over het verwijderen van deze vereiste. Verschillende bedrijven die CHIPS aan het testen waren, reageerden en gaven publiekelijk commentaar op het belang van deze verandering voor hun gebruiksscenario.
Chrome nam de feedback mee naar de Privacy Community Group van het W3C en presenteerde het bijgewerkte voorstel. Firefox en Edge keurden de wijziging goed en Safari gaf geen aanleiding tot enige bezorgdheid. De volgende dag heeft het Chrome-team Blink-Dev bijgewerkt en het plan gepresenteerd om de vereiste in de CHIPS Github-repository te verwijderen.
Het CHIPS-team stelde deze vereiste aanvankelijk voor om te garanderen dat sites geen cross-site cookies ontvangen van kwaadaardige of gecompromitteerde subdomeinen, en om de mogelijkheid te beperken om domeincookies te gebruiken als kanaal om gegevens tussen subdomeinen te lekken.
Hoewel dit extra beveiligingsvoordelen opleverde, benadrukte Tableau dat het uitdagingen met zich meebracht voor de adoptie van CHIPS, omdat sommige huidige applicatiearchitecturen afhankelijk zijn van het delen van cookies tussen subdomeinen.
Nadat Chrome deze wijziging had doorgevoerd, deelde Tableau, het bedrijf achter het visuele analyseplatform dat nu eigendom is van Salesforce, het volgende :
Door het verwijderen van de naamswijziging komt de vereiste veel beter overeen met de eerdere wijzigingen om het attribuut 'SameSite=None' toe te voegen en dus een meer 'bekende' hoeveelheid. We stellen het op prijs dat Google de feedback hoort, de implicaties doorneemt en de wijziging doorvoert om de overgang eenvoudiger te maken. Lee Graber, software-engineeringarchitect, Tableau
Door dit proces werd CHIPS eenvoudiger te implementeren voor belanghebbenden, terwijl de privacy voor gebruikers behouden bleef.
Overstappen van een statische naar een dynamische cookielimiet
De andere uitdaging bij de implementatie van CHIPS was de statische cookielimiet.
Om een groot geheugengebruik voor cookies te voorkomen, stelde het oorspronkelijke ontwerp een numerieke limiet van 10 cookies per site per partitie voor.
Akamai deelde publieke feedback dat de voorgestelde limiet voor gepartitioneerde cookies mogelijk niet voldoende is voor diensten zoals CDN's die topniveaudomeinen aanbieden om de inhoud van hun klanten te hosten (zoals customer.cdn.xyz). Customer1.cdn.xyz en customer2.cdn.xyz kunnen bijvoorbeeld allebei inhoud van derden leveren en ze kunnen elk verschillende eigen cookies instellen. Als meerdere klantensites zoals deze op een andere website zijn ingesloten, kunnen ze de limiet van 10 cookies per partitie bereiken.
Het Chrome-team hoorde vergelijkbare feedback op andere forums, tijdens partnerbijeenkomsten en W3C-discussies, dus overwogen ze de beste manieren om de uitdaging op te lossen die de cookielimiet in deze gebruiksscenario's met zich meebracht.
Na te hebben overwogen hoe feedback uit de community kon worden verwerkt, presenteerde Chrome op TPAC 2022 een bijgewerkt idee, waarin werd gesuggereerd dat CHIPS zou overstappen van een statische limiet van 10 cookies naar een _dynamische _10 kb-limiet op basis van geheugen. Uit de analyse bleek dat deze verandering 99% van de gebruiksscenario's op internet zou moeten bestrijken en de privacyprincipes zou handhaven die Chrome probeerde te bereiken (het beperken van te veel informatie die over gebruikers op verschillende sites wordt gedeeld), terwijl de belangrijkste toepassingen behouden zouden blijven.
Andere browserleveranciers zeiden dat ze het eens waren met de bijgewerkte oplossing, wat belangrijk was om ervoor te zorgen dat CHIPS ondersteuning voor meerdere browsers in de PrivacyCG handhaafde.
Als gevolg hiervan heeft Chrome de nieuwe limiet overgenomen en de oplossing in het CHIPS-ontwerp opgenomen.
Samenwerken met de industrie
We hebben tijdens de ontwikkeling van CHIPS van veel partners gehoord en samenwerken is van cruciaal belang geweest bij het verbeteren van de privacy op internet.
Akamai heeft op verschillende fronten een samenwerkingsrelatie met andere marktleiders zoals Google. De feedback die we hebben gegeven in het geval van het CHIPS-programma lijkt misschien een klein detail, maar de verandering zal een grote bijdrage leveren aan het garanderen van een minimale negatieve impact op goede gebruiksscenario's, terwijl het einddoel toch wordt bereikt. Onze respectieve organisaties werken eraan om het internet op onze eigen manier sneller en veiliger te maken, en het hele internet is beter af als we samenwerken. Martin Meyer, senior architect bij Akamai Technologies
CHIPS heeft laten zien dat feedback uit het ecosysteem essentieel is voor het verbeteren van technologieën in de Privacy Sandbox. Open webgesprekken in GitHub, W3C-vergaderingen en voortdurende betrokkenheid bij het Chrome-team hebben rechtstreeks bijgedragen aan de veranderingen die nu zijn uitgerold in de stabiele Chrome-omgeving. Het Chrome-team wil deze feedback graag horen over een reeks voorstellen, en het maakt een enorm verschil voor de manier waarop technologieën worden ontwikkeld en uitgerold op internet.