En détail
Un site envoie l'en-tête Strict-Transport-Security: max-age=31536000; includeSubDomains. La valeur 31536000 représente 365 jours en secondes. Pendant cette période, le navigateur réécrit toute requête http:// vers le site en https:// avant de l'envoyer et refuse de continuer en cas d'erreur de certificat. includeSubDomains étend cela à tous les sous-domaines, et une option preload permet de demander l'inscription du site dans les listes des navigateurs. L'en-tête n'est jugé fiable que lorsqu'il arrive en HTTPS.
Pourquoi c'est important
Sans HSTS, la première requête vers http://example.com circule en clair avant qu'une redirection n'envoie le visiteur vers HTTPS, ce qui donne à un attaquant présent sur le réseau une chance d'intercepter ou de dégrader la connexion. HSTS ferme cette fenêtre pour toutes les visites après la première. Comme il est difficile à annuler, un site doit vérifier que tous ses sous-domaines fonctionnent en TLS avant d'activer includeSubDomains.
Exemple
Vérifiez si un site envoie HSTS et pour combien de temps avec l'analyseur d'en-têtes de sécurité, et tracez la redirection HTTP vers HTTPS avec le traceur de chaîne de redirection HTTP.
Confusion fréquente
HSTS ne remplace pas la redirection de HTTP vers HTTPS : elle reste nécessaire pour la première visite. Il ne chiffre rien lui-même ; il garantit seulement que le navigateur utilise HTTPS.