← RFC Reference

RFC 3207 – Extensión SMTP STARTTLS

Proposed Standard Transport Security Obsoletes RFC 2487 Published March 2026
ELI5: Imagina que estás teniendo una conversación en una sala abarrotada. Cualquiera puede escuchar. STARTTLS es como decir "entremos en una sala privada" a mitad de la conversación. Comienzas la sesión SMTP en texto plano, luego ambos lados acuerdan cambiar a comunicación cifrada antes de intercambiar contenido sensible. Después de eso, nadie puede espiar el correo electrónico que se está transfiriendo.

Por qué existe esta RFC

Cuando SMTP fue diseñado en 1982, el cifrado no era una consideración. Los mensajes viajaban por internet en texto plano, y cualquiera con acceso a la ruta de red podía leerlos. A medida que internet se volvió más hostil, el cifrado de correo en tránsito se convirtió en esencial.

RFC 3207 define la extensión STARTTLS para SMTP, permitiendo que una conexión SMTP de texto plano se actualice a una conexión TLS cifrada. Publicada en 2002, reemplazó RFC 2487 con aclaraciones sobre consideraciones de seguridad y comportamiento del servidor.

STARTTLS es el mecanismo dominante para cifrar el tráfico de correo servidor a servidor (MTA a MTA) en el puerto 25. Para la presentación cliente-servidor, RFC 8314 ahora recomienda TLS implícito en el puerto 465, pero STARTTLS en el puerto 587 sigue siendo ampliamente utilizado.

Cómo funciona

STARTTLS funciona como una extensión SMTP, negociada durante el intercambio EHLO:

  1. El cliente se conecta al servidor en el puerto 25 (o 587) en texto plano.
  2. El cliente envía EHLO. El servidor responde con sus capacidades, incluido 250-STARTTLS si admite cifrado.
  3. El cliente envía STARTTLS.
  4. El servidor responde con 220 Ready to start TLS.
  5. Ambos lados realizan un protocolo de enlace TLS, estableciendo un canal cifrado.
  6. El cliente envía un nuevo EHLO sobre la conexión cifrada. La lista de capacidades del servidor puede cambiar (por ejemplo, AUTH ahora se anuncia).
  7. La sesión SMTP continúa normalmente, pero todo el tráfico ahora está cifrado.

Ejemplo SMTP

Negociación STARTTLS durante una transferencia servidor a servidor:

# Conexión de texto plano establecida en el puerto 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 # El cliente ve que STARTTLS está disponible, solicita actualización C: STARTTLS S: 220 2.0.0 Ready to start TLS # --- Protocolo de enlace TLS ocurre aquí --- # Todo el tráfico posterior está cifrado # El cliente DEBE reenviar EHLO después de TLS C: EHLO sender.example.net S: 250-mx.example.com S: 250-SIZE 52428800 S: 250-AUTH PLAIN LOGIN S: 250 ENHANCEDSTATUSCODES # Nota: STARTTLS ya no se anuncia (ya está activo) # Nota: AUTH ahora se anuncia (solo disponible después de 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: [contenido del mensaje...] C: . S: 250 2.0.0 OK

Detalles técnicos clave

TLS oportunista frente a obligatorio

La limitación crítica de STARTTLS tal como se define en RFC 3207 es que es oportunista por defecto:

TLS oportunista es vulnerable a ataques de degradación: un atacante de red puede eliminar la capacidad STARTTLS de la respuesta EHLO, forzando la conexión a permanecer en texto plano. El cliente no tiene forma de saber que el servidor admite TLS porque la negociación inicial ocurre en texto plano.

Verificación de certificado

RFC 3207 no requiere verificación estricta de certificado para conexiones MTA a MTA. En la práctica, muchos servidores utilizan certificados autofirmados o certificados que no coinciden con el nombre de host MX. La razón: el cifrado oportunista sin verificación sigue siendo mejor que sin cifrado. Protege contra la vigilancia pasiva incluso si no previene ataques activos de intermediario.

Para garantías más fuertes, use:

Re-EHLO después de STARTTLS

Después de completar el protocolo de enlace TLS, el cliente DEBE emitir un nuevo comando EHLO. La lista de capacidades del servidor anterior a TLS debe descartarse. Esto es importante porque:

STARTTLS en diferentes puertos

Puerto Protocolo Comportamiento de TLS
25 Retransmisión SMTP STARTTLS (oportunista para MTA a MTA)
587 Presentación STARTTLS (efectivamente obligatorio — AUTH lo requiere)
465 Presentación TLS implícito (protocolo de enlace TLS antes de cualquier comando SMTP)

Informe de TLS

RFC 8460 define Informe de TLS SMTP (TLSRPT), que permite a los propietarios de dominios recibir informes sobre fallos de conexión TLS. Este es el equivalente STARTTLS de informes agregados DMARC — le dice cuándo las conexiones a sus servidores están fallando la negociación TLS.

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

Errores comunes

Impacto en la entrega

Related RFCs