Enregistrement TLSA du protocole DNS : mise en place
Aujourd’hui, nous allons pour parler de l’enregistrement TLSA du protocole DNS, qui est également un moyen de sécuriser vos communications. Nous vous avions parler dans un précédent article de l’enregistrement SSHFP du protocole DNS. Ici on parle de
L’enregistrement TLSA du protocole DNS : principe et mise en place
Principe
L’enregistrement TLSA provient du protocole DANE : DNS-based Authentication of Named Entities.
Le principe des enregistrements TLSA est le même que celui de SSHFP, mais concerne quand à lui les certificats SSL/TLS, utilisés (entre-autres) pour sécuriser les connexions aux sites web (le fameux «https»).
Pour rester dans cet exemple : actuellement, si vous souhaitez proposer un accès sécurisé aux internautes se rendant sur votre site web, il vous faudra généralement acheter un certificat auprès d’une autorité de certification. Ces autorités de certification sont un tiers de confiance entre l’internaute et votre serveur. Le problème est que le nombre d’autorités de certification présentes dans la majorité des navigateurs web est très restreint. Ces dernières ont donc la main mise sur un business juteux et n’hésitent pas à en profiter : Le prix d’un certificat est généralement excessivement élevé.
Là encore, il est possible de s’appuyer sur l’infrastructure existante du DNS qui, si votre zone est signée avec DNSSEC, peut permettre de récupérer de manière sécurisée l’empreinte du certificat.
Mise en place de l’enregistrement TLSA du protocole DNS
Pour construire un enregistrement TLSA, on génère dans un premier temps l’empreinte du certificat :
openssl x509 -noout -fingerprint -sha256 < /etc/ssl/certs/mon-certificat.pem | tr -d : | cut -d '=' -f2
Le résultat ressemble alors à ceci :
CA2D82A08677072F8AB6764AF035676CFE3E5E325E012172DF3F92096DB79B85
On peut alors construire notre enregistrement TSLA du protocole DNS :
_443._tcp.www.monsite.fr. IN TLSA (3 0 1 CA2D82A08677072F8AB6764AF035676CFE3E5E325E012172DF3F92096DB79B85)
- _443._tcp.www.monsite.fr. désigne le port (443 : https), le protocole (tcp) et le nom de domaine pour lequel ce certificat est publié.
- IN TLSA est le type de l’enregistrement
- 3 désigne sous quelle forme le certificat est présenté. Ici on a calculé l’empreinte du certificat seul (sans son éventuelle CA). C’est la valeur à utiliser le plus souvent si votre certificat n’est pas signé par une CA.
- 0 indique que l’on a signé le certificat. La valeur 1 peut être utilisée si on signe la clé publique à la place du certificat.
- 1 indique que l’on présente un hash SHA-256 du certificat, et non le certificat en entier (on aurait alors mis 0).
Actuellement, tous les navigateurs ne supportent pas la vérification des enregistrements TLSA. Firefox par exemple nécessite un plugin, disponible à cette adresse.
Une fois le plugin installé, lorsque l’on se rend sur un site web dont le domaine est signé via DNSSEC et disposant d’un enregistrement TLSA ,deux petites icônes vertes apparaîtront à droite de la barre d’adresse :
Contactez-nous pour vous former sur l’enregistrement TLSA du protocole DNS !
- Pour voir notre offre de formation DNS, suivez ce lien.
- Pour voir notre offre de formation en sécurité web, suivez ce lien.
- Pour plus d’informations sur les enregistrements TLSA, vous pouvez consulter l’excellent blog de Stéphane Bortzmeyer.
Nicolas Martinez
Très intéressante, je vais m’y pencher !
Vous avez du coup surement une visibilité sur la compatibilité avec les navigateurs?
(je chercherai plus tard de mon coté 😉 )
Sylvain Firmery
Pour l’instant aucun navigateur ne le supporte nativement.
Des plugins existent pour Google Chrome et Firefox.