Trabalhamos com o setor para melhorar os CHIPS

Esta postagem aborda dois desafios que a equipe do Chrome enfrentou na implementação dos CHIPS e como o feedback da comunidade desempenhou um papel fundamental na evolução do design proposto.

Cookies com estado particionado independente (CHIPS, na sigla em inglês) é uma tecnologia do Sandbox de privacidade que permite aos desenvolvedores ativar um cookie no armazenamento "particionado", com armazenamentos separados por site de nível superior.
Exemplos de casos de uso para CHIPS incluem todos os cenários em que os subrecursos entre sites exigem algum tipo de sessão ou estado persistente que esteja limitado à atividade de um usuário em um único site de nível superior, como widgets de chat de terceiros, incorporações de mapas, balanceamento de carga de CDN de subrecursos, provedores de CMS sem cabeça e muito mais.

O CHIPS está sendo desenvolvido com o objetivo de se tornar um padrão aberto da Web. O recurso está em discussão no PrivacyCG e teve um teste de origem de sete meses, durante o qual a equipe do Chrome recebeu feedback útil. Durante o desenvolvimento, a equipe trabalhou com as principais partes interessadas para analisar esse feedback, resultando em um design atualizado que atende melhor ao ecossistema da Web.

Esta postagem aborda dois desafios que a equipe do Chrome enfrentou na implementação dos CHIPS e como o feedback da comunidade desempenhou um papel fundamental na evolução do design proposto.

Como remover o prefixo do host e o requisito Domain

Para incentivar boas práticas de segurança, o design do CHIPS exige que os cookies sejam definidos e enviados apenas por protocolos seguros e que os cookies particionados sejam definidos com Secure.

Além desses requisitos, a proposta inicial não permitia o atributo Domain em cookies particionados. A omissão de Domain em cookies impedia o compartilhamento entre diferentes subdomínios de terceiros em uma partição.

Durante o teste de origem, a equipe do Chrome recebeu feedback de parceiros e outras partes interessadas de que o requisito de não ter domínio dificultava a implementação da CHIPS em sites com subdomínios. Por exemplo, isso dificultaria o compartilhamento de shop.example.com e pay.example.com de cookies particionados. Em outros casos, ele dificultava os fluxos de autenticação em contextos incorporados.

Diagrama mostrando os sites pay.example.com e shop.example.com

A equipe do Chrome avaliou esse feedback e concluiu que remover o requisito de domínio vazio não criaria problemas de privacidade, mas melhoraria a usabilidade. Em resposta, a equipe de produtos do CHIPS abriu uma discussão no GitHub para convidar mais pessoas a dar feedback sobre a remoção desse requisito. Várias empresas que estavam testando o CHIPS responderam e comentaram publicamente sobre a importância dessa mudança para o caso de uso delas.

O Chrome levou o feedback ao Grupo da Comunidade de Privacidade do W3C e apresentou a proposta atualizada. O Firefox e o Edge aprovaram a mudança, e o Safari não levantou nenhuma preocupação. No dia seguinte, a equipe do Chrome atualizou o Blink-Dev e apresentou o plano para remover a exigência no repositório do CHIPS no GitHub.

A equipe do CHIPS propôs inicialmente esse requisito para garantir que os sites não recebam cookies entre sites de subdomínios maliciosos ou comprometidos e para reduzir a possibilidade de usar cookies de domínio como um canal para vazar dados entre subdomínios.

Embora isso tenha proporcionado benefícios adicionais de segurança, o Tableau destacou que apresentou desafios para a adoção do CHIPS porque algumas arquiteturas de aplicativos atuais dependem do compartilhamento de cookies entre subdomínios.

Depois que o Chrome fez essa mudança, a Tableau, a empresa por trás da plataforma de análise visual que agora é propriedade do Salesforce, compartilhou:

Essa remoção da mudança de nomenclatura torna o requisito muito mais alinhado com as mudanças anteriores para adicionar o atributo "SameSite=None" e, portanto, uma quantidade mais "conhecida". Agradecemos ao Google por ouvir o feedback, analisar as implicações e fazer a mudança para facilitar as transições. Lee Graber, arquiteto de engenharia de software, Tableau

Com esse processo, o CHIPS ficou mais fácil de implementar para as partes interessadas, preservando a privacidade dos usuários.

O outro desafio na implementação do CHIPS foi o limite de cookies estáticos.
Para evitar uma grande pegada de memória para cookies, o design inicial propôs um limite numérico de 10 cookies por site e partição.

A Akamai compartilhou feedback público de que o limite proposto para cookies particionados pode não ser suficiente para serviços como CDNs que oferecem domínios de nível superior para hospedar o conteúdo dos clientes (como customer.cdn.xyz). Por exemplo, customer1.cdn.xyz e customer2.cdn.xyz podem fornecer conteúdo de terceiros e definir vários cookies. Se vários sites de clientes como esse forem incorporados a outro site, eles poderão atingir o limite de 10 cookies por partição.

A equipe do Chrome recebeu feedback semelhante em outros fóruns, em reuniões de parceiros e discussões do W3C. Por isso, eles consideraram as melhores maneiras de resolver o desafio que o limite de cookies apresentou nesses casos de uso.

Diagrama mostrando o número máximo de cookies SameSite=None que um único domínio tem nas máquinas dos clientes
Diagrama mostrando o número máximo de cookies SameSite=None que um único domínio tem nas máquinas dos clientes

Depois de considerar como incorporar o feedback da comunidade, o Chrome apresentou uma ideia atualizada na TPAC 2022, sugerindo que o CHIPS passe de um limite estático de 10 cookies para um limite _dinâmico_ de 10 KB com base na memória. A análise mostrou que essa mudança abrange 99% dos casos de uso na Web e mantém os princípios de privacidade que o Chrome estava tentando alcançar (limitando o compartilhamento excessivo de informações sobre os usuários em vários sites) e ainda mantém os principais usos.

Outros fornecedores de navegadores participaram e disseram que concordavam com a solução atualizada, o que foi importante para garantir que o CHIPS mantivesse o suporte a vários navegadores no PrivacyCG.

Como resultado, o Chrome adotou o novo limite e incorporou a solução ao design do CHIPS.

Como trabalhar com o setor

Ouvimos muitos parceiros durante o desenvolvimento do CHIPS, e trabalhar juntos foi vital para melhorar a privacidade na Web.

A Akamai tem uma relação de cooperação em várias frentes com outros líderes do setor, como o Google. O feedback que fornecemos no caso do programa CHIPS pode parecer um detalhe menor, mas a mudança vai ajudar a garantir o impacto negativo mínimo para bons casos de uso, alcançando o objetivo final. Nossas respectivas organizações estão trabalhando para tornar a Internet mais rápida e segura de acordo com nossas próprias maneiras, e toda a Internet fica melhor quando trabalhamos juntos. Martin Meyer, arquiteto sênior da Akamai Technologies

O CHIPS mostrou que o feedback do ecossistema é essencial para melhorar as tecnologias no Sandbox de privacidade. As conversas abertas na Web no GitHub, as reuniões do W3C e o engajamento contínuo com a equipe do Chrome contribuíram diretamente para as mudanças que foram lançadas no Chrome estável. A equipe do Chrome está ansiosa para receber esse feedback em várias propostas, e isso faz uma grande diferença na forma como as tecnologias são desenvolvidas e lançadas na Web.