Guía para desarrolladores sobre los tokens de estado privado

En el pasado, las cookies de terceros se usaban para almacenar y transmitir información sobre el estado de un usuario, como su estado de acceso, información sobre el dispositivo que usa o si son conocidos y confiables. Por ejemplo, si el usuario accedió con el SSO, si tiene un determinado tipo de dispositivo compatible o si el usuario es conocido y de confianza. Dado que la compatibilidad con cookies de terceros está obsoleta, muchos de estos casos de uso deberán contar con otros medios.

Los tokens de estado privado ofrecen una forma de compartir información en la Web, pero de una manera que preserva la privacidad a través de controles sobre la cantidad de datos que en realidad se pueden compartir.

Los tokens de estado privado (antes conocidos como tokens de confianza) permiten que la confianza en la autenticidad de un usuario se transmita de un contexto a otro y, al mismo tiempo, ayudan a los sitios a combatir el fraude y distinguir a los bots de los humanos reales, sin el seguimiento pasivo.

En este documento, se describen los detalles técnicos para la implementación de tokens de estado privado (PST). Para obtener un esquema más alto, consulta la descripción general de PST.

Flujo de aprendizaje de PST.
Proceso de aprendizaje de PST: Este proceso consta de varios pasos que comienzan con la comprensión de la API y definen su propia estrategia de tokens (más actividades relacionadas con el producto o la empresa). Después de eso, la fase técnica consiste en implementar la demostración en tu entorno local y, luego, aplicarla a un caso de uso real.

¿Cómo funcionan los tokens de estado privado?

La relación clave que se debe comprender en PST es entre las entidades emisoras y los canjeadores. Las entidades emisoras y los solicitantes pueden pertenecer a la misma empresa.

  • Emisores: Estas entidades tienen algún indicador sobre un usuario (por ejemplo, si es un bot o no) y lo incorpora a un token que se almacena en el dispositivo del usuario (más detalles en las siguientes secciones).
  • Canjeadores: Es posible que estas entidades no tengan un indicador sobre un usuario, pero deban saber algo sobre él (por ejemplo, si ese usuario es un bot o no) y solicitar el canje de un token de la entidad emisora para comprender la confiabilidad de ese usuario.

Cada interacción con PST requiere que las entidades emisoras y los canjeadores trabajen juntos para compartir indicadores en la Web. Esos indicadores son valores aproximados que no están lo suficientemente detallados como para identificar a los individuos.

¿Los tokens de estado privado son adecuados para mí?

Casos de uso de tokens de estado privado.

Las empresas que toman decisiones sobre la confianza y desean que la información esté disponible en todos los contextos pueden beneficiarse de las PST. Para obtener más información sobre posibles casos de uso de PST, consulta nuestra documentación sobre casos de uso de PST.

Emitir y canjear tokens

La implementación de PST se produce en tres fases:

  1. Emisión de tokens
  2. Canjear tokens
  3. Reenvío de registros de canje

En la primera fase, los tokens se emiten a un navegador (por lo general, después de algún tipo de validación). En la segunda fase, otra entidad realizará una solicitud para canjear el token que se emitió para leer el valor en ese token. En la fase final, la parte que realiza el canje recibe un registro de canje (RR) con el valor contenido en el token. Luego, la parte que realiza el canje puede usar ese registro como certificación de ese usuario para varios fines.

Flujo básico de tokens de estado privado
Diagrama de secuencias: En el diagrama, se muestra un uso básico de PST en una situación real en la que dos sitios web quieren intercambiar alguna señal sobre esa instancia específica de Chrome. Ambos sitios web realizan las operaciones de emisión y canje en diferentes momentos, y pueden intercambiar una señal de confianza entre ellos.

Define tu estrategia de tokens

Para definir tu estrategia de tokens, debes comprender los conceptos clave de PST (tokens y registros de canje), las variables, los comportamientos y las limitaciones para poder pensar en el uso potencial de tu caso de uso.

Tokens y registros de canje: ¿cuál es la relación entre ellos?

Cada dispositivo puede almacenar hasta 500 tokens por sitio web de nivel superior y entidad emisora. Además, cada token tiene metadatos que informan qué clave usó la entidad emisora para emitirlo. Esa información se puede usar para decidir si canjear o no un token durante el proceso de canje. El navegador almacena los datos de PST de forma interna en el dispositivo del usuario y solo puede acceder a ellos la API de PST.

Cuando se canjea un token, el registro de canje (RR) se almacena en el dispositivo. Este almacenamiento actúa como una caché para futuros canjes. Existe un límite de dos canje de tokens cada 48 horas, por dispositivo, página y entidad emisora. Cuando sea posible, las llamadas de canje nuevas usarán RR almacenados en caché, en lugar de generar una solicitud a la entidad emisora.

