1 points par GN⁺ 2026-06-01 | 2 commentaires | Partager sur WhatsApp
  • La vérification d’appareil « Verify you're human » de Cloudflare Turnstile boucle à l’infini depuis environ une semaine sur les navigateurs basés sur WebKitGTK
  • La cause directe du blocage d’accès à plusieurs sites semble être une tentative de Cloudflare d’obtenir une empreinte de l’appareil via WebGL
  • Le message de Turnstile indique que la prise d’empreinte du navigateur est utilisée pour vérifier qu’il s’agit bien d’un humain, et que les outils de blocage ou de randomisation peuvent faire paraître l’utilisateur comme un bot
  • WebKit bloque ce type de fonctionnalité depuis des années, et cela ne semble pas être une option de confidentialité facilement désactivable par l’utilisateur
  • Alors que Safari semblerait bénéficier d’une exception, l’ensemble des navigateurs WebKitGTK se retrouve bloqué, et les utilisateurs de Firefox avec certains réglages de protection pourraient aussi être touchés

Vérification Turnstile en boucle sur WebKitGTK

  • La vérification d’appareil « Verify you're human » de Cloudflare Turnstile boucle à l’infini depuis environ une semaine sur les navigateurs basés sur WebKitGTK, empêchant l’accès à plusieurs sites web
  • La cause du blocage semble être une tentative de Cloudflare d’obtenir une empreinte de l’appareil via WebGL
  • Le texte d’information de Turnstile indique que la prise d’empreinte du navigateur est utilisée pour déterminer s’il s’agit d’un humain
  • Les outils de confidentialité qui bloquent ou randomisent la prise d’empreinte peuvent faire apparaître le navigateur comme un bot cherchant à dissimuler son identité
  • WebKit bloque ce type de fonctionnalité depuis des années, et cela ne semble pas être une fonctionnalité de confidentialité facile à désactiver
  • Alors que Cloudflare semblerait avoir prévu une exception pour Safari, l’ensemble des navigateurs WebKitGTK se retrouve bloqué

Comportement de protection associé dans Firefox

