Phase d'évaluation pour la réduction user-agent

La réduction user-agent vise à réduire les surfaces de fingerprinting passives en limitant les informations de la chaîne User-Agent (UA) à la marque et à la version significative du navigateur, à la distinction entre ordinateur ou mobile et à la plate-forme sur laquelle elle s'exécute. Actuellement, la chaîne UA est partagée sur chaque requête HTTP et exposée en JavaScript à toutes les ressources chargées par le navigateur. Elle contient des informations importantes sur le navigateur, la plate-forme sur laquelle il s'exécute et ses fonctionnalités. Les indicateurs client User-Agent (UA-CH) peuvent fournir les mêmes informations que la chaîne UA complète, tout en permettant aux sites de ne demander que les informations UA dont ils ont besoin.

À partir de la version bêta de Chrome 95, nous ouvrons la phase d'évaluation pour la réduction user-agent afin de permettre aux sites d'accepter dès maintenant la chaîne UA réduite. Cela permettra aux sites de détecter et de résoudre les problèmes avant que l'UA réduite ne devienne le comportement par défaut dans Chrome (la réduction devrait commencer au deuxième trimestre 2022). Si vous souhaitez tester la phase d'évaluation sur 95 utilisateurs de la version bêta avant son lancement auprès des utilisateurs stables, veillez à l'activer et à la tester avant la date de sortie de Chrome 95 (actuellement prévue pour le 19 octobre 2021).

Vous trouverez ci-dessous une présentation de la phase d'évaluation et de ce qui vous attend. Comme toujours, n'hésitez pas à consulter le dépôt GitHub sur la réduction d'UA pour tout commentaire ou problème rencontré au cours de cet essai.

Qu'est-ce que l'user-agent ?

La chaîne User-Agent (UA) est partagée sur chaque requête HTTP et exposée en JavaScript à toutes les ressources chargées par le navigateur. Actuellement, elle contient de nombreuses informations sur le navigateur et la plate-forme sur laquelle il s'exécute.

Pourquoi le user-agent est-il réduit ?

La réduction user-agent vise à réduire les surfaces de fingerprinting passives dans le navigateur Chrome, annoncées pour la première fois en janvier 2020. Lorsque les informations de la chaîne UA sont réduites à la marque et à la version significative du navigateur, à sa distinction sur ordinateur ou mobile et à la plate-forme sur laquelle elle s'exécute, il devient plus difficile d'identifier les utilisateurs individuels.

Quel impact pour les développeurs Web ?

Les sites doivent se préparer à recevoir des chaînes UA réduites et envisager de participer à la phase d'évaluation (détaillée ci-dessous). Les valeurs réduites du user-agent apparaîtront dans:

  • L'en-tête de requête HTTP User-Agent
  • Le getter JavaScript navigator.userAgent
  • Le getter JavaScript navigator.platform
  • Le getter JavaScript navigator.appVersion

Pour recevoir plus d'informations client que celles partagées par le user-agent réduit, les sites devront migrer vers la nouvelle API Client Hints User-Agent. Pour en savoir plus sur les stratégies de migration, consultez la section Migrer vers les indicateurs client user-agent.

Actuellement, les plans de réduction user-agent n'incluent pas iOS ni WebView. Par conséquent, ces plates-formes continueront de recevoir la chaîne user-agent complète. La raison principale est que ces plates-formes n'ont pas encore implémenté les indicateurs client user-agent.

Comment fonctionne cette phase d'évaluation ?

