Quand le navigateur montre son cache

Mobilité

Deux chercheurs de l’université de Princeton ont présenté une étude qui explique comment un site peut très simplement déterminer si un internaute a navigué chez ses concurrents auparavant. Une méthode basée sur l’étude du cache du navigateur qui pourrait constituer une menace pour la vie privée des individus.

A priori, rien actuellement ne permet de contrer la méthode décrite par deux chercheurs pour savoir si un internaute a récemment navigué sur un site déterminé. Rien, sauf vider le cache de son navigateur et interdire ensuite son emploi. Très peu pratique ! L’idée d’Edward Felten et Michael Schneider, deux chercheurs du département informatique de l’université de Princeton, est très simple. Elle consiste à interroger le cache du navigateur, un dossier qui stocke des éléments des sites consultés pour permettre un affichage plus rapide lors de la visite suivante. Tous les éléments d’un site ne sont pas ainsi enregistrés, mais les logos ou certaines images qui ne varient pas, d’une visite à l’autre. Ainsi, quand l’internaute se connecte à nouveau au site, le navigateur n’a pas besoin de télécharger ces éléments, il va les chercher directement sur le disque dur de la machine, ce qui est nettement plus rapide.

Mesurer les temps de téléchargement

Le cache est une partie bien protégée, mais les chercheurs parviennent tout de même à le faire parler. Comment ? Tout simplement en chronométrant le temps nécessaire au chargement d’un élément déterminé. Ainsi, le site A qui veut savoir si son client est allé voir chez son concurrent B peut aisément le vérifier. Pour cela, il lui faut demander l’affichage d’un élément du site B et mesurer le temps mis par le navigateur pour l’afficher. Si le temps est inférieur à une certaine valeur, alors c’est que l’élément se trouvait sur le disque dur du client, donc qu’il avait surfé sur le site B. Pour réaliser cela, applets Java et Javascript permettent d’obtenir très précisément le temps mis pour l’affichage. De plus la « victime » ne se rend compte de rien. Pour couronner le tout, la méthode est particulièrement fiable, avec un taux de réussite supérieur à 95 %, même quand le navigateur n’accepte pas les applets Java ou le Javascript.

Car même si l’internaute à désactivé Java et Javascript, il reste possible d’espionner le cache. Le principe est le suivant : le site A demande l’affichage de 3 fichiers les uns après les autres. Le premier sur le site A, le second caractéristique du site B et enfin le troisième de nouveau sur le site A. Chacune des requêtes ne peut commencer avant que la précédente ne soit terminée. Résultat, la différence entre le moment où le serveur du site A a enregistré la requête pour le premier fichier et celle pour le troisième correspond au temps mis pour afficher le fichier du site B. En dessous d’un certain temps entre les requêtes 1 et 3, on peut en conclure que le deuxième fichier (situé sur le site B) était stocké dans le cache de l’internaute et qu’il avait donc visité ce site auparavant.

Un danger potentiel pour la vie privée des internautes

« Une compagnie d’assurances pourrait déterminer si un utilisateur a récemment visité des sites Internet dédiés à certains états médicaux  ou alors le site d’un employeur pourrait savoir si un employé qui navigue dessus a récemment visité les sites de différents partis politiques », s’alarment les chercheurs dans leur publication (disponible au format pdf). La seule contrainte pour celui qui espionne est de déterminer à l’avance quel site il veut traquer sur le cache de sa « victime ». Les chercheurs réussissent ici à démontrer une technique qui paraît presque enfantine, au point qu’on ne peut s’empêcher de se demander si certains sites ne l’emploient déjà…

Pour la petite histoire, il est amusant de noter qu’Edward Felten s’était récemment illustré avec une équipe de scientifiques qui affirment avoir « cracké » les protections de la SDMI (voir édition du 25 octobre 2000). On attend impatiemment le détail de leur exploit.