1 points par GN⁺ 1 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Cette page affiche la localisation, l’appareil, le navigateur, la langue, le GPU, la batterie, les polices et les préférences de l’utilisateur en se basant uniquement sur les données transmises par le navigateur durant les toutes premières millisecondes après la visite, sans exploit ni piratage, en utilisant uniquement des fonctionnalités standard publiquement documentées
  • Elle envoie l’adresse IP de tous les en-têtes de requête à ip-api.com · Free tier · CC-BY-SA pour la convertir en nom de ville et de fournisseur d’accès à Internet, précise que la requête n’est pas conservée et n’affiche à l’écran qu’une partie des octets, tout en indiquant que le reste est également connaissable
  • L’empreinte de police détecte les polices installées via la largeur du texte rendu, Electronic Frontier Foundation · Cover Your Tracks fournit un outil pour vérifier l’unicité du navigateur, et une étude de Princeton de 2014 a trouvé une empreinte canvas sur 5 % des 100 000 sites web les plus visités
  • Bien que la page ne les exécute pas, il existe la Clipboard API, qui peut demander la lecture du dernier contenu copié à l’aide d’un seul geste utilisateur, “The Leaking Battery”, qui a montré une possibilité de suivi pendant jusqu’à 30 minutes via le niveau de batterie et le temps de décharge, ainsi qu’une technique de détection des sites auxquels l’utilisateur est connecté via le favicon
  • Il est précisé que seuls deux événements anonymes, arrivée et fin, ont été envoyés au serveur, et que rien n’est stocké dans cookies, localStorage, sessionStorage, IndexedDB ni dans le cache du service worker ; une fois l’onglet fermé, le visiteur est oublié

Les informations transmises par le navigateur dès son arrivée

  • Toutes les observations de taken. proviennent des données fournies par le navigateur du visiteur durant les toutes premières millisecondes après son arrivée, sans exploit, vulnérabilité ni piratage, en utilisant uniquement des fonctionnalités standard publiquement documentées
  • Localisation

    • L’adresse IP incluse dans tous les en-têtes de requête est envoyée à ip-api.com · Free tier · CC-BY-SA pour être convertie en nom de ville et de fournisseur d’accès à Internet
    • La requête est temporaire et n’est conservée par aucune des deux parties ; seuls le premier et le dernier octet de l’IP sont affichés à l’écran, mais il est précisé que le reste est aussi connu
    • Selon le RGPD, une adresse IP peut être considérée comme une donnée personnelle lorsqu’elle est utilisée pour le suivi, et taken. n’effectue ni suivi, ni conservation, ni journalisation
  • API du navigateur

    • Les observations sur l’appareil, comme l’écran, le navigateur, la langue, le GPU, le nombre de cœurs, la batterie, les polices et les préférences utilisateur, sont obtenues via des API JavaScript standard publiquement documentées sur MDN Web Docs · Mozilla · CC-BY-SA 2.5
    • Il s’agit d’un comportement possible tel que prévu par la conception du navigateur, ce qui mène à la conclusion que « le problème vient de la conception »
  • Empreintes de police et canvas

    • La technique d’empreinte de police, qui détecte les polices installées à partir de la largeur du texte rendu, est documentée depuis 2010, et Electronic Frontier Foundation · Cover Your Tracks propose un outil pour vérifier à quel point un navigateur est unique
    • La plupart des navigateurs sont suffisamment uniques pour permettre un suivi sur le web ouvert même sans cookies, et la combinaison de polices est l’un des signaux les plus puissants
    • Une étude de 2014 du Princeton University · Web Transparency & Accountability Project a été la première à documenter l’empreinte canvas sur le web réel, et en a trouvé sur 5 % des 100 000 sites web les plus visités
    • L’empreinte canvas consiste à faire dessiner au navigateur du visiteur une image cachée, puis à relire les pixels rendus comme identifiant ; taken. n’exécute pas cette technique, mais le navigateur la prend en charge
  • Presse-papiers et batterie

    • Selon la MDN · Clipboard API specification, avec un seul geste utilisateur comme un clic ou un tap, une page peut demander à lire le dernier contenu copié
    • Le dernier contenu copié peut être un mot de passe, une adresse ou un brouillon de message ; taken. ne le demande pas, mais cette fonctionnalité existe bien dans les navigateurs modernes
    • L’article de 2015 “The Leaking Battery” d’Olejnik, Englehardt et Narayanan a montré qu’en combinant uniquement le niveau de batterie et le temps de décharge, il était possible de suivre un visiteur jusqu’à 30 minutes sur plusieurs sites web, sans cookies ni compte
    • Firefox a supprimé cette API en 2016, mais Chrome et Edge l’exposent toujours

