← RFC Reference

RFC 3207 – Extension SMTP STARTTLS

Norme proposée Sécurité des transports Obsoletes RFC 2487 Published March 2026
ELI5: Imaginez que vous ayez une conversation dans une salle bondée. N'importe qui peut vous écouter. STARTTLS, c'est comme dire « allons discuter dans une salle privée » au milieu de la conversation. Vous commencez la session SMTP en texte clair, puis les deux côtés s'accordent à passer à une communication chiffrée avant l'échange de contenu sensible. Après cela, personne ne peut écouter furtivement le courrier électronique transféré.

Pourquoi cette RFC existe

Lorsque le SMTP a été conçu en 1982, le chiffrement n'était pas une considération. Les messages voyageaient sur Internet en texte clair, et quiconque ayant accès au chemin réseau pouvait les lire. À mesure qu'Internet est devenu plus hostile, le chiffrement des emails en transit est devenu essentiel.

La RFC 3207 définit l'extension STARTTLS pour SMTP, permettant à une connexion SMTP en texte clair d'être mise à niveau vers une connexion TLS chiffrée. Publiée en 2002, elle a remplacé la RFC 2487 avec des clarifications sur les considérations de sécurité et le comportement du serveur.

STARTTLS est le mécanisme dominant pour chiffrer le trafic email serveur-à-serveur (MTA-à-MTA) sur le port 25. Pour la soumission client-à-serveur, la RFC 8314 recommande désormais le TLS implicite sur le port 465, mais STARTTLS sur le port 587 reste largement utilisé.

Comment cela fonctionne

STARTTLS fonctionne comme une extension SMTP, négociée lors de l'échange EHLO :

  1. Le client se connecte au serveur sur le port 25 (ou 587) en texte clair.
  2. Le client envoie EHLO. Le serveur répond avec ses capacités, incluant 250-STARTTLS s'il prend en charge le chiffrement.
  3. Le client envoie STARTTLS.
  4. Le serveur répond avec 220 Ready to start TLS.
  5. Les deux parties effectuent une poignée de main TLS, établissant un canal chiffré.
  6. Le client envoie un nouveau EHLO sur la connexion chiffrée. La liste des capacités du serveur peut changer (par exemple, AUTH est maintenant annoncée).
  7. La session SMTP se poursuit normalement, mais tout le trafic est désormais chiffré.

Exemple SMTP

Négociation STARTTLS lors d'un transfert serveur-à-serveur :

# Connexion en texte clair établie sur le port 25 S: 220 mx.example.com ESMTP C: EHLO sender.example.net S: 250-mx.example.com S: 250-SIZE 52428800 S: 250-STARTTLS S: 250 ENHANCEDSTATUSCODES # Le client voit que STARTTLS est disponible, demande une mise à niveau C: STARTTLS S: 220 2.0.0 Ready to start TLS # --- La poignée de main TLS se produit ici --- # Tout le trafic ultérieur est chiffré # Le client DOIT ré-émettre EHLO après TLS C: EHLO sender.example.net S: 250-mx.example.com S: 250-SIZE 52428800 S: 250-AUTH PLAIN LOGIN S: 250 ENHANCEDSTATUSCODES # Note : STARTTLS n'est plus annoncée (déjà active) # Note : AUTH est maintenant annoncée (disponible uniquement après TLS) C: MAIL FROM:<alice@sender.example.net> S: 250 2.1.0 OK C: RCPT TO:<bob@example.com> S: 250 2.1.5 OK C: DATA S: 354 Start mail input C: [contenu du message...] C: . S: 250 2.0.0 OK

Détails techniques clés

TLS opportuniste vs obligatoire

La limitation critique de STARTTLS tel que défini dans la RFC 3207 est qu'il est opportuniste par défaut :

Le TLS opportuniste est vulnérable aux attaques par rétrogradation : un attaquant réseau peut supprimer la capacité STARTTLS de la réponse EHLO, forçant la connexion à rester en texte clair. Le client n'a aucun moyen de savoir que le serveur prend en charge TLS car la négociation initiale se produit en texte clair.

Vérification du certificat

La RFC 3207 ne nécessite pas une vérification stricte du certificat pour les connexions MTA-à-MTA. En pratique, de nombreux serveurs utilisent des certificats auto-signés ou des certificats qui ne correspondent pas au nom d'hôte MX. La justification : le chiffrement opportuniste sans vérification est toujours mieux que aucun chiffrement. Il protège contre la surveillance passive même s'il n'empêche pas les attaques actives de l'homme du milieu.

Pour des garanties plus fortes, utilisez :

Re-EHLO après STARTTLS

Après la fin de la poignée de main TLS, le client DOIT émettre une nouvelle commande EHLO. La liste des capacités du serveur d'avant TLS doit être abandonnée. C'est important car :

STARTTLS sur différents ports

Port Protocole Comportement TLS
25 Relais SMTP STARTTLS (opportuniste pour MTA-à-MTA)
587 Soumission STARTTLS (effectivement obligatoire — AUTH le nécessite)
465 Soumission TLS implicite (poignée de main TLS avant toute commande SMTP)

Rapport TLS

La RFC 8460 définit le rapport SMTP TLS (TLSRPT), qui permet aux propriétaires de domaine de recevoir des rapports sur les échecs de connexion TLS. C'est l'équivalent STARTTLS des rapports agrégés DMARC — cela vous indique quand les connexions à vos serveurs échouent la négociation TLS.

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

Erreurs courantes

Impact sur la délivrabilité

Related RFCs