Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

cr  01.04.2012      r+  22.10.2024      r-  22.10.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

Evercookie=Cookies permanents (cookies persistants).

Evercookie est le nom donné à un type de cookies et à une technique, dus à Samy Kamkar qui a publié son travail le 20.09.2010 (1).

Cookies standards

  • petits fichiers de type texte, de 4096 caractères maximum
  • déposés dans un navigateur Web
  • par le site Web visité
  • sous le nom du site Web qui l'a déposé
  • qui ne peut être lu/relut que par le site Web (le serveur) qui l'a déposé. Ça, c'est le principe. Dans la réalité, il existe des techniques pour autoriser les sites que vous visitez à lire les cookies qui ne les regardent pas, les « cookies tiers ». Vous, l'internaute, vous pouvez tous les lire, mais leur contenu est généralement incompréhensible, compressé, voire crypté.
  • ayant une durée de vie (d'expiration) contenue/fixée dans le cookie
  • servant, à de rares exceptions près, au suivi/pistage des internautes

Si vous consultez le même site Web sous 10 navigateurs Web différents, il y aura 10 cookies standards créés (1 dans chaque navigateur Web) pour ce site.

Si vous consultez 10.000 sites Web différents sous 10 navigateurs Web différents, il y aura 100.000 cookies standards créés (10.000 dans chaque navigateur Web). En plus, généralement, un site Web crée 4, 5, 10, 20... cookies standards.


Les internautes ont pris l'habitude de supprimer les cookies standards, voire de carrément les interdire.

Evercookie (qui n'a de cookie que le nom) est une panoplie de techniques de stockage des informations contenues dans les cookies standards dont le but est simplement de rendre les données permanentes... permanentes.

Evercookie stocke les mêmes données en plusieurs endroits, et de plusieurs manières, afin qu'elles ne puissent que très difficilement être localisées et détruites. Un client (un navigateur Web, dans une relation client/serveur) peut atteindre ces localisations. Si l'une quelconque des copies de ces données est perdue (par exemple en effaçant le cookie standard et plusieurs Evercookies), les données peuvent être retrouvées, reconstruites automatiquement, et continuer à être utilisées.

Evercookie rend les cookies réellement persistant. Son objectif est de continuer à identifier un client (client/serveur) et celui qui s'en sert (vous, l'internaute), même après avoir supprimé les cookies standards, les cookies Flash (Local Shared Objects ou LSO) et d'autres.

Evercookie est basé sur une API en JavaScript (qui utilise quelques technologies additionnelles comme Java, SilverLight, Flash LSO, PNG, etc.) Samy Kamkar dit avoir écrit cette API comme une simple preuve de faisabilité (POC - Proof Of Concept). Toutefois il la publie en Open Source, donc avec l'intention manifeste de diffusion et d'utilisation.

La NSA utilise EverCookie contre les utilisateurs de TOR

L'utilisation d'« EverCookie » apparaît dans les documents top secrets de la NSA révélés par Edward Snowden. La NSA se sert d' « EverCookie » pour traquer les utilisateurs de TOR, le réseau censé procurer des communications totalement anonymes.

Samy Kamkar - Un personnage controversé

Article Samy Kamkar.

Avis aux webmasters : un site Web utilisant EverCookie obtient une très mauvaise réputation

Avis aux webmasters : il est considéré comme particulièrement agressif et irrespectueux de ses visiteurs d'utiliser « EverCookie » alors que les législations (Opt-Out et RGPD - Règlement Général sur la Protection des Données) obligent à rendre la main aux internautes. Tenez compte de votre réputation et de votre public lorsque vous utilisez « EverCookie » en production.


Evercookie se sert de toutes les technologies disponibles (installées) dans un ordinateur et capables de stocker de l'information, indépendamment de la plateforme (Windows, Linux, Mac, etc. ...) puisqu'il est écrit en JavaScript, pour stocker avec ces technologies des copies cachées, parfois appelées zombies, des cookies standards. Les technologies utilisées incluent :

#Méthodes ou technologies utilisées par EvercookieContremesure
Cookies HTTP standard
Standard HTTP cookies
Tous les gestionnaires de cookies des navigateurs Web et tous les outils de gestion des Cookies
LSO (Local Shared Objects) (Flash Cookies)
local shared objects (Flash cookies)
BetterPrivacy
Si la technologie Flash n'est pas installée (en principe elle est interdite depuis fin 2016 - Quelle est ma version de Flash Player et mise à jour de Flash Player), la création de cet « EverCookies » échouera.
Avis aux Webmasters tentés d'utiliser cette technologie : sur certaines machines, cela peut être un processus très lent avec énormément d'accès disque. Sur les anciens appareils mobiles, cela peut rendre votre site inutilisable.
Silverlight Isolated Storage
Stockage isolé Silverlight
Ghostery
Si la technologie Silverlight n'est pas installée (Quelle est ma version de Silverlight et mise à jour), la création de cet « EverCookies » échouera.
Avis aux Webmasters tentés d'utiliser cette technologie : sur certaines machines, cela peut être un processus très lent avec énormément d'accès disque. Sur les anciens appareils mobiles, cela peut rendre votre site inutilisable.
CSS History Knocking
Je sais où vous êtes allé.
Le traitement de l'historique CSS peut générer un grand nombre de demandes HTTP lorsqu'un cookie est défini pour la première fois.
Storing cookies in RGB values of auto-generated, force-cached PNGs (4) using HTML5 Canvas tag (5) to read pixels (cookies) back out
Stockage des cookies dans des valeurs RVB de fichiers PNG générés automatiquement et mis en cache de force (4) à l'aide de la balise HTML5 Canvas (5) pour la lecture des pixels (cookies)
La technologie PNG est disponible dans tous les navigateurs Web.
Storing cookies in Web history
Stockage de cookies dans l'historique Web
Tous les navigateurs Web dispose d'un historique. Tous dipose d'un paramètre pour vider l'historique.
Storing cookies in HTTP ETags - Backend server required
Stockage des cookies dans HTTP ETags - Serveur principal requis
Les ETags peuvent être effacés en vidant le cache du navigateur Web utilisé (Caches des navigateurs - Ajustement de la taille du cache et Vider le cache) et en empêchant les mises en cache ultérieures (taille zéro du cache), dans les paramètres du navigateur Web (mais les implémentations de la gestion du cache varient d'un navigateur Web à l'autre et l'implémentation de la gestion du cache n'est pas visible, sauf dans Firefox, dont le code est Open Source).

Cache Navigateurs Internet
Cache des navigateurs Internet
Vider cache Internet Explorer 7
Vider cache Internet Explorer 8
Vider cache Internet Explorer 9
Vider cache Internet Explorer 10
Vider cache Internet Explorer 11
Vider cache Firefox (dernière version)
Vider cache Internet d'Opera 11
Vider cache Internet d'Opera 12
Vider cache Internet d'Opera 15
Vider cache Google Chrome (dernière version)
Vider cache Safari pour Windows

Storing cookies in Web cache - Backend server required
Stockage des cookies dans le cache Web - Serveur principal requis
Tous les navigateurs Web dispose d'un Cache (accélération par le principe d'anticipation) - (Caches des navigateurs - Ajustement de la taille du cache et Vider le cache). Tous dipose d'un paramètre pour vider le cache.
HTTP Strict Transport Security (HSTS) Pinning (works in Incognito mode)
Pinning HSTS (HTTP Strict Transport Security) (fonctionne en mode de navigation privée)
window.name caching (2).
Mise en cache du window.name (nom de la fenêtre) (2).
Internet Explorer userData storage
Stockage de données utilisateur Internet Explorer
Cet « EverCookie » ne peut être créé que si l'on utilise le pire navigateur Web qui soit, générateur de failles de sécurité en flux continue Internet Explorer.
HTML5 Session Web storage
Stockage de session HTML5
HTML5 Local Web storage
Stockage local HTML5
HTML5 Global Storage
Stockage global HTML5
HTML5 Database Storage via SQLite
Stockage en base de données HTML5 via SQLite
HTML5 IndexedDB
Base de données indexée HTML5
Java JNLP PersistenceService
Service de persistance JNLP Java
Quelle est ma version de Java - Mise à jour ou Installation de Java
Java CVE-2013-0422 exploit (Attempts to escape the applet sandbox and write cookie data directly to the user's hard drive.) (3)
Exploitation de la faille Java CVE-2013-0422 (- Tente d'échapper à la sandbox de l'applet et d'écrire des données de cookie directement sur le disque dur de l'utilisateur.) (3)
Sauf à vivre dans une grotte (sans électricité, sans couverture Internet et batterie vide), l'application du correctif à cette faille de sécurité (CVE-2013-0422) doit être faite depuis 2013 !
Projet 2019 - TLS Session Resumption Identifiers/Tickets (works in Incognito mode)
Projet 2019 - Generating HTTP Public Key Pinning (HPKP) certificates per user
Projet 2019 - Caching in HTTP Authentication
Projet 2019 - Google Gears
Projet 2019 - Using Java to produce a unique key based off of NIC info


Protocole de test d'Evercookie et localisation/découverte des « ever cookies »

Alors que les internautes ont appris à supprimer à tour de bras les bêtes petits cookies standards, au simple format texte, dans leur navigateur Web, le chercheur Samy Kamkar démontre à l'inverse et en open-source, comment le rendre invulnérable en le dupliquant, le disséminant, le rendant hautement technologique, cachant ces duplications, etc.

Lors de la création d'un cookie standard par un site Web, si le script « EverCookie » est utilisé par ce site Web, ce script essai de faire de très nombreux miroirs de ce cookie standard et de les stocker à différents endroits du navigateur Web utilisé, dans différentes technologies dont, par exemple, la technologie PNG.

Technologie PNG - universelle

Un fichier en .png est un fichier avec un contenu au format d'image graphique PNG (Portable Network Graphics). Il s'agit d'un format libre améliorant le format breveté GIF (fichiers .gif) et l'évacuant lorsque le propriétaire de ce brevet a prétendu vouloir le mettre sous licence payante. Certains fichiers PNG sont, peut-être, des « EverCookies », insaisissables, la technologie PNG étant universelle et servant, dans ce cas là, à crypter le contenu du cookie standard et à le faire passer inaperçu. Impossible de les identifier – ils ressemblent aux milliers d'autres fichiers .png dans le cache du navigateur Web utilisé.

Technologie SilverLight - N'existe plus

« Silverlight » est une technologie de Microsoft, concurrente d'Adobe Flash, Flex, JavaFX ou QuickTime.

Elle existait en mode développeur et en mode utilisateur (côté internaute [client] avec son navigateur Web). Dans sa partie utilisateur (client dans le contexte client/serveur), elle fonctionnait avec un plugin installé dans les navigateurs Web. Le principe même des plugins ayant été interdit à partir de fin 2016, pour des questions de sécurité (et de déploiement d'HTML5), Silverlight n'est plus supporté nulle part. Microsoft a annoncé la fin du développement de Silverlight en 2012 et la fin de son support le 12 octobre 2021.

Technologie Flash (LSO (Local Shared Objects) (Flash Cookies)) - N'existe plus

Les « LSO (Local Shared Objects) (Flash Cookies) » pouvaient être déposés grâce à la technologie Flash. Elle fonctionnait avec un plugin installé dans les navigateurs Web. Le principe même des plugins ayant été interdit à partir de fin 2016, pour des questions de sécurité (et de déploiement d'HTML5), Flash n'est théoriquement plus supporté. Une tolérance persiste (hors plugin) à cause de l'immense quantité d'objets existant en Flash et qui ne seront jamais convertis en HTML5, jusqu'à ce qu'un convertisseur à la volée soit mis au point.


« EverCookie » utilise 13 de ces technologies afin que le simple effacement du « cookie standard » n'impacte jamais ses miroirs technologiques ni leur contenu. C'est tellement puissant que même les informaticiens de très haut niveau ne pourront pas les identifier et les localiser tous pour les détruire, alors vous pensez bien que l'immense majorité des victimes, tous les internautes du monde, restera sur le carreau, dans l'ignorance. Et c'est justement cette immense majorité d'ignorants, cette masse mondiale de moutons à tondre, que les acteurs du Web suivent et profilent à coups de cookies de suivi (cookies de pistage ; cookies d'espionnage ; cookies de tracking ; etc.). Et ces acteurs du Web trouvent qu'il y a trop de bloqueurs de profilage et d'effaceurs de cookies, qu'il n'est pas possible d'espionner en rond. Pour eux, « EverCookie » est le Saint Graal.

Le protocole ci-après permet d'identifier les emplacements où sont stockés les miroirs « EverCookie » d'un « cookie standard ».

Se rendre sur la page

Protocole de démonstration

Respecter strictement la progression de ce protocole de démonstration. La séquence de ces étapes est importante pour supprimer tous les « EverCookies » de votre navigateur.

Dans votre navigateur Web utilisé, il faut ôter certaines protections :

Se rendre sur la page d'exploitation du script EverCookie

Différence entre la réalité d'EverCookie et cette démonstration

  • Normalement, « EverCookie » devrait créer un long identifiant, de type hashcode, unique à chaque utilisateur, lié :
    • au navigateur Web utilisé
    • aux paramètres de fonctionnement du navigateur (les polices de caractères reconnues, les types MIME reconnus, les plugins installés, etc.)
    • à certaines caractéristiques du matériel comme la résolution d'écran, la profondeur de couleurs
    • à la machine utilisée (qui est bourrée d'identifiants uniques comme le numéro de série du processeur, le numéro de série de la carte graphique, le numéro de série de la carte-mère, le numéro de série de la machine dans le BIOS UEFI
    • les adresses MAC des diverses cartes réseau
    • le compte utilisateur ouvert
    • etc.
  • Dans ce protocole de démonstration de Samy Kamkar, le code identifiant un est chiffre aléatoire entre 0001 et 1000, donc aucune crainte à avoir.
  • Les éditeurs de navigateurs Web s'efforcent de combler nombre des failles exploitées par « EverCookie ». C'est une bonne chose pour Internet, mais cela signifie que ce qui fonctionne aujourd'hui avec « EverCookie » peut ne pas fonctionner aussi bien demain.


  1. 1 Lancer la fabrication des ever cookies

    Ouvrez un nouvel onglet dans votre navigateur

    Se rendre sur la page d'exploitation du script EverCookie (https://samy.pl/evercookie/)

    Clic sur le bouton « Click to create an ever cookie » (« Cliquez pour créer un ever cookie »).

  2. 2 Qu'est-ce qu'EverCookie a fabriqué ?

    Samy Kamkar affiche la liste des ever cookies qu'il a créé.

    Toujours sous Firefox et dans l'onglet Samy, faire : Menu EverCookie Developpement Web EverCookie Inspecteur de stockage, regardez chacune des 5 zones de stockage

  3. 3 Ouvrez un nouvel onglet et fermez celui sur le site Samy

    Ouvrez un nouvel onglet dans votre navigateur et passez à cet onglet

    Fermez l'onglet Samy

  4. 4 On regarde ce qu'en dit le navigateur.

    Exemple avec Firefox :

    En faisant : Menu EverCookie Options EverCookie Vie privée et sécurité EverCookie Paragraphe Cookies et données de site EverCookie Clic sur Gerer les données et saisir Samy

  5. 5 On vide les historiques, les cookies, les données et les caches du navigateur

    Exemple avec Firefox :

    • Menu EverCookie Option EverCookie Vie privée et sécurité EverCookie Paragraphe Cookies et données de sites
    • Ou accès rapide dans la barre d'adresse : about:preferences#privacy

    S'y reprendre éventuellement à plusieurs fois jusqu'à obtenir une taille d'occupation du cache à zéro. Si le cache est très rempli cela peut durer un certain temps.

    Menu EverCookie Developpement Web EverCookie Inspecteur de stockage

    • Dans le volet de gauche : Cookies EverCookie Dans le volet central, s'il y a des données : Clic droit EverCookie Tout supprimer
    • Dans le volet de gauche : Stockage de session EverCookie Dans le volet central, s'il y a des données : Clic droit EverCookie Tout supprimer
    • Dans le volet de gauche : Stockage cache EverCookie Dans le volet central, s'il y a des données : Clic droit EverCookie Tout supprimer
    • Dans le volet de gauche : Indexed DB EverCookie Dans le volet central, s'il y a des données : Clic droit EverCookie Tout supprimer
    • Dans le volet de gauche : Stockage local EverCookie Dans le volet central, s'il y a des données : Clic droit EverCookie Tout supprimer

  6. 6 On vide les technologies SilverLight et Flash

    • Technologie Silverlight :

      Ouvrez le panneau de configuration de « Silverlight » (à condition que « Silverlight » soit installé dans votre machine, sinon la création de cet « EverCookies » aura échoué et il n'existe pas).

      Pour atteindre ce panneau de configuration, deux méthodes simples :

      1. Clic droit sur n'importe quelle application Silverlight et choisir « Silverlight »
      2. Aller directement à son exécutable. Par exemple :
        C: \ Program Files (x86) \ Microsoft Silverlight \ 5.1.10411.0 \ Silverlight.Configuration.exe

      l'onglet de stockage vous permet de voir et de supprimer les fichiers, par application/site. Dans le cas présent, supprimer les fichiers du site « samy.pl » -EverCookie Bouton « Delete » ou « Supprimer » et confirmez (Bouton « Yes » ou « Oui ».

      Les chemins d'accès au répertoire Silverlight Isolated Storage sont :

      Windows 7 and Windows Vista
      %userprofile%\AppData\LocalLow\Microsoft\Silverlight\is

      Windows XP
      %userprofile%\Local Settings\Application Data\Microsoft\Silverlight\is

      MacOS
      /Users/<user>/Library/Application/Support/Microsoft/Silverlight/is

    • Technologie Flash

      Ouvrez le panneau de configuration de « Flash » (à condition que le plug-in « Flash » soit installé dans votre navigateur, sinon la création de cet « EverCookies » aura échoué et il n'existe pas).

      Note :

      La technologie « Flash » n'existe plus. Le principe même des plug-in est abandonné fin 2016.

      Ouvrez ensuite la page du panneau « Paramètres de stockage Flash » pour le site Web « samy.pl » et supprimez le LSO (Flash Local Shared Objects).

  7. 7 Que reste t-il ?

  8. 8 Ouvrir un nouvel onglet et aller sur le domaine samy.pl

    Ouvrir un nouvel onglet et se rendre sur la page d'exploitation du script EverCookie (https://samy.pl/evercookie/)

    Le script affiche les ever cooie samy.pl (avec l'identifiant précédent). Il n'y en a plus.