web-dev-qa-db-fra.com

Comment lutter contre les empreintes digitales du navigateur?

https://panopticlick.eff.org/ , alias "Votre navigateur est unique et traçable". Par exemple, cela me donne généralement un score unique. Les plus grandes valeurs d'entropie proviennent de navigator.plugins et des polices via Java et flash, mais le PDF lié souligne également que la désactivation de ces plugins communs ne fait qu'ajouter à l'unicité) , ainsi que la simple modification de l'agent utilisateur. La détection des polices semble également possible via l'introspection CSS.

Quelles mesures peut-on prendre, quelles options technologiques existe-t-il pour contre-mesurer les empreintes digitales de son navigateur?

71
n611x007

La technologie d'empreinte digitale utilisée par l'EFF n'est rien d'autre que les fonctions Javascript "normales" utilisées par les sites Web pour, eh bien, fonctionner correctement. Il est possible de signaler des informations fausses à l'extérieur, mais vous risqueriez alors de "prendre du retard":

  • les informations fausses dont vous auriez besoin d'envoyer le long - modifications et la vôtre ne le fait pas, ce qui vous rend unique - et suspect;
  • les techniques de détection changent et vous n'en êtes pas conscient, alors redevenez unique;

ou avoir une navigation vraiment maladroite.

En supposant que vous pouvez utiliser Tor ou un VPN ou un shell ouvert n'importe où pour creuser un tunnel vers votre adresse IP, la pratique la plus "sûre" à mon avis serait d'allumer une machine virtuelle, d'installer un stock Windows Seven dessus et de l'utiliser pour tout opération sensible à la confidentialité. N'installez rien d'inhabituel sur la machine, et il se présentera à vrai dire comme une machine Windows Seven d'origine, l'une parmi une horde de machines similaires.

Vous avez également l'avantage que la machine est isolée à l'intérieur de votre véritable système et que vous pouvez la prendre en photo/la réinstaller en un clin d'œil. Ce que vous pouvez faire de temps en temps - le "vous" qui a fait toute la navigation avant disparaît et un nouveau "vous" apparaît, avec un historique clair.

Cela peut être très utile, car vous pouvez conserver un instantané "propre" et le restaurer toujours avant des opérations sensibles telles que les opérations bancaires à domicile. Certaines machines virtuelles autorisent également le "sandboxing", c'est-à-dire que rien de ce qui est fait dans VM ne changera réellement son contenu de manière permanente - toutes les modifications du système, les logiciels malveillants téléchargés, les virus installés, les enregistreurs de frappe injectés, disparaissent dès que la machine virtuelle est éteinte .

Toute autre technique serait non moins intrusive , et impliquerait un travail considérable sur le navigateur ou sur une sorte de proxy anonymisant conçu non seulement pour assainir vos en-têtes et vos réponses Javascript (ainsi que les polices!), mais pour le faire de manière crédible .

À mon avis, non seulement la quantité totale de travail serait la même (voire plus), mais ce serait un travail beaucoup plus compliqué et moins stable.

Installez le système d'exploitation le plus courant, restez sur le navigateur et le logiciel fournis, résistez à la tentation de le proxénétiser, et que dire de cette machine à part littéralement des centaines de milliers de similaire similaire juste installé, jamais- entretenu, les ordinateurs ne sont pas mes machines sur Internet?

Mise à jour - comportement de navigation et canaux latéraux

Maintenant, j'ai installé une machine virtuelle Windows 7, je l'ai même mise à niveau vers Windows 10 comme le ferait Joe Q. Average. Je n'utilise pas Tor ou VPN; tout ce qu'un site externe peut voir, c'est que je me connecte depuis Florence, en Italie. Il y a trente mille connexions exactement comme la mienne. Même en connaissant mon fournisseur, cela laisse encore environ neuf mille candidats. Est-ce suffisamment anonyme?

Il s'avère que ce n'est pas le cas. Il pourrait toujours y avoir corrélations qui pourraient être étudiées, avec un accès suffisant. Par exemple, je joue à un jeu en ligne et ma saisie est envoyée immédiatement (mise en mémoire tampon des caractères, pas mise en mémoire tampon des lignes). Il devient possible digrammes d'empreintes digitales et retards de trigrammes , et avec un corpus suffisamment grand, d'établir que l'utilisateur en ligne A est la même personne que l'utilisateur en ligne B (dans le même jeu en ligne, bien sûr). Le même problème pourrait se produire ailleurs.

