Les secure cookies sont un type de cookie HTTP qui ont l'attribut Secure configuré, ce qui limite l'utilisation du cookie à des canaux dits « sécurisés » (où « sécurisé » est défini par l'agent utilisateur, typiquement le navigateur web)[1].

Principe

modifier

Lorsqu'un cookie a l'attribut Secure, l'agent utilisateur va inclure le cookie dans les requêtes HTTP seulement si la requête est transmise à travers un canal sécurisé (typiquement le HTTPS)[1]. Bien qu'apparemment utile pour protéger les cookies contre les attaquants actifs du réseau, l'attribut Secure protège uniquement la confidentialité du cookie. Un attaquant actif sur le réseau peut modifier l'attribut Secure des cookies depuis un canal non sécurisé, perturbant leur intégrité. Ce problème est officiellement appelé intégrité faible[1]. Toutefois, certains navigateurs, incluant Chrome 52 et supérieur ainsi que Firefox 52 et supérieur, renoncent à cette spécification en faveur d'une meilleure sécurité et interdisent aux sites non sécurisés (HTTP) la création de cookies ayant l'attribut Secure[2].

Même avec l'attribut Secure, certaines sources recommandent que des données sensibles ne soient jamais stockées dans un cookie, sur la prémisse qu'ils sont intrinsèquement peu sûrs et que cet attribut ne peut pas offrir une réelle protection[2]. L'attribut Secure n'est pas le seul mécanisme de protection des cookies, il y a également les attributs HttpOnly (en) et SameSite (en). L'attribut HttpOnly empêche le cookie d'être accédé, par exemple, par du code JavaScript, et l'attribut SameSite n'autorise uniquement la transmission du cookie si la requête provient de la même origine.

Les cookies

modifier

Un cookie est un petit paquet de données[3] qui est transmis depuis un site web vers un navigateur web. Il y a deux types de cookies :

Les cookies peuvent contenir des informations sensibles, comme des mots de passe ou des numéros de carte bancaire, qui sont envoyés à travers une connexion HTTP et qui peuvent être stockés dans les navigateurs web comme du texte brut. Pour empêcher les attaquants de voler ces informations, les cookies peuvent être sécurisés avec des attributs.

Vol et détournement de cookies

modifier

De nombreuses techniques de détournement de cookies existent[4]. Ces méthodes ne sont pas difficiles à mettre en œuvre et peuvent causer des dommages importants à un utilisateur ou à une organisation. Les cookies contenant des informations sensibles telles que les noms d'utilisateur, les mots de passe et les identifiants de session peuvent être capturés à l'aide de ces outils une fois qu'ils sont transmis d'un site web vers un navigateur Web ou accessibles via le disque dur d'un ordinateur[5].

Menaces réseau

modifier

Les cookies qui sont envoyés sur des canaux non chiffrés peuvent être soumis à de l'écoute clandestine, c'est-à-dire que le contenu des cookies peuvent être lus par un attaquant. Ces types de menaces peuvent être évitées par l'utilisation de Secure Sockets Layer ou le protocole SSL au niveau des serveurs et des navigateurs web bien que cela ne fonctionne uniquement si le cookie est sur le réseau[6]. On peut également utiliser des cookies avec uniquement des informations sensibles chiffrées au lieu de transmettre l'intégralité des données[7].

Menaces système

modifier

Les cookies peuvent être copiés et volés depuis le client, ce qui peut soit révéler les informations des cookies ou permettre à un attaquant de modifier le contenu des cookies et usurper l'identité des utilisateurs. Cela peut se produire lorsqu'un cookie, qui se trouve dans le système final du navigateur web et stocké dans le lecteur local ou la mémoire en texte clair, est modifié ou copié d'un ordinateur à un autre avec ou sans la connaissance de l'utilisateur[6].

Récolte de cookies

modifier

L'attaquant peut tenter de se faire passer pour un site web en acceptant les cookies des utilisateurs. Une fois que l'attaquant obtient les cookies, il peut utiliser ces cookies récoltés sur les sites web qui acceptent les cookies tiers. Un exemple de cette menace est l'attaque dite de Cross-Site Scripting, qui implique l'exploitation des vulnérabilités d'un site web affichant des données fournies par l'utilisateur qui ont une intention malveillante[8]. Un attaquant, par exemple, pourrait intégrer un script dans une URL qu'il a publiée dans un forum de discussion ou un e-mail, qui est alors exécuté lorsque la cible ouvre le lien hypertexte[8].

Voir aussi

modifier

Références

modifier
  1. a b et c (en) A. Barth, « RFC 6265 - HTTP State Management Mechanism », Request for comments no 6265,
  2. a et b (en-US) « HTTP cookies », sur MDN Web Docs (consulté le )
  3. « Origin Cookies: Session Integrity for Web Applications » [archive du ] (consulté le )
  4. Cookies Lack Integrity: Real-World Implications, Proceedings of the 24th USENIX Security Symposium, (ISBN 978-1-931971-232, lire en ligne [archive du ])
  5. Ido Dubrawsky, CompTIA Security+ Certification Study Guide: Exam SY0-201 3E, Burlington, MA, Syngress, , 105 p. (ISBN 9781597494267)
  6. a et b Vijay Atluri et John Hale, Research Advances in Database and Information Systems Security, Berlin, Springer Science+Business Media, LLC, , 52 (ISBN 9781475764116, lire en ligne  )
  7. Messaoud Benantar, Access Control Systems: Security, Identity Management and Trust Models, Heidelberg, Springer Science+Business Media, , 127 (ISBN 9780387004457, lire en ligne  )
  8. a et b Sushil Jajodia et Duminda Wijesekera, Data and Applications Security XIX, Berlin, Springer Science & Business Media, , 317 (ISBN 9783540281382, lire en ligne  )