← RFC Reference

RFC 8314 : Le texte en clair considéré comme obsolète

Piste des normes Sécurité des transports Published March 2026
ELI5: Pendant des années, les clients de messagerie se connectaient aux serveurs sur un port en texte clair, puis demandaient d'« upgrade » vers le chiffrement (STARTTLS). C'est comme commencer un appel téléphonique en mains libres dans une pièce bondée, puis chuchoter « passons à une ligne privée ». RFC 8314 dit : commencez directement sur la ligne privée. Connectez-vous avec TLS dès le premier octet — pas d'étape d'upgrade, pas de fenêtre d'écoute clandestine.

Pourquoi cela existe

L'email a historiquement utilisé trois ports en texte clair pour la communication client-serveur :

Port Protocole Objectif
25 SMTP Relais serveur à serveur
143 IMAP Accès à la boîte aux lettres
110 POP3 Accès à la boîte aux lettres
587 Submission Soumission de message client

Les quatre commencent comme des connexions en texte clair. STARTTLS a été ajouté pour mettre à niveau ces connexions vers TLS en milieu de flux. Mais STARTTLS présente des faiblesses systémiques :

RFC 8314 déclare ces connexions en texte clair obsolètes pour la soumission d'email et l'accès à la boîte aux lettres, et mandate le TLS implicite comme remplacement.

Comment cela fonctionne

TLS implicite vs STARTTLS

STARTTLS (l'ancienne façon) : Se connecter sur un port en texte clair, échanger des salutations en texte brut, envoyer une commande STARTTLS, négocier TLS, puis poursuivre la session chiffrée.

-- STARTTLS sur le port 587 (submission) --
220 mail.example.com ESMTP          ← salutation en texte clair
EHLO client.example.com             ← texte clair
250-mail.example.com                ← texte clair
250-STARTTLS                        ← l'attaquant peut supprimer cette ligne
250 OK
STARTTLS                            ← texte clair
220 Go ahead                        ← texte clair
-- La négociation TLS se produit ici --
EHLO client.example.com             ← maintenant chiffré
AUTH PLAIN dXNlcjpwYXNz            ← chiffré (sûr)

TLS implicite (la façon RFC 8314) : Se connecter à un port TLS dédié. La négociation TLS est la première chose qui se produit. Pas de phase en texte clair du tout.

-- TLS implicite sur le port 465 (submissions) --
-- La négociation TLS se produit immédiatement à la connexion --
220 mail.example.com ESMTP          ← chiffré dès le premier octet
EHLO client.example.com             ← chiffré
AUTH PLAIN dXNlcjpwYXNz            ← chiffré

Les nouvelles assignations de port

Service Ancien (STARTTLS) Nouveau (TLS implicite) Nom IANA
Soumission de message 587 465 submissions
IMAP 143 993 imaps
POP3 110 995 pop3s

Le port 465 a un historique compliqué. Il a d'abord été assigné pour « SMTPS » à la fin des années 1990, puis révoqué au profit de STARTTLS sur 587. RFC 8314 le réattribue comme submissions (notez le 's') pour la soumission TLS implicite. Cette fois, c'est officiel et permanent.

Et le port 25 ?

Le port 25 est pour le relais serveur à serveur, pas la soumission client. RFC 8314 ne change pas le comportement du port 25. Le SMTP serveur à serveur utilise toujours STARTTLS opportuniste, avec MTA-STS ou DANE fournissant l'application. La distinction est importante : les clients s'authentifient avec des identifiants (qui doivent être protégés), tandis que les serveurs s'authentifient via DNS, DKIM et SPF.

Détails techniques clés

Exigences de version TLS

RFC 8314 nécessite TLS 1.2 ou ultérieur. TLS 1.0 et 1.1 sont déconseillés par RFC 8996. En pratique, vous devriez exiger TLS 1.2 au minimum et préférer TLS 1.3.

Validation du certificat

Avec le TLS implicite, les clients doivent valider le certificat du serveur par rapport au nom d'hôte attendu en utilisant les règles Web PKI standard. Cela représente un changement important par rapport à l'ère STARTTLS où de nombreux clients acceptaient n'importe quel certificat. Le certificat doit :

Enregistrements SRV pour la découverte de service

RFC 8314 fonctionne aux côtés de RFC 6186 pour la configuration client automatique via les enregistrements SRV :

; Soumission TLS implicite (RFC 8314 + RFC 6186) _submissions._tcp.example.com. IN SRV 0 1 465 mail.example.com. ; IMAP TLS implicite _imaps._tcp.example.com. IN SRV 0 1 993 mail.example.com. ; POP3 TLS implicite _pop3s._tcp.example.com. IN SRV 0 1 995 mail.example.com.

Configuration client

Pour les développeurs d'applications intégrant la soumission SMTP :

# Exemple Python : TLS implicite sur le port 465
import smtplib

# Correct : SMTP_SSL se connecte avec TLS immédiatement
with smtplib.SMTP_SSL('mail.example.com', 465) as smtp:
    smtp.login('user', 'password')
    smtp.send_message(msg)

# À éviter : STARTTLS sur le port 587 (héritage)
# with smtplib.SMTP('mail.example.com', 587) as smtp:
#     smtp.starttls()
#     smtp.login('user', 'password')

Erreurs courantes

Impact sur la livraison

Related RFCs