Relación entre PST y RR
  1. Se emiten tokens nuevos (máx. 500 por entidad emisora, sitio y dispositivo).
  2. Todos los tokens se almacenan en el dispositivo (similar al almacén de cookies).
  3. Si no se encuentran RR activos, se pueden generar nuevos RR después de la emisión (un máximo de 2 cada 48 horas).
  4. Los RR se consideran activos hasta el vencimiento y se usarán como caché local.
  5. Las nuevas llamadas de canje se ingresarán en la caché local (no se generan nuevos RR).

Después de definir tu caso de uso, debes definir la vida útil de tu RR con cuidado, ya que esto definirá cuántas veces podrás usarlos en tu caso.

Asegúrate de comprender los siguientes comportamientos y variables fundamentales antes de definir tu estrategia:

Variable / comportamiento Descripción Uso potencial
Metadatos de las claves de token Cada token puede emitirse con una sola clave criptográfica y, en PST, hay un límite de seis claves por entidad emisora. Una forma posible de usar esta variable es definir un rango de confianza para tus tokens en función de tus claves criptográficas (por ejemplo, clave 1 = alta confianza, mientras que clave 6 = no confianza).
Fecha de vencimiento del token La fecha de vencimiento del token es la misma que la fecha de vencimiento de la clave. Las claves se pueden rotar al menos cada 60 días. Además, todos los tokens emitidos con claves no válidas también se consideran no válidos.
Límite de la tasa de canje de tokens Existe un límite de dos canjes de tokens por dispositivo y entidad emisora cada 48 horas. Depende de la cantidad estimada de canjes que requiere tu caso de uso cada 48 horas.
Cantidad máxima de entidades emisoras por origen de nivel superior Actualmente, la cantidad máxima de entidades emisoras por origen de nivel superior es dos. Define cuidadosamente las entidades emisoras de cada página.
Tokens por entidad emisora en un dispositivo Actualmente, la cantidad máxima de tokens por entidad emisora en un dispositivo específico es 500. Asegúrate de mantener la cantidad de tokens por debajo de 500 por entidad emisora.

Asegúrate de controlar los errores de tu página web cuando intentes emitir tokens.
Rotación de compromisos clave Cada entidad emisora de PST debe exponer un extremo con compromisos de clave que se puedan cambiar cada 60 días, y cualquier rotación más rápida se ignorará. Si tus claves vencerán en menos de 60 días, es obligatorio actualizar tus compromisos clave antes de esa fecha para evitar interrupciones (consulta los detalles).
Duración del registro de canje La vida útil del RR se puede definir para determinar una fecha de vencimiento. Dado que los RR se almacenan en caché para evitar nuevas llamadas de canje innecesarias a la entidad emisora, es importante que te asegures de tener indicadores de canje lo suficientemente actualizados. Dado que hay un límite de frecuencia de canje de dos tokens cada 48 horas, es importante que definas la vida útil de tu RR para poder ejecutar llamadas de canje con éxito durante al menos este período (la vida útil del RR se debe configurar según corresponda). Se recomienda configurar esta esperanza de vida en el orden de las semanas.

Situaciones de ejemplo

Situación 1: La vida útil de los RR es inferior a 24 horas (t=t) y el canje se realiza varias veces durante el período de 48 horas.

Situación de ejemplo 1 de PST: esperanza de vida baja.
En este caso, hay un período de 28 horas en el que el usuario no podrá canjear tokens nuevos y todos los RR vencerán.

Situación 2: La vida útil de RR es de 24 horas y el canje se realiza varias veces durante el período de 48 horas.

Situación de ejemplo 2 de PST: vida útil de 24 horas.
En este caso, como la vida útil del RR es de 24 horas, los canjes se pueden realizar en el transcurso de 48 horas sin limitaciones.

Situación 3: La vida útil de RR es de 48 horas y el canje se realiza varias veces durante el período de 48 horas.

Situación de ejemplo 3 de PST: vida útil de 48 horas.
En este caso, como la vida útil de los RR es de 48 horas, los canjes se pueden realizar en el transcurso de 48 horas sin limitaciones.

Ejecutar la demostración

Antes de adoptar PST, recomendamos que se configure primero con la demostración. Para probar la demostración de PST , deberás ejecutar Chrome con marcas a fin de habilitar los compromisos de claves de la entidad emisora de la demostración (sigue las instrucciones disponibles en la página de demostración).

Pantalla de demostración de PST.

Si ejecutas esta demostración, tu navegador usará la entidad emisora de la demostración y los servidores de canje para proporcionar y consumir tokens.

