Qu'est-ce que l'HSTS ?

HSTS est un en-tête de réponse de sécurité Web. Le nom est un acronyme pour « HTTP Strict Transport Security ». La fonction de l'en-tête HSTS est de forcer les navigateurs à se connecter aux sites Web en utilisant HTTPS.

Astuce: HTTPS utilise le cryptage pour sécuriser votre connexion Web contre les pirates essayant de la modifier ou de la surveiller. HTTP n'a pas ces protections et donc un pirate au bon endroit pourrait surveiller et modifier votre trafic HTTP.

Un en-tête de réponse Web est un élément de métadonnées envoyé par le serveur lorsqu'il répond à des requêtes Web. Un sous-ensemble de ces en-têtes est souvent appelé en-têtes de sécurité car leur objectif est d'augmenter la sécurité du site Web et de l'utilisateur.

L'en-tête HSTS comporte deux parties obligatoires et deux facultatives. Le nom d'en-tête « Strict-Transport-Security », puis l'opérateur et la valeur « max-age » sont tous deux obligatoires. Une autre paire d'opérateurs, "includeSubDomains" et "preload" est également parfois utilisée.

Lorsque le navigateur reçoit une réponse HTTPS avec l'en-tête HSTS, il lui est demandé de se connecter à ce site Web et à toutes les ressources qu'il contient, en utilisant exclusivement HTTPS pendant la durée de la minuterie « âge max ». "Max-age" est une variable qui décrit combien de temps un paramètre doit être mémorisé par le navigateur. La valeur de « max-age » est indiquée en secondes, la valeur recommandée est « 31536000 », ce qui correspond à un an.

L'idée est que pendant la durée de cette minuterie, qui est réinitialisée à chaque chargement de page ultérieur, le navigateur nécessitera une connexion HTTPS et rejettera toutes les ressources HTTP. Cela protège contre les attaques de la personne du milieu, où un pirate informatique entre vous et le serveur Web peut manipuler les réponses que vous recevez.

Le point principal auquel cela vous protège est la première connexion. En règle générale, lorsque vous vous connectez à un site Web, vous pouvez demander le site Web HTTP, puis être redirigé vers le site Web HTTPS. Malheureusement, un pirate informatique occupant une position intermédiaire pourrait empêcher cette mise à niveau vers HTTPS et pourrait alors voler ou surveiller votre activité sur le site Web. Cependant, une fois que l'en-tête HSTS a été vu par le navigateur, votre navigateur établira même la première connexion via HTTPS, vous protégeant ainsi des pirates.

HSTS empêche également le chargement de ressources non sécurisées qui pourraient également être modifiées de manière malveillante par un attaquant si elles étaient transmises via HTTP.

L'opérateur "includeSubDomains" est utilisé pour indiquer que l'en-tête doit également s'appliquer à tous les sous-domaines du site Web.

La liste de préchargement HSTS

Vous remarquerez peut-être que HSTS ne vous protège toujours pas la toute première fois que vous vous connectez à un site Web. C'est là qu'intervient l'opérateur « preload ». Les sites Web peuvent se soumettre pour être inclus dans la liste de préchargement HSTS, l'opérateur « préchargement » est un indicateur obligatoire si tel est le cas. La liste de préchargement HSTS est régulièrement mise à jour et stockée dans le navigateur, si un site y est inclus, le navigateur lui appliquera les protections HSTS. Cela se produit même lors de la toute première connexion avant que le navigateur n'ait pu voir l'en-tête de réponse HSTS.

Astuce: Un « âge maximum » d'un an ou plus doit être ajouté à la liste de préchargement HSTS.

Problèmes avec HSTS

L'un des principaux points de HSTS est qu'il présente un message d'erreur s'il y a des problèmes avec la connexion HTTPS. Par mesure de sécurité supplémentaire, les utilisateurs ne sont pas censés pouvoir contourner les messages d'erreur HSTS, comme ils le pourraient avec des erreurs HTTPS normales.

Malheureusement, cela peut causer des problèmes si une entreprise déploie HSTS avant que l'ensemble du site Web, et que toutes les ressources utilisées dessus, prennent en charge HTTPS. Dans ce cas, les utilisateurs commenceront à voir des messages d'erreur de sécurité HSTS qu'ils ne peuvent pas contourner, brisant essentiellement complètement le site Web. Le pire, c'est que le simple fait de supprimer l'en-tête HSTS ne résout pas le problème pour ces utilisateurs, car leur navigateur continuera à appliquer HSTS pendant un "max-age" potentiellement long de plusieurs mois.

En tant que tel, il est extrêmement important qu'un "max-age" court soit utilisé lors du premier déploiement de l'en-tête. S'il y a des problèmes, ils ne persistent que pendant une courte période une fois découverts. Ce n'est qu'une fois que vous êtes sûr que votre site Web est entièrement conforme au HSTS que vous devez configurer une longue minuterie HSTS.

Astuce: Il est également possible de définir un « âge maximal » de 0, cela supprime essentiellement l'entrée HSTS enregistrée de toute personne qui la voit. Cela peut aider en cas de problème, mais cela n'affectera les utilisateurs que s'ils décident de réessayer.