Techniques non exécutées et données non laissées

  • Détection des sites de connexion

    • Bien que taken. ne l’exécute pas, une technique consistant à faire charger au navigateur l’URL du favicon d’un service précis puis à observer la réussite ou l’échec pour déterminer à quels sites l’utilisateur est connecté est documentée, légale et largement diffusée
    • Elle exploite la différence entre les images renvoyées selon l’état connecté ou déconnecté, et permet de savoir sans autorisation si l’utilisateur est connecté à Facebook, Google, X, GitHub, Reddit, LinkedIn et d’autres services
  • Le code-barres calculé dans le navigateur

    • Les 16 barres affichées sous le compteur sont composées de hauteurs dérivées du GPU, des polices, de la taille d’écran, de la langue, du fuseau horaire, du système d’exploitation, du navigateur et de la profondeur de couleur
    • Les mêmes données produisent le même code-barres, et des visiteurs différents voient des codes-barres différents ; le calcul a lieu uniquement dans le navigateur et n’est pas transmis
    • Si quelqu’un possède exactement la même empreinte, il verra les mêmes barres, mais cette probabilité est faible
  • Méthode de génération des phrases

    • Toutes les phrases ont été écrites directement par Matt, et aucun modèle de langage ne les écrit ni ne les corrige au moment de l’exécution
    • Le code choisit l’un des modèles de phrases préécrits selon les valeurs renvoyées par le navigateur, et il est conçu pour ne rien dire si la condition ne peut pas être traitée avec une phrase écrite par un humain
  • Ce qui a été envoyé au serveur

    • Les seuls événements envoyés au serveur sont deux événements anonymes, arrivée et fin, sans cookies, identifiants ni IP conservée
    • Le serveur jette le corps de chaque requête et ne renvoie rien ; des traces au niveau de la couche de transport indiquant qu’une requête a eu lieu peuvent rester dans les logs pendant la durée de conservation par défaut de l’hébergeur, généralement quelques jours
    • La plupart des sites envoient des centaines de balises supplémentaires à des annonceurs, collecteurs d’empreintes, outils de session replay et gestionnaires de tags, mais taken. n’en envoie que deux à son propre serveur et le signale explicitement
  • Ce qui a été stocké sur l’appareil

    • Rien n’est stocké dans cookies, localStorage, sessionStorage, IndexedDB ni dans le cache du service worker
    • Les données affichées à l’écran ont été calculées dans le navigateur et, à l’exception de la requête de géolocalisation IP et des deux événements anonymes, ne quittent pas l’appareil
    • Une fois l’onglet fermé, taken. oublie le visiteur, et conclut, source ouverte à l’appui, que « la plupart des pages ne peuvent pas en dire autant »
  • Contexte de la série et réalisation

    • Le Vol. I portait sur ce qui s’est passé dans le monde pendant que le visiteur restait sur place, le Vol. II sur le ciel qu’il a manqué, le Vol. III sur ce qui se trouvait déjà sous ses pieds, et le Vol. IV resserre progressivement le cadre jusqu’au visiteur lui-même
    • La page a été créée par Matt chez Rise Up Labs, et les éditions suivantes seront publiées sur X et Bluesky

