← RFC Reference

Sécurité TLS et Email

Encyclopédie des concepts d'email Published March 2026
ELI5: Imaginez envoyer une carte postale par rapport à une enveloppe scellée. Sans TLS, l'email est une carte postale — quiconque le manipule en chemin peut la lire. TLS est l'enveloppe. STARTTLS, c'est demander au bureau de poste « pouvez-vous mettre cela dans une enveloppe ? » — ils pourraient dire oui, mais un acteur malveillant pourrait intercepter la question et dire « non, nous ne faisons pas ça ici ». MTA-STS et DANE sont des moyens de publier une règle qui dit « ce bureau de poste UTILISE TOUJOURS des enveloppes, ne faites jamais confiance à quiconque dit le contraire ».

Comment TLS protège le courrier électronique en transit — STARTTLS, TLS implicite, MTA-STS, DANE, TLSRPT — et pourquoi le chiffrement opportuniste n'est pas suffisant.

Le problème : SMTP est né non chiffré

SMTP a été conçu en 1982 (RFC 821) comme un protocole en texte brut. Chaque commande, chaque réponse, chaque en-tête, chaque octet du contenu du message a traversé le réseau sans chiffrement. Les mots de passe envoyés via AUTH étaient effectivement criés à travers la pièce.

TLS (Transport Layer Security) a été ajouté à SMTP pour corriger cela. Mais contrairement à HTTPS — où TLS est obligatoire et universel — TLS pour le courrier électronique a évolué à travers une série de compromis imparfaits qui se résolvent encore aujourd'hui.

STARTTLS : chiffrement opportuniste

STARTTLS (RFC 3207) améliore une connexion SMTP existante en texte brut en TLS. Le processus :

# La connexion commence en texte brut sur le port 25
220 mx.example.com ESMTP
EHLO sender.example.net
250-mx.example.com
250-STARTTLS
250 SIZE 26214400
STARTTLS
220 Ready to start TLS
# La négociation TLS commence
# Le client et le serveur négocient la version TLS, la suite de chiffrement, échangent des certificats
# La connexion est maintenant chiffrée
EHLO sender.example.net
250-mx.example.com
250 SIZE 26214400

Points clés à propos de STARTTLS :

L'attaque par suppression STARTTLS

Parce que STARTTLS commence en texte brut, un attaquant intermédiaire peut modifier la réponse EHLO du serveur pour supprimer l'annonce STARTTLS. L'MTA d'envoi pense que le serveur ne supporte pas TLS et procède en texte brut. L'attaquant peut alors lire et modifier le message.

# Ce que le serveur envoie réellement :
250-mx.example.com
250-STARTTLS
250 SIZE 26214400

# Ce que l'attaquant le modifie à :
250-mx.example.com
250 SIZE 26214400
# Ligne STARTTLS supprimée — l'envoyeur revient au texte brut

Ce n'est pas une attaque théorique. Elle a été observée en pratique, notamment dans les pays qui mènent une surveillance de masse. STARTTLS opportuniste ne protège pas contre les attaquants actifs — elle protège uniquement contre l'écoute passive.

TLS implicite : chiffrement dès le premier octet

RFC 8314 recommande TLS implicite pour la soumission de courrier (client vers serveur). Au lieu de commencer en texte brut et de s'améliorer, la connexion est TLS dès le premier octet.

RFC 8314 déclare explicitement que la soumission SMTP en texte brut sur le port 587 sans TLS est obsolète, et que TLS implicite sur le port 465 est le chemin de soumission préféré. En pratique, le port 587 avec STARTTLS reste largement déployé, mais la direction est claire : TLS implicite est l'avenir.

Cependant, TLS implicite s'applique uniquement au chemin de soumission (votre client vers votre serveur). La livraison serveur à serveur sur le port 25 utilise toujours STARTTLS car il n'y a pas de mécanisme universellement déployé pour que les serveurs sachent à l'avance que le MX du destinataire supporte TLS implicite. C'est là que MTA-STS et DANE interviennent.

MTA-STS : application des politiques TLS

MTA-STS (RFC 8461) résout le problème de suppression STARTTLS en permettant à un domaine de publier une politique qui dit « toujours exiger TLS lors de la livraison de courrier à mes serveurs MX ». La politique est publiée via HTTPS (pas DNS), ce qui fournit sa propre authentification via la PKI Web.

Comment fonctionne MTA-STS

  1. Le domaine publie un enregistrement DNS TXT signalant qu'une politique MTA-STS existe :
_mta-sts.example.com. IN TXT "v=STSv1; id=20260311"
  1. L'MTA d'envoi récupère la politique via HTTPS à partir d'une URL bien connue :
https://mta-sts.example.com/.well-known/mta-sts.txt
  1. Le fichier de politique spécifie le mode et les noms d'hôte MX valides :
