HSTS (HTTP Strict Transport Security)
Définition
HSTS est un mécanisme de politique de sécurité web qui protège les sites web contre les attaques de rétrogradation de protocole et le vol de cookies. Lorsqu’un navigateur reçoit un en-tête HSTS, il se connectera uniquement au site via HTTPS pendant une période spécifiée, jamais via HTTP.
HSTS empêche les attaquants d’intercepter la requête HTTP initiale et de rediriger l’utilisateur vers un site malveillant ou d’effectuer une attaque de type man-in-the-middle.
Comment fonctionne HSTS
Première visite :
Utilisateur → http://example.com → Serveur → "Strict-Transport-Security: max-age=31536000; includeSubDomains"
Le navigateur stocke la politique HSTS localement
Visites ultérieures :
Utilisateur → http://example.com → Navigateur → (auto-redirection vers https://example.com)
Utilisateur → https://example.com → Serveur → (serve le contenu)
Le navigateur applique HTTPS avant même de faire une requête HTTP, éliminant le vecteur d’attaque de rétrogradation initial.
En-tête HSTS
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
|| Directive | Objectif |
||———–|———|
|| max-age=seconds | Durée (en secondes) d’application de HSTS |
|| includeSubDomains | Appliquer HSTS à tous les sous-domaines |
|| preload | S’inscrire aux listes de préchargement HSTS des navigateurs |
Préchargement HSTS
Les navigateurs maintiennent des listes HSTS préchargées intégrées dans le navigateur. Les sites sur la liste de préchargement sont toujours accédés via HTTPS, même lors de la première visite (avant même de recevoir un en-tête HSTS).
- Liste de préchargement Chrome : https://hstspreload.org/
- Liste de préchargement Firefox : Intégrée dans Firefox
- Soumission : https://hstspreload.org/submit
Meilleures pratiques HSTS
- Commencer par :
max-age=31536000(1 an) - Ajouter :
includeSubDomainspour une couverture complète - Ajouter :
preloadsi vous respectez les exigences de préchargement - Tester :
https://securityheaders.com/pour la validation HSTS - Surveiller : Utiliser le vérificateur HSTS preload avant la soumission
Limitations HSTS
- Vulnérabilité de la première visite : Sans preload, la première visite est toujours en HTTP
- Certificats auto-signés : HSTS bloque l’accès aux sites HTTPS auto-signés
- Contournement admin : Les administrateurs peuvent contourner HSTS (risque de sécurité)
- Pas une solution miracle : Ne protège pas contre toutes les attaques (ex. : phishing)
Termes associés
- Tls — HSTS garantit des connexions HTTPS uniquement
- Ssl — HSTS nécessite des certificats TLS valides
Références
- Wikipedia : https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
- Docs MDN HSTS : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security
- HSTS Preload : https://hstspreload.org/