Cette phase d'évaluation est légèrement différente d'une phase d'évaluation standard. Les essais d'origine standards peuvent uniquement contrôler le comportement dans la réponse (par exemple, contrôler l'accès à une API dans le code JavaScript de la réponse). Dans cet essai, notre objectif est de modifier non seulement la chaîne UA fournie dans les API JavaScript, mais également l'en-tête user-agent envoyé dans la requête HTTP.

Pour ce faire, nous définissons un indicateur client temporaire, nommé Sec-CH-UA-Reduced, dont la présence dans une requête indiquera que la valeur de l'en-tête user-agent contient la chaîne UA réduite. L'optimisation du client Sec-CH-UA-Reduced n'est envoyée (avec la chaîne UA réduite) que si le jeton de la phase d'évaluation est valide. L'indication du client Sec-CH-UA-Reduced ne fonctionne pas une fois la phase d'évaluation arrivée à expiration. N'oubliez pas que la première requête de navigation recevra toujours la chaîne user-agent non réduite, sauf si vous définissez Critical-CH header.

Les requêtes de sous-ressources à la même origine envoient automatiquement la même chaîne user-agent que la requête de premier niveau envoyée. Les requêtes de sous-ressources adressées à des origines tierces envoient également la même chaîne user-agent que la requête de niveau supérieur, y compris la chaîne UA réduite si le jeton de la phase d'évaluation est valide, à condition que la règle sur les autorisations le permet.

Comment participer à la phase d'évaluation de la réduction user-agent ?

  1. Pour vous inscrire à la phase d'évaluation et obtenir un jeton pour vos domaines, consultez la page Essai pour user-agent de réduction.

  2. Mettez à jour vos en-têtes de réponse HTTP:

    1. Ajoutez Origin-Trial: <ORIGIN TRIAL TOKEN> à votre en-tête de réponse HTTP, où <ORIGIN TRIAL TOKEN> contient le jeton obtenu lors de votre inscription à la phase d'évaluation.
    2. Ajoutez Accept-CH: Sec-CH-UA-Reduced à votre en-tête de réponse HTTP.
    3. Définir Accept-CH n'entraîne l'envoi de la chaîne user-agent réduite que dans les requêtes ultérieures envoyées à l'origine. Pour renvoyer la première requête de navigation avec la chaîne user-agent réduite, ajoutez Critical-CH: Sec-CH-UA-Reduced à votre en-tête de réponse HTTP, en plus des en-têtes Accept-CH et Origin-Trial.
    4. Remarque: Si les en-têtes de réponse contiennent un jeton Origin-Trial et un Accept-CH: Sec-CH-UA-Reduced valides, toutes les requêtes de sous-ressources (par exemple, pour les images ou les feuilles de style) et les sous-navigations (par exemple, les iFrames) envoient la chaîne UA réduite, même si les origines de ces requêtes ne sont pas inscrites à la phase d'évaluation.
  3. Chargez votre site Web dans Chrome M95 (ou version ultérieure) et commencez à recevoir la chaîne UA réduite.

  4. Si vous rencontrez des problèmes ou envoyez des commentaires, consultez le dépôt GitHub sur la réduction d'UA.

  5. Consultez https://uar-ot.glitch.me/ pour obtenir une démonstration simple de la phase d'évaluation (avec le code source).

Comment participer à la phase d'évaluation en tant qu'intégration tierce ?

À partir de Chrome 96, les intégrations tierces (par exemple, un iFrame dans un autre site) peuvent participer à la phase d'évaluation sans avoir à enregistrer le site de premier niveau.

Pour vous inscrire en tant qu'intégration tierce:

  1. Accédez à l'Essai de User-Agent Reduction, puis cliquez sur S'inscrire.
  2. Lorsque vous créez le jeton, veillez à cocher la case Third-party matching.
  3. Pour recevoir l'en-tête User-Agent réduit de l'intégration tierce, mettez à jour les en-têtes de réponse HTTP.
  4. Pour recevoir la chaîne user-agent réduite dans les API JavaScript, le jeton d'essai doit être injecté via JavaScript.

Voici quelques points importants concernant l'exécution de la phase d'évaluation sur des intégrations tierces : + Critical-CH ne peut pas être spécifié pour les intégrations tierces. Ainsi, la première navigation n'envoie pas la chaîne UA réduite, bien que les requêtes de sous-ressources de l'intégration tierce envoient la chaîne UA réduite. + Si la phase d'évaluation est validée pour l'origine d'un élément intégré tiers, les requêtes ultérieures adressées à la même origine dans une navigation de premier niveau envoient la chaîne UA réduite. C'est pourquoi nous vous recommandons d'accroître la participation à la phase d'évaluation pour les requêtes de niveau supérieur et les demandes d'intégration. + Si le user-agent a désactivé les cookies tiers, la phase d'évaluation ne fonctionnera pas pour l'en-tête User-Agent des requêtes d'intégration tierces. Toutefois, les API JavaScript recevront toujours la chaîne UA réduite.

Comment vérifier que la phase d'évaluation fonctionne ?

Pour vérifier que la phase d'évaluation fonctionne, examinez les en-têtes de requête et vérifiez les points suivants:

  1. L'en-tête user-agent contient la version réduite. Consultez cette liste d'exemples de chaînes UA réduites. Pour savoir facilement que la chaîne de la version mineure de Chrome contient 0.0.0,
  2. L'en-tête Sec-CH-UA-Reduced est défini sur ?1.

Les en-têtes de la réponse initiale contenant le jeton d'évaluation doivent se présenter comme suit:

En-têtes de la réponse initiale contenant le jeton &quot;origin-trial&quot;.

Les en-têtes de requêtes suivants contenant la chaîne UA réduite doivent se présenter comme suit:

En-têtes de requêtes suivants contenant la chaîne UA réduite.

Comment puis-je arrêter de participer à la phase d'évaluation de la réduction user-agent ?

Au cours de l'essai, vous pouvez à tout moment arrêter de participer et recevoir la chaîne user-agent complète. Pour ne plus participer:

  1. Envoyez dans votre réponse HTTP un en-tête Accept-CH qui n'inclut pas Sec-CH-UA-Reduced. Remarque: L'utilisation de Accept-CH avec une valeur vide constitue un moyen valide d'effectuer cette opération si votre site ne demande aucun autre jeton client.
  2. Supprimez l'en-tête Origin-Trial de l'essai de réduction user-agent de votre réponse HTTP.
  3. Si ce champ est défini, supprimez Sec-CH-UA-Reduced de l'en-tête Critical-CH dans votre réponse HTTP.

Quelle est la durée de la phase d'évaluation ?

La phase d'évaluation pour la réduction UA dure au moins six mois, ce qui correspond à environ six étapes clés de Chrome. La phase d'évaluation apparaîtra dans M95 et prendra fin par M101. Chrome évaluera alors les commentaires de la phase d'évaluation avant d'envoyer la chaîne user-agent réduite de manière progressive, conformément au plan de déploiement. Si un site a besoin de plus de temps, il peut activer une phase d'évaluation avant abandon, ce qui lui permettra d'accéder à la chaîne UA complète pendant au moins six mois supplémentaires. Nous publierons plus d'informations sur l'évaluation avant arrêt lorsqu'elle sera prête.

Comment envoyer des commentaires sur la phase d'évaluation de la réduction user-agent ?

Si vous rencontrez des problèmes ou envoyez des commentaires, consultez le dépôt GitHub sur la réduction d'UA.