Consideraciones técnicas

La demostración se ejecutará mejor si implementas los siguientes pasos:

  • Asegúrate de detener todas las instancias de Chrome antes de ejecutar Chrome con funciones experimentales.
  • Si usas una máquina con Windows, consulta esta guía sobre cómo pasar parámetros al objeto binario ejecutable de Chrome.
  • Abre las Herramientas para desarrolladores de Chrome en Aplicaciones > Almacenamiento > Tokens de estado privado mientras usas la aplicación de demostración para ver los tokens que la entidad emisora de la demostración emitió o canjeó.
Pantalla de las Herramientas para desarrolladores de Chrome que muestra PST.

Configuración para la adopción

Convertirse en entidad emisora

Las entidades emisoras desempeñan una función clave en PST. Asignan valores a los tokens para determinar si un usuario es un bot o no. Si quieres comenzar a usar PST como entidad emisora, deberás completar el proceso de registro de la entidad emisora para registrarte.

Para postularse como entidad emisora, el operador del sitio web de la entidad emisora debe abrir un problema nuevo en el repositorio de GitHub con la plantilla “Nueva entidad emisora de PST”. Sigue las instrucciones del repositorio para resolver el problema. Una vez que se verifique un extremo, se combinará con este repositorio y la infraestructura del servidor de Chrome comenzará a recuperar esas claves.

Servidores emisores

Las entidades emisoras y canjeadores son los actores clave para PST. Los servidores y los tokens son las herramientas clave de PST. Si bien ya proporcionamos algunos detalles sobre los tokens y en la documentación de GitHub, queríamos ofrecer más detalles sobre los servidores PST. Para obtener la configuración como entidad emisora de PST, primero debes configurar un servidor emisor.

Implementa tu entorno: servidores de la entidad emisora

Para implementar el servidor de entidad emisora de tokens, deberás compilar tu propia aplicación del servidor que exponga los extremos HTTP.

El componente de entidad emisora se compone de dos módulos principales: (1) el servidor de entidad emisora y (2) la entidad emisora del token.

Componentes del servidor de la entidad emisora.

Al igual que con todas las aplicaciones orientadas a la Web, recomendamos una capa adicional de protección al servidor de la entidad emisora.

  1. Servidor emisor: En nuestra implementación de ejemplo, el servidor emisor es un servidor Node.js que usa el framework Express para alojar los extremos HTTP del emisor. Puedes consultar el código de muestra en GitHub.

  2. Entidad emisora de tokens: El componente criptográfico de la entidad emisora no requiere ningún lenguaje específico, pero, debido a los requisitos de rendimiento de este componente, proporcionamos una implementación de C como ejemplo, que usa la biblioteca Boring SSL para administrar los tokens. Puedes encontrar el ejemplo de código de la entidad emisora y más información sobre la instalación en GitHub.

  3. Claves: El componente de entidad emisora del token utiliza claves EC personalizadas para encriptar tokens. Estas claves se deben proteger y almacenar en un almacenamiento seguro.

Requisitos técnicos para los servidores de la entidad emisora

Según el protocolo, deberás implementar al menos dos extremos HTTP en el servidor de la entidad emisora:

  • Compromiso de clave (por ejemplo, /.well-known/private-state-token/key-commitment): Este extremo es donde los detalles de la clave pública de encriptación estarán disponibles para que los navegadores confirmen que tu servidor es legítimo.
  • Emisión de tokens (por ejemplo, /.well-known/private-state-token/issuance): Es el extremo que emite el token en el que se controlarán todas las solicitudes de tokens. Este extremo será el punto de integración para el componente de la entidad emisora del token.

Como se mencionó antes, debido al alto tráfico previsto que este servidor controlará potencialmente, te recomendamos que lo implementes con una infraestructura escalable (por ejemplo, en un entorno de nube) para poder ajustar tu backend según una demanda variable.

Envía una llamada al servidor de la entidad emisora

Implementa una llamada de recuperación de sitios web a tu pila de entidad emisora para emitir tokens nuevos.

 // issuer request
    await fetch("/.well-known/private-state-token/issuance", {
      method: "POST",
      privateToken: {
        version: 1,
        operation: "token-request"
      }
    });

Consulta un ejemplo de código.

Servidores del canje

Deberás implementar el servicio de canje de tokens compilando tu propia aplicación del servidor. Esto te permitirá leer los tokens que envía una entidad emisora. En los siguientes pasos, se describe cómo canjear tokens y cómo leer los registros de canje asociados con ellos.

Puedes optar por ejecutar la entidad emisora y el canjeador en el mismo servidor (o grupo de servidores).

