Trabalhamos com o setor para melhorar os CHIPS

Este vídeo 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 da proposta.

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 jars de cookie separados por site de nível superior.
Os exemplos de casos de uso dos CHIPS incluem todos os cenários em que sub-recursos entre sites exigem alguma noção de sessão ou estado permanente com escopo para a atividade de um usuário em um único site de nível superior, como widgets de chat de terceiros, incorporações de mapa, balanceamento de carga de CDN de sub-recursos, provedores de CMS sem comando e muito mais.

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

Vamos analisar 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 da proposta.

Remoção do prefixo de host e da ausência de requisitos Domain

Para incentivar boas práticas de segurança, o design do CHIPS exige que os cookies sejam definidos e enviados 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 nos cookies impedia o compartilhamento entre diferentes subdomínios de terceiros em uma partição.

Durante o teste de origem, a equipe do Chrome divulgou parceiros e outras partes interessadas que o requisito de ausência de domínio dificultou a implementação dos CHIPS em sites com subdomínios. Por exemplo, seria mais difícil para shop.example.com e pay.example.com compartilharem jars de cookie particionados. Em outros casos, isso dificultou 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 a remoção do requisito de ausência de domínio não criaria desafios de privacidade, mas melhoraria a usabilidade. Em resposta, a equipe de produto da CHIPS abriu uma discussão no GitHub, solicitando mais feedback sobre a remoção desse requisito. Várias empresas que estavam testando os CHIPS responderam e comentaram publicamente sobre a importância dessa mudança para seus casos de uso.

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 gerou preocupações. No dia seguinte, a equipe do Chrome atualizou o Blink-Dev e apresentou o plano para remover o requisito no repositório CHIPS do GitHub (link em inglês).

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

Embora isso tenha outros benefícios de segurança, o Tableau destacou que ele apresentava desafios para a adoção dos CHIPS, já que algumas arquiteturas de aplicativos atuais dependem do compartilhamento de cookies entre subdomínios.

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

Essa remoção da mudança de nomenclatura torna o requisito muito mais alinhado com as alterações 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

Nesse processo, a implementação dos CHIPS foi facilitada para as partes interessadas, preservando a privacidade dos usuários.

Outro desafio na implementação dos CHIPS foi o limite de cookies estáticos.
Para evitar que os cookies sejam consumidos por muitos cookies, o projeto inicial propôs um limite numérico de 10 cookies por site e por partição.

A Akamai compartilhou um feedback público informando 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 de seus clientes (como customer.cdn.xyz). Por exemplo, customer1.cdn.xyz e customer2.cdn.xyz podem fornecer conteúdo de terceiros, e cada um deles pode definir vários cookies. Se vários sites de clientes como este forem incorporados em outro site, eles podem atingir o limite de 10 cookies por partição.

A equipe do Chrome recebeu feedback semelhante em outros fóruns, nas reuniões de parceiros e nas discussões do W3C, então considerou as melhores formas de resolver o desafio do limite de cookies 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 no TPAC 2022 (link em inglês), sugerindo que os CHIPS migrassem 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 deve abranger 99% dos casos de uso na Web e manter os princípios de privacidade que o Chrome estava tentando alcançar (limitando muitas informações compartilhadas sobre os usuários em sites diferentes) sem deixar de manter os usos principais.

Outros fornecedores de navegadores pesaram, afirmando que concordaram com a solução atualizada, o que foi importante para garantir que a CHIPS mantivesse a compatibilidade entre navegadores no PrivacyCG.

O Chrome adotou o novo limite e incorporou a solução no design dos CHIPS.

Como trabalhar com o setor

Ouvimos muitos parceiros ao longo do desenvolvimento dos CHIPS, e trabalhar em conjunto foi vital no esforço de melhorar a privacidade na Web.

A Akamai tem uma relação cooperativa 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 pequeno detalhe, mas a mudança ajuda muito a garantir um impacto negativo mínimo em bons casos de uso, sem deixar de atingir a meta final. Nossas respectivas organizações estão trabalhando para tornar a Internet mais rápida e mais segura do nosso jeito, e toda a Internet funciona melhor quando trabalhamos juntos. Martin Meyer, arquiteto sênior da Akamai Technologies

A CHIPS mostrou que o feedback do ecossistema é essencial para melhorar as tecnologias do Sandbox de privacidade. Conversas abertas na Web no GitHub, reuniões no W3C e engajamento contínuo com a equipe do Chrome contribuíram diretamente para as mudanças que agora foram lançadas na versão estável do Chrome. A equipe do Chrome quer receber esse feedback sobre várias propostas, e isso faz uma diferença enorme no desenvolvimento e no lançamento das tecnologias na Web.