Qu'est-ce que les cookies ?

Délicieux arrangement de cookies

Délicieux arrangement de cookies. Image libre de Freepik

Aujourd'hui, je vais vous parler des cookies et comment ils servent à vous suivre. Je ne parle pas des cookies aux pépites de chocolats, mais de ces fameux cookies qu'on nous demande d'accepter ou non sur les sites internet.

Avis aux puristes : il s'agit ici d'expliquer aux néophytes ce que sont les cookies, à quoi ils servent et comment les GAFAM s'en servent pour nous suivre sur Internet et tout connaître de nous.

Un peu d'histoire et de vocabulaire

HTTP (HyperText Transfer Protocol) est un protocole client-serveur (Wikipédia : Client-serveur) qui gère quasiment tous les échanges sur Internet. Un protocole client-serveur désigne un mécanisme d'échange (ou requêtes) où un serveur (un site par exemple) répond aux requêtes d'un client (typiquement navigateur web).

Modèle d'architecture client-serveur

Exemple d'architecture client–serveur : deux clients font leurs requêtes à un serveur via Internet. Image de Calimo, LGPL via Wikimedia Commons

Dans le cas de HTTP, ce mode d'échange est dit stateless (sans état). C'est-à-dire quèil n'y a pas d'enregistrement de l'état d'une session entre deux requêtes. D'un point de vue technique, il n'y a pas de lien entre deux requêtes consécutives.

Mais qu'est-ce qu'une requête ?

Une requête, c'est quand vous (ou votre navigateur) accédez à une URL (Wikipédia : Uniform Resource Locator). Ça peut être une page, une image, un fichier JavaScript, une feuille de style CCS, bref n'importe quoi qui se trouve sur un serveur.

Le problème avec un protocole stateless est que, sur un site, on a souvent besoin de savoir qui est le client afin de lui afficher des informations pertinentes (panier, avatar, préférences, etc) sans lui redemander à chaque requête qu'il ou elle est. Pour pallier ce problème, la norme HTTP fourni une solution : les cookies.

Mais pourquoi on appelle ça des cookies ?

Quel est le rapport avec la nourriture ? Le besoin de retrouver un état attendu est apparu avec les premières bornes d'arcades qui voulaient proposer de reprendre la partie où on en était la fois précédente (points de vie, niveau, équipement).

La solution a consisté à transformer ces données en une séquence de lettres et chiffres que le joueur devait retenir et ressaisir la fois suivante

