Tous les sites que vous fréquentez affichent de grandes bannières pour vous demander d'accepter toutes sortes de cookies. Vous les acceptez, sans avoir la moindre idée de ce qu'ils sont.

Nous vous proposons donc de voir ce qui se cache derrière ces cookies, et de comprendre comment ils peuvent être utilisés pour collecter plus d'informations sur vous et espionner tous vos faits et gestes.

Regarder la vidéo sur YouTube
Regarder la vidéo sur Dailymotion

Si vous ne pouvez pas ou ne souhaitez pas regarder un format vidéo, le script de la vidéo est disponible plus bas.

Script de la vidéo

Bonjour à tous - En surfant sur le Web, vous avez probablement déjà cliqué des centaines de fois sur des boutons vous demandant d'autoriser tel ou tel cookie.

La raison pour laquelle ces bannières sont devenues monnaie courante sur Internet c'est parce que les pays de l'Union Européenne ont voté une loi en 2018 qui s'appelle RGPD, pour Règlement Général sur la Protection des Données1. Ce règlement oblige les sites Web à vous demander l'autorisation avant d'utiliser ces fameux cookies, notamment pour collecter des informations personnelles vous concernant.

Résultat : nous nous retrouvons tous à autoriser les cookies sur tous les sites que l'on visite, non pas en connaissance de cause, mais pour faire disparaître l'immense bannière qui nous empêche de consulter nos sites préférés.

La vérité est que la majorité des internautes n'ont pas la moindre idée de ce que sont ces cookies. Je vous propose donc de prendre un moment pour comprendre ce qui se cache derrière ce joli nom. Nous allons voir pourquoi les sites les utilisent, et surtout comment leur utilisation a été détournée en un outil d'espionnage.

Pourquoi les sites utilisent des cookies

Dans une vidéo précédente2, je vous ai parlé du fonctionnement d'HTTPS et je vous ai notamment expliqué que lorsque vous visitez un site Internet, votre navigateur communique avec le site en utilisant ce qu'on appelle des requêtes.

Concrètement, lorsque je souhaite visiter la page d'accueil du site eWatchers, je saisis l'adresse dans mon navigateur, qui va ensuite créer et envoyer une requête à destination du serveur, c'est-à-dire l'ordinateur sur lequel est hébergé le site Internet.

Lorsque le serveur reçoit cette requête, il comprend que je souhaite recevoir le contenu de la page et me l'envoie en retour. Mon navigateur reçoit cette réponse et m'affiche le contenu de la page.

Imaginons maintenant que je souhaite visiter une deuxième page du site, par exemple un des articles. Je clique sur l'un des liens de la page et de la même façon, mon navigateur envoie une requête au serveur et demande à obtenir le contenu de cette deuxième page.

Les deux échanges qui se sont déroulés, c'est-à-dire la requête envoyée initialement pour recevoir la page d'accueil, et la requête envoyée ensuite pour recevoir la page de l'article, sont totalement indépendants. Cela veut dire que la deuxième requête envoyée n'a aucun lien avec la première. Cela veut aussi dire que notre serveur qui traite ces requêtes ne peut pas répondre quelque chose de spécifique en fonction du résultat d'une requête ou d'une réponse passée. Il traite les deux requêtes de façon entièrement autonome sans savoir si une requête est la continuité d'une autre.

Techniquement, on dit que HTTP est un protocole sans état car tous les messages échangés entre le client et le serveur sont autonomes et indépendants.

Pour illustrer ce concept, imaginons qu'on souhaite réaliser une version anglaise d'eWatchers. Lorsqu'un internaute consulterait l'une de nos pages, on commencerait par lui demander de choisir la langue qu'il souhaite, français ou anglais, et on lui retournerait ensuite la page dans la langue de son choix.

Imaginons maintenant que l'internaute décide de consulter une deuxième page de notre site. On serait obligé de lui demander à nouveau la langue qu'il souhaite car le choix qui a été fait initialement n'a pas été conservé, ni par le client, c'est-à-dire l'internaute, ni par notre serveur.