2 commentaires

 
GN⁺ 2026-06-02
Avis sur Lobste.rs
  • L’article semble mélanger plusieurs sujets à propos de Firefox. Ayant fait partie de l’équipe qui a travaillé directement là-dessus, je peux dire que les protections anti-empreinte de Firefox fonctionnent de plusieurs façons
    D’abord, Firefox limite les informations des chaînes WebGL vendor/renderer, y compris les chaînes dites « unmasked ». Un exemple de code vérifiable directement a été posté par Fatih dans le commentaire 14. L’affirmation selon laquelle cela aurait cassé quelque chose est totalement fausse
    Ensuite, Firefox randomise aussi la sortie canvas. Si on appelle toDataURL() sur le même canvas, la valeur renvoyée diffère subtilement d’une session à l’autre. On peut par exemple le tester entre mode navigation privée/mode normal, ou dans différents container tabs
    Troisièmement, cette fonctionnalité ainsi que d’autres protections anti-empreinte récentes ont été conçues à partir d’analyses empiriques afin d’être efficaces sans casser le Web. La plupart sont activées par défaut, et si l’on veut aller plus loin, il suffit de passer « Enhanced Tracking Protection » en mode strict dans les paramètres
    Quatrièmement, le mode resistFingerprinting n’apparaît pas dans les paramètres et n’est accessible que via about:config, car il est connu pour pouvoir casser le Web. Il est conservé pour Tor Browser, qui est un fork de Firefox, mais personnellement je pense que les protections côté Enhanced Tracking Protection sont bien meilleures

  • Je ne défends pas le fingerprinting, mais comme cela fait actuellement partie de mon travail, je m’intéresse aux outils de blocage de bots
    L’objectif de Cloudflare avec Turnstile semble être de créer un widget de défense anti-bot où l’humain n’a pas besoin de résoudre un CAPTCHA. J’imagine que cela fonctionne en laissant passer la plupart des utilisateurs tout en observant leur comportement sur plusieurs sites via le fingerprinting ; je me demande si cette compréhension est correcte
    Est-il possible de réaliser un widget sans CAPTCHA et sans fingerprinting ? Est-ce possible tout court ? J’ai aussi entendu dire que contourner Turnstile n’était pas si difficile :tm:. Est-ce que tous les widgets de blocage de bots reposent au final sur une sécurité par obscurité ?

    • J’ai travaillé dans ce domaine, mais je ne parle pas au nom de mon ancien employeur. Le fingerprinting sert à relier le trafic d’un même acteur sur un même site à travers plusieurs IP
      Le fait qu’il se promène sur plusieurs sites importe peu ; l’essentiel est de détecter qu’il revient plusieurs fois sur le même site
      Pour créer un widget sans CAPTCHA et sans fingerprinting, l’attestation matérielle peut aussi fonctionner. Mais tout le monde déteste ça. Apple fournit une attestation matérielle, et comme Cloudflare l’utilise sur Safari, Safari peut passer même avec la randomisation canvas. Contrairement à ce que dit ce billet de blog, Cloudflare n’a pas mis en place d’exception spéciale pour Safari
      On peut aussi exiger une preuve de travail, mais il faut alors accepter d’exclure beaucoup d’utilisateurs du Web qui n’ont qu’un téléphone Android d’entrée de gamme, et il faut que la valeur de chaque action de bot soit suffisamment faible pour que les opérateurs de bots n’aient pas intérêt à exécuter cette preuve de travail. Ces conditions sont parfois réunies, mais pas pour des sites comme les boutiques en ligne ou les banques
      À part cela, il n’y a pas de bonne solution. Je ne connais pas bien Turnstile, mais le produit de l’entreprise où j’étais était clairement difficile à contourner à grande échelle. En revanche, quand ce n’était pas à grande échelle, nous n’essayions pas délibérément de rendre le contournement difficile, et je ne serais pas surpris que Cloudflare ait fait le même choix
      Le but de tous les widgets de blocage de bots n’est pas de rendre les bots impossibles, mais de rendre économiquement impossible l’attaque d’un site Web par des bots. C’est pourquoi les règles du jeu diffèrent des autres domaines de la cybersécurité, et l’obscurité fonctionne plutôt bien. L’objectif est que l’adversaire doive continuer à supporter des coûts supplémentaires au fil du temps
    • Le fingerprinting canvas/webgl est en pratique un problème déjà résolu pour les web scrapers. C’est même une question d’entretien d’embauche pour des postes liés au web scraping
      Une solution courante consiste à extraire les commandes de rendu. On peut soit utiliser un navigateur modifié qui dumpe les commandes, soit les obtenir en désobfusquant le script
      Ensuite, il suffit d’héberger sur son propre site le script canvas/webgl extrait, afin de générer à partir des visiteurs des empreintes réutilisables pour les bots
      Cette méthode est assez robuste. Ces scripts de fingerprinting changent rarement, car les modifier invaliderait la base de données canvas → GPU/vendor/browser/OS
      En résumé, c’est un nouvel exemple où l’on rend seulement l’expérience plus pénible pour les utilisateurs ordinaires, alors que les web scrapers sérieux connaissent déjà plusieurs stratégies de contournement
 
