Quest-ce que HPKP ?

HPKP est un en-tête de réponse de sécurité Web obsolète, l'acronyme signifie HTTP Public Key Pins. Il visait à empêcher une autorité de certification compromise ou malhonnête d'émettre un certificat HTTPS de confiance publique, mais contrôlé par des pirates, pour un site Web. Dans ce scénario, les pirates pourraient déchiffrer tout trafic HTTPS intercepté vers le site Web concerné.

Astuce : Les en-têtes de réponse Web sont des éléments de métadonnées que le serveur inclut lorsqu'il répond aux demandes. Un petit sous-ensemble de ceux-ci est appelé en-têtes de sécurité, car ils activent et configurent diverses fonctionnalités de sécurité.

Infrastructure de certificats HTTPS

L'infrastructure de certificats sur laquelle HTTPS est construit est basée sur un réseau de confiance. Un certain nombre d'entreprises agissent en tant qu'autorités de certification (CA) qui publient un ou plusieurs certificats racine. Un ensemble de certificats racine est inclus dans tous les appareils d'un magasin de confiance. Lorsqu'un site Web demande son propre certificat HTTPS à une autorité de certification, le certificat est signé par un certificat racine. Lorsque votre ordinateur voit un certificat HTTPS, il vérifie la signature. Si le certificat est signé par un certificat racine auquel il fait confiance, votre ordinateur fait également confiance au certificat HTTPS.

Astuce : Une autorité de certification peut également avoir des certificats intermédiaires signés par le certificat racine. Ces certificats intermédiaires peuvent également être utilisés pour signer des certificats HTTPS pour les sites Web.

Le travail d'une autorité de certification consiste à émettre un certificat uniquement lorsqu'elle a vérifié que la personne qui en fait la demande est le véritable propriétaire du site Web. L'idée avec cette structure est que si un pirate crée son propre certificat pour un site Web, il ne sera pas signé par une autorité de certification de confiance de votre ordinateur, et vous verrez donc un avertissement.

Qu'a fait HPKP ?

L'ensemble du système de certification repose sur la fiabilité des autorités de certification. À l'origine, cependant, il n'y avait aucune protection contre une autorité de certification compromise par des pirates informatiques ou devenant un voyou et choisissant d'émettre des certificats de manière incorrecte.

HPKP a été conçu pour être une protection contre cette possibilité. Il permet aux sites Web de spécifier une liste exclusive de certificats de confiance pour le site Web dans un processus appelé épinglage. Il était possible d'épingler le certificat racine ou intermédiaire, permettant essentiellement à une seule autorité de certification d'émettre des certificats pour le site Web. Il était également possible d'épingler le certificat du site Web lui-même, empêchant même la bonne autorité de certification d'émettre un autre certificat valide.

Techniquement, ce n'est pas le certificat lui-même qui est épinglé, mais un hachage de la clé du certificat. Un hachage est une fonction cryptographique à sens unique. Cela signifie qu'il est possible de vérifier que le certificat présenté au navigateur par le site Web correspond à un certificat épinglé, mais il n'est pas possible d'utiliser le hachage pour créer un certificat valide.

HPKP nécessitait l'épinglage d'au moins deux clés, dont au moins une doit être une sauvegarde et non dans la chaîne de certificats actuelle. Cette sauvegarde vous permet de configurer un transfert en douceur vers un nouveau certificat qui n'empêche pas les utilisateurs de pouvoir se connecter.

Si le certificat HTTPS présenté au navigateur par le site Web ne correspond pas à l'un des certificats épinglés, le navigateur doit le rejeter et empêcher l'utilisateur de contourner le message d'erreur du certificat.

Structure de HPKP

L'en-tête HPKP comporte trois parties obligatoires et deux facultatives. L'en-tête doit être intitulé "Public-Key-Pins", au moins deux certificats suivants doivent avoir un hachage SHA256 codé en base64 épinglé au format "pin-sha256=""". La dernière partie obligatoire est le "max-age", qui est le nombre de secondes pendant lequel le navigateur doit appliquer les restrictions.

Astuce : SHA256 est l'algorithme de hachage utilisé par HPKP. Base64 est un jeu de caractères avec 64 caractères : 0-9, az, AZ et les caractères spéciaux « + » et « / ». Le "=" est utilisé pour compléter jusqu'aux deux derniers caractères si nécessaire. 

Les paramètres facultatifs sont « includeSubDomains » et « report-uri ». « includeSubDomains indique au navigateur d'appliquer les protections HPKP à tout sous-domaine du site Web actuel pendant la durée de la minuterie « max-age ». « report-uri » est une fonctionnalité qui permet de spécifier un site Web où les rapports d'erreur peuvent être envoyés, et est conçue pour aider à identifier et à résoudre les problèmes.

Il existe une deuxième variante de l'en-tête intitulée « Public-Key-Pins-Report-Only ». Tout est pareil, cependant, si une erreur est trouvée, aucune action n'est entreprise au-delà du renvoi d'un message d'erreur au navigateur et au « report-uri » si celui-ci est configuré. La variante de rapport uniquement a été conçue pour permettre un test à grande échelle de l'en-tête avant le déploiement, où les erreurs ne causeraient pas de problèmes aux utilisateurs.

Problèmes avec HPKP

HPKP a été déprécié pour deux raisons principales. L'en-tête pouvait causer de graves problèmes au site Web qui l'utilisait de deux manières, celles-ci étaient nommées HPKP Suicide et Ransom PKP.

