Trabajamos con la industria para mejorar CHIPS

Exploramos dos desafíos que enfrentó el equipo de Chrome al implementar CHIPS y cómo los comentarios de la comunidad desempeñaron un papel fundamental en la evolución del diseño de la propuesta.

Cookies con estado particionado independiente (CHIPS) es una tecnología de Privacy Sandbox que permite a los desarrolladores habilitar una cookie en el almacenamiento "particionado", con archivos jar de cookies independientes por sitio de nivel superior.
Los casos de uso de CHIPS incluyen situaciones en las que los subrecursos entre sitios requieren cierta noción de la sesión o el estado persistente que se limita a la actividad del usuario en un solo sitio de nivel superior, como widgets de chat de terceros, incorporaciones de mapa, balanceo de cargas de CDN de subrecursos, proveedores de CMS sin interfaz gráfica, etcétera.

CHIPS se está desarrollando con el objetivo de convertirse en un estándar de Web abierta. Se está debatiendo en PrivacyCG y se llevó a cabo una prueba de origen durante 7 meses, durante los cuales el equipo de Chrome recibió comentarios útiles. Durante el desarrollo, el equipo trabajó con los interesados clave para explorar esa retroalimentación, lo que dio como resultado un diseño actualizado que sirve mejor al ecosistema web.

Exploremos dos desafíos que enfrentó el equipo de Chrome al implementar CHIPS y la manera en que los comentarios de la comunidad desempeñaron un papel clave en la evolución del diseño de la propuesta.

Quita el prefijo de host y no hay ningún requisito de Domain

Para fomentar las prácticas recomendadas de seguridad, el diseño de CHIPS requiere que las cookies solo se configuren y se envíen a través de protocolos seguros, y que las cookies particionadas se establezcan con Secure.

Además de estos requisitos, la propuesta inicial no permitió el atributo Domain en cookies particionadas. Si se omite Domain en las cookies, no se pueden compartir entre diferentes subdominios de terceros en una partición.

Durante la prueba de origen, el equipo de Chrome escuchó a los socios y otras partes interesadas que el requisito de no usar un dominio dificultaba la implementación de CHIPS para los sitios con subdominios. Por ejemplo, a shop.example.com y pay.example.com le dificultaría compartir los archivos jar de cookies particionados. En otros casos, dificultaba el flujo de autenticación en contextos incorporados.

Diagrama en el que se muestran los sitios pay.example.com y shop.example.com

El equipo de Chrome evaluó estos comentarios y concluyó que quitar el requisito de no usar un dominio no crearía desafíos de privacidad, pero mejoraría la usabilidad. En respuesta, el equipo de producto de CHIPS abrió un debate en GitHub y invitó a recibir más comentarios sobre la eliminación de este requisito. Varias empresas que estaban probando CHIPS respondieron y comentaron públicamente sobre la importancia de este cambio para su caso de uso.

Chrome llevó los comentarios al Grupo de la Comunidad de privacidad de W3C y presentó la propuesta actualizada. Firefox y Edge aprobaron el cambio, y Safari no planteó ninguna inquietud. Al día siguiente, el equipo de Chrome actualizó Blink-Dev y presentó el plan para quitar el requisito en el repositorio de GitHub de CHIPS.

El equipo de CHIPS propuso inicialmente este requisito para garantizar que los sitios no reciban cookies entre sitios de ningún subdominio malicioso o comprometido, y mitigar la posibilidad de usar cookies de dominio como un canal para filtrar datos entre subdominios.

Si bien esto proporcionaba beneficios de seguridad adicionales, Tableau destacó que presentaba desafíos para la adopción de CHIPS porque algunas arquitecturas de aplicaciones actuales dependen del uso compartido de cookies entre subdominios.

Después de que Chrome hizo este cambio, Tableau, la empresa detrás de la plataforma de análisis visual que ahora es propiedad de Salesforce, compartió lo siguiente:

Debido a que se quitó el cambio de nombre, el requisito se alinea mucho más con los cambios anteriores de agregar el atributo "SameSite=None" y, por lo tanto, una cantidad más "conocida". Agradecemos que Google conozca los comentarios, analice las implicaciones y haga el cambio para facilitar las transiciones. Lee Graber, arquitecto de Ingeniería de Software, Tableau

A través de este proceso, se facilitó la implementación de CHIPS para las partes interesadas, a la vez que se preservaba la privacidad de los usuarios.

El otro desafío a la hora de implementar CHIPS fue el límite estático de las cookies.
Para evitar una gran huella de memoria para las cookies, el diseño inicial propuso un límite numérico de 10 cookies por sitio y por partición.

Akamai compartió comentarios públicos que indican que el límite propuesto para las cookies particionadas podría no ser suficiente para servicios como las CDN que ofrecen dominios de nivel superior para alojar el contenido de sus clientes (como customer.cdn.xyz). Por ejemplo, customer1.cdn.xyz y customer2.cdn.xyz podrían entregar contenido de terceros y cada uno podría configurar varias de sus propias cookies. Si varios sitios de clientes como este están incorporados en otro sitio web, es posible que alcancen el límite de 10 cookies por partición.

El equipo de Chrome escuchó comentarios similares en otros foros, en reuniones con socios y debates de W3C, por lo que consideraron las mejores formas de resolver el desafío que presentaba el límite de cookies en estos casos de uso.

Diagrama que muestra la cantidad máxima de cookies de SameSite=None que un solo dominio tiene en las máquinas de los clientes
Diagrama en el que se muestra la cantidad máxima de cookies de SameSite=None que un solo dominio tiene en las máquinas de los clientes

Después de considerar cómo incorporar los comentarios de la comunidad, Chrome presentó una idea actualizada en TPAC 2022, lo que sugiere que CHIPS pasó de un límite de cookies estáticas de 10 a un límite _dinámico de _10 KB basado en la memoria. El análisis demostró que este cambio debería abarcar el 99% de los casos de uso en la Web y mantener los principios de privacidad que Chrome intentaba alcanzar (limitando demasiada información sobre los usuarios entre sitios) sin perder los usos clave.

Otros proveedores de navegadores respondieron y manifestaron que estaban de acuerdo con la solución actualizada, lo cual era importante para garantizar que CHIPS mantuviera la compatibilidad entre navegadores en PrivacyCG.

Como resultado, Chrome adoptó el nuevo límite e incorporó la solución en el diseño de CHIPS.

Cómo trabajar con la industria

Recibimos comentarios de muchos socios durante el desarrollo de CHIPS, y trabajar juntos ha sido fundamental para mejorar la privacidad en la Web.

Akamai disfruta de una relación cooperativa en varios frentes con otros líderes del sector como Google. Los comentarios que proporcionamos en el caso del programa CHIPS pueden parecer un detalle menor, pero el cambio será de gran ayuda para garantizar un impacto negativo mínimo en los buenos casos de uso sin dejar de lograr el objetivo final. Nuestras respectivas organizaciones están trabajando para hacer que Internet sea más rápida y segura a nuestro modo, y la Internet es mejor cuando trabajamos juntos. Martin Meyer, arquitecto sénior de Akamai Technologies

CHIPS demostró que los comentarios del ecosistema son fundamentales para mejorar las tecnologías de Privacy Sandbox. Las conversaciones web abiertas en GitHub, las reuniones de W3C y la participación continua con el equipo de Chrome contribuyeron directamente a los cambios que ahora se implementaron en la versión estable de Chrome. El equipo de Chrome está ansioso por recibir estos comentarios sobre una serie de propuestas, y marca una gran diferencia en la forma en que se desarrollan y se lanzan las tecnologías en la Web.