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