Notes de lecture du billet An overview of browser privacy features d'Eric Rescorla.
Isolation des cookies de première partie
Le protocole HTTP est stateless. Une des solutions inventées pour conserver un état pendant une session est le cookie : un fichier créé côté serveur, envoyé et stocké dans le navigateur, puis renvoyé au serveur à chaque requête.
Les cookies permettent deux types de suivis (web tracking) :
- suivi sur le même site (same-site tracking)
- j'ai fait une recherche sur "foo"
- suivi inter-sites (cross-site tracking)
- j'ai visité Nike et Adidas
Historiquement :
- les cookies sont référencés par le domaine qui les a créé
- domaine auquel ils sont toujours renvoyés
Deux catégories :
- first-party cookies : cookies de première partie (ou propriétaires) créés par le site indiqué dans la barre d'adresse
- third-party cookies : cookies tiers créés par d'autres sites
Désormais, il y a une double clé pour les cookies (double keying) en guise de mécanismes anti-traçage inter-sites.
On parle d'isolation des cookies de première partie (first-party isolation, FPI) :
double clé = (domaine de la barre d'adresse, domaine qui met en place le cookie)
Les cookies deviennent des :
- first-party cookies : si la deuxième clé est dérivée de la première (
google.com
,mail.google.com
) - third-party cookies : sinon (
huffingtonpost.com
,doubleclick.net
)
Implémentation :
- Firefox : Total Cookie Protection (TCP)
- Safari : partie de l'Intelligent Tracking Protection
Avec l'isolation de première partie, un tracker T présent sur deux sites A et B recevra un cookie différent sur chaque site, rendant le suivi inter-sites impossible.
Avant l'isolation de première partie
Après l'isolation de première partie
Modes de navigation privés
Historiquement, ces modes ont été conçus, non pas pour empêcher le suivi, mais pour prévenir des attaques locales.
L'idée est que les personnes avec qui vous partagez un ordinateur ne puissent pas savoir quels sites vous visitez :
- cas d'utilisation officiel : achat de cadeaux pour quelqu'un
- cas d'utilisation officieux : pornographie
Ces modes fonctionnent en ne stockant pas l'état de la navigation au-delà de la durée de vie de la session de navigation.
Comme les cookies et le contenu en cache sont supprimés, la navigation privée offre une protection partielle contre le suivi :
- l'impossibilité de lier des sessions privées et publiques
- l'impossibilité de lier des sessions privées entre elles
Au-delà du mode de navigation privée
Deux mécanismes beaucoup plus difficiles à bloquer :
- suivi basé sur l'adresse IP
- pas grand-chose que les navigateurs puissent faire directement sans relayer le trafic par un autre nœud
- empreinte numérique ou fingerprinting
- identifier un internaute depuis l'empreinte numérique de son navigateur qui dépend de la combinaison du logiciel client et du matériel sur lequel il fonctionne
- fuseau horaire
- version de son navigateur
- résolution d'écran
- plug-ins installés
- etc..
- identifier un internaute depuis l'empreinte numérique de son navigateur qui dépend de la combinaison du logiciel client et du matériel sur lequel il fonctionne
Empêcher le suivi basé sur l'IP
Il faut acheminer le trafic par un service qui dissimule son adresse IP.
Actuellement, trois possibilités :
- VPN
- connexion au service VPN
- il transmet nos paquets au serveur
- le VPN voit à la fois notre adresse et le site visité
- il est en capacité de nous suivre
- il faut lui faire confiance pour qu'il ne le fasse pas
- iCloud Private Relay (Paper)
- résout ce problème en utilisant deux proxys
- ils sont gérés par des fournisseurs différents
- aucun d'eux ne connaît à la fois notre identité et le site visité
- il faudrait qu'ils s'associent pour connaître notre historique de navigation
- Tor
- trois sauts (hop) choisis parmi un ensemble de serveurs gérés par la communauté
- notre comportement est privé tant que l'un des serveurs est honnête
Le problème fondamental de toutes ces possibilités est :
- qu'elles nécessitent un ou plusieurs serveurs pour relayer le trafic
- et que quelqu'un doit payer pour ces serveurs et la bande passante associée
Empêcher le fingerprinting
La lutte contre la prise d'empreintes numériques est un problème difficile, qui nécessite un compromis entre la protection maximale de la vie privée et le cassage de fonctionnalités.
Certains navigateurs disposent de mécanismes explicites avec des degrés d'efficacité variables :
- blocage des connexions aux origines qui effectuent le fingerprinting (Firefox)
- ajout de bruit aux valeurs de retour des API pour rendre l'empreinte numérique plus difficile (Brave)
- suppression des API qui peuvent être utilisées pour le fingerprinting et tentative de faire en sorte que les autres API renvoient des résultats cohérents sur tous les appareils (TorBrowser)
Cependant, le type d'informations pouvant être obtenues à partir des empreintes numériques n'est pas tout à fait clair.
Mise à jour du 30/04/2023 : Web fingerprinting is worse than I thought.