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)

Devant l'augmentation rapide, effrayante au sens des sociétés pratiquant le tracking, du nombre d'internautes se souciant de leur vie privée, certains sites ont trouvé une parade : le champ ETag des entêtes HTTP.

Le champ ETag peut être utilisé pour suivre les utilisateurs en les identifiant de manière unique (au même titre que les Guid).

Les ETag sont des identificateurs uniques générés par le serveur d'un domaine et changés chaque fois que la ressource (le contenu de l'URL consultée dans le domaine) change.

ETag, un truc relativement obscur aux fonctions potentielles multiples, est utilisé, entre autres, pour gérer la mise en cache (accélération par le principe d'anticipation), côté navigateur de l'internaute, des ressources (des URLs d'un domaine).

ETag exprime, dans l'entête HTTP qui accompagne chaque ressource envoyée par un serveur :

  1. un identifiant unique de la ressource (ce n'est pas un hashcode)

  2. si la ressource peut être mise en cache

  3. quelle est sa durée de validité

L'identifiant unique de la ressource (du fichier sur le serveur) change dès que le fichier est modifié (mis à jour).

Si la ressource est à nouveau sollicitée (elle se trouve donc dans le cache du navigateur), une requête très brève est envoyée au serveur en lui donnant l'URL de la ressource et en lui disant, dans le champs ETag " j'ai cette version là dans mon cache (voici son identifiant) ".

Le serveur répond :

  • soit en envoyant la ressource, en remplacement de la version obsolette dans le cache du navigateur.

  • soit en disant " Prends celle dans ton cache, c'est la même que la mienne et ça fait gagner du temps à tout le monde ".

C'est le site visité (le webmaster) qui paramètre cela sur son serveur, dans des scripts côté serveur et dans un fichier nommé .htaccess. Par exemple, les ressources telles que les images peuvent être relativement stables et être mises en cache pour une durée relativement longue. Par contre, le contenu textuel des pages de type "news" peut varier rapidement et il est préférable de ne pas le conserver en cache ou de ne l'y conserver que quelques heures, pas plus, après quoi il faut allez chercher une page plus " fraîche ".

En Juillet 2011, Ashkan Soltani et une équipe de chercheurs de l'Université de Berkeley, ont rapporté qu'un certain nombre de sites, y compris Hulu.com, utilisaient le champ ETag à des fins de suivi des internautes identifiés de manière unique.

Hulu est une gigantesque plate-forme de streaming audio et vidéo agissant de manière autonome, sans dépendre de tiers pour ses ressources média. Ce site est classé 264ème site le plus visité au monde en avril 2013, selon Alexa. Son site est bourré de publicités délivrées par la régie publicitaire KISSmetrics. Hulu est donc un client de KISSmetrics. L'un comme l'autre ont besoin de traquer et profiler les internautes pour délivrer des publicités ciblées. L'un comme l'autre étant filtrés dans les outils de protection de la vie privée, KISSmetrics a déployé et exploité un système de tracking hors de portée des internautes. Or des législations se sont mis en place, protégeant l'internaute et lui donnant, de droit, la possibilité d'échapper (Opt Out) au tracking.

Hulu et KISSmetrics ont tous deux cessé ce " déploiement " le 29 Juillet 2011, au moment où KISSmetrics et plus de 20 de ses clients sont confrontés à une poursuite en recours collectif sur l'utilisation des cookies de suivi " ineffaçables " impliquant, partiellement, l'utilisation des ETags.

Les ETags sont mis en cache par le navigateur, côté utilisateur, avec les ressources mises en cache. Les ETags sont retournés aux serveurs, lors des requêtes ultérieures pour la même ressource. Un serveur de tracking peut tout simplement répéter tout ETag obtenu à partir d'un navigateur afin de s'assurer qu'un ETag attribué à un internaute persiste indéfiniment (d'une manière similaire aux cookies persistants - Evercookie, Flash Cookies, etc.).

Les ETags peuvent être effacés en vidant le cache du navigateur utilisé et en empêchant les mises en cache ultérieures, dans les paramètres du navigateur (mais les implémentations de la gestion du cache varient d'un navigateur à l'autre et l'implémentation de la gestion du cache n'est pas visible, sauf dans Firefox, dont le code est Open Source).

http://forum.xxxxxxxx
GET /applications/dashboard/design/images/star_sprite.png HTTP/1.1
Host: forum.xxxxxxxx
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://xxxxxxxx
Cookie:xxxxxxxx
Connection: keep-alive
If-Modified-Since: Fri, 07 Oct 2011 19:00:10 GMT
If-None-Match: "4e8f4c3a-5cc"
HTTP/1.1 304 Not Modified
Server: nginx
Date: Sun, 26 May 2013 02:06:44 GMT
Last-Modified: Fri, 07 Oct 2011 19:00:10 GMT
Etag: "4e8f4c3a-5cc"
Expires: Sun, 26 May 2013 02:08:44 GMT
Cache-Control: max-age=120




Dans les navigateurs Web, empêcher la mise en cache (mémoire « cache ») : taille du cache à zéro ou désactivation du cache.

Utiliser le module additionnel SecretAgent (Firefox uniquement) qui permet de générer des eTags forgés (contenus fictifs/bidons).