Aller au contenu principal

Validateur de syntaxe DANE TLSA

Vérifiez usage, sélecteur, type de correspondance et hash hors ligne, avant publication DNS

Un enregistrement TLSA mal formé est silencieusement ignoré par les MTA conformes : votre déploiement DANE ne protège personne, et vous ne le saurez qu'au prochain incident. Ce validateur TLSA analyse votre brouillon hors ligne : il vérifie les quatre champs (usage, sélecteur, type de correspondance, hash), la longueur de la donnée binaire par rapport à l'algorithme, et signale chaque écart aux RFC 6698 et 7671 avant la moindre publication DNS.

Validation hors ligne intégrale

Aucune requête DNS, aucune connexion externe. Votre brouillon d'enregistrement reste dans votre navigateur. Idéal pour valider un modèle, une sortie de générateur, ou un enregistrement extrait d'un wiki interne avant exposition publique.

Anatomie d'un TLSA : 4 champs vérifiés

Le validateur décompose chaque champ : usage (0 à 3), sélecteur (0 ou 1), type de correspondance (0, 1, 2), et donnée hexadécimale. Pour chaque valeur, l'outil affiche son sens et la longueur de hash attendue (32 octets pour SHA-256, 64 pour SHA-512).

Détection des combinaisons non recommandées

Les combinaisons déconseillées en SMTP (usage 0 ou 1 sans CA contrôlée, type de correspondance 0 qui publie le certificat brut) sont signalées. L'outil suggère la combinaison standard 3 1 1 pour SMTP DANE.

Compatibilité avec l'écosystème SMTP DANE

Le validateur applique les contraintes pratiques de Postfix, Exim et Microsoft 365 : nom du propriétaire _25._tcp.<hôte>, longueurs de hash strictes, encodage hexadécimal en majuscules ou minuscules. Aucune surprise lors de la publication DNS.

Préparation à la rotation de clé

Validez plusieurs enregistrements TLSA simultanément (clé actuelle et clé suivante). Le validateur confirme que chaque enregistrement est syntaxiquement correct et peut coexister dans la zone pendant une rotation de clé sans rupture.

Pourquoi utiliser un validateur hors ligne

Un enregistrement TLSA mal formé est ignoré sans avertissement par les MTA conformes. Vous croyez que votre déploiement DANE protège votre flux SMTP entrant ; en pratique, aucun serveur émetteur ne vérifie quoi que ce soit. La panne est silencieuse jusqu'au prochain audit, ou jusqu'à un incident de livraison qui révèle la faille.

Le validateur de syntaxe DANE TLSA analyse votre enregistrement sans publier ni interroger le DNS. Aucune donnée ne quitte votre navigateur, aucun signal ne fuite vers un résolveur externe. Cette approche hors ligne couvre quatre cas d'usage que l'audit en direct ne peut pas traiter.

Cas d'usage typiques :

  • Avant déploiement : validez un brouillon avant publication DNS, pour éviter un enregistrement silencieusement ignoré.
  • Sortie de générateur : vérifiez la syntaxe d'un enregistrement produit par un outil tiers, un wiki interne ou un modèle partagé.
  • Débogage hors ligne : reproduisez et corrigez une erreur sans toucher au DNS public, par exemple en pré-production.
  • Revue de configuration : examinez un enregistrement reçu d'un partenaire ou exporté d'une infrastructure cliente avant de l'appliquer.

Le validateur applique la spécification RFC 6698 sur la structure, et la RFC 7671 sur les contraintes opérationnelles. Aucune requête DNS, aucune connexion externe.


Comment utiliser ce validateur en 3 étapes

Étape 1 : coller l'enregistrement TLSA

Copiez la valeur de votre enregistrement dans le champ prévu :

3 1 1 2bb183af2e2b295b444c1fd4072f2b59a8c1c9abf7f3f1e9b0d4c7e8f1a2b3c4

Vous pouvez aussi coller la ligne complète avec le nom du propriétaire :

_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 2bb183af...

Le validateur extrait les quatre champs et analyse chacun indépendamment. Aucune connexion réseau n'est effectuée à cette étape.

Étape 2 : lire le verdict

Les résultats sont classés par gravité :

  • Erreur : problème bloquant, l'enregistrement sera ignoré ou rejeté par les MTA conformes
  • Avertissement : combinaison non recommandée, fonctionnelle mais qui expose à des risques opérationnels
  • Valide : syntaxe conforme aux RFC 6698 et 7671

