Secure cookie
# Secure cookie

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).

## Principe

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). 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. 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.

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. 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

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

* Les cookies persistants (en) - Cookies qui stockent des informations dans le navigateur de l'utilisateur pendant une longue période.
* Les cookies non-persistants (en) - Cookies qui expirent généralement à la fermeture du navigateur.

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

De nombreuses techniques de détournement de cookies existent. 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.

### Menaces réseau

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. On peut également utiliser des cookies avec uniquement des informations sensibles chiffrées au lieu de transmettre l'intégralité des données.

### Menaces système

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.

### Récolte de cookies

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. 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.