version: STSv1 mode: enforce mx: mx1.example.com mx: mx2.example.com max_age: 604800
  1. L'MTA d'envoi met en cache la politique (pendant max_age secondes) et l'applique à toutes les connexions futures. Il va :
    • Exiger STARTTLS sur le port 25 (ne jamais revenir au texte brut)
    • Valider le certificat TLS du serveur par rapport au nom d'hôte MX
    • Ne livrer que aux noms d'hôte MX énumérés dans la politique

Modes MTA-STS :

MTA-STS a le même modèle de confiance que le Web : il repose sur les autorités de certification. Si une CA est compromise, un attaquant pourrait forger un certificat pour votre MX. DANE fournit un modèle de confiance alternatif basé sur DNSSEC.

DANE : vérification de certificat basée sur DNS

DANE (RFC 7672) utilise des enregistrements TLSA signés par DNSSEC pour associer un certificat TLS (ou sa clé publique) directement à un nom d'hôte MX. Ceci supprime la dépendance aux autorités de certification.

; Enregistrement TLSA pour mx1.example.com sur le port 25 _25._tcp.mx1.example.com. IN TLSA 3 1 1 a]b2c3d4e5f6...

Les champs de l'enregistrement TLSA :

Comment fonctionne DANE pour le courrier électronique

  1. L'MTA d'envoi résout l'enregistrement MX et obtient mx1.example.com.
  2. Il requête un enregistrement TLSA à _25._tcp.mx1.example.com.
  3. Si un enregistrement TLSA validé par DNSSEC existe, l'MTA sait :
    • TLS est obligatoire (pas de retour au texte brut).
    • Le certificat du serveur doit correspondre à l'enregistrement TLSA.
  4. L'MTA se connecte, effectue STARTTLS et valide le certificat du serveur par rapport à l'enregistrement TLSA plutôt que (ou en plus de) le système d'autorité de certification.

La force de DANE : elle ne dépend pas des autorités de certification. Sa faiblesse : elle requiert DNSSEC, que de nombreux domaines n'ont pas déployé. Sans DNSSEC, les enregistrements DANE ne peuvent pas être fiables (un attaquant qui peut manipuler DNS peut manipuler les enregistrements TLSA aussi).

DANE vs. MTA-STS

MTA-STS DANE
Modèle de confiance PKI Web (autorités de certification) DNSSEC
Requiert Hébergement HTTPS + enregistrement DNS TXT DNSSEC sur votre domaine
Adoption Plus facile à déployer ; DNSSEC non requis Requiert DNSSEC ; plus difficile à déployer
Vulnérabilité Une CA compromise peut forger des certificats Une DNSSEC compromise peut forger les enregistrements TLSA
Premier contact Vulnérable au premier extraction de politique (TOFU) Sécurisé dès la première connexion (si DNSSEC valide)
Support de l'expéditeur Gmail, Outlook, Yahoo, la plupart des principaux fournisseurs Postfix, Exim ; support limité chez les grands fournisseurs

Les deux mécanismes peuvent coexister. Un domaine peut publier des politiques MTA-STS et DANE. Les expéditeurs qui supportent DANE l'utilisent ; ceux qui ne le font pas peuvent revenir à MTA-STS.

TLSRPT : rapports TLS

SMTP TLS Reporting (RFC 8460) permet à un domaine de recevoir des rapports sur les échecs de connexion TLS des serveurs d'envoi. C'est l'équivalent TLS des rapports globaux DMARC.

_smtp._tls.example.com. IN TXT "v=TLSRPTv1; rua=mailto:tls-reports@example.com"

Les MTA d'envoi qui supportent TLSRPT enverront des rapports JSON quotidiens détaillant :

TLSRPT est essentiel lors du déploiement de MTA-STS. Commencez avec mode: testing dans votre politique MTA-STS et surveillez les rapports TLSRPT. Quand vous voyez zéro (ou des échecs acceptables), passez à mode: enforce.

Gestion des certificats

TLS requiert des certificats, et la gestion des certificats est l'un des points de défaillance opérationnelle les plus courants dans la sécurité du courrier électronique.

Certificats pour les serveurs de courrier

Erreurs de certificat et leur impact

Erreur Sans MTA-STS/DANE Avec MTA-STS/DANE
Certificat expiré La plupart des expéditeurs l'ignorent et livrent quand même La livraison échoue ; le message est différé
Mauvais nom d'hôte La plupart des expéditeurs l'ignorent La livraison échoue
Certificat auto-signé La plupart des expéditeurs l'acceptent La livraison échoue (MTA-STS) ; peut passer (DANE, si TLSA correspond)
Certificat révoqué Rarement vérifié Dépend de l'implémentation

Ce tableau révèle le problème fondamental du TLS opportuniste : sans MTA-STS ou DANE, la plupart des erreurs de certificat sont silencieusement ignorées. La connexion est chiffrée, mais non authentifiée — vous chiffrez peut-être votre message vers le serveur d'un attaquant.

L'état du chiffrement du courrier électronique

Le chiffrement du courrier électronique existe à deux niveaux, et ils sont souvent confondus :

Chiffrement du transport (TLS)

