Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.
Bonjour à tous,
Dans un de mes derniers articles, je vous ai montré comment mettre en place des enregistrements SSHFP (entre autres).
Ce sont d’autres enregistrements DNS très pratiques si vous avez une zone sécurisée par DNSSEC à disposition.
Je vais appliquer cet article au protocole HTTPS ici (TLSA oblige) mais, DANE est prévu pour tous les certificats X.509.
DANE et TLSA
Les enregistrements TLSA sont donc utilisés par le protocole DANE.
L’IETF (Internet Engineering Task Force) a proposé le protocole/mécanisme DANE (DNS – based Authentication of Named Entities) qui s’appuie sur le DNS pour authentifier des entités applicatives.
Cette démarche s’enregistre dans une logique de sécurisation des accès clients-serveurs en:
-
Sécurisant les requêtes DNS effectuées depuis les postes clients au travers des protocoles/mécanismes DNSSEC et TLS
-
Mieux sécuriser les accès chiffrés des clients vers le serveurs.
Merci Wikipédia.
Ce protocole nous permets de court-circuiter les autorités de certifications (Let’s Encrypt, Comodo …) ou de valider leurs résultats..
Malheureusement, le support de TLSA n’est implémenté dans aucun navigateur MAIS, vous pouvez ajouter le support avec des addons..
Création des enregistrements TLSA
Pour commencer, allez dans l’espace ou vous avez votre certificat, par exemple pour moi :
/etc/letsencrypt/live-ecdsa/enter.thewhiterabbit.space/letmp
Maintenant, affichez le :
cat 0000_cert.pem -----BEGIN CERTIFICATE----- MIIEgDCCA2igAwIBAgISA7k3ExHJRVlb4jWPW1ih4wDCMA0GCSqGSIb3DQEBCwUA MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNjA3MjExNTE3MDBaFw0x NjEwMTkxNTE3MDBaMCUxIzAhBgNVBAMTGmVudGVyLnRoZXdoaXRlcmFiYml0LnNw YWNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEW0UDhS86AMNYZW3mvOEdrN5NRUvz e4+wMdUig5IAt9ka0a/etUlArbtLeWPRAJQsd9Pstuqqn3S07uZwin6V9VlFGDP9 BzP/kuJrfPeM9c3OHYRCCGMZkZuO4Yj+b/tlo4ICMTCCAi0wDgYDVR0PAQH/BAQD AgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAA MB0GA1UdDgQWBBSAh0RtOf8frb9J1ryPeSNf3BByCDAfBgNVHSMEGDAWgBSoSmpj BH3duubRObemRWXv86jsoTBwBggrBgEFBQcBAQRkMGIwLwYIKwYBBQUHMAGGI2h0 dHA6Ly9vY3NwLmludC14My5sZXRzZW5jcnlwdC5vcmcvMC8GCCsGAQUFBzAChiNo dHRwOi8vY2VydC5pbnQteDMubGV0c2VuY3J5cHQub3JnLzA7BgNVHREENDAyghpl bnRlci50aGV3aGl0ZXJhYmJpdC5zcGFjZYIUdGhld2hpdGVyYWJiaXQuc3BhY2Uw gf4GA1UdIASB9jCB8zAIBgZngQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYGCCsG AQUFBwIBFhpodHRwOi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUHAgIw gZ4MgZtUaGlzIENlcnRpZmljYXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9uIGJ5 IFJlbHlpbmcgUGFydGllcyBhbmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhl IENlcnRpZmljYXRlIFBvbGljeSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNyeXB0 Lm9yZy9yZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAA0l/CqSc1tkGI6Nz jN6qsmk5BxMpj/4y+f8rt+39wma+esztkDccsHVPYZIwcWbD/Qr3kLTpjMqIesl4 2EZ7rMGjxh3T2AQ59bNmQBjq0yAexA6zoIoJnn00mjHsGKh6nNlgu4Hj1CFJEtig diVn3UjBh9SsReN2uXExHo5zyaThKQm0Sngh2IY0OSMRB/FHJXw8QnqBTnywwOOv xSCSmdW6o1k4+uit5WNLfBj+W6tHu9EeqJ7g5RoKuP7yxYoIJmpsh0Op4KmHdrq/ uiUeKAwYPbxgd705WRg8zxKwNVCVBKuO02m4//ujke9nws3N0eQPFnSbY9K77F3Q PCxqeA== -----END CERTIFICATE-----
Maintenant, créez un enregistrement « TLSA 3 1 1″en utilisant cet outil.
Collez votre certificat, sélectionnez 3 1 1, le port, le protocole et le nom commun comme ceci :
« 3 1 1 » correspond à ceci :
- 3 – On utilise un certificat de domaine
- 1 – On utilise la clé publique de ce certificat
- 1 – On utilise un certificat avec un hash SHA-256
Pour plus d’info, lisez la RFC directement.
Comme vous pouvez le voir on utilise la clé publique du certificat uniquement et non pas le certificat complet pour générer l’enregistrement..
En utilisant cette méthode, vous n’aurez pas a changer l’enregistrement TLSA a chaque renouvellement de certificat.
Vous devrez uniquement changer l’enregistrement lorsque vous changerez de clé privée..
Maintenant, vous avez votre enregistrement TLSA :
Faites attention, si vous avez un certificat SAN vous aurez besoin de dupliquer les entrées pour tous les sous-domaines.
Voici l’exemple pour mon blog Anglais :
_443._tcp.thewhiterabbit.space. IN TLSA 3 1 1 ea0fccb0f5a7f5a4c67a693a5fe53c0859ab295d889f84c72e41ee40ade77270 _443._tcp.enter.thewhiterabbit.space. IN TLSA 3 1 1 ea0fccb0f5a7f5a4c67a693a5fe53c0859ab295d889f84c72e41ee40ade77270
Installation des plugins DNSSEC / TLSA Validator dans votre navigateur :
Allez sur la page de téléchargement de DNSSEC validator et suivez les instructions pour votre navigateur web.
Si vous avez tout bien configuré, vous verrez deux icônes vertes dans votre navigateur indiquant la validité des enregistrements DNSSEC et TLSA pour votre domaine :
Merci pour cet article ! 🙂
En plus d’ajouter HPKP j’ai souhaité ajouté TLSA également comme OVH me le propose directement. Ce qui m’étonne c’est que j’ai remplit l’enregistrement comme il se doit à l’aide de ton article, mais l’addon DNSSEC/TLSA Validator m’indique toujours rien… Tu n’aurais pas une idée de pourquoi il ne le prends pas en compte ?
En te remerciant d’avance.
Salut, il faut attendre la propagation dns 🙂
D’accord c’est ce que je pensais également mais 24 heures suffissent normalement ? J’ai ajouté l’enregistrement vendredi soir (ou samedi très très tôt je ne sais plus) et là on est lundi matin et toujours rien…
Si tu te rends sur mon site, tu vois comme moi que l’addon ne montre pas que c’est actif ? (au cas où se serait chez moi uniquement ça ne fonctionnerait pas)
Impossible de voir ta signature.
Tu m’exporte ta zone en texte là-dessus s’il te plait ? https://paste.yaute.ninja/
D’accord enfaîte le problème venait qu’OVH avait détecté une erreur dans ma zone DNS donc n’a pas pris en compte mes modifications… Maintenant dès que je rajoute mon entrée pour rediriger mon sous-domaine www vers qwaser.fr. il me sors l’erreur de même si je rajoute l’entrée en pointant www vers l’IP du serveur directement aussi…
Du jour au lendemain OVH décide que ce n’est plus bon d’accord. Du coup pas moyen de tester comme http://www.qwaser.fr ne pointe plus vers rien, merci OVH.
Ma zone pour information extrait en format texte : https://paste.yaute.ninja/?3cc7303e234ac0a3#ZJgbN4ztvT63OkPQFkmSI7ONTvNiytY9qHsAab+xqiY=
Salut,
Remets à 0 ta zone DNS et refais les enregistrements TLSA en mode texte.
Je verrais plus quelque chose comme ça pour ta zone : https://paste.yaute.ninja/?cb5e215b8194a177#jMttALBSOhGbITwX2Rjum63CiKQrNO20H8+OvVb1dzs=
D’accord et bien en collant directement ce que tu as fait avec ma zone dans le mode texte directement cela fonctionne… Donc l’ajout TLSA d’OVH ce n’est pas encore ça, mieux vaut le faire à la main ! Par contre c’est normal le fait de ne pas pouvoir mettre un enregistrement CNAME et TLSA en même temps ? Je vais devoir passer mes CNAME en A si je veux TLSA pour tous mes sous domaines ?
Ouais y’a des choses qu’il faut mieux faire à la main même si la gestion DNS d’OVH est très bien 🙂
Ensuite tu peux faire un cname si tu veux, mais ça fera une résolution DNS en plus pour tes visiteurs qui vont sur le www. 🙂
Bonjour,
donc dans le cadre d’un certificat letsencrypt ça veut donc dire qu’il faut répéter la manipulation à chaque mise à jour du certificat ?
Si oui n’existe il pas une méthode pour automatiser cela ?
Merci, et au passage super article, très clair dans sa mise en oeuvre
Bonjour,
Comme expliqué dans l’article, il faut uniquement renouveler les enregistrements TLSA lorsque vous renouvelez la clé privée. Une simple mise à jour du certificat n’entraînera pas de modification des enregistrements TLSA 🙂
Ligne 4 tu as laissé une phrase en anglais de ton aticle d’origine
Effectivement, c’est corrigé 😉