Trust Tokens es una nueva API para ayudar a combatir el fraude y distinguir a los bots de los humanos reales, sin seguimiento pasivo.
Mise à jour
Sûr et sécurisé
résumé
Los tokens de confianza permiten que un origen emita tokens criptográficos a un Nom d'utilisateur en el que confía. Los tokens son almacenados por el le navigateur del usuario. El navegador puede utilizar los tokens en otros contextos para evaluar la autenticidad del usuario.
La API Trust Token permite que la confianza de un usuario en un contexto (como Gmail.com) se transmita a otro contexto (como un anuncio que se ejecuta en nytimes.com) sin identificar al usuario o vincular las dos identidades.
Pourquoi avons-nous besoin de jetons de confiance?
La la toile necesita formas de establecer señales de confianza que muestren que un usuario es quien dice ser, y no un bot que finge ser un humano, o un tercero malintencionado que defrauda a una persona o servicio real. La protección contra el fraude es particularmente importante para los anunciantes, los proveedores de anuncios y las CDN.
Malheureusement, de nombreux mécanismes existants pour mesurer et propager la fiabilité (pour déterminer si une interaction avec un site provient d'un être humain réel, par exemple) tirent parti de techniques qui peuvent également être utilisées pour la prise d'empreintes digitales.
Terme clé:
Empreintes digitales permet aux sites d'identifier et de suivre les utilisateurs individuels en obtenant des données sur leur appareil, leur système d'exploitation et les paramètres du navigateur (tels que les préférences de langue,
agent utilisateury fuentes disponibles) o cambios en el estado del dispositivo. Esto se puede hacer en el serveur comprobando los en-têtes de las solicitudes o en el client avec JavaScript.
L'empreinte digitale utilise des mécanismes dont les utilisateurs ne sont pas conscients et ne peuvent pas contrôler. Des sites comme Panoptique y
amiunique.org montrez comment les données d'empreintes digitales peuvent être combinées pour vous identifier en tant qu'individu.
L'API doit préserver la confidentialité, permettant à la confiance de se répandre sur les sites sans suivre les utilisateurs individuels.
Qu'y a-t-il dans la proposition de jetons de confiance?
La web se basa en generar señales de confianza para detectar fraudes y pourriel. Una forma de hacer esto es rastreando la navegación con identificadores globales por usuario entre sitios. Para una API que preserva la privacidad, eso no es aceptable.
De la proposition
explicateur:
Cette API propose une nouvelle zone de stockage par origine pour les jetons cryptographiques de style «Privacy Pass», qui sont accessibles dans des contextes tiers. Ces jetons ne sont pas personnalisés et ne peuvent pas être utilisés pour suivre les utilisateurs, mais ils sont signés de manière cryptographique afin qu'ils ne puissent pas être falsifiés.
Lorsqu'une origine se trouve dans un contexte où ils font confiance à l'utilisateur, ils peuvent émettre un lot de jetons au navigateur, qui peuvent être «dépensés» ultérieurement dans un contexte où l'utilisateur serait inconnu ou moins fiable. Fondamentalement, les jetons sont indiscernables les uns des autres, ce qui empêche les sites Web de suivre les utilisateurs à travers eux.
De plus, nous proposons un mécanisme d'extension permettant au navigateur de signer les demandes sortantes avec des clés liées à un échange de jeton particulier.
Exemple d'utilisation de l'API
Ce qui suit est une adaptation de
exemple de code dans l'explicateur d'API.
Imaginez qu'un utilisateur visite un site Web d'actualités (éditeur.exemple
) que incorpora La publicité de una red publicitaria de terceros (foo.example
). L'utilisateur a déjà utilisé un site de réseau social qui émet des jetons de confiance (émetteur.exemple
).
La séquence suivante montre le fonctionnement des jetons de confiance.
1. L'utilisateur visite émetteur.exemple
.
2. émetteur.exemple
vérifie que l'utilisateur est un humain et exécute le JavaScript suivant:
aller chercher('https://issuer.example/issue', {
trustToken: {
taper: 'token-request'
}
});
3. Le navigateur de l'utilisateur stocke les jetons de confiance associés à émetteur.exemple
.
4. Quelque temps plus tard, l'utilisateur visite éditeur.exemple
.
5. éditeur.exemple
veut savoir si l'utilisateur est un humain, alors ils demandent
émetteur.exemple
exécution du JavaScript suivant:
aller chercher('https://issuer.example/redeem', {
trustToken: {
taper: 'srr-token-redemption'
}
});
Avec ce code:
- Le navigateur demande un rachat.
- L'émetteur renvoie un enregistrement de remboursement signé (SRR) indiquant qu'il a déjà émis un jeton valide pour ce navigateur.
- Lorsque la promesse retournée est résolue, le SRR peut être utilisé dans les demandes de ressources suivantes.
6. éditeur.exemple
alors vous pouvez exécuter le JavaScript suivant dans un document de niveau supérieur:
aller chercher('foo.example/get-content', {
trustToken: {
taper: 'send-srr',
issuer: 'https://issuer.example'
}
});
Avec ce code:
foo.example
vous obtenez le SRR, et maintenant vous avez une indication que
émetteur.exemple
pensait que cet utilisateur était humain.foo.example
répondre en conséquence.
Es posible que tenga historial de compras con un sitio de comercio electrónico, registros en una plataforma de ubicación o historial de cuenta en un banco. Los emisores también pueden considerar otros factores, como cuánto tiempo ha tenido una cuenta u otras interacciones (como CAPTCHA o envío de formularios) que aumentan la confianza del emisor en la probabilidad de que être un ser humano real.
Émission de jetons de confiance
Si un émetteur de jetons de confiance considère que l'utilisateur est digne de confiance, par exemple
émetteur.exemple
, l'émetteur peut obtenir des jetons de confiance pour l'utilisateur en effectuant un
aller chercher ()
demande avec un nouveau trustToken
paramètre:
aller chercher('issuer.example/.well-known/trust-token', {
trustToken: {
taper: 'token-request',
issuer: <issuer>
}
}).then(...)
Cela invoque une extension du Passe de confidentialité protocole de diffusion utilisant un nouvelle crypto primitive:
-
Générez un ensemble de nombres pseudo-aléatoires appelés nonces.
-
Ciego los nonces (codifíquelos para que el emisor no pueda ver su Contenu) y adjúntelos a la solicitud en un
Jeton de confiance Sec
entête. -
Envíe una solicitud PUBLIER al punto final proporcionado.
Le point de terminaison répond avec des jetons aveugles (signatures sur les nonces aveugles), puis les jetons sont démasqués et le navigateur les stocke en interne avec les nonces associés en tant que jetons de confiance.
Rachat de jetons de confiance
Un site d'éditeur (comme éditeur.exemple
dans l'exemple ci-dessus), vous pouvez vérifier s'il existe des jetons de confiance disponibles pour l'utilisateur:
const userHasTokens = attendre document.hasTrustToken(<issuer>);
Si des jetons sont disponibles, le site de l'éditeur peut les utiliser pour obtenir un enregistrement de remboursement signé:
aller chercher('issuer.example/.well-known/trust-token', {
...
trustToken: {
taper: 'srr-token-redemption',
issuer: 'issuer.example',
refreshPolicy: 'none'
}
...
}).then(...)
Le site de l'éditeur peut alors envoyer le SRR aux requêtes qu'il effectue à l'aide de l'API suivante:
aller chercher('<url>', {
...
trustToken: {
taper: 'send-srr',
issuer: <issuer>,
}
...
}).then(...);
L'éditeur doit inclure le SRR dans les demandes qui nécessitent un jeton de confiance, telles que la publication d'un commentaire, l'aimage d'une page ou le vote dans un sondage.
Los tokens de confianza solo son accesibles a través de las opciones de Fetch, XHR y HTML
item: non accessible directement.
Considérations relatives à la confidentialité
Los tokens están diseñados para ser ‘desvinculables’. Un emisor puede obtener información agregada sobre los sitios que visitan sus usuarios, pero no puede vincular la emisión con el canje: cuando un usuario canjea un token, el emisor no puede diferenciar el token de otros tokens que ha creado. Sin embargo, los tokens de confianza actualmente no existen en el vacío: hay otras formas en que un emisor podría, en teoría, unir la identidad de un usuario en varios sitios, como cookies de terceros y técnicas de seguimiento encubiertas. Es importante que los sitios comprendan esta transición del ecosistema mientras planifican su apoyo. Este es un aspecto general de la transición para muchas API de Privacy bac à sable, por lo que no se analiza más aquí.
Considérations relatives à la sécurité
Confiance dans l'épuisement des jetons: un sitio malicioso podría agotar deliberadamente el suministro de tokens de un usuario de un emisor en particular. Existen varias mitigaciones contra este tipo de ataque, como permitir que los emisores proporcionen muchos tokens a la vez, para que los usuarios tengan un suministro adecuado para garantizar que los navigateurs solo canjeen un token por vista de página de nivel superior.
Prévention des doubles dépenses: il malwares puede intentar acceder a todos los tokens de confianza de un usuario. Sin embargo, los tokens se agotarán con el tiempo, ya que cada canje se envía al mismo emisor de tokens, que puede verificar que cada token se usa solo una vez. Para mitigar el riesgo, los emisores también podrían firmar menos tokens.
Mécanismes de demande
Il peut être possible d'autoriser l'envoi des SRR en dehors de aller chercher ()
, por ejemplo, con solicitudes de navegación. Los sitios también pueden incluir datos del emisor en los encabezados de respuesta HTTP para permitir el canje de tokens en paralelo con la carga de la página.
Pour réitérer: cette proposition a besoin de vos commentaires! Si vous avez des commentaires, veuillez
créer un problème dans le jeton de confiance référentiel explicatif.
Savoir plus
Merci à Kayce Basques, David Van Cleve, Steven Valdez, Tancrède Lepoint et Marshall Vale pour leur aide dans la rédaction et la révision de ce billet.
photo par ZSun Fu au Unsplash.