HSTS : l'en-tête qui force le HTTPS, expliqué simplement
Avoir un certificat SSL ne suffit pas : sans HSTS, un attaquant peut encore glisser vos visiteurs vers une connexion non chiffrée sans qu'ils s'en aperçoivent. Voici ce que fait ce petit en-tête, et pourquoi les navigateurs le prennent très au sérieux.
La définition simple
HSTS signifie HTTP Strict Transport Security. C'est un en-tête de sécurité que le serveur envoie au navigateur pour lui dire : « pour ce site, n'utilise que le HTTPS, et cela pendant X mois, quoi qu'il arrive ». Une fois cet ordre reçu, le navigateur refuse de lui-même toute connexion non chiffrée vers le site, avant même d'envoyer la moindre requête.
Quel problème ça résout ?
Sans HSTS, la toute première visite d'un internaute qui tape « votresite.fr » part souvent en HTTP, puis le serveur redirige vers le HTTPS. Cette fraction de seconde en clair suffit à une attaque dite de rétrogradation (« SSL stripping ») : sur un réseau compromis, un wifi public par exemple, un attaquant intercepte cette première requête et maintient la victime sur une version non chiffrée du site, en lisant tout ce qu'elle saisit. Avec HSTS, cette porte se ferme : le navigateur convertit lui-même l'adresse en HTTPS avant de sortir sur le réseau.
Comment vérifier si un site l'utilise ?
Le plus simple est un scanner gratuit comme securityheaders.com : entrez l'adresse du site, et la ligne « Strict-Transport-Security » apparaît en vert si l'en-tête est présent. Vous pouvez aussi ouvrir les outils de développement du navigateur (onglet Réseau) et inspecter les en-têtes de réponse de la page.
Les réglages qui comptent
- max-age : la durée pendant laquelle le navigateur mémorise la consigne. La recommandation courante est un an (31 536 000 secondes).
- includeSubDomains : étend la protection à tous les sous-domaines, pour qu'aucune porte secondaire ne reste ouverte.
- preload : inscrit le site sur une liste embarquée dans les navigateurs, qui appliquent alors le HTTPS dès la toute première visite. Puissant, mais quasi irréversible : à n'activer que lorsque tout le domaine est durablement en HTTPS.
Qui doit s'en occuper ?
C'est un réglage du serveur web, donc l'affaire de votre hébergeur ou de votre prestataire. Un site professionnel devrait l'avoir par défaut, avec un certificat SSL renouvelé automatiquement. Les sites hébergés par PremierClic envoient HSTS sur un an avec includeSubDomains, et l'ensemble de nos en-têtes de sécurité, dont la Content-Security-Policy, est noté A par le test indépendant securityheaders.com. La sécurité qui se vérifie, plutôt que celle qui se promet.
Questions fréquentes sur l'en-tête HSTS
Activer HSTS est-il risqué ?
Il l'est si vous n'êtes pas certain de servir tout le site en HTTPS durablement. Pendant la durée annoncée, les navigateurs refusent toute connexion non chiffrée, et le visiteur ne peut pas passer outre. On commence donc par une durée très courte.
Quelle durée choisir ?
Quelques minutes le temps des vérifications, puis quelques jours, puis un an une fois le HTTPS parfaitement stable. Un an est la valeur attendue pour figurer sur la liste de préchargement des navigateurs.
Faut-il inclure les sous-domaines ?
Seulement si tous vos sous-domaines sont en HTTPS, y compris ceux que vous avez oubliés. Un sous-domaine interne resté en HTTP deviendrait inaccessible du jour au lendemain.
Comment faire machine arrière ?
En annonçant une durée nulle, puis en attendant que chaque navigateur revienne sur le site pour enregistrer la nouvelle consigne. C'est lent et incertain, ce qui explique la montée par paliers.
Un projet de site internet à Toulon ou ailleurs ?
Parlons-en simplement : devis gratuit, réponse sous 24h, première maquette offerte.