Table des matières de l'article :
Qu’est-ce que HSTS et quelles garanties offre-t-il à un navigateur Web moderne ?
Le protocole HSTS (HTTP Strict Transport Security) est une politique de sécurité web mise en œuvre par un site internet pour protéger les communications entre les navigateurs et les serveurs. Lorsqu'un site web implémente HSTS, il indique au navigateur de communiquer uniquement via des connexions HTTPS sécurisées pendant une période déterminée. Ainsi, même si un utilisateur tente d'accéder au site via une URL HTTP, le navigateur le redirigera automatiquement vers une connexion HTTPS. Cette politique, outre le fait de garantir une connexion sécurisée, empêche différents types d'attaques susceptibles de compromettre l'intégrité et la confidentialité des données transmises.
Les principales garanties offertes par HSTS comprennent :
- Protection contre les attaques de rétrogradation: empêche un attaquant de forcer un navigateur à utiliser une connexion HTTP non sécurisée, réduisant ainsi la possibilité d'attaques de l'homme du milieu (MITM) qui pourraient intercepter et modifier les données transmises entre le navigateur et le serveur.
- Intégrité des communications: Garantit que toutes les communications entre le navigateur et le serveur sont cryptées et ne peuvent être interceptées ou modifiées, préservant ainsi la confidentialité et l'intégrité des données.
- Suppression des avertissements de sécurité: empêche le navigateur d'afficher des avertissements de sécurité concernant le contenu mixte (HTTP et HTTPS) sur le site, garantissant ainsi une expérience utilisateur plus sûre sans interruptions causées par des avertissements de sécurité.
Lorsqu'un navigateur visite un site avec un certificat HTTPS expiré, invalide ou incompatible, HSTS joue un rôle crucial. Étant donné que HSTS force l'utilisation exclusive de HTTPS, votre navigateur ne vous permettra pas de procéder à une connexion non sécurisée. Au lieu de permettre aux utilisateurs d'ajouter une exception de sécurité tout en accédant au site, HSTS force le navigateur à bloquer complètement l'accès, protégeant ainsi l'utilisateur des risques potentiels associés à l'utilisation de certificats invalides. Ce comportement est essentiel pour maintenir un niveau élevé de sécurité et de confiance, garantir que les communications restent protégées à tout moment et réduire la possibilité que des utilisateurs inconscients puissent exposer leurs données à des menaces externes.
Application de la directive HSTS au niveau du domaine de deuxième niveau.
La politique HSTS peut être appliquée au niveau du domaine de deuxième niveau, qui fait référence au nom principal du domaine, tel que « domainname.it », par opposition aux sous-domaines ou aux troisièmes niveaux tels que « shop.domainname.it » ou « blog ». .nom de domaine.it ». Lorsque HSTS est configuré pour un domaine de deuxième niveau, il peut inclure la directive « includeSubDomains », qui étend automatiquement la politique de sécurité à tous les sous-domaines. Cela signifie que si HSTS est défini avec « includeSubDomains » pour « domainname.it », tout sous-domaine tel que « shop.domainname.it » ou « blog.domainname.it » héritera des mêmes règles de sécurité, forçant les connexions HTTPS et protégeant les communications. contre les attaques de downgrade et MITM.
L'utilisation de la directive « includeSubDomains » impose à tous les sous-domaines de respecter les règles HSTS du domaine racine, sans possibilité de les exclure individuellement . Cet héritage garantit la sécurité de l'ensemble du site et l'intégrité des communications sur l'ensemble du domaine, réduisant ainsi les risques de vulnérabilités. Par exemple, si une organisation décide d'ajouter de nouveaux services tels qu'une boutique en ligne (« shop.domainname.com ») ou un blog (« blog.domainname.com »), ces services doivent également se conformer à la directive HSTS « includeSubDomains » déjà configurée pour le domaine racine. Cette approche unifiée assure une protection cohérente et robuste sur l'ensemble du domaine, simplifiant la gestion de la sécurité et offrant une protection avancée aux utilisateurs.
Comment Chrome vous empêche de consulter un site protégé par HSTS en vous empêchant de continuer en ajoutant une exception
Google Chrome est l'un des navigateurs les plus populaires et s'engage fortement en faveur de la sécurité des utilisateurs. Lorsqu'un site Web est protégé par HSTS, Chrome applique strictement les directives de sécurité définies par le site. Si le certificat HTTPS est expiré, invalide ou ne correspond pas, Chrome affichera une page d'erreur avec le message « Votre connexion n'est pas privée » et le code d'erreur « NET :: ERR_CERT_INVALID ».
Détails de la protection offerte par Chrome :
- Blocage des alertes: Chrome ne vous permet pas d'ignorer l'avertissement de sécurité et d'ajouter une exception pour les sites avec HSTS. Cela garantit que les utilisateurs ne peuvent pas accéder accidentellement à des sites potentiellement dangereux. Ce mécanisme est crucial pour maintenir un haut niveau de sécurité, car il évite la possibilité d'ignorer les avertissements de sécurité, ce qui pourrait exposer l'utilisateur à des menaces telles que le vol de données ou les attaques MITM.
- Redirection forcée: Même si un utilisateur tente d'accéder au site via HTTP, Chrome redirigera automatiquement la requête vers HTTPS. Ce comportement garantit non seulement que toutes les communications restent sécurisées, mais élimine également la possibilité de connexions accidentelles via HTTP non sécurisé, améliorant ainsi globalement la sécurité des sessions utilisateur.
- Erreur fatale: Une fois que le navigateur a reçu l'en-tête HSTS d'un site, il n'existe aucune option pour désactiver ou remplacer ce comportement via l'interface utilisateur du navigateur. Cet aspect de la protection est particulièrement important car il rend le respect des politiques de sécurité HSTS obligatoire et incontournable, même par les utilisateurs avancés, garantissant que les mesures de sécurité restent en place jusqu'à l'expiration de la période spécifiée par le HSTS.
La nécessité de voir un site avec un certificat HTTPS expiré ou incompatible.
Dans les contextes de développement et de maintenance de sites web, il est très courant que des professionnels doivent accéder à des versions du site avec des certificats HTTPS invalides. Ce besoin apparaît dans diverses situations qui nécessitent l'intervention de développeurs, de concepteurs web et de techniciens informatiques pour assurer le bon fonctionnement et l'intégrité des projets web.
Voici quelques situations courantes :
- Développement et tests: lors du développement de nouvelles fonctionnalités, les développeurs peuvent travailler sur des environnements de test avec des certificats auto-signés ou expirés. Ces environnements sont essentiels pour tester de nouvelles implémentations sans affecter le site de production.
- Migration de site Web: Lors de la migration d'un site d'un serveur à un autre, il peut y avoir des périodes de transition pendant lesquelles les certificats n'ont pas encore été mis à jour, ce qui vous oblige à accéder à des sites avec des certificats temporairement invalides.
- Intégration: Les nouveaux développeurs ou membres de l'équipe de support technique peuvent avoir besoin d'accéder aux versions du site présentant des problèmes de certificat pour diagnostiquer et résoudre d'éventuelles anomalies, garantissant ainsi le bon fonctionnement du site une fois les problèmes résolus.
Dans toutes ces situations, la capacité à ignorer temporairement les avertissements de sécurité est cruciale pour garantir la continuité des activités sans interruption significative. Ignorer ces avertissements dans un environnement contrôlé permet aux développeurs et aux ingénieurs de faire leur travail efficacement, en résolvant les problèmes et en apportant les améliorations nécessaires sans compromettre la sécurité du site de production.
Comment contourner cette restriction via la directive cachée « ceci n'est pas sécurisé » dans Google Chrome
Contexte et avertissements
Cette procédure nous a été signalée par Pierpaolo Pittari suite à des difficultés rencontrées lors des phases de test et d'intégration, notamment lors de la consultation de sites web dont les certificats SSL étaient expirés et soumis à la directive HSTS. Après des recherches approfondies, Pierpaolo nous a fait part de cette astuce ce matin. Elle semblait plus relever d'une fonctionnalité cachée que d'une véritable fonction pour développeurs, mais elle s'avère être une solution dont tous les développeurs auront tôt ou tard besoin. Avant de décrire comment contourner la restriction HSTS dans Chrome, il est important de souligner que cette procédure doit être utilisée avec la plus grande prudence. Ignorer les avertissements de sécurité peut exposer votre système à des risques potentiels. Cette méthode ne doit être utilisée que dans des environnements contrôlés et à des fins légitimes, comme celles mentionnées précédemment.
Procédure pas à pas
Google Chrome dispose d'une fonctionnalité cachée qui vous permet de contourner l'avertissement « Votre connexion n'est pas privée » pour les sites dotés de certificats HTTPS non valides. Cette fonctionnalité peut être activée en tapant une phrase spécifique sur la page d'erreur.
Voici les étapes détaillées pour utiliser la directive « ceci n'est pas sûr » :
- Accès au site avec une erreur de certificat:
- Ouvrez Google Chrome et essayez d'accéder au site avec le certificat HTTPS expiré ou invalide. Vous verrez une page d’erreur avec le message « Votre connexion n’est pas privée ».
- Afficher le code source de la page d'erreur (facultatif):
- Bien que cela ne soit pas nécessaire, vous pouvez afficher le code source de la page d'erreur pour confirmer la présence de la directive « ceci n'est pas sécurisé ». Presse
Ctrl + U(oCmd + Usur Mac) pour ouvrir le code source.
- Bien que cela ne soit pas nécessaire, vous pouvez afficher le code source de la page d'erreur pour confirmer la présence de la directive « ceci n'est pas sécurisé ». Presse
- Activer la directive cachée:
- Avec la page d'erreur ouverte, tapez "c'est dangereux" (sans guillemets) directement sur le clavier. Notez qu'il n'y aura pas de champ de saisie visible ; tapez simplement la phrase comme si vous tapiez normalement.
- Contourner l'erreur:
- Après avoir tapé « ceci n'est pas sécurisé », Chrome contournera l'avertissement de sécurité et chargera le site Web malgré le certificat HTTPS invalide.
Cette procédure tire parti d'une fonctionnalité cachée de Chrome conçue principalement à des fins de développement et de débogage. Cependant, comme rappelé ci-dessus, l'utilisation de cette fonctionnalité doit être limitée à des situations contrôlées afin d'éviter les risques potentiels pour la sécurité.
Pour ceux qui veulent voir comment cela fonctionne en détail, nous avons trouvé en ligne cette vidéo YouTube qui illustre très bien la procédure décrite ci-dessus.
Sources de référence
La directive « ceci n’est pas sûr » a été discutée dans divers contextes en ligne, notamment sur les blogs industriels et les forums de discussion. Voici quelques références utiles :
- DeployHappiness : c'est dangereux
- Reddit : administrateur système
- Dev.to : c'est dangereux et c'est une mauvaise idée
Ces ressources fournissent plus de détails sur la directive cachée et discutent des implications de sécurité de son utilisation.
conclusion
La mise en œuvre de HSTS est une mesure de sécurité essentielle pour protéger les communications Web, garantissant que toutes les données transmises entre votre navigateur et votre serveur sont cryptées et ne peuvent être interceptées ou modifiées. Cette politique de sécurité est cruciale pour prévenir les attaques de l'homme du milieu (MITM) et autres menaces en forçant l'utilisation de connexions HTTPS et en rendant impossible l'accès via HTTP. HSTS offre ainsi une protection robuste et cohérente aux utilisateurs, améliorant considérablement la sécurité globale d'un site Web.
Cependant, il existe des situations particulières dans les contextes de développement, de maintenance et de migration de sites Web où il peut être nécessaire de contourner temporairement ces restrictions pour assurer la continuité du travail. Par exemple, lors du développement de nouvelles fonctionnalités, de la migration de sites Web ou de l'intégration de nouveaux membres d'équipe, les développeurs et les ingénieurs peuvent avoir besoin d'accéder à des versions de sites avec des certificats HTTPS expirés ou invalides. Dans ces cas-là, la possibilité d’ignorer temporairement les avertissements de sécurité peut s’avérer cruciale pour tester et dépanner sans interruption significative.
Google Chrome propose une solution de contournement via la directive cachée « this is unsafe », permettant d'ignorer les avertissements de sécurité et d'accéder à des sites dont le certificat est invalide. Bien que cette fonctionnalité soit très utile, son utilisation doit être extrêmement prudente. Ignorer les avertissements de sécurité expose votre système à des risques potentiels, car cela autorise l'accès à des sites potentiellement vulnérables ou compromis. Par conséquent, cette procédure ne doit être utilisée que dans des environnements contrôlés et à des fins légitimes, telles que celles décrites, afin de ne pas compromettre la sécurité du système.