TLS chiffre la connexion entre les serveurs. Il protège contre l'écoute pendant que le message est en transit entre deux points. Une fois que le message arrive au serveur de destination, il est déchiffré et stocké en texte brut (généralement). TLS protège le transport, pas le message.

Le chiffrement du transport est saut par saut : le message est chiffré entre votre serveur et le serveur suivant, puis déchiffré, puis chiffré à nouveau pour le prochain saut. Chaque serveur intermédiaire a accès au message en texte brut.

Chiffrement de bout en bout (S/MIME, PGP)

Le chiffrement de bout en bout (S/MIME par RFC 8551, ou PGP/OpenPGP) chiffre le contenu du message lui-même, de sorte que seul le destinataire prévu avec la clé privée correcte peut le déchiffrer. Le message reste chiffré au repos sur le serveur et lors de chaque saut en transit.

L'adoption du chiffrement de bout en bout dans le courrier électronique reste extrêmement faible. Les raisons sont pratiques :

Pour la plupart des courriels, TLS au niveau du transport est la couche de chiffrement pratique. Le chiffrement de bout en bout reste de niche, utilisé dans les environnements hautement sécurisés où la charge opérationnelle est justifiée.

Exiger TLS (RFC 8689)

RFC 8689 définit un mécanisme par message pour exiger TLS. L'expéditeur ajoute une extension SMTP REQUIRETLS à des messages individuels :

MAIL FROM:<alice@example.com> REQUIRETLS
250 OK

Quand REQUIRETLS est défini :

REQUIRETLS est au niveau du message — vous pouvez l'utiliser pour les messages sensibles sans exiger TLS pour tout le courrier. Cependant, l'adoption est toujours limitée. La plupart des serveurs ne le supportent pas encore.

Guide de déploiement pratique

Voici une séquence recommandée pour déployer TLS pour le courrier électronique de votre domaine :

Étape 1 : assurer TLS sur vos serveurs MX

Obtenez des certificats valides d'une CA publique pour chaque nom d'hôte MX. Automatisez le renouvellement. Testez que STARTTLS fonctionne correctement à partir d'expéditeurs externes.

Étape 2 : déployer TLSRPT

Publiez un enregistrement TXT _smtp._tls pour recevoir les rapports d'échec TLS. Commencez à surveiller avant d'appliquer quoi que ce soit.

Étape 3 : déployer MTA-STS en mode test

Publiez l'enregistrement DNS TXT et le fichier de politique HTTPS avec mode: testing. Surveillez les rapports TLSRPT pour les échecs. Enquêtez et corrigez les problèmes.

Étape 4 : passer MTA-STS au mode enforce

Une fois que les rapports TLSRPT montrent des résultats clairs, changez le mode à enforce. Incrémentez l'id dans l'enregistrement DNS TXT pour signaler le changement de politique.

Étape 5 : envisager DANE (si vous utilisez DNSSEC)

Si votre domaine est signé DNSSEC, publiez des enregistrements TLSA pour vos serveurs MX. Cela fournit une couche supplémentaire d'épinglage de certificat indépendante du système d'autorité de certification.

Ce qui peut mal tourner

L'expiration du certificat provoque des échecs de livraison

Le certificat de votre serveur MX expire. Sans MTA-STS, la plupart des expéditeurs ignorent l'erreur et livrent quand même (non sécurisé mais fonctionnel). Avec MTA-STS en mode enforce, les expéditeurs qui valident les certificats vont différer la livraison. Les messages s'accumulent du côté de l'expéditeur. Si vous ne le corrigez pas dans la fenêtre de nouvelle tentative de l'expéditeur (généralement 4–5 jours), les messages rebondissent. La solution : automatisez le renouvellement des certificats avec Let's Encrypt / ACME.

Inadéquation de la politique MTA-STS après le changement MX

Vous ajoutez un nouveau serveur MX (mx3.example.com) mais oubliez de l'ajouter à votre fichier de politique MTA-STS. Les expéditeurs qui ont mis en cache l'ancienne politique rejettent les connexions au nouveau MX car il n'est pas dans la liste autorisée de la politique. La solution : mettez toujours à jour le fichier de politique MTA-STS avant d'ajouter de nouveaux enregistrements MX, et incrémentez l'id de la politique dans DNS.

Suppression STARTTLS non détectée

Sans MTA-STS ou DANE, un attaquant supprime STARTTLS de la réponse EHLO du serveur. Les messages sont livrés en texte brut. Ni l'expéditeur ni le destinataire n'en sont conscients. La solution : déployez MTA-STS pour rendre la suppression TLS détectable et évitable.

L'enregistrement TLSA DANE devient obsolète

Vous faites tourner votre certificat TLS mais oubliez de mettre à jour l'enregistrement TLSA dans DNS. Les expéditeurs qui valident DANE voient une inadéquation et refusent de livrer. La solution : mettez toujours à jour les enregistrements TLSA avant de déployer un nouveau certificat. Utilisez l'automatisation qui coordonne le déploiement des certificats avec les mises à jour DNS.

Points clés à retenir

Lectures complémentaires

Related RFCs