GN⁺ 2026-06-01
Discussions sur Hacker News
  • Cloudflare est connu pour utiliser l’empreinte du navigateur pour détecter les scrapers. Par exemple, il compare l’empreinte JA3 avec l’agent utilisateur pour bloquer des outils comme cURL tout en autorisant OkHttp (client Android), mais on peut facilement se faire passer pour autre chose avec des paquets comme CycleTLS [1]
    Je n’ai pas envie de défendre ça, puisqu’au nom de la « protection contre les bots » ils bloquent une grande partie d’Internet, mais si l’on n’utilise pas de preuve de travail (PoW), la prise d’empreinte peut être une méthode réaliste — au prix d’une destruction totale de la vie privée de tout le monde
    Cromite, un fork de Chromium orienté vie privée pour Android, a des problèmes récurrents avec Cloudflare Turnstile [2], parce que Cloudflare collecte l’empreinte de différentes manières pour laisser passer le challenge
    Pour résoudre le problème, il faudrait rejoindre le programme Cloudflare Browser Developer, ce qui exigeait de signer un NDA, et le refus du responsable du projet paraît justifié
    Pour voir jusqu’où Cloudflare fouille dans l’empreinte du navigateur, il suffit de regarder dans le ticket [2] quels drapeaux il faut désactiver pour passer le challenge. Au minimum, Cloudflare pourrait être assez souple pour remplacer cela par une preuve de travail au lieu de simplement bloquer les gens lorsqu’ils soumettent un formulaire ou accèdent à un site web
    [1]: https://github.com/Danny-Dasilva/CycleTLS
    [2]: https://github.com/uazo/cromite/issues/2365

    • La « protection contre les bots » de Cloudflare ne bloque pas seulement une grande partie d’Internet, mais aussi beaucoup de gens. Cette tendance à externaliser sans réflexion le contrôle d’accès aux sites web à une seule entreprise est très inquiétante
    • La protection contre les bots fondée sur l’empreinte est proche de l’illusion. Les signaux côté client peuvent être falsifiés dès qu’on a un niveau un peu au-dessus de la moyenne, et la prise d’empreinte n’est qu’un outil de concentration du marché au service du business publicitaire
      Attribuer une réputation aux IP résidentielles et aux plages commerciales pourrait être une autre manière d’obtenir le résultat recherché. Cela pousserait les opérateurs à être beaucoup plus prudents face aux abus d’IP, mais dans ce cas, l’activité DDoS des attaquants comme celle des défenseurs pourrait s’effondrer en même temps
      Ironiquement, pas mal d’entreprises investissent à la fois dans la création de leurs propres bots et dans des moyens de bloquer ceux des autres
    • La protection anti-scraping de Cloudflare, c’est au mieux un cadenas à 5 dollars : tout ça est vain. Ça peut peut-être arrêter un ado désœuvré, mais pas même un voleur amateur ; si quelqu’un veut aspirer des données publiques, il finira par le faire. Il n’y a pas de moyen de l’empêcher
    • La prise d’empreinte pour la « protection contre les bots » est indiscernable de la prise d’empreinte pour la surveillance de masse
    • J’aimerais qu’on explique davantage pourquoi la preuve de travail serait un cauchemar écologique. À la louche, ça ne semble pas si grave
      Si on applique une charge de 5 W pendant 2 secondes, cela fait 0,002 Wh, et comme il faut aussi que les smartphones puissent passer, on ne peut pas imposer une preuve de travail de plusieurs dizaines de secondes. Même avec 8 milliards de vérifications par jour pendant un an, on arrive à 8 GWh
  • Il y a une raison pour laquelle privacy.resistfingerprinting ne s’active pas même quand on choisit « Strict » dans « Enhanced Privacy Protection ». Je l’ai utilisé longtemps, mais les sites se cassaient bizarrement, donc je devais sans cesse le désactiver et ajouter des contournements
    Sur certains sites, la gestion du fuseau horaire se dérègle, au point que j’ai failli rater plusieurs rendez-vous. Pour faire comprendre aux utilisateurs que Firefox n’est pas cassé, il faudrait quasiment une bannière permanente du style : « Si des sites se cassent, affichent des glitches bizarres, si l’heure de votre ordinateur semble fausse, si les polices sont étranges ou si des vidéos ne se lancent parfois pas, cliquez ici pour désactiver la protection contre l’empreinte »
    Fait intéressant, Turnstile casse avec resistfingerprinting mais fonctionne avec fingerprintingProtection. Ce dernier semble avoir été conçu en tenant compte de ce genre de situation pourrie

    • On peut l’accepter comme raison de ne pas l’activer par défaut, mais c’est un mauvais argument pour ne pas l’activer même en mode Strict
      En mode Strict, on s’attend dans une certaine mesure à ce que des sites cassent, mais pas à ce que les voies de pistage restent grandes ouvertes. Ça paraît trompeur
  • Je maintiens un navigateur minoritaire[0], et plusieurs utilisateurs rencontrent ce problème depuis quelques semaines[1]. Pour l’instant, je ne pense pas que ce soit un bug du navigateur, mais il peut évidemment y avoir des bugs liés, et j’aimerais plus de regards dessus : toute idée ou aide pour améliorer ou atténuer la situation est bienvenue
    [0]: https://konform-browser.codeberg.page/
    [1]: Je ne sais pas si c’est la majorité ou tout le monde. Sans télémétrie, on dépend des retours utilisateurs et de nos propres tests

  • « Si on a remarqué que vous vous déguisiez, c’est que vous ne vous déguisiez pas assez bien. »
    Cette stupide guerre contre les bots mène à l’effondrement d’Internet et finira par en faire un autre jardin clos où seuls des agents approuvés et hostiles aux utilisateurs seront autorisés. Il ne faut pas se laisser embobiner par le baratin sur les « scrapers IA » : ce n’est qu’un moyen de fabriquer le consentement

    • Si des bots martèlent le serveur, il suffit de mettre en place une limitation de débit. Et si vous ne voulez pas que d’autres accèdent à un contenu, ne le servez pas via un serveur web
  • Est-ce que Google et Cloudflare ont conclu un accord pour rendre l’usage des navigateurs non Chrome plus difficile ? La pression pour utiliser Chrome ne cesse d’augmenter, et ce qu’on peut faire en matière de filtrage publicitaire dans Chrome ne cesse de diminuer

    • C’est probablement l’une des conséquences naturelles du fait que Chrome soit le navigateur le plus populaire du web. La majorité du trafic légitime vient donc de Chrome
    • Quand j’ai quitté Cloudflare il y a 5 ans, le seul navigateur approuvé en interne était Chrome
    • Et ça ne s’arrête pas là : https://blog.cloudflare.com/eliminating-captchas-on-iphones-...
  • Dès que vous cachez quelque chose, vous êtes automatiquement classé dans la catégorie des « agents qui ont une raison de se cacher »
    Pour être clair, c’est bien là le problème central. Puisqu’une si grande partie d’Internet passe par Cloudflare, il devrait y avoir suffisamment de signaux alternatifs permettant de montrer plus fortement qu’on n’est pas un acteur malveillant, plutôt que de dépendre d’un seul signal précis
    Cela dit, comme il y a très peu d’utilisateurs avec cette configuration dans la base installée, il se peut qu’il faille très longtemps avant qu’une vraie solution émerge

  • Ils disent : « Vous semblez vouloir cacher votre identité », mais au départ ils n’avaient pas le droit d’exiger cela

    • Avec la même logique, on n’aurait pas non plus le droit de voir le contenu d’un site web
  • Je ne connaissais pas privacy.resistfingerprinting, mais désormais j’ai l’intention de laisser échouer tous les Cloudflare Turnstile

    • Chez moi, Turnstile fonctionne bien même avec l’option activée
  • Le réglage privacy.resistfingerprinting est destiné à Tor Browser

    • Dans Tor Browser, il est activé par défaut, et je ne suis même pas sûr qu’on puisse le désactiver
      Il est aussi activé par défaut dans Konform Browser et Mullvad Browser, qui reprennent beaucoup de correctifs de Tor Browser liés à la vie privée et à la sécurité
  • J’aime bien cet adage lié à la criminalité : si X % de la population enfreint une loi, c’est probablement qu’il faut l’abolir. Les drogues récréatives en sont un exemple évident
    Si le rendu canvas aléatoire a été considéré comme un comportement de bot, mais que désormais tous les utilisateurs de Firefox le font, est-ce que Cloudflare ne devrait pas simplement le « légaliser » aussi ?