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).

Meilleures pratiques HSTS

  • Commencer par : max-age=31536000 (1 an)
  • Ajouter : includeSubDomains pour une couverture complète
  • Ajouter : preload si 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