Chaque message inclut le champ concerné, la valeur invalide, et la correction attendue.

Étape 3 : corriger avant publication

Ajustez votre enregistrement selon les recommandations. Une fois la syntaxe propre, publiez le TXT à _25._tcp.<hôte-mx> dans la zone signée DNSSEC de l'hôte MX, attendez la propagation, puis confirmez en direct avec le DANE TLSA Checker.


Validateur ou vérificateur : quand utiliser chaque outil

Les deux outils sont complémentaires. Ils interviennent à des moments différents du cycle de vie d'un enregistrement TLSA.

DimensionValidateur (cet outil)Vérificateur
Moment d'utilisationAvant publication DNSAprès publication
Résolution DNSAucuneRésolution _25._tcp.<mx> en direct
Vérification DNSSECNonOui, chaîne complète
Comparaison du certificat en directNonOui, via STARTTLS sur port 25
Source de l'enregistrementManuelle (collée)DNS public
Données envoyées au serveurAucuneDomaine analysé

Flux de travail recommandé :

  1. Concevez ou générez l'enregistrement, puis utilisez le validateur pour vérifier la syntaxe
  2. Publiez le TXT dans la zone DNSSEC de l'hôte MX, puis attendez la propagation
  3. Lancez le vérificateur pour confirmer DNSSEC et la correspondance du certificat en direct

Le validateur détecte les erreurs de saisie avant publication. Le vérificateur détecte les dérives et confirme que le DNS public servi correspond au certificat actuellement présenté en STARTTLS.


Anatomie d'un enregistrement TLSA

L'enregistrement TLSA contient quatre champs strictement spécifiés.

Structure générale

_25._tcp.mail.captaindns.com. IN TLSA <usage> <sélecteur> <correspondance> <donnée>
ChampValeursDescription
Usage0-3Ancrage de confiance
Sélecteur0-1Partie du certificat hachée
Type de correspondance0-2Algorithme de comparaison
DonnéehexHash ou bloc binaire

Usage (champ 1)

ValeurNomDescription
0PKIX-TAContrainte CA : le certificat doit être signé par cette CA ET passer la validation PKIX
1PKIX-EEContrainte certificat : correspondance exacte + validation PKIX
2DANE-TAAncrage de confiance : tout certificat signé par cette CA est accepté
3DANE-EECertificat domaine : correspondance exacte, sans validation PKIX

Recommandation pour SMTP : DANE-EE (3). L'ancrage est dans votre clé, indépendamment de toute autorité externe.

Sélecteur (champ 2)

ValeurNomDescription
0CertCertificat complet (DER)
1SPKISubjectPublicKeyInfo (clé publique uniquement)

Recommandation : SPKI (1). L'enregistrement reste valide tant que la clé publique est conservée, indépendamment des renouvellements de certificat.

Type de correspondance (champ 3)

ValeurNomLongueur hex attendue
0FullVariable (certificat ou clé brute)
1SHA-25664 caractères (32 octets)
2SHA-512128 caractères (64 octets)

Recommandation : SHA-256 (1). Universellement supporté, suffisamment robuste, compact.


La combinaison recommandée pour SMTP

3 1 1 est le standard de fait pour SMTP DANE.

3 1 1 <sha256-de-la-spki>
  • Usage 3 (DANE-EE) : pas de dépendance à une CA, ancrage direct dans votre clé
  • Sélecteur 1 (SPKI) : invariant face au renouvellement de certificat tant que la clé est conservée
  • Type de correspondance 1 (SHA-256) : 32 octets, parfaitement adapté

Les autres combinaisons sont possibles mais déconseillées :

CombinaisonStatutPourquoi
3 1 1RecommandéeStandard SMTP, robuste, invariant aux renouvellements
3 0 1ToléréeHash sur le certificat complet, change à chaque renouvellement
2 0 1AcceptableDANE-TA sur CA, pas de mise à jour DNS au renouvellement
2 1 1AcceptableDANE-TA sur SPKI de la CA
3 1 0RefuséeType de correspondance 0 expose le certificat brut, taille DNS énorme
1 x xRefusée en SMTPPKIX-EE rarement déployable côté MTA
0 x xRefusée en SMTPPKIX-TA inadapté à SMTP