On retrouve le même type de problématique si on décidait d'ajouter une boutique en ligne à notre site, car nous n'avons pas la possibilité de conserver le contenu du panier de l'internaute au cours de sa visite.

Ce qui serait utile, ce serait d'avoir un mécanisme pour garder certaines informations pendant toute la période où l'utilisateur visite notre site. On pourrait alors mémoriser le choix de la langue de l'internaute, ou bien le contenu de son panier. Ce mécanisme existe et s'appelle les cookies.

Fonctionnement des cookies

Les cookies correspondent à des informations, c'est-à-dire du texte, que l'on peut enregistrer dans le navigateur de l'internaute. Ce texte, ou ces cookies, sont ensuite ajoutés à toutes les requêtes envoyées au serveur.

Pour illustrer ce concept de cookies, on peut reprendre l'exemple du site en version anglaise que l'on souhaitait réaliser.

Lorsque l'internaute se rend sur notre site, on lui demanderait de sélectionner une langue, et la page lui serait retournée dans la langue de son choix, exactement de la même façon que la première fois. On ajouterait cependant une information supplémentaire à la réponse. Cette information est un cookie, c'est-à-dire un texte avec la langue choisie par l'utilisateur.

Lorsque l'internaute reçoit la réponse, son navigateur détecterait la présence du cookie contenant la langue et le mémorisera.

Ensuite, lorsque l'internaute visite une autre page, le navigateur utiliserait ce cookie contenant la langue et l'ajouterait à la requête envoyée au serveur. Notre serveur pourrait donc connaître la langue souhaitée, sans avoir à lui redemander, et retournerait la page dans la langue adaptée.

Ces cookies enregistrés dans le navigateur de l'internaute peuvent perdurer dans le temps. L'utilisateur peut donc revenir le jour d'après ou la semaine d'après, et continuer de consulter les pages dans la langue choisie initialement.

Utilisation des cookies

Les cookies sont beaucoup utilisés sur Internet car ils permettent de mémoriser l'état de l'internaute, chose qu'HTTP ne permet pas. Ils sont généralement utilisés dans trois cas :

  • Pour mémoriser la session de l'utilisateur, par exemple pour savoir si l'utilisateur est connecté à son espace personnel, et ainsi éviter de lui redemander à chaque fois ses identifiants ;
  • Pour conserver les préférences de l'utilisateur, comme la taille de la police, la langue, ou le thème à afficher ;
  • Ou pour pister l'utilisateur, c'est-à-dire mémoriser les pages visitées pour analyser son historique de navigation.

Les cookies peuvent donc être utilisés pour assurer le fonctionnement du site et améliorer l'expérience de l'utilisateur, mais peuvent aussi être utilisés pour des pratiques plus douteuses.

On a déjà vu un exemple d'utilisation de cookies pour personnaliser la langue de l'utilisateur, voyons maintenant comment on pourrait utiliser des cookies pour pister les utilisateurs.

Utilisation des cookies pour traquer les utilisateurs

Imaginons que je souhaite connaître le parcours exact des internautes, savoir quand et quelles pages ils visitent pour analyser leurs habitudes et établir leur profil.

Lorsqu'un utilisateur se connecte sur notre site pour la première fois, aucun cookie n'est présent sur son navigateur, car il ne s'est encore rien passé. La première requête qu'il envoie pour demander à recevoir le contenu de la page ne comporte donc pas de cookie.

Notre serveur, au moment de traiter cette demande, remarque que la requête ne contient pas de cookie, et considère donc que cet utilisateur n'a jamais consulté notre site. Nous pouvons donc créer un nouveau profil dans notre base de données. Ce profil contiendra tout l'historique de l'utilisateur, c'est-à-dire les pages qu'il a visitées et l'heure à laquelle il les a visitées. Nous allons aussi attribuer un numéro à ce profil, par exemple le 15.

La réponse peut maintenant lui être envoyée. Cette réponse contiendra le contenu de la page mais aussi un cookie avec l'identifiant 15 que l'on vient de créer.