Exemple : 030PV, niveau 04, dague (on suppose que 0 = mains nues, 1 = dague, 2= épée, etc.) ->030041->AXGR` (en base 36 pour que ça ne soit pas trop facile à deviner et plus simple à retenir)

Il pouvait aussi s'agit de mots arbitraires à retenir comme dans le cas du jeu Populous pour accéder à tel ou tel niveau.

Capture d'écran du jeu Populous de 1989

Capture d'écran du jeu Populous de 1989. Le jeu est en vue 3D isométrique. Un plateau central montre une portion du monde. Une série d'icônes permet d'interagir avec le jeu (Crédit Abandonware France)

Ce mécanisme faisait penser aux fortune cookies, ces petits biscuits chinois contenant un bout de papier avec un proverbe. Et c'est ainsi que les cookies prirent leur nom.

Concrètement, c'est quoi un cookie ?

Un cookie, c'est un bout d'information, généralement stocké en clair dans un fichier sur votre ordinateur. Il n'est censé contenir que du texte d'environ 100 ko maximum. Il n'est valable que sur un ordinateur et un navigateur (vos cookies sur votre ordi perso ne seront pas sur votre ordi pro).

Comment ça marche ? En fait, c'est le serveur qui décide ou non de vous donner un cookie qui va s'appliquer à un domaine (j'y reviens). De votre côté, à chaque fois que vous contactez un serveur, vous devez lui passer avec votre requête tous les cookies qui correspondent au domaine de la requête. Typiquement, si vous n'envoyez pas de cookie avec votre requête, le serveur vous en attribuera un.

Le domaine (d'application du cookie) c'est en gros dire pour quelles URL il faut joindre le cookie dans la requête. Exemple si le domaine du cookie est 'google.com' alors toute requête vers www.google.com, news.google.com/topics devra fournir le cookie en question. Si le domaine est www.facebook.com/marketplace alors seules les requêtes vers www.facebook.com/marketplace et ses sous-catégories devront passer le cookie.

Les cookies ont aussi une durée de vie qui peut aller de 0s secondes à des années (légalement 13 mois max en EU). Il y a aussi des cookies de sessions qui sont détruits par votre navigateur quand vous le fermez. C'est le serveur qui choisi la durée de vie du cookie.

Mais on y met quoi dans ce cookie. En fait, c'est le serveur qui choisi ce qu'il veut y mettre. Généralement, il va y mettre un identifiant dit de session pour vous reconnaitre sans avoir à vous demander de vous identifier. Il peut aussi y mettre un identifiant unique pour vous reconnaitre sans ambigüité.

Bien-sûr, il est interdit d'envoyer un cookie pour un domaine qui ne correspond pas : on n'envoie pas un cookie Google à Facebook.

On l'aura compris, ces cookies sont juste des informations qu'on passe avec nos requêtes pour que le site nous reconnaisse entre chaque requête sans avoir à nous identifier à chaque fois. Mais alors où est le problème ?

Oh, une autre chose importante que j'ai oublié de vous dire, le protocole HTTP veut aussi que quand vous faites une requête, vous indiquiez de quelle URL éname la demande (on appelle ça le referer). Par exemple, vous êtes sur la page de recherche Google et vous cliquez sur un site, alors la requête vers ce site contiendra une info indiquant vous venez de Google.

Jusque-là, "rien de bien méchant" me direz-vous

À la limite, le site sait d'où vous venez, vous reconnait automatiquement si vous lui envoyez un cookie qui lui permet de vous identifier.

Le problème, c'est que les cookies sont envoyés à chaque requête que vous (ou votre navigateur) faites. Et des requêtes, il y en a plein pour une seule page. Rien que pour la page elle-même, mais aussi pour les images qu'elle contient, les GIF, les scripts tiers pour faciliter le développement (voire pour vous demander si vous acceptez ou non les cookies). Et chacune de ses requêtes peuvent être sur des domaines, des serveur différents.

Par exemple, les boutons (ou des scripts, ou des feuilles de styles, etc) pour partager sur Twitter, Facebook, Instagram sont souvent hébergés chez ces mêmes GAFAM. Et comme à chaque requête, vous devez envoyer les cookies correspondant ainsi que le referer, en fait ces GAFAM sont capables de vous suivre à la trace. Même si vous ne vous êtes jamais connecté chez eux.

En effet, imaginons que c'est votre premier jour sur internet. Vous allez sur un blog qui parle de cuisine. En bas de la page il y'a des liens pour partager ce blog sur différents réseaux sociaux. Ce n'est pas votre truc, donc vous ne le faites pas. Mais...

Mais comme les images de ces boutons sont hébergés sur les serveurs de ces réseaux sociaux (et que vous ne leur avez pas donné de cookie car c'est la première fois), ils vont chacun vous attribuer un identifiant unique. Par exemple, vous serez 0656eacf-6b14-4783-8b2e-a0e1fedbc38e pour l'un et CvJMR2jtP+DcT/kMmG14owmRAbC1 pour un autre. Ils ne vous connaissent pas encore, mais vous ont déjà attribué un identifiant unique. Les prochaines fois où vous demanderez ces images (ou toute autre ressource provenant de leur site) votre navigateur fournira le cookie vous identifiant ainsi que l'URL de la page où vous êtes.

Et ainsi, de fil en aiguille, ils arrivent à savoir où vous allez, sans même que vous soyez enregistré chez eux.

Bien évidement, si un jour vous vous enregistrez sur un réseau social, ils auront vite fait de faire le lien entre votre identifiant unique et votre compte. De même, si vous avez de leurs cookies sur plusieurs ordinateurs, ils feront le lien entre tous ces cookies lors de votre connexion. L'idée étant pour eux de se construire des bases de données publicitaires ciblées qu'ils vont pouvoir revendre à des annonceurs. C'est la majeure partie de leurs revenus.

C'est ainsi qu'un jour, je me suis vue proposer en amie Facebook, une femme dont j'avais vu le profil sur une application de rencontre, alors que nous n'avions même pas échangé ni que nous nous connaissons (pas même d'amis en commun), juste que nous n'habitons pas loin l'une de l'autre.

 Y'a qu'à virer les cookies

Ben oui, ça peut être une solution. Cependant, les sites sont souvent conçus pour ne pas pouvoir fonctionner sans cookies, volontairement ou pas.

De plus, certains GAFAM, Google entre autres, n'ont quasiment plus besoin de cookies pour vous suivre :

Fortune cookies Un biscuit chinois (fortune cookie) dévoilant son secret. Photo prise sur Wikipedia par Lorax

Article rédigé le 23/10/2023. Dernière mise à jour le 29/10/2023.

Sources :