Firefox 85 : des caches pour bloquer les supercookies

 

De Steven Englehardt et Arthur Edelstein

Les AdTech et entreprises utilisant des traqueurs ont, pendant longtemps, utilisé les navigateurs Internet pour suivre les utilisateur·rice·s à travers la toile. Depuis 2018, nous travaillons à limiter le suivi de nos utilisateur·rice·s. Nous avons ainsi bloqué les cookies provenant de traqueurs connus ainsi que la collecte d’empreintes numériques par certaines entreprises.

 

Avec Firefox 85, nous présentons un changement fondamental dans l’architecture réseau du navigateur, afin d’assurer plus de sécurité pour nos utilisateur·rice·s. Désormais, nous partitionnons les connexions réseau et les caches par site visité. En effet, les traqueurs peuvent, en temps normal, profiter des caches pour créer des supercookies et utiliser les identifiants de connexion pour traquer les internautes. Mais en isolant les caches et connexions réseau directement sur le site où ils ont été créés, ils sont désormais inutiles et inutilisables hors dudit site.

 

Qu’est qu’un super-cookie ?

Il peut être utilisé à la place d’un cookie « traditionnel » afin de stocker des identifiants utilisateur·rice·s et est également beaucoup plus compliqué à bloquer et/ou supprimer. Il est presque impossible pour les utilisateur·rice·s de protéger leurs données en navigant sur Internet. Au fil des années, ces supercookies ont été cachés de plus en plus loin dans les navigateurs, comme par exemple dans le stockage Flash, les ETags ou encore les directives HSTS. Les changements que nous apportons dans Firefox 85 réduisent grandement l’efficacité des supercookies qui exploitent les caches, évitant ainsi que les traqueurs les utilisent sur les sites web.

 

Comment partitionner l’état du réseau prévient le suivi de site en site

Comme tous les navigateurs web, Firefox partage des ressources internes entre les sites afin de réduire la charge réseau. Le cache Firefox concernant les images est un bon exemple : si une image est intégrée à plusieurs sites, Firefox va la charger lors d’une première visite et elle sera réutilisée depuis le cache si elle devait réapparaître (au lieu d’être téléchargée une nouvelle fois). De la même manière, Firefox utiliserait une seule connexion réseau lors du chargement de ressources intégrées dans plusieurs sites web. Ces techniques sont destinées à faire gagner du temps et de la bande passante à l’utilisateur·rice.

 

Malheureusement, plusieurs traqueurs ont trouvé des moyens d’abuser de ces ressources partagées afin de suivre les utilisateur·rice·s à travers le Web. Dans le cas du cache d’images de Firefox, un traqueur peut créer un supercookie en codant un identifiant sur une image présente dans le cache utilisateur·rice·s, puis en retrouvant les sites où celle-ci a été réutilisée. Pour empêcher cette possibilité, Firefox 85 utilise un cache d’images différent pour chaque site visité par l’internaute. Il existe toujours des caches sur lesquels les données sont stockées pour de prochaines visites, mais ils sont désormais uniques pour chaque site et ne sont pas partagés avec les autres domaines.

 

En fait, il existe de nombreux types de caches dont les traqueurs peuvent abuser afin de mettre en place des supercookies. Firefox 85 partitionne tous les caches suivant par le site visité : HTTP, favicon, HSTS, OCSP, feuilles de styles, Alt-Svc, DNS, ainsi que les caches de polices, d’image, d’authentification http et de certificat TLS.

 

Pour protéger davantage les utilisateur.rice.s du suivi basé sur les connexions, Firefox 85 partitionne également les connexions groupées, de prérecherche, de préconnexion, ainsi que les connexions spéculatives et les identificateurs de session TLS.

 

Ce partitionnement s’applique à toutes les ressources tierces sollicitées sur un site, peu importe si Firefox considère qu’elles sont tirées d’un domaine qui suit les utilisateur·rice·s. Nos propres mesures ont montré un impact minime sur le temps de chargement des pages Internet. À savoir, une hausse de 0,09% à 0,75% jusqu’au 80ᵉ centile, et une augmentation maximum de 1,32% à partir du 81ᵉ centile. Ces impacts sur les temps de chargement sont les mêmes que ceux signalés par l’équipe de Chrome pour des protections de caches similaires qu’elle a prévu de déployer.

 

Le partitionnement réseau systématique rend la tâche plus compliquée pour les trackers qui doivent contourner les mesures antisuivi de Firefox. Toutefois, il reste encore du travail pour continuer de solidifier ces protections. De nouvelles annonces pour la protection de la vie privée suivront dans les prochains mois.

 

Remerciements

La réarchitecture de la manière dont Firefox gère les connexions réseau et les caches n’a pas été une mince affaire, et n’aurait pas été possible sans le travail inlassable de notre équipe d’ingénieur·e·s : Andrea Marchesini, Tim Huang, Gary Chen, Johann Hofmann, Tanvi Vyas, Anne van Kesteren, Ethan Tseng, Prangya Basu, Wennie Leung, Ehsan Akhgari et Dimi Lee.

 

Nous tenons à exprimer notre gratitude aux nombreux Mozillien·ne·s qui ont contribué et soutenu ce travail, notamment Selena Deckelmann, Mikal Lewis, Tom Ritter, Eric Rescorla, Olli Pettay, Kim Moir, Gregory Mierzwinski, Doug Thayer et Vicky Chin.

 

Nous voulons également reconnaître les efforts passés et présents des collègues des équipes de Brave, Chrome, Safari et Tor Browser pour combattre les supercookies dans leur propre navigateur.