Outils pour utilisateurs

Outils du site


kb:crypto:hpkp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
kb:crypto:hpkp [2018/03/07 20:40] – créée beukb:crypto:hpkp [2018/07/03 07:45] (Version actuelle) beu
Ligne 1: Ligne 1:
 ======HPKP====== ======HPKP======
  
-<code>+====Comprendre HPKP==== 
 + 
 +HPKP est une en-tête HTTPS permettant d'indiqué au client pendant une durée déterminé quel seront les certificats HTTPS qui pourront lui être présenté. 
 + 
 +Les problèmes pouvant être rencontrées sont les suivants :\\ 
 +  * C'est une méthode [[https://en.wikipedia.org/wiki/Trust_on_first_use| TOFU]], donc si la personne n'est jamais venu sur site ou après l’expiration de la durée indiqué dans l'en-tête depuis sa dernière visite , on ne pourra assuré quel n'est pas de MITM sur la communication. 
 +  * Très casse gueule, si la moindre erreur la personne ne pourra pas accéder au site jusqu’à l'expiration de son en-tête. 
 +  * Un changement de certificat se doit d'être réalisé en 3 étapes qui prennent la durée minimum indiqué dans l'en-tête. 
 + 
 +Voici les recommandations officiels : 
 +  * Toujours avoir une paire de clé/certificat de secours dans l'en-tête en cas de compromissions du serveur. 
 +  * La durée de rétention est de 60 jours 
 + 
 +====Compatibilité avec Let's Encrypt==== 
 + 
 +**HPKP** est tout comme [[kb:crypto:DANE_TLSA]], nativement pas compatible avec **certbot**. Mais avec un peu de rigueur, et les bons arguments, on peut faire en sorte de garder ses clés publiques et donc permettre de garder ses empreintes **HPKP**. N'oubliez pas de faire un deuxième certificat non signé pour la backup. 
 + 
 +====Générer une entrée HPKP==== 
 + 
 +Pour obtenir le **HASH** du certificat, il faut taper la commande : 
 + 
 +<code bash>
 # openssl req -pubkey < /etc/letsencrypt/wiki.virtit.fr/live/cert.csr | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64 # openssl req -pubkey < /etc/letsencrypt/wiki.virtit.fr/live/cert.csr | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64
 +</code>
 +
 +et il suffira d'ajouter une entêtes suivante dans votre serveur WEB, par exemple pour apache :
 +
 +<code>
 +Header always set Public-Key-Pins "max-age=5184000; pin-sha256=\"JOLIE_PETIT_HASH_ACTIF\"; pin-sha256=\"JOLIE_PETIT_HASH_BACKUP\"; "
 </code> </code>
kb/crypto/hpkp.1520455221.txt.gz · Dernière modification : 2018/03/07 20:40 de beu