Componentes del servidor del canje.
Componentes de la demostración de PST: Son los componentes principales del servidor de canje. El servidor del canje (aplicación Node.js) y el canjeador de tokens (el componente criptográfico responsable de verificar las firmas y los tokens en el proceso de canje)

Requisitos técnicos para los servidores de canjes

Según el protocolo, deberás implementar al menos dos extremos HTTP para el servidor de canje:

  • /.well-known/private-state-token/redemption: Es el extremo en el que se controlará todo el canje de tokens. En este extremo, se integrará el componente de canje de tokens.

Cómo enviar una llamada al servidor del canje

Para canjear tokens, deberás implementar una llamada de recuperación del sitio web en tu pila de canjes a fin de canjear los tokens emitidos anteriormente.

    // redemption request
    await fetch("/.well-known/private-state-token/redemption", {
      method: "POST",
      privateToken: {
        version: 1,
        operation: "token-redemption",
        refreshPolicy: "none"
      }
    });

Consulta la muestra de código.

Después de canjear un token, puedes enviar el registro de canje (RR) con otra llamada de recuperación:

    // attach redemption records from the issuers to the request
    await fetch("<DESTINATION_RESOURCE>", {
      method: "POST",
      privateToken: {
        version: 1,
        operation: "send-redemption-record",
        issuers: [<ISSUER_DOMAIN>]
      }
    });

Consulta la muestra de código.

Implementa tu implementación

Para probar la implementación, primero navega a la página web en la que se realiza la llamada emisora y confirma que los tokens se creen según tu lógica. Verifica en tu backend que las llamadas se hayan realizado de acuerdo con la especificación. Luego, ve a la página web en la que se realiza la llamada de canje y confirma que se hayan creado los RR, según tu lógica.

Implementación en el mundo real

Te recomendamos que elijas sitios web segmentados que formen parte de tu caso de uso específico:

  • Poca cantidad de visitas mensuales (aprox. <1 millón de visitas al mes): primero debes comenzar por implementar la API para un público pequeño.
  • Eres el propietario y el control: si es necesario, puedes inhabilitar rápidamente la implementación sin aprobaciones complejas.
  • No hay más de una entidad emisora: Para limitar la cantidad de tokens a fin de simplificar las pruebas.
  • No más de dos canjes: Deberás simplificar la solución de problemas en caso de problemas.

Solución de problemas

Puede inspeccionar las PST desde las pestañas Network y Application de Chrome DevTools.

En la pestaña Red:

Inspección de Herramientas para desarrolladores en la pestaña de red
Inspección de Herramientas de desarrolladores para PST: Ve a Red > Tokens de estado privado para obtener toda la información relevante sobre los tokens y los emisores de una página específica.

En la pestaña Aplicación:

Inspección de Herramientas para desarrolladores en la pestaña Aplicación
Inspección de Herramientas de desarrolladores para PST: Ve a Aplicación > Tokens de estado privado para obtener toda la información relevante sobre los tokens y las entidades emisoras de una página específica.

Obtén más información sobre esta integración de Herramientas de desarrolladores.

Prácticas recomendadas y solución de problemas del servidor

Para que la entidad emisora y el servidor de canje funcionen de manera eficaz, sugerimos implementar las siguientes prácticas recomendadas para garantizar que no te encuentres con desafíos de acceso, seguridad, registro o tráfico para PST.

  • Tus extremos deben aplicar criptografía sólida mediante TLS 1.3 o 1.2.
  • Tu infraestructura debe estar lista para manejar volúmenes variables de tráfico (incluidos los aumentos repentinos).
  • Asegúrate de que tus claves estén protegidas y sean alineadas con tu Política de control de acceso, tu estrategia de administración de claves y tus planes de continuidad empresarial.
  • Agrega métricas de observabilidad a tu pila para asegurarte de que tendrás visibilidad para comprender el uso, los cuellos de botella y los problemas de rendimiento después de pasar a producción.

Más información

  1. Revisa la documentación para desarrolladores:
    1. Comienza por leer la descripción general para ponerte al día con PST y sus capacidades.
    2. Mira el video de presentación de PST.
    3. Pruebe la demostración de PST.
    4. También lee la explicación de la API para obtener más detalles.
    5. Obtén más información acerca de las especificaciones actuales de la API.
  2. Contribuye a la conversación a través de los problemas de GitHub o las llamadas a W3C.
  3. Para comprender mejor la terminología, consulta el glosario de Privacy Sandbox.
  4. Para obtener más información sobre los conceptos de Chrome, como "prueba de origen" o "marcas de Chrome", consulta los videos y artículos cortos disponibles en goo.gle/cc.