Le validateur signale explicitement les combinaisons hors recommandation et propose la combinaison standard.


Erreurs de syntaxe courantes et corrections

Usage hors plage

Cause : valeur usage supérieure à 3.

Correction :

- 4 1 1 2bb183af...
+ 3 1 1 2bb183af...

Sélecteur invalide

Cause : sélecteur différent de 0 ou 1.

Correction :

- 3 2 1 2bb183af...
+ 3 1 1 2bb183af...

Type de correspondance hors plage

Cause : type de correspondance supérieur à 2.

Correction :

- 3 1 3 2bb183af...
+ 3 1 1 2bb183af...

Donnée hexadécimale invalide

Cause : caractères hors plage hexadécimale (0-9, a-f, A-F).

Correction :

- 3 1 1 2bg183zf...
+ 3 1 1 2bb183af...

Longueur de hash incorrecte

Cause : la longueur de la donnée ne correspond pas au type de correspondance.

Correction SHA-256 :

- 3 1 1 2bb183
+ 3 1 1 2bb183af2e2b295b444c1fd4072f2b59a8c1c9abf7f3f1e9b0d4c7e8f1a2b3c4

SHA-256 (type de correspondance 1) exige exactement 64 caractères hexadécimaux. SHA-512 (type de correspondance 2) exige exactement 128 caractères.

Combinaison usage/sélecteur fragile

Cause : DANE-EE (3) + Cert complet (0) entraîne un hash qui change à chaque renouvellement de certificat.

Correction recommandée : passer en SPKI (1) pour rendre l'enregistrement invariant aux renouvellements (avec l'option --reuse-key côté ACME).

- 3 0 1 <hash-du-certificat-complet>
+ 3 1 1 <hash-de-la-cle-publique>

Nom du propriétaire incorrect

Cause : enregistrement publié sur l'apex du domaine au lieu de l'hôte MX, ou sur le mauvais port.

Correction : _25._tcp.<hôte-mx> exactement. Pour un MX mail.captaindns.com, c'est _25._tcp.mail.captaindns.com.


Préparer une rotation de clé

Plusieurs enregistrements TLSA dans la même zone ne sont pas une erreur : c'est même le schéma recommandé pour une rotation de clé sans interruption.

Procédure de rotation propre

  1. J-7 : générez la prochaine clé, calculez son hash SPKI, publiez-le en double :
_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 <hash-cle-actuelle>
_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 <hash-cle-suivante>
  1. J-0 : effectuez la rotation de certificat avec la nouvelle clé. Les MTA conformes acceptent la connexion si au moins un des deux enregistrements correspond au certificat présenté.

  2. J+7 (ou 2 fois le TTL) : supprimez l'ancien enregistrement. La rotation est terminée.

Ce que vérifie le validateur

Le validateur traite chaque enregistrement indépendamment et confirme que :

  • Chaque hash respecte la longueur attendue par son type de correspondance
  • Aucun champ ne sort des plages valides
  • Les combinaisons restent dans les recommandations

Un enregistrement en double n'est jamais signalé comme une erreur quand les deux sont syntaxiquement corrects.


DANE et MTA-STS : approches complémentaires

CritèreDANEMTA-STS
MécanismeDNSSEC + enregistrement TLSAHTTPS + politique texte
DépendanceDNSSEC requisHTTPS requis
ConfianceCryptographique (DNS signé)PKI (CA HTTPS)
Support Postfix / EximExcellentBon
Support Microsoft 365 / Google WorkspacePartiel à inexistantComplet
DéploiementComplexe (DNSSEC)Plus simple

Recommandation : ne choisissez pas, déployez les deux. Validez votre enregistrement TLSA ici, puis publiez aussi une politique MTA-STS. La couverture maximale impose la combinaison.


Outils complémentaires et ressources

OutilQuand l'utiliser
DANE TLSA CheckerAudit en direct de l'enregistrement publié dans le DNS, avec validation DNSSEC et correspondance du certificat
Générateur DANE TLSACréer un enregistrement TLSA à partir d'un certificat ou d'une clé publique
Validateur syntaxe MTA-STSValider la politique MTA-STS associée hors ligne
Validateur syntaxe TLS-RPTValider l'enregistrement TLS-RPT associé hors ligne
Audit email-authenticationVue d'ensemble des outils d'authentification email

Guides associés

Spécifications