Vous vous êtes peut-être assuré que SSL est activé sur vos sites Web et que le joli cadenas de sécurité de votre navigateur est vert. Cependant, vous avez peut-être oublié le petit homme de sécurité de HTTP, HTTP Strict Transport Security (HSTS).
Qu'est-ce que le HSTS et comment peut-il vous aider à sécuriser votre site ?
Hyper Text Transfer Protocol Secure (HTTPS) est une version sécurisée d'un site Web (HTTP). Le cryptage est activé à l'aide du protocole Secure Sockets Layer (SSL) et est validé avec un certificat SSL. Lorsque vous vous connectez à un site Web HTTPS, les informations transférées entre le site Web et l'utilisateur sont cryptées.
Ce cryptage vous aide à vous protéger contre le vol de données via les attaques Man-in-the-Middle-Attacks (MITM). La couche de sécurité supplémentaire contribue également à améliorer légèrement la réputation de votre site Web. En fait, l'ajout d'un certificat SSL est si simple que de nombreux hébergeurs l'ajouteront par défaut à votre site, gratuitement ! Cela dit, HTTPS présente encore quelques défauts que HSTS peut aider à corriger.
HSTS est un en-tête de réponse qui informe un navigateur que les sites Web activés ne sont accessibles que via HTTPS. Cela oblige votre navigateur à ne pouvoir accéder qu'à la version HTTPS du site Web et à toutes les ressources qu'il contient.
Vous ne savez peut-être pas que même si vous avez correctement configuré votre certificat SSL et activé HTTPS pour votre site Web, la version HTTP est toujours disponible. Cela est vrai même si vous avez configuré le transfert à l'aide de la redirection permanente 301.
Bien que la politique HSTS existe depuis un certain temps, elle n'a été officiellement déployée par Google qu'en juillet 2016. C'est peut-être la raison pour laquelle vous n'en avez pas encore beaucoup entendu parler.
L'activation du HSTS arrêtera les attaques de protocole SSL et le piratage de cookies, deux vulnérabilités supplémentaires sur les sites Web compatibles SSL. Et en plus de rendre un site Web plus sécurisé, HSTS accélérera le chargement des sites en supprimant une étape dans la procédure de chargement.
Bien que HTTPS soit une énorme amélioration par rapport à HTTP, il n'est pas invulnérable au piratage. Le dépouillement SSL est un hack MITM très courant pour les sites Web qui utilise la redirection pour envoyer les utilisateurs d'une version HTTP vers la version HTTPS de leur site Web.
La redirection 301 (permanente) et 302 (temporaire) fonctionne essentiellement comme ceci :
Avec le SSL stripping, le pirate peut utiliser le temps entre l'étape 3 et l'étape 4 pour bloquer la demande de redirection et empêcher le navigateur de charger la version sécurisée (HTTPS) du site Web. Comme vous accédez alors à une version non cryptée du site Web, toutes les données que vous entrez peuvent être volées.
Le pirate peut également vous rediriger vers une copie du site Web auquel vous essayez d'accéder et capturer toutes vos données au fur et à mesure que vous les saisissez, même si elles semblent sécurisées.
Google a mis en place des étapes dans Chrome pour arrêter certains types de redirection. Cependant, l'activation du HSTS devrait désormais être quelque chose que vous ferez par défaut pour tous vos sites Web.
L'activation de HSTS oblige le navigateur à charger la version sécurisée d'un site Web et ignore toute redirection et tout autre appel pour ouvrir une connexion HTTP. Cela ferme la vulnérabilité de redirection qui existe avec une redirection 301 et 302.
Il y a même un côté négatif au HSTS, c'est que le navigateur d'un utilisateur doit voir l'en-tête HSTS au moins une fois avant de pouvoir en profiter pour de futures visites. Cela signifie qu'ils devront passer par le processus HTTP> HTTPS au moins une fois, ce qui les rendra vulnérables la première fois qu'ils visiteront un site Web compatible HSTS.
Pour lutter contre cela, Chrome précharge une liste de sites Web sur lesquels HSTS est activé. Les utilisateurs peuvent soumettre eux-mêmes des sites Web compatibles HSTS à la liste de préchargement s'ils répondent aux critères (simples) requis.
Les sites Web ajoutés à cette liste seront codés en dur dans les futures versions des mises à jour de Chrome. Il garantit que tous ceux qui visitent vos sites Web compatibles HSTS dans les versions mises à jour de Chrome resteront en sécurité.
Firefox, Opera, Safari et Internet Explorer ont leur propre liste de préchargement HSTS, mais ils sont basés sur la liste Chrome sur hstspreload.org.
Pour activer HSTS sur votre site Web, vous devez d'abord disposer d'un certificat SSL valide. Si vous activez HSTS sans, votre site ne sera disponible pour aucun visiteur, alors assurez-vous que votre site Web et tous les sous-domaines fonctionnent sur HTTPS avant de continuer.
Activer HSTS est assez facile. Il vous suffit d'ajouter un en-tête au fichier .htaccess sur votre site. L'en-tête que vous devez ajouter est :
Strict-Transport-Security :max-age=31536000 ; includeSubDomains
Cela ajoute un cookie d'accès d'un an maximum (qu'est-ce qu'un cookie ?), qui inclut votre site Web et tous les sous-domaines. Une fois qu'un navigateur a accédé au site Web, il ne pourra pas accéder à la version HTTP non sécurisée du site Web pendant un an. Assurez-vous que tous les sous-domaines de ce domaine sont inclus dans le certificat SSL et que HTTPS est activé. Si vous oubliez cela, les sous-domaines ne seront pas accessibles après avoir enregistré le fichier .htaccess.
Sites Web auxquels il manque les includeSubDomains L'option peut exposer les visiteurs à des fuites de confidentialité en permettant aux sous-domaines de manipuler les cookies. Avec includeSubDomains activé, ces attaques liées aux cookies ne seront pas possibles.
Remarque : Avant d'ajouter l'âge maximal d'un an, testez d'abord l'ensemble de votre site Web avec un âge maximal de cinq minutes en utilisant : max-age=300 ;
Google vous recommande même de tester votre site Web et ses performances (trafic) avec une valeur d'une semaine et d'un mois également avant de mettre en place un âge maximum de deux ans.
Cinq minutes : Strict-Transport-Security :max-age=300 ; inclure les sous-domaines
Une semaine :Strict-Transport-Security :max-age=604800; inclure les sous-domaines
Un mois :Strict-Transport-Security :max-age=2592000; includeSubDomains
Vous devriez maintenant être familiarisé avec le HSTS et pourquoi il est important que votre site l'utilise. Assurer la sécurité des visiteurs de votre site Web en ligne devrait être un élément clé de votre plan de site.
Pour être éligible à la liste de préchargement HSTS utilisée par Chrome et d'autres navigateurs, votre site Web doit répondre aux exigences suivantes :
Si vous souhaitez ajouter votre site Web à la liste de préchargement HSTS, assurez-vous d'ajouter le préchargement requis étiqueter. L'option "précharger" signifie que vous souhaitez que votre site Web soit ajouté à la liste de préchargement HSTS de Chrome. L'en-tête de réponse dans .htaccess devrait alors ressembler à ceci :
Strict-Transport-Security :max-age=63072000 ; inclure les sous-domaines ; précharger
Nous vous recommandons d'ajouter votre site Web à hstspreload.org. Les exigences sont assez faciles à remplir, et cela aidera à protéger les visiteurs de votre site Web et potentiellement à améliorer le classement de votre site Web dans les moteurs de recherche.