Lorsque je surfe sur Internet, j'ai tendance à toujours visiter les mêmes sites dans le même ordre. Et bien sûr, je frappe mes "pages personnelles" sur plusieurs sites, par exemple Stack Overflow, régulièrement. Une distribution d'images sur mesure est déjà dans mon navigateur et n'est pas téléchargée du tout ou est contournée avec une demande HTTP If-Modified-Since Ou If-None-Match. Cette combinaison d'habitude et d'utilité du navigateur constitue également une signature .

Compte tenu de la richesse des méthodes de marquage disponibles sur les sites Web, il n'est pas sûr de supposer que seuls les cookies et les données passives peuvent avoir été collectés. Un site pourrait par exemple annoncer la nécessité d'installer une police appelée Tracking-ff0a7a.otf, Et le navigateur la téléchargerait consciencieusement. Ce fichier ne serait pas nécessairement supprimé lors de l'effacement du cache, et lors de visites ultérieures, il ne serait pas re-téléchargé serait la preuve que j'ai déjà visité le site. La police ne peut pas être la même pour tous les utilisateurs, mais contient une combinaison unique de glyphes (par exemple, le caractère "1" peut contenir un "d", "2" peut contenir un "e", "4" peut contenir un "d "à nouveau - ou cela pourrait être fait avec des points de code de police rarement utilisés), et HTML5 peut être utilisé pour dessiner une chaîne de glyphe" 12345678 "sur un canevas invisible et télécharger le résultat sous forme d'image . L'image épelerait alors la séquence hexadécimale, unique pour moi, "boeuf mort". Et ceci est, à toutes fins utiles, un cookie.

Pour lutter contre cela, je devrai peut-être:

  • recréer complètement le VM après chaque session de navigation (et réinitialiser le modem lorsque je le fais). Garder toujours le même VM ne serait pas suffisant.
  • utiliser plusieurs machines virtuelles ou navigateurs différents, ainsi que des services de proxy bien connus ou Tor (cela ne me permettrait pas d'utiliser un proxy qui m'est unique, ou pour lequel je suis le seul utilisateur de Florence, à des fins d'anonymat ).
  • vider et/ou nettoyer régulièrement le cache du navigateur et se souvenir pas de toujours ouvrir, par exemple XKCD immédiatement après Contenu discutable .
  • adoptez deux ou plusieurs "personas" différents pour les services dans lesquels je veux l'anonymat, et ceux qui ne m'intéressent pas, et prenez soin de les garder séparés dans des VM séparées - cela ne prend qu'un seul feuillet, et vous connectez à l'un en pensant que c'est l'autre , pour qu'un lien permanent soit éventuellement établi par une agence externe suffisamment avisée.

Empreinte audio

Il s'agit d'une très méthode ingénieuse "d'empreinte digitale" d'un système, consistant essentiellement à désactiver off le système audio, puis à reproduire virtuellement un son via HTML5 et à l'analyser. Le résultat dépendra du système audio sous-jacent, qui est lié au matériel et pas même au navigateur. Bien sûr, il existe des moyens de lutter contre cela en injectant du bruit aléatoire avec un plugin , mais cet acte pourrait se révéler accablant, car vous pourriez bien être le seul à utiliser un tel plugin (et donc ayant un canal audio bruyant) parmi le pool correspondant à votre configuration "moyenne".

Une meilleure façon que j'ai trouvée de fonctionner, mais vous devrez expérimenter et vérifier par vous-même, est d'utiliser deux moteurs ou configurations VM différents. Par exemple, j'ai deux empreintes digitales différentes sur le même Dell Precision M6800 dans deux machines virtuelles différentes utilisant 4 et 8 Go de RAM et deux paramètres audio ICH7 AC97 différents (je soupçonne que les [RAM disponible fait que le conducteur utilise différentes stratégies d'échantillonnage, qui à leur tour donnent des empreintes digitales légèrement différentes. Je l'ai découvert totalement par hasard d'ailleurs). Je suppose que je pourrais configurer un troisième VM en utilisant VMware et/ou peut-être un quatrième avec le son désactivé.

Ce que je fais pas sais, cependant, est de savoir si les empreintes digitales que je a fait parviennent à obtenir révèlent le fait que c'est un VM (tous les VirtualBoxen Windows 7 ont-ils 50b1f43716da3103fd74137f205420a8c0a845ec Comme hachage du tampon complet? Tous les M6800?)

Tout ce qui précède va montrer que je ferais mieux d'avoir une bonne raison de vouloir l'anonymat: parce que le réaliser de manière fiable va être une douleur royale à l'arrière.

