Protection contre le pistage par redirection
Firefox 79 inclut une protection contre le pistage par redirection. Ce document décrit le fonctionnement de ces protections.
Définition du pistage par redirection
Le pistage par redirection est un abus de la navigation intersite dans lequel un traqueur redirige momentanĂ©ment un utilisateur ou une utilisatrice vers son site web dans le but dâutiliser le stockage de premiĂšre partie (first-party) pour suivre cet utilisateur ou cette utilisatrice Ă travers les sites web.
Les navigations intersites sont une caractĂ©ristique essentielle du web. Une personne peut rechercher les « meilleures chaussures de course » sur un moteur de recherche, cliquer sur un rĂ©sultat de recherche pour lire des critiques et enfin cliquer sur un lien pour acheter une paire de chaussures dans un magasin en ligne. Dans le passĂ©, chacun de ces sites web pouvait intĂ©grer des ressources provenant du mĂȘme traqueur, et le traqueur pouvait utiliser ses cookies pour relier toutes ces visites de page Ă la mĂȘme personne. Afin de protĂ©ger la vie privĂ©e des utilisateurs et utilisatrices de Firefox, la Protection renforcĂ©e contre le pistage (ETP pour Enhanced Tracking Protection) empĂȘche dĂ©jĂ les traqueurs dâutiliser des cookies lorsquâils sont intĂ©grĂ©s dans un contexte tiers, mais leur permet toujours dâutiliser des cookies en tant que premiĂšre partie, car le blocage des cookies de premiĂšre partie provoque le dysfonctionnement de sites web. Le pistage par redirection en profite pour contourner le blocage des cookies de tiers.
Les traqueurs de redirection fonctionnent en vous obligeant Ă faire une escale imperceptible et momentanĂ©e sur leur site web dans le cadre de ce voyage. Ainsi, au lieu de naviguer directement du site web de comparaison au dĂ©taillant, vous finirez par naviguer dâabord vers le traqueur de redirection plutĂŽt que vers le commerçant. Cela signifie que le traqueur est chargĂ© en tant que premiĂšre partie. Le traqueur de redirection associe les donnĂ©es de pistage aux identifiants quâil a stockĂ©s dans ses cookies de premiĂšre partie et vous achemine ensuite vers le commerçant.
La protection contre le pistage par redirection expliquée
Pour protĂ©ger contre le pistage par redirection, Firefox supprime pĂ©riodiquement les cookies et donnĂ©es de site provenant des traqueurs. Nous effaçons uniquement ces donnĂ©es du stockage si lâutilisateur ou lâutilisatrice bloque les cookies traqueurs (c.-Ă -d. que la prĂ©fĂ©rence network.cookie.cookieBehavior
est réglée sur 4
). La prise en charge dâautres politiques de cookies est suivie dans le bug 1643045.
Quelles origines sont supprimées ?
Une origine sera supprimée si elle remplit les conditions suivantes :
- Elle a stockĂ© des cookies ou a accĂ©dĂ© Ă un autre stockage de site (comme localStorage, IndexedDB ou Cache API) dans les derniĂšres 72 heures. Comme les cookies sont assignĂ©s par hĂŽte, nous supprimerons les variantes dâorigine
http
ethttps
dâun hĂŽte de cookies. - Lâorigine est rĂ©pertoriĂ©e en tant que traqueur dans la liste de notre protection contre le pistage.
- Aucune origine disposant du mĂȘme domaine de base (eTLD+1) nâa de permission dâinteraction avec lâutilisateur ou lâutilisatrice.
- Cette permission est accordĂ©e Ă une origine pour 45 jours dĂšs quâun utilisateur ou une utilisatrice interagit avec un document de premier niveau de cette origine. Une « interaction » peut ĂȘtre un dĂ©filement.
- Bien que cette autorisation soit stockĂ©e Ă un niveau par origine, nous vĂ©rifierons si une origine ayant le mĂȘme domaine de base lâa, pour Ă©viter de casser les sites avec des sous-domaines et une configuration de cookies correspondante.
Quelles données sont supprimées ?
Firefox supprimera les données suivantes :
- les caches réseau et image
- les cookies
- AppCache
- DOM Quota Storage (localStorage, IndexedDB, ServiceWorkers, DOM Cache, etc.)
- les notifications Push du DOM
- les rapports de lâAPI Reporting
- les paramÚtres de sécurité (comme HSTS)
- les données des plugins de média EME (Encrypted Media Extensions)
- les données des plugins (comme Flash)
- les appareils média
- les permissions de Storage Access accordĂ©es Ă lâorigine
- les tokens dâauthentification HTTP
- le cache dâauthentification HTTP
Note : mĂȘme si nous effaçons toutes ces donnĂ©es, nous ne marquons actuellement les origines pour suppression que lorsquâelles utilisent des cookies ou dâautres moyens de stockage du site.
La suppression du stockage ignore les attributs dâorigine. Cela signifie que le stockage sera supprimĂ© dans les containers et le stockage isolĂ© (comme celui de lâisolement de la premiĂšre partie (First-Party)).
à quelle fréquence les données sont-elles supprimées ?
Firefox efface le stockage en fonction du dĂ©clenchement dâun Ă©vĂ©nement interne appelĂ© idle-daily
, qui est défini par les conditions suivantes :
- Il sera, au plus tÎt, déclenché 24 heures aprÚs le dernier événement
idle-daily
dĂ©clenchĂ©. - Il sera seulement dĂ©clenchĂ© si lâutilisateur ou lâutilisatrice a Ă©tĂ© inatif·ve pour au moins 3 min (pour 24-48 h aprĂšs le dernier
idle-daily
) ou 1 min (pour > 48 h aprĂšs le dernieridle-daily
).
Cela signifie quâil y a au moins 24 heures entre chaque effacement de stockage et que le stockage sera uniquement effacĂ© quand le navigateur est inactif. Lorsque nous supprimons des cookies, nous classons les cookies par date de crĂ©ation et nous les regroupons par lots de 100 (contrĂŽlĂ©s par la prĂ©fĂ©rence privacy.purge_trackers.max_purge_count
) pour des raisons de performance.
Débogage
Le pistage par redirection peut ĂȘtre activĂ© et dĂ©sactivĂ© en inversant la prĂ©fĂ©rence privacy.purge_trackers.enabled
dans about:config
. En outre, il ne fonctionnera que si la préférence network.cookie.cookieBehavior
est réglée sur 4
ou 5
dans Firefox 79+ (1
, 3
, 4
, ou 5
Ă partir de Firefox 80).
DiffĂ©rents niveaux de journalisation peuvent ĂȘtre dĂ©terminĂ©s grĂące Ă la prĂ©fĂ©rence privacy.purge_trackers.logging.level
.
Pour le dĂ©bogage, il est plus facile de dĂ©clencher lâeffacement du stockage en dĂ©clenchant le service directement par la ligne de commande de la console du navigateur. Remarquez que câest diffĂ©rent de la console web que vous pouvez utiliser pour dĂ©boguer un site web et cela nĂ©cessite que la prĂ©fĂ©rence devtools.chrome.enabled
soit réglée sur true
pour lâutiliser interactivement. Une que vous avez activĂ© la console du navigateur, vous pouvez dĂ©clencher la suppression du stockage en exĂ©cutant la commande suivante :
await Components.classes["@mozilla.org/purge-tracker-service;1"].getService(Components.interfaces.nsIPurgeTrackerService).purgeTrackingCookieJars()
Lâintervalle de temps jusquâĂ ce que les permissions dâinteraction avec lâutilisateur ou lâutilisatrice expirent peut ĂȘtre rĂ©glĂ© Ă un niveau infĂ©rieur grĂące Ă la prĂ©fĂ©rence privacy.userInteraction.expiration
. Notez que vous aurez Ă rĂ©gler cette prĂ©fĂ©rence avant de consulter les sites que vous dĂ©sirez tester â elle ne sâappliquera pas rĂ©troactivement.
Autres mises en Ćuvre
WebKit a livrĂ© en premier la protection contre le pistage par redirection dans ITP 2.0 (ils se rĂ©fĂšrent Ă la mĂȘme attaque en lâappelant pistage par rebond (bounce tracking)). Ă compter de juillet 2020, il y a plusieurs diffĂ©rences importantes entre la mise en Ćuvre dans WebKit et dans Firefox :
- La liste des origines Ă effacer dans Firefox est basĂ©e notre liste de la protection contre le pistage, alors que WebKit sâappuie sur la classification dâITP.
- La dĂ©finition dâ« interaction » de Firefox comprend le dĂ©filement contrĂŽlĂ© par lâutilisateur ou lâutilisatrice lors de la visite de lâorigine comme premiĂšre partie, alors que WebKit non.
- Firefox ne supprimera de donnĂ©es pour une origine sâil a reçu une interaction comme premiĂšre partie dans les 45 derniers jours calendaires. La fenĂȘtre dâinteraction de WebKit est de 30 jours dâutilisation du navigateur (p. ex. les jours au cours desquels lâutilisateur ou lâutilisatrice a eu au moins une interaction avec Safari).