← RFC Reference

RFC 8689 : Option SMTP Require TLS

Piste normalisée Sécurité des transports Published March 2026
ELI5: Le chiffrement e-mail normal, c'est comme demander à un coursier « s'il te plaît, utilise le camion blindé s'il est disponible ». Si le camion blindé est occupé, le coursier hausse les épaules et utilise une camionnette ordinaire. REQUIRETLS est un timbre sur l'enveloppe qui dit « camion blindé ou ne le livre pas du tout ». Le message préférerait rebondir plutôt que de voyager non chiffré.

Pourquoi cela existe

Le chiffrement du courrier électronique serveur à serveur (via STARTTLS) est opportuniste par défaut. Si le serveur destinataire ne supporte pas TLS, ou si un intermédiaire supprime la capacité STARTTLS, la plupart des serveurs d'envoi basculeront vers une livraison en texte clair. Le message est livré, mais sans chiffrement.

Les technologies comme MTA-STS et DANE abordent cela au niveau du domaine — elles permettent à un domaine destinataire de déclarer « tout courrier vers nous doit utiliser TLS ». Mais ce sont des politiques côté destinataire. L'expéditeur n'avait aucun moyen de dire « ce message spécifique nécessite TLS à chaque saut ».

RFC 8689 comble cette lacune avec deux mécanismes complémentaires :

Comment cela fonctionne

L'extension SMTP REQUIRETLS

L'expéditeur annonce son intention lors de la transaction SMTP en ajoutant REQUIRETLS comme paramètre de la commande MAIL FROM :

# Le serveur annonce le support REQUIRETLS dans EHLO S: 220 mx.example.com ESMTP C: EHLO sender.example.org S: 250-mx.example.com S: 250-STARTTLS S: 250-REQUIRETLS S: 250 OK # Passer à TLS en premier C: STARTTLS S: 220 Go ahead # ... Handshake TLS avec vérification de certificat ... C: EHLO sender.example.org S: 250-mx.example.com S: 250-REQUIRETLS S: 250 OK # Soumettre avec le drapeau REQUIRETLS C: MAIL FROM:<alice@example.org> REQUIRETLS S: 250 OK C: RCPT TO:<bob@example.com> S: 250 OK

Ce qui se passe à chaque saut

Quand un serveur relais traite un message avec le drapeau REQUIRETLS, il doit appliquer ces règles avant de relayer :

  1. TLS est obligatoire. La connexion au prochain saut doit utiliser TLS. Si le serveur suivant ne supporte pas STARTTLS, le message ne doit pas être livré — il revient.
  2. La vérification du certificat est requise. Le certificat TLS du prochain saut doit être valide et correspondre au nom d'hôte du serveur (via DANE/TLSA ou Web PKI). Les certificats auto-signés ou mal appairés causent un retour.
  3. Le drapeau REQUIRETLS se propage. Le relais doit passer le paramètre REQUIRETLS au prochain saut s'il supporte aussi l'extension. Si le prochain saut ne supporte pas REQUIRETLS, le relais peut quand même livrer s'il peut vérifier TLS via DANE ou MTA-STS.

L'en-tête TLS-Required

Pour les expéditeurs qui soumettent via un MSA et ne contrôlent pas directement les paramètres SMTP, l'en-tête TLS-Required fournit le même signal :

TLS-Required: No ; Attendre — « Non » signifie « ne pas exiger TLS » ? ; C'est exact. L'en-tête a deux valeurs : ; TLS-Required: No → explicitement refuser REQUIRETLS ; (utiliser TLS opportuniste normal) ; L'absence de l'en-tête signifie un comportement normal. ; Le drapeau d'enveloppe REQUIRETLS est le signal positif.

L'en-tête TLS-Required: No est spécifiquement conçu comme un mécanisme de refus. Il indique au MTA d'envoi : « même si REQUIRETLS s'appliquerait normalement à ce message (par exemple, à cause d'une politique à l'échelle du domaine), ne l'appliquez pas à ce message particulier ». C'est utile pour des messages comme les réinitialisations de mot de passe ou les notifications où la livraison est plus importante que le chiffrement garanti.

Comportement des retours

Quand REQUIRETLS empêche la livraison, le serveur d'envoi génère un rapport de non-livraison (retour). Le retour lui-même doit aussi être envoyé sur TLS — REQUIRETLS s'applique aussi aux messages DSN (Delivery Status Notification). Si le retour ne peut pas être livré de manière sécurisée, il est silencieusement supprimé plutôt que d'être envoyé en texte clair (pour éviter de fuir des informations sur le message original).

# Le prochain saut ne supporte pas TLS — REQUIRETLS empêche la livraison C: EHLO relay.example.org S: 250-mx.recipient.com S: 250 OK # Pas de STARTTLS annoncé — impossible de livrer avec REQUIRETLS # Le relais génère un retour vers alice@example.org : # 550 5.7.30 REQUIRETLS support required but not available

Détails techniques clés

Relation avec MTA-STS et DANE

Mécanisme Qui définit la politique Étendue Méthode de vérification
MTA-STS Domaine destinataire Tout courrier vers le domaine Web PKI (récupération HTTPS)
DANE Domaine destinataire Tout courrier vers le domaine DNSSEC + enregistrements TLSA
REQUIRETLS Serveur d'envoi/utilisateur Par message DANE ou MTA-STS à chaque saut

REQUIRETLS est complémentaire, pas concurrent. MTA-STS et DANE protègent le courrier entrant du domaine destinataire. REQUIRETLS protège un message sortant spécifique. Un message avec REQUIRETLS est validé en utilisant DANE ou MTA-STS à chaque saut — si ni l'un ni l'autre n'est disponible pour un saut, la livraison échoue.

Exigences de version TLS

REQUIRETLS nécessite TLS 1.2 ou ultérieur. Les connexions utilisant TLS 1.0 ou 1.1 ne satisfont pas l'exigence, conformément à RFC 8996 qui déprécie les anciennes versions de TLS.

Codes d'état améliorés

Code Signification
5.7.30 Support REQUIRETLS requis mais non disponible au prochain saut
5.7.31 REQUIRETLS ne peut pas être honoré (par exemple, certificat du prochain saut invalide)

Erreurs courantes

Impact sur la livraison

Related RFCs