35
LSerni

Lors de la prise d'empreintes digitales, les mesures suivantes sont prises:

  1. Adresse IP/sous-réseau/pays/région
  2. Agent utilisateur
  3. Autres en-têtes HTTP

Maintenant, pour l'adresse IP, vous pouvez utiliser:

  • Tor
  • I2P
  • Service VPN public comme OpenVPN, où de nombreux autres utilisateurs se trouvent également, il dispose de nœuds sur plusieurs réseaux

Pour User-Agent:

  • Proxy anonyme en ligne
  • Votre propre serveur proxy, qui définit l'agent utilisateur et certains en-têtes communs
  • Plugin de navigateur qui modifie les en-têtes
  • Plugin de navigateur, qui exécute le navigateur sur un service d'anonymat distant

MAIS, vous aurez toujours des empreintes digitales et identifiés d'une manière ou d'une autre. C'est parce que vous vous connectez normalement à partir du même sous-réseau et que vous utilisez le même navigateur. Donc, pour éviter ces deux, c'est vraiment difficile, car vous auriez besoin de serveurs VPN sur un nombre infini de réseaux, ainsi que d'un générateur d'agent utilisateur et d'un obscurcissement d'en-tête, qui définit des valeurs différentes chaque jour ou à chaque démarrage.

Pour ma part, j'utilise une micro-instance gratuite Amazon EC2 avec un serveur OpenVPN gratuit, et il s'arrête et démarre automatiquement tous les jours dans différentes régions (en soi, il démarre un nouveau serveur avec un script pour le configurer via l'API AWS) et met à jour DNS via l'API Route 53. Il utilise SQUID comme proxy, et il existe de nombreuses règles pour bloquer la publicité, le suivi ainsi que d'autres choses. Il a également une table BGP complète, car ces serveurs VPN fonctionnent sur le réseau, mais vous n'en avez pas besoin si vous ne faites pas de dissimulation.

Vous pouvez également faire en sorte que l'instance EC2 modifie son adresse IP sans la redémarrer. Vous pouvez utiliser l'API AWS pour publier Elastic IP et en allouer une nouvelle et l'ajouter. Si vous changez d'agent utilisateur en même temps, vous éviterez les empreintes digitales.

http://aws.Amazon.com/

http://aws.Amazon.com/articles/1346

http://www.squid-cache.org/

Voir ceci par exemple:

https://calomel.org/squid_ua_random.html

Et en effet, avec un numéro IP et un agent utilisateur différents chaque jour, Google ne peut pas me reconnaître, donc je peux voir des publicités qui ne me "suivent pas".

ps. Lorsque vous ajoutez une nouvelle instance, vous avez besoin d'au moins 20 Go de volume racine EBS. Ensuite, vous faites simplement yum install squid ou apt-get install squid, configurez-le via/etc /, et c'est parti. Si vous souhaitez modifier l'adresse IP, modifiez simplement Elastic IP dessus - cela fonctionne dans les deux sens - la façon dont vous pouvez accéder à une nouvelle instance ou accéder à Internet.

Et vous n'aurez besoin que de ceci:

http://openvpn.net/

N'oubliez pas de mettre à jour l'instance de temps en temps yum update

Je pourrais peut-être produire une image AMI, qui fonctionnerait automatiquement. Simplement, vous lancez simplement l'instance, il configure OpenVPN, et via l'API AWS, il configurerait les IP, DNS ainsi que SQUID etc. Peut-être qu'il y a déjà des AMI sur Amazon.

Regarde ça:

http://n00dlestheindelible.blogspot.co.uk/2010/05/secure-anonymous-browsing-with-your-own.html

Certains sites Web se plaindront que vous travaillez sur VPN. Par exemple, certains sites qui diffusent de la musique ou des vidéos. Bien que la plupart des sites fonctionnent correctement, il n'y a que quelques exceptions.

17
Andrew Smith

L'exigence technique pour éviter toute forme d'empreinte digitale du navigateur est que toutes les caractéristiques potentiellement identifiables renvoyées par le navigateur soient randomisées, de sorte que la probabilité que le navigateur renvoie un certain ensemble de caractéristiques se rapproche de la probabilité d'observer cet ensemble de caractéristiques dans la population de navigateurs au sein de que nous voulons maintenir l'anonymat.

En décomposant cela, supposons que nous n'ayons affaire qu'à une seule caractéristique (par exemple l'en-tête User-Agent) et que nous voulons nous assurer de rester anonyme. À des fins d'illustration, supposons qu'il existe 50 valeurs possibles pour User-Agent, numérotées de 1 à 50.

Une stratégie possible consiste à utiliser la valeur la plus courante de User-Agent, comme observé en fonction de la population du navigateur. Dans certaines circonstances, cela pourrait être une mauvaise stratégie, comme l'illustre la figure suivante:

figure-a

Selon la figure, la valeur de l'agent utilisateur la plus courante dans la population de navigateurs est seulement légèrement plus susceptible de se produire que les valeurs restantes. Si nous utilisions simplement la valeur la plus courante (25), un service de prise d'empreintes digitales pourrait (systématiquement) déduire que nous appartenons au sous-ensemble (relativement petit) de 2,4% des navigateurs de la population. Ainsi, nous avons compromis notre anonymat.

Notez que la simple génération de valeurs au hasard sans tenir compte de la population de navigateurs peut gravement compromettre l'anonymat, comme illustré par la figure suivante:

figure-b

Selon la figure, les valeurs de User-Agent retournées par notre navigateur sont (uniformément) aléatoires. Cependant, comme les valeurs ne se produisent jamais dans la population, un service d'empreintes digitales (moyennement sophistiqué) dans ce cas pourrait constamment déduire que notre type de navigateur est rare - c'est en soi une caractéristique potentiellement identificatrice! Ainsi, l'anonymat est compromis.

La seule stratégie qui garantit le maintien de l'anonymat est de faire correspondre la distribution des valeurs que nous observons dans la population des navigateurs, illustrée dans la figure suivante:

figure-c

En veillant à ce que les valeurs de User-Agent renvoyées par notre navigateur soient randomisées afin que la probabilité de chaque valeur corresponde à la probabilité d'observer cette valeur dans la population du navigateur, nous ne nous engageons jamais à nous identifier avec un sous-ensemble particulier de la population du navigateur, tout en garantissant que notre navigateur n'utilise aucune version rarement utilisée de l'agent utilisateur. De cette façon, l'anonymat est maintenu.

Dans le scénario du monde réel, où il existe de nombreuses caractéristiques de navigateur potentiellement identifiables, pour conserver l'anonymat, notez qu'il ne suffit pas de garantir individuellement pour chaque caractéristique que la probabilité de chaque valeur correspond à la probabilité de la population: nous pouvons risquer de renvoyer de rares combinaisons de valeurs , compromettant ainsi notre anonymat; cela peut en fin de compte entraîner une identification unique de notre navigateur! Il est plutôt nécessaire d'appliquer les considérations ci-dessus à la distribution conjointe des caractéristiques du navigateur dans la population de navigateurs, c'est-à-dire la probabilité d'observer des valeurs pour des ensembles de caractéristiques du navigateur.

6
user92403

Les empreintes digitales utilisées aujourd'hui reposent principalement sur la génération d'autant d'entropie que possible en exploitant autant de détails du navigateur que possible. Des détails stables, même subtils mais à court terme, comme le rendu exact (dépendant du matériel et de la version du pilote) sur un canevas, sont exploités. Les informations recueillies sont très probablement compressées en générant une valeur de hachage suffisamment longue en fonction de tous les détails, par exemple. en ajoutant tous les détails à une longue chaîne ou en dessinant quelque chose en fonction des détails dans un canevas et en lui appliquant une fonction de hachage.

Cependant, tant que les informations sont compressées et ne sont pas stockées dans leur intégralité, les empreintes digitales peuvent être défendues par une attaque frontale: au lieu d'essayer de rendre l'empreinte digitale aussi unique que possible, on peut simplement essayer de la rendre aussi unique que possible, par exemple. unique par connexion.

Cela peut facilement être obtenu en altérant des détails sur lesquels s'appuyer serait une très mauvaise pratique pour une page Web:

  • chiffres les plus insignifiants des numéros de version
  • masquage de polices rares
  • description détaillée du plugin chaînes
  • ...

Pour contourner cette attaque, l'empreinte digitale devrait être suffisamment floue pour contourner les parties aléatoires, ce qui signifie qu'elle ne peut pas hacher les données dans leur ensemble et que de nombreuses informations devraient être transférées et stockées.

Contourner l'attaque en masquant les parties aléatoires signifierait uniquement utiliser les détails sur lesquels les pages Web comptent également fortement, ce qui nécessiterait une adaptation permanente de l'algorithme d'empreinte digitale. La quantité de détails nécessairement non aléatoires sera quelque peu limitée par la normalisation. Cependant, il peut toujours permettre une identification unique s'il est sélectionné correctement.

2
dronus

Le site panopticlick a des recommandations " self defense " pour éviter le suivi.

L'une des recommandations est d'utiliser le torbutton. Le torbrowser design docs a une bonne description de la façon dont il essaie d'éviter les empreintes digitales et le suivi du navigateur.

Toutes ces approches tentent de normaliser votre profil pour ressembler à autant de personnes que possible.

1
shamer

P.S: je n'ai pas remarqué que la question était ancienne jusqu'à tard.

Je ne suis peut-être pas techniquement qualifié pour répondre à cette question, mais comme le PO demande

options technologiques

Je peux aider avec ce que je sais.

L'EFF a un article décrivant certains outils ici .

Il y a beaucoup d'explications dans les autres réponses, je vais seulement lister les outils (peut-être avec une description seulement)

Les outils sont pour le chrome, les utilisateurs de Firefox sont invités à modifier cette réponse pour ajouter leurs plugins (bien que la plupart d'entre eux soient également disponibles pour Firefox)

il ne vous reste plus qu'à gérer l'empreinte digitale du navigateur pour ce faire, vous pouvez utiliser la combinaison d'outils suivante:

  • Canvas Defender ce plugin cachera votre empreinte digitale de toile en ajoutant un hachage aléatoire à l'empreinte digitale de toile de votre navigateur à chaque nouvelle session ou à votre demande, cela donnera au tracker une fausse empreinte digitale au lieu de la bloquer ( le bloquer vous fera ressortir la foule).
  • ser-Agent Switcher for Chrome utilisez cet outil avec Canvas Defender pour cacher plus dans la foule ce plugin vous permettra de changer votre agent utilisateur, donc si vous utilisez linux ou un navigateur rare, vous pouvez le cacher.
  • ScriptSafe c'est comme l'outil NoScript mais pour le chrome, il empêche le javascript nuisible de s'exécuter et collecte des données sur vous pour vous identifier pour les trackers
  • Flashcontrol comme on l'appelle, celui-ci bloquera tout contenu flash sauf si vous le permettez, un flash obsolète peut être utilisé pour vous suivre ou pire vous pirater.
  • Désactiver WebGL cet outil vous aidera à masquer votre véritable empreinte digitale WebGL (il fournira au tracker une empreinte 0000000000, mais cela vous fera ressortir) le créateur de l'outil ne l'a pas créé pour le masquer mais simplement pour bloquer les fonctionnalités de WebGL car cela faisait planter son navigateur.

Enfin, l'utilisation de ces outils peut rendre votre navigateur inutilisable au début, vous devez donc passer un peu de temps à les peaufiner pour atteindre au mieux vos objectifs.

1
cloud em

Les entreprises utilisent partiellement l'empreinte digitale pour se débarrasser de la fraude par clic. AudioContext est une technologie d'impression d'empreintes digitales très puissante, mais n'est pas encore largement utilisée. Vous devez actuellement créer un navigateur à partir des sources pour vous en débarrasser.

Si vous n'aimez pas l'impression des doigts, l'une des choses que vous pouvez faire est d'utiliser un appareil iOS (en mode privé), car les iphones auront tous tendance à ressembler et Apple a intégré une certaine protection de la confidentialité) .

Google est à l'opposé, ils recherchent comment utiliser le modèle de marche pour identifier les utilisateurs à des fins publicitaires. Google Analytics est le script et le cookie le plus répandu (voir les autres réponses), donc j'essaie d'éviter Google autant que possible (utilisez Startpage.com).

Si vous êtes préoccupé par la confidentialité, votez avec vos pieds. Faites particulièrement attention aux informations et aux médias qui utilisent l'empreinte digitale pour adapter le contenu à votre comportement de navigation, la liberté (comme en démocratie) est en jeu.

Stackexchange utilise ajax.googleapis qui effectue le suivi. Il existe d'autres sociétés comme Google, comme scorecardresearch, newrelic, optimizely etc. qui sont également des scripts de suivi omniprésents. Avec le blaireau de confidentialité, je bloque presque tous les cookies. Ça ne fait pas vraiment mal. Vous devez autoriser les cookies pour certains sites Web (mur de cookies ou e-mail). GMail peut être utilisé sans cookies ni javascript. Effacez votre navigateur très très fréquemment. Vous comprendrez.

Il devrait y avoir un institut W3 qui aide les deux parties. Réduisez la fraude aux clics (bots) et protégez la confidentialité.

0
imonaboat