mozilla
Vos résultats de recherche

    HTTP Strict Transport Security

    HTTP Strict Transport Security (souvent abrégé par HSTS) est un dispositif de sécurité par lequel un site web peut déclarer aux navigateurs qu'ils doivent communiquer avec lui en utilisant exclusivement le protocole HTTPS, au lieu du HTTP.

    Pourquoi est-ce utile ?

    Si un site web accepte une connexion via HTTP et la redirige en HTTPS, l'utilisateur peut dans la phase initiale être en communication avec la version non chiffrée du site avant la redirection, si par exemple il entre une adresse comme http://www.machin.com/ ou même seulement machin.com.

    Ce qui ouvre une brèche potentielle à une attaque de l'homme du milieu (man-in-the-middle attack), par laquelle la redirection peut être détournée pour envoyer l'utilisateur vers un site malveillant au lieu de la version sécurisée de la page désirée.

    Le mécanisme HTTP Strict Transport Security permet au site web d'informer le navigateur qu'il ne doit jamais charger le site utilisant le HTTP, et doit en revanche convertir toutes les requêtes en HTTP en requêtes HTTPS.

    Un exemple d'utilisation

    Vous vous connectez sur un point d'accès WiFi public dans un aéroport et commencez à naviguer sur le Web, vous vérifiez sur votre service bancaire en ligne l'état de votre compte et payez quelques factures. Malheureusement le point d'accès que vous utilisez est en fait l'ordinateur portable d'un pirate, et il intercepte votre requête initiale en HTTP et la redirige vers une copie frauduleuse du site de votre banque et non vers le site authentique. Et voilà comment vos données confidentielles se retrouvent entre les mains du pirate.

    Le protocole Strict Transport Security résout ce problème ; si vous avez accédé une première fois au site de votre banque en utilisant le HTTPS, et que le site de la banque utilise le protocole Strict Transport Security, votre navigateur saura automatiquement qu'il ne doit utiliser que le HTTPS, ce qui empêchera les pirates de mener une attaque de type l'homme du milieu .

    Activation du protocole Strict Transport Security

    Activer le dispositif sur votre site consiste tout simplement à retourner l'en-tête HTTP  Strict-Transport-Security quand votre site reçoit une requête d'accès HTTPS :

    Strict-Transport-Security: max-age=expireTime [; includeSubdomains]
    
    expireTime
    La durée exprimée en secondes, pendant laquelle le navigateur doit retenir que le site n'est accessible que par le protocole HTTPS.
    includeSubdomains Facultatif
    Si ce paramètre facultatif est précisé, la règle s'appliquera également à tous les sous-domaines du site.
    Note : L'en-tête Strict-Transport-Security est ignoré par le navigateur si on accède à votre site en utilisant HTTP ; en effet, un attaquant malveillant peut intercepter les connexions via HTTP et injecter un autre en-tête ou le supprimer. Quand on accède à votre site via HTTPS sans erreur de certificat, le navigateur sait que le site est compatible HTTPS et respectera l'en-tête Strict-Transport-Security.

    Comment le navigateur gère le protocole

    La première fois qu'on accède à votre site via HTTPS et qu'il renvoie l'en-tête Strict-Transport-Security, le navigateur mémorise cette information, de sorte que toutes les tentatives ultérieures de connexion via HTTP utiliseront automatiquement le HTTPS en substitution.

    Lorsque le délai d'expiration (expireTime) précisé dans l'en-tête Strict-Transport-Security arrive à son terme, la tentative suivante de charger le site via HTTP sera traitée comme normale au lieu d'être automatiquement convertie en HTTPS.

    À chaque fois que l'en-tête Strict-Transport-Security est transmis au navigateur, celui-ci met à jour le délai d'expiration pour ce site, ce qui permet au concepteur du site de réactualiser cette information et éviter de dépasser le délai d'expiration.

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support basique 4.0.211.0 Unknown (4.0) Pas de support 12 Pas de support
    Fonctionnalité Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support basique 18 Unknown (4.0) Pas de support ? Pas de support

    Spécifications

    Voir également

    Étiquettes et contributeurs liés au document

    Contributors to this page: tregagnon, Goofy, romainfl
    Dernière mise à jour par : romainfl,