← RFC Reference

RFC 8314: Texto sin cifrar considerado obsoleto

Standards Track Transport Security Published March 2026
ELI5: Durante años, los clientes de correo se conectaban a servidores en un puerto de texto plano y luego pedían "actualizar" al cifrado (STARTTLS). Es como iniciar una llamada telefónica en altavoz en una sala llena de gente y luego susurrar "cambiemos a una línea privada". RFC 8314 dice: simplemente comienza en la línea privada. Conéctate con TLS desde el primer byte — sin paso de actualización, sin ventana para la interceptación.

Por qué existe esto

El correo electrónico ha utilizado históricamente tres puertos de texto sin cifrar para la comunicación cliente-servidor:

Puerto Protocolo Propósito
25 SMTP Retransmisión servidor a servidor
143 IMAP Acceso al buzón
110 POP3 Acceso al buzón
587 Envío Envío de mensajes del cliente

Los cuatro comienzan como conexiones de texto sin cifrar. STARTTLS se agregó para actualizar estas conexiones a TLS a mitad de camino. Pero STARTTLS tiene debilidades sistémicas:

RFC 8314 declara estas conexiones de texto sin cifrar obsoletas para el envío de correo electrónico y el acceso al buzón, e impone TLS implícito como reemplazo.

Cómo funciona

TLS implícito vs. STARTTLS

STARTTLS (la forma antigua): Conectarse a un puerto de texto sin cifrar, intercambiar saludos en texto sin cifrar, enviar un comando STARTTLS, negociar TLS, luego proceder con la sesión cifrada.

-- STARTTLS en puerto 587 (envío) --
220 mail.example.com ESMTP          ← saludo de texto sin cifrar
EHLO client.example.com             ← texto sin cifrar
250-mail.example.com                ← texto sin cifrar
250-STARTTLS                        ← el atacante puede eliminar esta línea
250 OK
STARTTLS                            ← texto sin cifrar
220 Go ahead                        ← texto sin cifrar
-- El protocolo de enlace TLS ocurre aquí --
EHLO client.example.com             ← ahora cifrado
AUTH PLAIN dXNlcjpwYXNz            ← cifrado (seguro)

TLS implícito (la forma RFC 8314): Conectarse a un puerto TLS dedicado. El protocolo de enlace TLS es lo primero que sucede. Sin fase de texto sin cifrar en absoluto.

-- TLS implícito en puerto 465 (envío de presentación) --
-- El protocolo de enlace TLS ocurre inmediatamente al conectarse --
220 mail.example.com ESMTP          ← cifrado desde el primer byte
EHLO client.example.com             ← cifrado
AUTH PLAIN dXNlcjpwYXNz            ← cifrado

Las asignaciones de puerto nuevas

Servicio Antiguo (STARTTLS) Nuevo (TLS implícito) Nombre IANA
Envío de mensajes 587 465 submissions
IMAP 143 993 imaps
POP3 110 995 pop3s

El puerto 465 tiene un historial complicado. Se asignó originalmente para "SMTPS" a finales de los años noventa, luego se revocó a favor de STARTTLS en 587. RFC 8314 lo reasigna como submissions (nota la 's') para envío de TLS implícito. Esta vez es oficial y permanente.

¿Qué hay con el puerto 25?

El puerto 25 es para retransmisión servidor a servidor, no para envío de cliente. RFC 8314 no cambia el comportamiento del puerto 25. El SMTP servidor a servidor aún utiliza STARTTLS oportunista, con MTA-STS o DANE proporcionando cumplimiento. La distinción es importante: los clientes se autentican con credenciales (que deben protegerse), mientras que los servidores se autentican mediante DNS, DKIM y SPF.

Detalles técnicos clave

Requisitos de versión de TLS

RFC 8314 requiere TLS 1.2 o posterior. TLS 1.0 y 1.1 están deprecados por RFC 8996. En la práctica, debes requerir TLS 1.2 como mínimo y preferir TLS 1.3.

Validación de certificado

Con TLS implícito, los clientes deben validar el certificado del servidor contra el nombre de host esperado utilizando reglas estándar de PKI web. Este es un cambio significativo respecto a la era STARTTLS donde muchos clientes aceptaban cualquier certificado. El certificado debe:

Registros SRV para descubrimiento de servicios

RFC 8314 funciona junto con RFC 6186 para configuración automática del cliente mediante registros SRV:

; Envío de TLS implícito (RFC 8314 + RFC 6186) _submissions._tcp.example.com. IN SRV 0 1 465 mail.example.com. ; IMAP de TLS implícito _imaps._tcp.example.com. IN SRV 0 1 993 mail.example.com. ; POP3 de TLS implícito _pop3s._tcp.example.com. IN SRV 0 1 995 mail.example.com.

Configuración del cliente

Para desarrolladores de aplicaciones que integran envío SMTP:

# Ejemplo de Python: TLS implícito en puerto 465
import smtplib

# Correcto: SMTP_SSL se conecta con TLS inmediatamente
with smtplib.SMTP_SSL('mail.example.com', 465) as smtp:
    smtp.login('user', 'password')
    smtp.send_message(msg)

# Evitar: STARTTLS en puerto 587 (heredado)
# with smtplib.SMTP('mail.example.com', 587) as smtp:
#     smtp.starttls()
#     smtp.login('user', 'password')

Errores comunes

Impacto en la entregabilidad

Related RFCs