1 commentaires

 
GN⁺ 1 시간 전
Avis sur Hacker News
  • Je ne suis même pas dans cette ville. Même en voyant large, ça détecte juste quelque chose comme Chrome sur quelque chose comme Linux, et personne ne peut déduire quand je travaille ou quand je dors. Moi non plus, d’ailleurs.
    Le soi-disant écran haut de gamme récent est en fait l’écran d’une tablette bas de gamme achetée au supermarché il y a 5 ans, et malgré ça, le fingerprinting du navigateur reste agaçant. Si on peut détecter le mode clair, on pourrait aussi respecter ce réglage, non ?

    • La quantité de fingerprinting que cette page montre n’est pas grand-chose comparée à ce qui se passe réellement sur le web
    • Le pourcentage de batterie est faux, l’état de charge aussi. Et oui, le fait de demander qu’on respecte le mode clair est légitime, mais même dans ce cas, ça aurait sans doute été un écran poubelle à faible contraste
    • Ça m’a dit que j’étais à « Los Angeles », alors que c’est juste mon fuseau horaire qui est celui-là. Et ça agit comme si avoir deux langues de saisie permettait de marquer un point de type « on t’a eu », alors que j’utilise simplement souvent une deuxième langue.
      Ça affiche « English · Chinese » en disant que la langue principale du navigateur et les langues supplémentaires révèlent le lieu où l’on a grandi, celui où l’on vit, voire avec qui l’on cohabite, mais avoir l’anglais et le chinois comme langues de saisie ne dit rien de tout ça. C’est un peu comme dire que « le fait de naviguer sur Internet avec un téléphone révèle que vous êtes une personne capable d’accéder à Internet avec un téléphone ». Les technologies interagissent entre elles, c’est comme ça qu’elles fonctionnent. C’est orwellien, certes, mais savoir si c’est plus orwellien que des États de surveillance comme la Russie, la Chine ou la Corée du Nord, c’est autre chose. Le partage de localisation peut servir à retrouver un téléphone, une voiture ou un appareil, l’activité en ligne peut servir à retrouver des criminels, et elle peut aussi documenter des crimes ou des affaires où il faut demander des comptes à la police. Voir l’intrusion excessive de la technologie comme une catastrophe relève d’un choix cognitif, mais il est bon d’être conscient de ce que notre technologie « sait » de nous
    • J’utilise Apple Private Relay VPN, donc la localisation s’est trompée de plusieurs centaines de miles. C’est toujours intéressant de voir où les sites ou services pensent que je suis d’après leurs bases de données de géolocalisation, et quand je le désactive, ils me placent à quelques miles près. Heureusement, presque aucun site ne bloque le VPN d’Apple, donc je n’ai pas besoin de le couper.
      Et pour le mode clair, je compatis totalement. J’ai la trentaine bien avancée, et certains de ces sites en mode sombre me donnent l’impression d’avoir plus de 80 ans. Celui-ci, on n’y voit vraiment rien
    • Pareil pour moi. Ça indique Brussels, mais je suis en réalité à Antwerp. La résolution d’écran est aussi fausse
  • J’aimerais vraiment que les défenseurs de la vie privée parlent normalement, au moins une fois. Présenter l’accès du navigateur au fuseau horaire comme quelque chose de maléfique ne convaincra personne

    • « Vous préférez une interface sombre — le système d’exploitation nous l’a dit. » Donc mes réglages ont simplement fonctionné comme prévu, et c’est censé être effrayant ?
    • D’accord. Des infos comme ma langue, le fait que j’utilise le mode sombre ou mon fuseau horaire peuvent servir à offrir une meilleure expérience utilisateur, donc ça ne me dérange pas vraiment
    • C’est ce style LLM court habituel qui rend tout dramatique, et ça me fait l’effet d’ongles sur un tableau
    • Mais si je suis la seule personne au monde dans ce fuseau horaire, alors ça m’a bien identifié de manière unique !
  • La question n’est pas de savoir si les informations sont exactes ou non. L’important, c’est qu’elles permettent de m’identifier même sans cookies. En cherchant un meilleur site, j’ai trouvé EFF utile.
    Mon empreinte de navigateur y est indiquée comme unique parmi les visiteurs des 45 derniers jours : https://coveryourtracks.eff.org/

    • Ça m’affiche « vous bénéficiez d’une forte protection contre le pistage sur le web ». Même sans désactiver JavaScript et tout en gardant des sites fonctionnels, impossible de ne pas aimer Firefox + uBlock Origin en mode avancé
    • Si on exécute ce genre de site plusieurs fois, est-ce qu’il ne devrait pas cesser de nous considérer comme unique à chaque fois ?
    • Au moins en Europe, même si on utilise le fingerprinting plutôt que des cookies, le RGPD s’applique quand même. Si on veut utiliser ces informations, il faut le divulguer et traiter les données conformément à la loi
    • Dire en gros que « peur, incertitude et doute n’ont pas besoin d’être exacts » me paraît quand même étrange
    • Cela dit, je préfère encore que les infos soient inexactes. Si des sites essaient impoliment de me pister, autant leur servir des données poubelles uniques
  • Quand on visite sans JavaScript, on voit : « Si JavaScript est désactivé, la page ne peut pas vous dire ce que votre navigateur a révélé. Les données sont toujours là. La divulgation a toujours lieu. La seule chose qui s’arrête, c’est le fait de vous le dire. »
    Ce style LLM grandiloquent est extrêmement agaçant, mais au moins il signale que je peux l’ignorer complètement, donc merci pour ça

  • Je ne sais pas si c’est parce que je suis vieux ou parce que je fais du logiciel Internet depuis près de 30 ans, mais rien de tout ça ne me semble surprenant ni inquiétant.
    Quelqu’un met en place un serveur qui reçoit des connexions, et quelqu’un d’autre envoie une requête de connexion à ce serveur. Il n’y a eu aucun accord, aucune attente ni aucune règle définie. Le serveur n’est pas obligé d’accepter toutes les requêtes, pas plus que quiconque n’est obligé de lui en envoyer. Ce que le serveur renvoie et la manière dont le client le traite relèvent de chacun.
    J’ai l’impression que cet accord, ou cette absence d’accord, s’applique aux deux côtés. Je ne pense pas qu’un utilisateur doive se fâcher parce qu’un site utilise les informations de la requête comme il l’entend, mais je ne pense pas non plus qu’un site doive se fâcher parce que je traite les données reçues comme bon me semble. Autrement dit, un site peut conserver mon adresse IP et les détails de ma requête autant qu’il veut, et moi je peux faire ce que je veux de la réponse reçue. Bloquer les publicités, refuser les requêtes suivantes que le site demandait, ou afficher la réponse comme je l’entends. J’ai demandé des données, et eux les ont envoyées.
    Si certaines informations ne doivent pas être révélées à mon sujet, alors il ne faut pas les inclure dans la requête. Si l’on veut que je voie une publicité avant d’envoyer certaines données, alors il faut obtenir mon accord avant de les envoyer. Bien sûr, dans la réalité, la plupart des gens ne savent pas ce que fait leur navigateur, n’ont pas beaucoup de choix concret sur ce qu’il envoie, et Internet n’est plus une option dans la vie. Et avec des choses comme les DDoS, une structure totalement « tout est permis » n’est pas réaliste non plus. Mais j’ai quand même l’intuition qu’il ne faut pas trop attendre des deux côtés quand on fait une requête sur Internet

    • C’est le problème fondamental. Le navigateur devrait être le mandataire de l’utilisateur. Son nom même est User Agent. Il devrait agir pour l’utilisateur, l’utilisateur devrait savoir ce que fait le navigateur, et le navigateur ne devrait rien faire que l’utilisateur ne comprend pas et n’a pas explicitement accepté. L’autorité finale sur ce que mon navigateur envoie devrait m’appartenir, et le navigateur devrait rendre l’exercice de cette autorité trivial.
      Dans la réalité, le navigateur est le mandataire de quelqu’un d’autre. Il travaille pour les développeurs web, en leur fournissant toutes sortes de choses qui leur facilitent la vie. Il travaille pour les annonceurs, en fournissant des indices de suivi et du fingerprinting. Il travaille pour les développeurs du navigateur, en collectant des métriques, de la télémétrie et d’autres données dont on ne sait même pas vraiment la nature. Mais il ne travaille plus vraiment pour moi. Je ne suis qu’un passager dans la voiture.
      Je comprends que l’adresse IP n’est pas sous le contrôle du navigateur et qu’elle doit inévitablement être révélée pour se connecter à un site web. Mais le fait qu’en l’état, sans VPN, une adresse IP puisse être mappée de manière fiable à un pays, une région, et parfois une ville, est un horrible défaut de conception. C’est un gros problème de conception dans la façon dont les IP sont attribuées. Dans un monde meilleur, l’adresse IP seule ne devrait pas révéler la position géographique de quelqu’un
    • Des formulations comme « Nous savons aussi le reste. Nous avons choisi de ne pas l’afficher. La plupart des pages n’auraient probablement pas fait ce choix » donnent l’impression que c’est écrit pour effrayer les enfants. En plus, ce qui est affiché n’est même pas mon fournisseur d’accès Internet. C’est peut-être le fournisseur en amont de mon FAI
    • Je suis vieux moi aussi, mais peut-être idéaliste, et je pense qu’une bonne partie de ces fonctionnalités ont été ajoutées pour des raisons légitimes.
      Quand le client envoie un en-tête de langue ou une liste de polices prises en charge, ça ne voulait pas dire « faites-en tout ce que vous voulez ». Quand nous avons défini ces standards, il y avait de vraies raisons. Le fait que les fournisseurs de sites web, ou plus précisément les réseaux publicitaires, aient décidé d’utiliser cela à d’autres fins, c’est une rupture de cet accord implicite. Bien sûr, il se peut que j’attende trop
    • La localisation était ridiculement imprécise, et comme la personne qui écrit ici, je sais pourquoi. Le fait d’avoir masqué l’adresse IP était un peu puéril, mais plus bas ça devenait mieux.
      Ça a su connaître le niveau de batterie de mon téléphone et a correctement déduit des éléments sur l’appareil. Ça a correctement lu le gyroscope, les interactions avec l’écran tactile, et montré comment ces choses peuvent servir à l’identification et à l’inférence. On peut même en déduire si quelqu’un est assis, debout ou allongé. Le début est lent, mais c’est devenu intéressant ensuite
    • J’ai l’impression que nous, les vieux techniciens, voulons encore croire à l’idéal libertaire technique du vieux web. Mais pour cela, il faut largement ignorer les idéaux capitalistes et autoritaires du web moderne.
      L’idée que personne ne doit rien à personne fonctionnait assez bien à l’époque où l’on pouvait supposer que la plupart des acteurs étaient de bonne foi. Mais une fois que l’argent et le pouvoir d’Internet sont devenus une réalité, les relations sont devenues plus hostiles. Les hypothèses de confiance et l’absence de responsabilité facilitent l’exploitation de la bonne volonté d’un côté par l’autre. Et à cause du déséquilibre technique et de pouvoir inhérent à l’architecture client-serveur du web, les abus ont aussi tendance à aller surtout dans un seul sens
  • Le site est joli et les formulations excessives sont amusantes, mais il existe de bien meilleures démos de fingerprinting.
    Le nombre de points de données montrés ici est faible. On peut vérifier bien plus de choses, et une bonne partie semble fausse. Il n’a explicitement détecté qu’un seul élément comme « withheld », mais en réalité plusieurs semblent masqués, ce qui donne l’impression que la sortie est déformée. Il faut du contrôle qualité

    • Le ton exagéré est assez drôle. Ça fait un peu : « Vous êtes à [ville erronée]. Nous pourrions envoyer une équipe de ninjas pour vous tuer dès maintenant, mais nous avons choisi de ne pas le faire. Remerciez-nous »
    • En résumé, c’est encore un projet de bric-à-brac généré par IA. J’ai déjà vu ce style d’interface des dizaines de fois, et il est toujours accompagné de phrases verbeuses et grandiloquentes qui se repèrent immédiatement
  • On dirait EFF Cover Your Tracks codé en vibe coding. Le fait que ce soit arrivé en première page fait plus peur que le contenu lui-même

    • Oui. On dirait une page à qui on aurait demandé : « Reproduis ça discrètement, et ajoute un thème de landing page tape-à-l’œil. » C’est moche
    • Le compte qui l’a soumis a été créé il y a 21 jours, n’a jamais posté un seul commentaire, et ne suit même pas ce fil. Il n’a jamais répondu et ne répondra probablement jamais. Le fait que ce genre de soumission ne soit pas signalé est en train de ruiner Hacker News
  • Il y a bien plus à voir ici. Il existe aussi beaucoup de travaux antérieurs sur les super cookies et le fingerprinting.
    https://coveryourtracks.eff.org/
    https://amiunique.org/

    • Intéressant. En testant le site de l’EFF, j’ai vu parmi les différentes infos que j’étais identifié comme « MacIntel ». J’ai été surpris, pensant encore faire tourner la build x86 de Firefox
    • Les deux sont liés dans la modale Sources & Confessions en bas de page. Cover Your Tracks est l’ancêtre spirituel de tout ça, et amiunique est plus rigoureux. Celui-ci ressemble à une sorte de cousin officieux
    • Il existe aussi un autre outil pour vérifier les fuites d’informations : https://www.ipleak.com/full-report/
  • Waouh, on dirait que quelqu’un qui utilise ChatGPT a découvert le concept des en-têtes du navigateur et y a ajouté des phrases bizarres du style « nous avons choisi de ne pas vous le dire »
    Si vous voulez vraiment savoir ce que votre navigateur envoie, regardez plutôt ici :
    https://browserleaks.com/
    https://coveryourtracks.eff.org/

  • « Nous n’avons pas demandé votre position. Votre adresse est arrivée avant vous » est absurde. Ils ont bien demandé ma position en interrogeant une API ou un service de géolocalisation avec mon adresse IP comme clé.
    Et pour que la communication Internet fonctionne, l’IP est quasiment indispensable. Il existe des services pour la masquer, mais dans ce cas c’est ce service qui détient mes informations

    • Non. Le navigateur dispose d’un mécanisme pour demander la géolocalisation, et ici le mot « demandé » signifie qu’ils n’ont pas utilisé ce mécanisme. L’important, c’est qu’ils ne l’ont pas demandé à l’utilisateur.
      Si vous avez un dictionnaire, vous n’êtes pas obligé de demander à votre interlocuteur ce que veut dire un mot que vous avez entendu ; vous pouvez le chercher dedans. Le mot peut avoir plusieurs sens ou être familier, et vous pouvez donc vous tromper dans votre déduction. Pour corriger cette imprécision, il faut soit d’autres points de données, comme le contexte de la conversation, soit demander directement confirmation à l’interlocuteur
    • Je pense que vous l’avez mal lu. Ça ne veut pas dire « nous n’avons demandé à personne », mais nous n’avons pas demandé directement à l’utilisateur.
      Et bien sûr que l’adresse arrive avant. Sinon, ils ne pourraient pas renvoyer les données demandées
    • Les proxys multi-sauts similaires à Tor sont réputés, selon leur architecture, ne pas permettre d’associer l’IP d’origine et l’IP de destination