← RFC Reference

DANE — Authentification basée sur DNS pour SMTP TLS

Voie Normalisée Sécurité des transports Published March 2026
ELI5: Lorsque vous visitez un site web, votre navigateur fait confiance à des centaines d'autorités de certification pour garantir l'identité du site. DANE permet au propriétaire d'un domaine d'éliminer les intermédiaires : « Voici le certificat exact (ou l'AC) que mon serveur de messagerie utilise — je l'ai publié dans mon DNS, signé avec DNSSEC, afin que vous puissiez le vérifier vous-même. » Aucune confiance en l'AC requise.

Pourquoi cela existe

SMTP avec STARTTLS a deux problèmes fondamentaux :

  1. Pas d'authentification. Un serveur d'envoi n'a aucun moyen fiable de vérifier que le certificat TLS du serveur récepteur est légitime. SMTP n'utilise pas le modèle de confiance des autorités de certification du web — historiquement, la plupart des serveurs de messagerie utilisaient des certificats autosignés, donc les expéditeurs ont appris à accepter n'importe quoi.
  2. Attaques de rétrogradation. Un attaquant réseau actif peut supprimer la publicité STARTTLS de la réponse EHLO, forçant la livraison en texte brut.

MTA-STS (RFC 8461) résout ces problèmes en utilisant HTTPS et l'infrastructure de clés publiques du web. DANE les résout en utilisant DNSSEC et les enregistrements TLSA. Les deux approches se complètent : DANE est cryptographiquement plus robuste (pas de confiance en une CA requise), tandis que MTA-STS est plus facile à déployer (DNSSEC non requis).

Comment cela fonctionne

DANE pour SMTP (défini dans RFC 7672, construisant sur la spécification DANE de base dans RFC 6698) fonctionne en trois étapes :

Étape 1 : Zone signée DNSSEC

La zone DNS du domaine récepteur — et la zone de la cible MX — doivent être signées avec DNSSEC. C'est non négociable. Sans DNSSEC, un attaquant pourrait forger des enregistrements TLSA, rendant DANE pire qu'inutile.

Étape 2 : Publier les enregistrements TLSA

Le domaine publie les enregistrements TLSA pour chaque port SMTP de l'hôte MX. Un enregistrement TLSA lie un certificat TLS (ou sa clé publique, ou son autorité de certification) à un service spécifique.

; Format d'enregistrement TLSA : _port._protocol.hostname TLSA usage selector matching-type data _25._tcp.mail.example.com. IN TLSA 3 1 1 a]b2c3d4e5f6...sha256hash...

Champs de l'enregistrement TLSA

Champ Valeurs Description
Utilisation 0 — Contrainte CA (PKIX-TA)
1 — Contrainte de certificat (PKIX-EE)
2 — Assertion d'ancre de confiance (DANE-TA)
3 — Certificat délivré par le domaine (DANE-EE)
Comment les données du certificat sont utilisées pour la validation.
Sélecteur 0 — Certificat complet
1 — SubjectPublicKeyInfo
Quelle partie du certificat doit correspondre.
Type de correspondance 0 — Correspondance exacte
1 — SHA-256
2 — SHA-512
Comment les données sont représentées.

Étape 3 : Validation par l'expéditeur

Quand un serveur d'envoi prenant en charge DANE livre du courrier à example.com :

  1. Résout les enregistrements MX pour example.com avec validation DNSSEC.
  2. Pour chaque hôte MX (par exemple, mail.example.com), recherche _25._tcp.mail.example.com TLSA avec validation DNSSEC.
  3. Si des enregistrements TLSA validés par DNSSEC existent : se connecte, effectue STARTTLS, et valide le certificat du serveur par rapport aux données TLSA.
  4. Si la validation échoue : ne livre pas. Le message est mis en file d'attente pour nouvelle tentative.
  5. Si aucun enregistrement TLSA n'existe (ou DNSSEC n'est pas déployé) : bascule vers TLS opportuniste comme avant.

Détails techniques clés

Configuration TLSA recommandée

Pour les serveurs SMTP, RFC 7672 recommande DANE-EE(3) SPKI(1) SHA-256(1) :

_25._tcp.mail.example.com. IN TLSA 3 1 1 <sha256-of-public-key>

C'est le choix le plus robuste car :

Génération d'un enregistrement TLSA

# Extraire le hash SHA-256 de la clé publique du serveur
openssl x509 -in server.crt -noout -pubkey | \
  openssl pkey -pubin -outform DER | \
  openssl dgst -sha256 -hex
(stdin)= 2a9f8e3b1c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f

# L'enregistrement TLSA résultant :
_25._tcp.mail.example.com. IN TLSA 3 1 1 2a9f8e3b1c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f

DANE vs. MTA-STS

DANE MTA-STS
Modèle de confiance DNSSEC (pas de CA requise) Infrastructure de clés publiques du web (certificats délivrés par CA)
Requiert DNSSEC Oui (exigence stricte) Non
Certificats autosignés Supportés (utilisation 3) Non supportés
Sécurité dès la première utilisation Sécurisée dès la première utilisation Confiance à la première utilisation (TOFU)
Barrière au déploiement DNSSEC (significatif) Hébergement HTTPS (faible)
Adoption Forte aux Pays-Bas, en Allemagne, en Tchéquie ; limitée ailleurs Largement supporté

Erreurs courantes

Impact sur la délivrabilité

Related RFCs