Lorsque le navigateur de l'utilisateur recevra notre réponse, il détectera la présence de ce cookie et le mémorisera dans l'appareil de l'internaute. Puis, lorsqu'il visitera d'autres pages, ce cookie contenant l'identifiant sera ajouté aux requêtes. Cela veut dire que si l'utilisateur décide de revenir le lendemain et de consulter un autre article de notre site, la requête envoyée par son navigateur contiendra un cookie avec l'identifiant 15, et notre serveur pourra ajouter au profil 15 le fait que l'article en question a été demandé.

Petit à petit, on construira donc une base d'informations contenant le parcours précis de l'utilisateur 15, nous permettant de savoir les thèmes qui l'intéresse, et de comprendre son comportement.

Cet exemple est très simplifié pour vous permettre de comprendre le fonctionnement, mais des systèmes identiques existent bel et bien sur Internet pour faire votre profil et vous proposer par exemple des publicités plus ciblées.

Cookies tiers

Des cookies peuvent être placés dans votre navigateur par le serveur du propriétaire des sites que vous visitez, comme on vient de le voir. Mais le propriétaire du site n'est pas le seul à pouvoir placer des cookies sur votre appareil, car les sites sont généralement composés d'images, de scripts ou de vidéos appartenant à d'autres personnes. C'est le cas par exemple si le site inclut une publicité qui provient d'une agence publicitaire.

Pour illustrer ce concept, imaginons que les articles de notre site contiennent une image de publicité sur le côté, et que cette image soit fournie par un annonceur.

Lorsque vous visiterez notre article, votre navigateur enverra donc plusieurs requêtes :

  • Une requête initiale pour obtenir le contenu de la page ;
  • Une requête pour obtenir l'image d'illustration ;
  • Et une requête pour obtenir la publicité.

La publicité est fournie par l'agence de publicité. La requête n'est donc pas envoyée à notre serveur, mais à leur serveur à eux, qui répondra avec l'image à afficher.

Tout comme nous avons la possibilité d'ajouter des cookies aux réponses, le serveur du publicitaire a aussi la capacité d'ajouter un cookie à la réponse qui contient l'image. Le navigateur mémorise donc deux cookies, celui que nous avons ajouté, et celui que le publicitaire a ajouté.

Imaginons maintenant qu'un autre site utilise la même agence publicitaire que nous. Lorsque vous visitez cet autre site, une requête similaire est envoyée au publicitaire pour recevoir également une publicité à afficher. Seulement cette fois, le navigateur de l'internaute possède déjà un cookie, qui a été placé lorsque vous avez visité notre site. La requête envoyée au publicitaire contient donc ce cookie, et le publicitaire a la capacité de savoir que vous avez visité d'abord notre site, puis cet autre site. Il peut alors aisément faire votre profil, avec vos centres d'intérêts, vos habitudes d'achats et les vendre au plus offrant, ou bien les utiliser pour vous proposer des publicités mieux ciblées.

Les navigateurs ne traitent pas de la même façon les cookies qui sont issus du propriétaire du site et les cookies issus des sites tiers. Certains les bloquent même par défaut pour éviter que vos faits et gestes ne soient pas trop espionnés.

Conclusion

Les cookies ne sont malheureusement pas les seuls mécanismes utilisés et détournés de leur fonctionnement initial pour essayer de profiler au maximum les internautes et en tirer un profit. On les verra probablement dans d'autres vidéos.

Pour le moment, gardez à l'esprit que les cookies peuvent être utilisés pour améliorer votre expérience sur Internet et assurer le fonctionnement des sites, mais peuvent aussi être utilisés pour collecter davantage d'informations sur vous et espionner tous vos faits et gestes.

Si vous êtes situés dans un des pays de l'Union Européenne, le règlement RGPD oblige tous les sites à demander votre autorisation avant d'utiliser des cookies qui collecteraient vos informations personnelles. Alors, restez vigilants et à la prochaine.

Notes et références

  1. Règlement (UE) 2016/679 du Parlement européen, ou Règlement Général sur la Protection des Données (RGPD).
  2. Le fonctionnement d'HTTPS est présenté dans l'article « Protégez vos utilisateurs en sécurisant votre site Internet avec HTTPS ».