This is an archived page. It's not actively maintained.

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 :

  1. 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 et https d’un hĂŽte de cookies.
  2. L’origine est rĂ©pertoriĂ©e en tant que traqueur dans la liste de notre protection contre le pistage.
  3. 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 dernier idle-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).