HSTS (HTTP Strict Transport Security)

E-mail et Sécurité
Un en-tête de sécurité qui oblige les navigateurs à se connecter uniquement à un site Web via HTTPS, empêchant ainsi les attaques de rétrogradation.
← Retour au Glossaire

Qu'est-ce que le TVHS?

HSTS (HTTP Strict Transport Security) est un mécanisme de sécurité Web qui indique aux navigateurs d'interagir uniquement avec un site Web via HTTPS, jamais HTTP. Une fois qu'un navigateur voit un en-tête HSTS, il mettra automatiquement à niveau toutes les requêtes futures vers HTTPS et refusera de se connecter via HTTP, même si l'utilisateur tape explicitement http://.

Pourquoi la TVH est importante

Même avec un certificat SSL valide, des vulnérabilités existent :

Attaque SSL de stripping

1. Types d'utilisateurs "example.com" (sans https://)

2. L'attaquant intercepte la requête HTTP initiale

3. Proxies de l'attaquant vers HTTPS, présente HTTP à l'utilisateur

4. L'utilisateur pense qu'ils sont sécurisés, mais l'attaquant voit tout

HSTS empêche cela en s'assurant que les navigateurs ne font jamais cette requête HTTP initiale.

Avantages de la TVH

TVHS En-tête Syntaxe

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Directives

DirectiveDésignation des marchandises
Âge maximalSecondes pour se souvenir de la TVHS (31536000 = 1 an)
inclureSubDomainsAppliquer la TVHS à tous les sous-domaines
préchargeConsentement à l'inclusion de la liste de précharge du navigateur

Mise en œuvre de la TVH

Nginx

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Apache

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Nuageux

Activer dans SSL/TLS → Certificats d'Edge → Sécurité de transport stricte HTTP

"Express.js

const helmet = require('helmet');

app.use(helmet.hsts({

maxAge: 31536000,

includeSubDomains: true,

preload: true

}));

Liste de précharge de la TVH

La liste de précharge HSTS est une liste de domaines codés en dur dans les navigateurs qui ne devraient jamais être accessibles par HTTPS. Cela élimine même la première vulnérabilité de la requête HTTP.

Exigences de précharge

1. Certificat SSL valide

2. Rediriger tout HTTP vers HTTPS

3. En-tête TVHS avec:

4. Tous les sous-domaines doivent prendre en charge HTTPS

Présentation à la liste de précharge

1. Vérifier les exigences: Utiliser hstspreload.org pour vérifier

2. Soumettre le domaine : Entrez le domaine à hstspreload.org

3. Atteinte à l'inclusion: Prend des semaines à des mois pour les mises à jour du navigateur

Avertissements de précharge

La précharge est permanente (pratiquement). Le retrait de la liste prend des mois et nécessite des mises à jour du navigateur. Seulement précharger si vous êtes certain que tous les sous-domaines prendront en charge HTTPS indéfiniment.

Vérification de la TVH

Browser DevTools:

1. Ouvrir DevTools → onglet réseau

2. Chargez le site

3. Vérifiez les en-têtes de réponse pour la sécurité strict-transport

Utilisation de la boucle:
curl -I https://example.com | grep -i strict
Utilisation de DomScan:
curl "https://domscan.net/v1/health?domain=example.com"

# Reports hasHSTS in security details

État d'avancement du chargement :

Vérifiez hstspreload.org pour voir si un domaine est préchargé.

Stratégie de déploiement du SST

Phase 1: Âge maximal court

Commencez par un court âge max pour tester:

Strict-Transport-Security: max-age=300
Si quelque chose casse, les utilisateurs ne cachent que 5 minutes.

Phase 2 : Augmentation de la durée

Après confirmation HTTPS fonctionne partout :

Strict-Transport-Security: max-age=86400

Phase 3: Ajouter des sous-domaines

Une fois tous les sous-domaines pris en charge HTTPS :

Strict-Transport-Security: max-age=2592000; includeSubDomains

Phase 4: Déploiement complet + Précharge

Après des mois de fonctionnement stable:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Puis soumettre à la liste de précharge.

Enjeux communs en matière de TVH

Sous-domaine sans HTTPS: includeSubDomains casse ce sous-domaine Environnements de développement: le TVHS mis en cache à partir de la production rompt le développement local En-têtes CDN/Proxy: S'assurer que l'en-tête HSTS n'est pas dépouillé par les intermédiaires Contenu mixte: Toutes les ressources doivent être HTTPS ; HSTS ne corrige pas les ressources HTTP intégrées

HSTS est essentiel pour tout site Web traitant des données sensibles et fortement recommandé pour tous les sites HTTPS.

Mettez Vos Connaissances en Pratique

Utilisez l'API de DomScan pour vérifier la disponibilité des domaines, la santé et bien d'autres choses.