HPKP Suicide est un problème où les propriétaires légitimes du site Web perdent l'accès à toutes les clés épinglées. Cela peut se produire par suppression accidentelle, piratage, virus, corruption de données ou pour de nombreuses autres raisons. En raison de la complexité de la mise en œuvre correcte de HPKP, et surtout de sa mise à jour lors des rotations de certificats, il est relativement facile de commettre une erreur de configuration. Cependant, avec HPKP, si vous vous trompez, tous les visiteurs récents de votre site Web ne pourront pas accéder à votre site Web pendant la durée de la minuterie « âge maximum ». Le site Web smashingmagazine.com a publié un article détaillant son expérience avec exactement ce problème, qui a essentiellement mis le site hors ligne pour la plupart des visiteurs pendant quatre jours avant qu'un correctif ne soit déployé.

Ransom PKP est une attaque théorique dans laquelle un pirate informatique accède à un serveur Web, puis vole tous les certificats et clés de confiance, puis demande une rançon pour leur retour. Dans une configuration normale, vous pouvez simplement générer de nouvelles clés et de nouveaux certificats et faire en sorte que le site Web soit de nouveau opérationnel en moins d'une heure. Avec HPKP activé, cependant, ces clés sont épinglées, si vous ne pouvez pas servir un certificat épinglé aux utilisateurs, ils ne pourront pas accéder au site Web pendant la durée de la minuterie « âge maximum ». Selon la configuration et si des sauvegardes existent, il peut être impossible de résoudre ce problème.

Avec ces deux problèmes, les nouveaux utilisateurs pourraient accéder au site Web normalement, car ils n'auraient jamais vu l'ancien en-tête HPKP demander à leur navigateur de ne faire confiance qu'aux certificats désormais manquants. Cependant, tous les visiteurs récents, tels que les clients réguliers et les lecteurs, devraient attendre toute la durée de la minuterie « âge maximum ».

Compte tenu de la gravité de ces problèmes et de la complexité de la configuration et de la maintenance, l'utilisation de l'en-tête HPKP était très faible. Finalement, les principaux navigateurs ont accepté d'abandonner complètement sa prise en charge et en quelques années, l'en-tête HPKP a été universellement obsolète.



Leave a Comment

Comment forcer Google Chrome à toujours afficher les URL complètes

Comment forcer Google Chrome à toujours afficher les URL complètes

Chrome, par défaut, ne vous montre pas l'URL complète. Vous ne vous souciez peut-être pas trop de ce détail, mais si, pour une raison quelconque, vous avez besoin d'afficher l'URL complète, des instructions détaillées sur la façon de faire en sorte que Google Chrome affiche l'URL complète dans la barre d'adresse.

Comment récupérer lancien Reddit

Comment récupérer lancien Reddit

Reddit a encore modifié sa conception en janvier 2024. La refonte peut être vue par les utilisateurs de navigateurs de bureau et réduit le flux principal tout en fournissant des liens.

Comment copier le contenu des manuels avec Google Lens

Comment copier le contenu des manuels avec Google Lens

Taper votre citation préférée de votre livre sur Facebook prend du temps et est plein d'erreurs. Découvrez comment utiliser Google Lens pour copier du texte de livres sur vos appareils.

Ladresse DNS du serveur de réparation est introuvable dans Chrome

Ladresse DNS du serveur de réparation est introuvable dans Chrome

Parfois, lorsque vous travaillez sur Chrome, vous ne pouvez pas accéder à certains sites Web et obtenez une erreur « L'adresse DNS du serveur fixe est introuvable dans Chrome ». Voici comment résoudre le problème.

Guide rapide sur la façon de créer des rappels sur Google Home

Guide rapide sur la façon de créer des rappels sur Google Home

Les rappels ont toujours été le point fort de Google Home. Ils nous facilitent sûrement la vie. Faisons un tour rapide sur la façon de créer des rappels sur Google Home afin de ne jamais manquer de faire des courses importantes.

Snapchat « Mes yeux uniquement » : ce que cela signifie et comment le configurer

Snapchat « Mes yeux uniquement » : ce que cela signifie et comment le configurer

Nous avons tous des Snaps que nous souhaitons garder privés, qu'il s'agisse de photos personnelles ou simplement de quelque chose que vous ne voulez pas que quiconque utilise votre téléphone puisse voir. Vous pouvez déjà créer des histoires privées sur Snapchat, et désormais, pour ces Snaps privés supplémentaires, vous pouvez protéger votre confidentialité sur Snapchat avec la fonctionnalité My Eyes Only Snapchat.

Comment installer ou déplacer des jeux PS5 sur un disque dur externe

Comment installer ou déplacer des jeux PS5 sur un disque dur externe

Votre disque de stockage interne de 825 Go de votre PlayStation 5 semble beaucoup, mais les jeux vidéo modernes peuvent être volumineux. De nombreux titres exigent plus de 50 Go, certains dépassant même 100 Go.

Comment utiliser le publipostage dans Gmail

Comment utiliser le publipostage dans Gmail

Lorsque vous souhaitez envoyer le même e-mail à vos clients, employés, membres de club ou à un groupe similaire, vous pouvez saisir un e-mail une fois et envoyer un message à tout le monde à l'aide de l'outil de fusion et publipostage Gmail. Autrefois surnommée fonctionnalité « envoi multiple », le publipostage dans Gmail vous permet d'insérer des contacts Google ou une liste de diffusion à partir de Google Sheets.

Netflix : changer le mot de passe

Netflix : changer le mot de passe

Comment changer votre mot de passe sur le service de streaming vidéo Netflix à l'aide de votre navigateur préféré ou de votre application Android.

Comment vider le cache sur les téléphones Samsung

Comment vider le cache sur les téléphones Samsung

Parfois, les applications peuvent se charger lentement, planter ou occuper trop d'espace de stockage. Effacer les données mises en cache de votre téléphone peut aider à résoudre ces problèmes et à libérer de l'espace pour d'autres fichiers importants.