INF344 – Données du Web
Pistage par les entreprises du Web
Antoine Amarilli ; adapté d’une présentation par Pierre Senellart 9 mai 2018
Rappels sur le Web 1/3
On veut visiterhttp://www.cerre.eu/mission-objectives.
Mon navigateur : Qui estcerre.eu?
Serveur DNS de mon FÀI : C’est la machine 54.246.205.67 !
Mon navigateur : Bonjour 54.246.205.67, je parle à ton serveur Web. Est-ce que tu pourrais me donner la page
/mission-objectives?
Mon navigateur : Au fait, voici d’autres informations sur qui je suis Mon navigateur : Et voici les données (cookies) que tu m’as demandé
de t’envoyer à chaque fois que je viens
1/25
Rappels sur le Web 1/3
On veut visiterhttp://www.cerre.eu/mission-objectives. Mon navigateur : Qui estcerre.eu?
Serveur DNS de mon FÀI : C’est la machine 54.246.205.67 !
Mon navigateur : Bonjour 54.246.205.67, je parle à ton serveur Web. Est-ce que tu pourrais me donner la page
/mission-objectives?
Mon navigateur : Au fait, voici d’autres informations sur qui je suis Mon navigateur : Et voici les données (cookies) que tu m’as demandé
de t’envoyer à chaque fois que je viens
Rappels sur le Web 1/3
On veut visiterhttp://www.cerre.eu/mission-objectives. Mon navigateur : Qui estcerre.eu?
Serveur DNS de mon FÀI : C’est la machine 54.246.205.67 !
Mon navigateur : Bonjour 54.246.205.67, je parle à ton serveur Web. Est-ce que tu pourrais me donner la page
/mission-objectives?
Mon navigateur : Au fait, voici d’autres informations sur qui je suis Mon navigateur : Et voici les données (cookies) que tu m’as demandé
de t’envoyer à chaque fois que je viens
1/25
Rappels sur le Web 1/3
On veut visiterhttp://www.cerre.eu/mission-objectives. Mon navigateur : Qui estcerre.eu?
Serveur DNS de mon FÀI : C’est la machine 54.246.205.67 !
Mon navigateur : Bonjour 54.246.205.67, je parle à ton serveur Web.
Est-ce que tu pourrais me donner la page /mission-objectives?
Mon navigateur : Au fait, voici d’autres informations sur qui je suis Mon navigateur : Et voici les données (cookies) que tu m’as demandé
de t’envoyer à chaque fois que je viens
Rappels sur le Web 1/3
On veut visiterhttp://www.cerre.eu/mission-objectives. Mon navigateur : Qui estcerre.eu?
Serveur DNS de mon FÀI : C’est la machine 54.246.205.67 !
Mon navigateur : Bonjour 54.246.205.67, je parle à ton serveur Web.
Est-ce que tu pourrais me donner la page /mission-objectives?
Mon navigateur : Au fait, voici d’autres informations sur qui je suis
Mon navigateur : Et voici les données (cookies) que tu m’as demandé de t’envoyer à chaque fois que je viens
1/25
Rappels sur le Web 1/3
On veut visiterhttp://www.cerre.eu/mission-objectives. Mon navigateur : Qui estcerre.eu?
Serveur DNS de mon FÀI : C’est la machine 54.246.205.67 !
Mon navigateur : Bonjour 54.246.205.67, je parle à ton serveur Web.
Est-ce que tu pourrais me donner la page /mission-objectives?
Mon navigateur : Au fait, voici d’autres informations sur qui je suis Mon navigateur : Et voici les données (cookies) que tu m’as demandé
de t’envoyer à chaque fois que je viens
Rappels sur le Web 2/3
Serveur Web de 54.246.205.67 : Voici la page Web demandée
Mon navigateur : Cette page appelle d’autres ressources :
• D’autres scripts et images sur le même site
• Des scripts de Oracle, MaxCDN, JQuery foundation, Google, Twitter
Mon navigateur : Je vais envoyer une requête à tous ces gens-là . . .
2/25
Rappels sur le Web 2/3
Serveur Web de 54.246.205.67 : Voici la page Web demandée Mon navigateur : Cette page appelle d’autres ressources :
• D’autres scripts et images sur le même site
• Des scripts de Oracle, MaxCDN, JQuery foundation, Google, Twitter
Mon navigateur : Je vais envoyer une requête à tous ces gens-là . . .
Rappels sur le Web 2/3
Serveur Web de 54.246.205.67 : Voici la page Web demandée Mon navigateur : Cette page appelle d’autres ressources :
• D’autres scripts et images sur le même site
• Des scripts de Oracle, MaxCDN, JQuery foundation, Google, Twitter
Mon navigateur : Je vais envoyer une requête à tous ces gens-là . . .
2/25
Rappels sur le Web 2/3
Serveur Web de 54.246.205.67 : Voici la page Web demandée Mon navigateur : Cette page appelle d’autres ressources :
• D’autres scripts et images sur le même site
• Des scripts de Oracle, MaxCDN, JQuery foundation, Google, Twitter
Mon navigateur : Je vais envoyer une requête à tous ces gens-là . . .
Rappels sur le Web 2/3
Serveur Web de 54.246.205.67 : Voici la page Web demandée Mon navigateur : Cette page appelle d’autres ressources :
• D’autres scripts et images sur le même site
• Des scripts de Oracle, MaxCDN, JQuery foundation, Google, Twitter
Mon navigateur : Je vais envoyer une requête à tous ces gens-là
. . .
2/25
Rappels sur le Web 2/3
Serveur Web de 54.246.205.67 : Voici la page Web demandée Mon navigateur : Cette page appelle d’autres ressources :
• D’autres scripts et images sur le même site
• Des scripts de Oracle, MaxCDN, JQuery foundation, Google, Twitter
Mon navigateur : Je vais envoyer une requête à tous ces gens-là . . .
Rappels sur le Web 3/3
Mon navigateur : Maintenant que j’ai tout le contenu, il ne reste plus qu’à exécuter tous les scripts ; ils vont sans doute me demander d’accéder à d’autres ressources
. . .
Mon navigateur : Cher utilisateur, la page est prête ! Ça m’a pris 74 requêtes et m’a fait télécharger 1.4 MB de données Mon navigateur : Au fait, tant que tu es sur cette page, je vais
contacter Twitter toutes les 30 secondes, comme elle me demande de le faire
3/25
Rappels sur le Web 3/3
Mon navigateur : Maintenant que j’ai tout le contenu, il ne reste plus qu’à exécuter tous les scripts ; ils vont sans doute me demander d’accéder à d’autres ressources
. . .
Mon navigateur : Cher utilisateur, la page est prête ! Ça m’a pris 74 requêtes et m’a fait télécharger 1.4 MB de données Mon navigateur : Au fait, tant que tu es sur cette page, je vais
contacter Twitter toutes les 30 secondes, comme elle me demande de le faire
Rappels sur le Web 3/3
Mon navigateur : Maintenant que j’ai tout le contenu, il ne reste plus qu’à exécuter tous les scripts ; ils vont sans doute me demander d’accéder à d’autres ressources
. . .
Mon navigateur : Cher utilisateur, la page est prête ! Ça m’a pris 74 requêtes et m’a fait télécharger 1.4 MB de données
Mon navigateur : Au fait, tant que tu es sur cette page, je vais
contacter Twitter toutes les 30 secondes, comme elle me demande de le faire
3/25
Rappels sur le Web 3/3
Mon navigateur : Maintenant que j’ai tout le contenu, il ne reste plus qu’à exécuter tous les scripts ; ils vont sans doute me demander d’accéder à d’autres ressources
. . .
Mon navigateur : Cher utilisateur, la page est prête ! Ça m’a pris 74 requêtes et m’a fait télécharger 1.4 MB de données Mon navigateur : Au fait, tant que tu es sur cette page, je vais
contacter Twitter toutes les 30 secondes, comme elle me demande de le faire
Tous les sites ne sont pas comme ça
• C’estpiresur les sites Web avec de la pub (sites d’actualité, blogs, etc.) ou qui ont des accords avec les régies publicitaires (sites de vente en ligne)
• C’estmieuxsur certains sites “old-school” :
ec.europa.eu : pas de références externes
europa.eu : une seule référence externe (CloudFlare)
europarl.europa.eu : références à Google, Yahoo ! seulement
4/25
Tous les sites ne sont pas comme ça
• C’estpiresur les sites Web avec de la pub (sites d’actualité, blogs, etc.) ou qui ont des accords avec les régies publicitaires (sites de vente en ligne)
• C’estmieuxsur certains sites “old-school” :
ec.europa.eu : pas de références externes
europa.eu : une seule référence externe (CloudFlare)
europarl.europa.eu : références à Google, Yahoo ! seulement
Tous les sites ne sont pas comme ça
• C’estpiresur les sites Web avec de la pub (sites d’actualité, blogs, etc.) ou qui ont des accords avec les régies publicitaires (sites de vente en ligne)
• C’estmieuxsur certains sites “old-school” : ec.europa.eu : pas de références externes
europa.eu : une seule référence externe (CloudFlare)
europarl.europa.eu : références à Google, Yahoo ! seulement
4/25
Tous les sites ne sont pas comme ça
• C’estpiresur les sites Web avec de la pub (sites d’actualité, blogs, etc.) ou qui ont des accords avec les régies publicitaires (sites de vente en ligne)
• C’estmieuxsur certains sites “old-school” : ec.europa.eu : pas de références externes
europa.eu : une seule référence externe (CloudFlare)
europarl.europa.eu : références à Google, Yahoo ! seulement
Tous les sites ne sont pas comme ça
• C’estpiresur les sites Web avec de la pub (sites d’actualité, blogs, etc.) ou qui ont des accords avec les régies publicitaires (sites de vente en ligne)
• C’estmieuxsur certains sites “old-school” : ec.europa.eu : pas de références externes
europa.eu : une seule référence externe (CloudFlare)
europarl.europa.eu : références à Google, Yahoo ! seulement
4/25
Logs
• Souvent, le serveur Web logguetoutesles requêtes traitées !
• NCSA Common log format :
• Adresse IPdu client
• Identitéident(obsolète)
• Identitéauthentification HTTP(rarement utile)
• Dateetheurede fin de traitement
• Première ligne de larequête HTTP
• Code d’étatretourné au client
• Taille(octets) de la réponse
• Ajouts fréquents :
• User-Agentpour identifier le client
• Refererpour connaître la page précédente 208.115.113.88 - - [22/Jan/2012:06:27:00 +0100]
Utilisation des logs
• Pages lesplus visitées
• Chemin sur le site, temps passé sur les pages, entrées, sorties (mais avec les onglets, difficile)
• Distinguerhumains et robots(pas de garanties !)
• Emplacementgéographiquedes visiteurs
• Mots-cléssaisis dans les moteurs de recherche
• Liensvers son site
• Nombre d’abonnés à un flux RSS dansUser-Agent
• SpamdansReferer
• Et plus ?
• Logiciels pour exploiter directement les logs du serveur
• Tracking en PHP
• Tracking tiers en JavaScript (Google Analytics)
• Tracking possible du pointeur de la souris en JavaScript, etc.
• Google Search Console
6/25
Types de données
• Données fournies par l’utilisateur
• Données réseau
• En-têtes HTTP
• Données de scripts
• Visites précédentes
• Visites précédentes sur des sites dépendants
Ces données sont souventpartagéesd’une entreprise à l’autre
Types de données
• Données fournies par l’utilisateur
• Données réseau
• En-têtes HTTP
• Données de scripts
• Visites précédentes
• Visites précédentes sur des sites dépendants
Ces données sont souventpartagéesd’une entreprise à l’autre
7/25
Données fournies par l’utilisateur 1/2
Qu’est-ce qu’ils peuvent savoir ?
• Adresse email (pseudo-identifiant)
• Nom d’utilisateur (peut-êtreréutiliséailleurs, donc croisements)
• Mot de passe (attention à laréutilisation!)
• Vente en ligne : numéro de carte, adresse postale, etc.
• Autres données : date de naissance, amis, emploi, centres d’intérêt, etc.
Données fournies par l’utilisateur 2/2
Que vont-ils faire avec ?
Utile pour desraisons techniques, mais aussi pour duprofilage
Comment cacher ces informations ?
• Utiliser des comptesjetables:mailinator.com,bugmenot.com
• Fournir le moins d’information possible, ou mentir
9/25
Données fournies par l’utilisateur 2/2
Que vont-ils faire avec ?
Utile pour desraisons techniques, mais aussi pour duprofilage
Comment cacher ces informations ?
• Utiliser des comptesjetables:mailinator.com,bugmenot.com
• Fournir le moins d’information possible, ou mentir
Données réseau 1/3
Qu’est-ce qu’ils peuvent savoir ?
• Adresse IPdu client
• Institutionde l’IP (entreprise, FÀI, opérateur mobile)
• Géolocalisationapproximative (pays, voire ville)
• Qualité réseaulatence et bande passante
10/25
Données réseau 2/3
Que vont-ils faire avec ?
• Rediriger vers unsite local(langue, marché) suivant la géolocalisation
• Géoblocage : pour respecter le copyright, pour la censure, pour le droit à l’oubli
• Améliorer laqualité de serviceen utilisant un serveur proche de l’utilisateur
Données réseau 3/3
Comment cacher ces informations ?
• Router le trafic viaTortorproject.orgmais les adresses de sortie sont publiques (donc on sait que vous utilisez Tor, et on peut vous bloquer)
• Router le trafic via unordinateur personnel, unVPN, etc.
12/25
En-têtes HTTP 1/2
Qu’est-ce qu’ils peuvent savoir ?
User-Agent Identifie lenavigateur, la version, lesystème d’exploitation, voire plus
Referer Indique de quel URL onvient
Accept-Language Indique lalangue préféréede l’utilisateur
Fingerprinting On peut deviner des choses sur le navigateur à partir des autres en-têtes, le support de différentes
technologie, algorithmes de chiffrement, etc.
En-têtes HTTP 1/2
Qu’est-ce qu’ils peuvent savoir ?
User-Agent Identifie lenavigateur, la version, lesystème d’exploitation, voire plus
Referer Indique de quel URL onvient
Accept-Language Indique lalangue préféréede l’utilisateur
Fingerprinting On peut deviner des choses sur le navigateur à partir des autres en-têtes, le support de différentes
technologie, algorithmes de chiffrement, etc.
13/25
En-têtes HTTP 1/2
Qu’est-ce qu’ils peuvent savoir ?
User-Agent Identifie lenavigateur, la version, lesystème d’exploitation, voire plus
Referer Indique de quel URL onvient
Accept-Language Indique lalangue préféréede l’utilisateur
Fingerprinting On peut deviner des choses sur le navigateur à partir des autres en-têtes, le support de différentes
technologie, algorithmes de chiffrement, etc.
En-têtes HTTP 1/2
Qu’est-ce qu’ils peuvent savoir ?
User-Agent Identifie lenavigateur, la version, lesystème d’exploitation, voire plus
Referer Indique de quel URL onvient
Accept-Language Indique lalangue préféréede l’utilisateur
Fingerprinting On peut deviner des choses sur le navigateur à partir des autres en-têtes, le support de différentes
technologie, algorithmes de chiffrement, etc.
13/25
En-têtes HTTP 2/2
Que vont-ils faire avec ?
• Servir ducontenu différentaux différents navigateurs (ordinateur/mobile, compatibilité, etc.)
• Choix de lalangue
• Utile pour lamesure d’audience
Comment cacher ces informations ?
• Pour User-Agent, Referer, Accept-Language : configurable
• Pour le comportement intrinsèque du navigateur : irréaliste
En-têtes HTTP 2/2
Que vont-ils faire avec ?
• Servir ducontenu différentaux différents navigateurs (ordinateur/mobile, compatibilité, etc.)
• Choix de lalangue
• Utile pour lamesure d’audience
Comment cacher ces informations ?
• Pour User-Agent, Referer, Accept-Language : configurable
• Pour le comportement intrinsèque du navigateur : irréaliste
14/25
Données de scripts 1/2
Qu’est-ce qu’ils peuvent savoir ?
• Fuseau horairede l’utilisateur
• Résolution, couleurs de l’écran
• Géolocalisation GPSsur mobile (consentement préalable)
• Configurationdu navigateur (blocage des contenus tiers, etc.)
• Événementssur le site (ou autres fenêtres avec le même domaine) :
• Déplacements de souris, clics
• Frappes clavier, copier-coller
• Fingerprintingindirect (e.g., canvas, polices installées, etc.) panopticlick.eff.org
Données de scripts 2/2
Que vont-ils faire avec ?
• Améliorer l’expérience utilisateuravec des contenus dynamiques
• Modifierle site Web suivant la configuration (CSS, etc.)
• Mesures pour améliorer l’expérience utilisateur: Heatmaps, A/B testing, etc.
Comment cacher ces informations ?
• Blocage des scripts(uMatrix, etc.), mais beaucoup de sites deviennent inutilisables
16/25
Données de scripts 2/2
Que vont-ils faire avec ?
• Améliorer l’expérience utilisateuravec des contenus dynamiques
• Modifierle site Web suivant la configuration (CSS, etc.)
• Mesures pour améliorer l’expérience utilisateur: Heatmaps, A/B testing, etc.
Comment cacher ces informations ?
• Blocage des scripts(uMatrix, etc.), mais beaucoup de sites deviennent inutilisables
Visites précédentes 1/2
Qu’est-ce qu’ils peuvent savoir ?
Les sites peuvent faire stocker au navigateur des informations qu’il devra renvoyer à chaque visite ultérieure, pour une durée
possiblement très longue
17/25
Visites précédentes 2/2
Que vont-ils faire avec ?
• Se souvenir dequi est l’utilisateuret des précédentes interactions avec l’utilisateur
• Nécessaire pour de nombreuses fonctionnalités : maintenir une session ouverte, se souvenir du panier de l’utilisateur, etc.
Comment cacher ces informations ?
• Supprimerdes cookies, manuellement, ou à la fin d’une session (mode incognito)
• Refuserles cookies, mais beaucoup de sites Web ne fonctionneront plus
Visites précédentes 2/2
Que vont-ils faire avec ?
• Se souvenir dequi est l’utilisateuret des précédentes interactions avec l’utilisateur
• Nécessaire pour de nombreuses fonctionnalités : maintenir une session ouverte, se souvenir du panier de l’utilisateur, etc.
Comment cacher ces informations ?
• Supprimerdes cookies, manuellement, ou à la fin d’une session (mode incognito)
• Refuserles cookies, mais beaucoup de sites Web ne fonctionneront plus
18/25
Visites précédentes sur des sites dépendants 1/2
Qu’est-ce qu’ils peuvent savoir ?
Si un sitedépendde ressources hébergées par une entreprise (images, feuille de style, scripts, médias), cette entreprise peut faire son propre pistage
• Y compris en utilisantReferer
• Y compris avec ses proprescookies
Visites précédentes sur des sites dépendants 2/2
Que vont-ils faire avec ?
C’est comme ça que lesrégies publicitairespeuvent pister la navigation de l’utilisateur d’un site à l’autre
Comment cacher ces informations ?
Bloquer lesscripts tierce-partie, ou lescookies tierce-partie, mais certains sites Web ne fonctionneront plus
20/25
Visites précédentes sur des sites dépendants 2/2
Que vont-ils faire avec ?
C’est comme ça que lesrégies publicitairespeuvent pister la navigation de l’utilisateur d’un site à l’autre
Comment cacher ces informations ?
Bloquer lesscripts tierce-partie, ou lescookies tierce-partie, mais certains sites Web ne fonctionneront plus
Comment naviguer sur le Web sans laisser de traces
• Utiliser un navigateurlibreet configurable qui respecte votre vie privée, par exemple Tor Browser, Firefox, Chromium, Pale Moon, etc.
• Cacherson IP avec Tor (directement dans Tor Browser)
• Activer l’option “Do Not Track” ?
• Cacherou falsifier l’information User-Agent et Referer
• Bloquer lespublicitésavec uBlock Origin
• Bloquer sélectivement lesscriptsavec uMatrix (mais casse de nombreux sites Web)
• Bloquer lescookiesou lescookies tierce partie(mais même problème)
• Utiliser lemode incognitopour que les informations côté client (cookies, historique) ne soientpas sauvegardéesd’une session à l’autre
21/25
Les tierce-parties des tierce-parties
Publisher Ad Server
Agency Ad Server Publisher
Content Server
Supply side platform
Brand Agency
Ad Exchange
Demand Side Platform
DSP DSP DSP
DSP
Data Management
Platform
Ad Exchange
• L’annonceur du site Web et sa plateforme côté serveur
(supply-side platform, SSP), par exemple Google DFP, Rubicon, peuventidentifierl’utilisateur avec des cookies. . .
• . . . mais les annonceurs sur la plateforme (demand-side platform, DSP), par exemple AppNexus, Criteo, ne peuvent pas, parce qu’ils n’interagissent pasdirectementavec l’utilisateur (jusqu’à ce que la publicité soit affichée)
• Pour résoudre ce “problème”, la SSP partage ses informations de cookie avec la DSP, pour réidentifier l’utilisateur avec de
l’appariement de cookies.
Les tierce-parties des tierce-parties
Publisher Ad Server
Agency Ad Server Publisher
Content Server
Supply side platform
Brand Agency
Ad Exchange
Demand Side Platform
DSP DSP DSP
DSP
Data Management
Platform
Ad Exchange
• L’annonceur du site Web et sa plateforme côté serveur
(supply-side platform, SSP), par exemple Google DFP, Rubicon, peuventidentifierl’utilisateur avec des cookies. . .
• . . . mais les annonceurs sur la plateforme (demand-side platform, DSP), par exemple AppNexus, Criteo, ne peuvent pas, parce qu’ils n’interagissent pasdirectementavec l’utilisateur (jusqu’à ce que la publicité soit affichée)
• Pour résoudre ce “problème”, la SSP partage ses informations de cookie avec la DSP, pour réidentifier l’utilisateur avec de
l’appariement de cookies.
22/25
Les tierce-parties des tierce-parties
Publisher Ad Server
Agency Ad Server Publisher
Content Server
Supply side platform
Brand Agency
Ad Exchange
Demand Side Platform
DSP DSP DSP
DSP
Data Management
Platform
Ad Exchange
• L’annonceur du site Web et sa plateforme côté serveur
(supply-side platform, SSP), par exemple Google DFP, Rubicon, peuventidentifierl’utilisateur avec des cookies. . .
• . . . mais les annonceurs sur la plateforme (demand-side platform, DSP), par exemple AppNexus, Criteo, ne peuvent pas, parce qu’ils n’interagissent pasdirectementavec l’utilisateur (jusqu’à ce que la publicité soit affichée)
• Pour résoudre ce “problème”, la SSP partage ses informations de
Exemple : Google i
Qu’est-ce que Google sait de vous ?
• Toute information que vous lui avez fourni, de votre plein gré ou non (carte de crédit pour Google Play, nom pour Google Plus, historique GPS pour Google Location Services, recherches pour Google Search, etc.)
• Touteinteraction passéeque vous avez eu avec un site de Google (Search, Maps, Mail, Drive, etc.) sauf si vous n’étiez pas connecté et n’utilisiez pas vos cookies habituels (e.g., mode incognito) et utilisiez une adresse IP différente
• Toute visite sur un site Web dépendant d’un servicehébergépar Google (Google Analytics, Google Hosted Libraries, Google Fonts, Google AdSense. . .) sauf si vous refusez les cookies tierce-partie
23/25
Exemple : Google ii
• Toute visite sur un site Web qui inclut despublicitésservies par une chaîne qui inclut Google Doubleclick (c’est-à-dire la majorité des sites avec publicités), sauf si vous refusez les cookies
tierce-partie
Google n’utilisepas forcémenttoutes ces capacités, mais ils en ont la possibilité technique.
Protection légale des données personnelles
1974 ProjetSAFARIpour lier les fichiers de l’administration 1978 Loi informatique et libertés, création de laCNIL
1998 Entrée en vigueur de ladirective européenne 95/46/CE
• AccordSafe Harboravec les US
2004 Transposition en droit français de 95/46/CE
• Correspondants informatiques et libertés(CIL) 2014 Arrêt de la CJUE pour ledroit à l’oubli
2016 AccordPrivacy Shieldpour remplacer Safe Harbor 2017 FichierTES(titres électroniques sécurisés)
2018 Entrée en vigueur duRGPD
25/25
Crédits
Online advertising schema CC-BY-SA John Nagle, see
https://commons.wikimedia.org/wiki/File:Adservingfull.svg