Créer et utiliser des enregistrements TLSA (DANE)

1/52/53/54/55/5 (3 votes, moyenne: 3,67 sur 5)
Loading...
C

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 :

generate-tlsa-records

 

« 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 :

generate-tlsa-records-02

 

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 :

generate-tlsa-records-03

generate-tlsa-records-04

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

13 Commentaires
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
Qwaser
6 années plus tôt

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.

Qwaser
Reply to  Nicolas Simond
6 années plus tôt

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)

Qwaser
Reply to  Nicolas Simond
6 années plus tôt

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.

Qwaser
Reply to  Nicolas Simond
6 années plus tôt
Qwaser
Reply to  Nicolas Simond
6 années plus tôt

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 ?

Grajon
7 années plus tôt

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

Carl Chenet
7 années plus tôt

Ligne 4 tu as laissé une phrase en anglais de ton aticle d’origine