Table des matières de l'article :
Qu’est-ce que HSTS et quelles garanties offre-t-il à un navigateur Web moderne ?
Sécurité du transport strict HTTP (HSTS) est une politique de sécurité Web mise en œuvre par un site Web pour protéger les communications entre les navigateurs et les serveurs. Lorsqu'un site Web implémente HSTS, il demande au navigateur de communiquer uniquement via des connexions HTTPS sécurisées pendant une période de temps spécifiée. Cela signifie que même si un utilisateur tente d'accéder au site en utilisant une URL HTTP, le navigateur le redirigera automatiquement vers une connexion HTTPS. Cette politique, en plus de garantir une connexion sécurisée, prévient divers types d'attaques qui pourraient 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 » signifie que tous les sous-domaines sont obligés de suivre les règles HSTS du domaine parent sans possibilité d'être exclus individuellement.. Cet héritage garantit que toutes les parties du site restent sécurisées et que l'intégrité des communications est maintenue dans toutes les sections du domaine, réduisant ainsi le risque de vulnérabilités potentielles. Par exemple, si une organisation décide d'ajouter de nouveaux services tels qu'une boutique en ligne (« shop.domainname.it ») ou un blog (« blog.domainname.it »), ces services devront également se conformer à la directive HSTS avec « includeSubDomains » déjà défini pour le domaine principal. Cette approche unifiée garantit une protection cohérente et robuste sur l’ensemble du domaine, facilitant ainsi 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.
- Onboarding: 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 cela nous a été rapporté par Pierpaolo Pittari, après avoir rencontré des difficultés lors de la préparation et de l'intégration lors de la visualisation de sites dont les certificats SSL expirés étaient soumis à la directive HSTS. Après des recherches épuisantes, Pierpaolo nous a communiqué cette fonctionnalité dans la matinée. Cela ressemblait plus à un œuf de Pâques qu'à une véritable fonctionnalité de développement, mais cela s'est avéré être la solution dont tous les développeurs auront besoin à un moment donné. 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 une extrême prudence. Ignorer les avertissements de sécurité peut exposer votre système à des risques de sécurité potentiels. Cette méthode ne doit être utilisée que dans des environnements contrôlés et à des fins légitimes, telles que celles mentionnées ci-dessus.
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 + U
sur 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 via la directive cachée « ceci n'est pas sécurisé », qui vous permet de contourner les avertissements de sécurité et d'accéder à des sites avec des certificats invalides. Cette fonctionnalité, bien qu’extrêmement utile, doit être utilisée avec une extrême prudence. Ignorer les avertissements de sécurité expose votre système à des risques potentiels en autorisant l'accès à des sites qui peuvent être 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 d'éviter de compromettre la sécurité du système.