← RFC Reference

Seguridad TLS y de correo electrónico

Email Concepts Encyclopedia Published March 2026
ELI5: Imagina enviar una postal versus un sobre sellado. Sin TLS, el correo electrónico es una postal — cualquiera que lo manipule en el camino puede leerlo. TLS es el sobre. STARTTLS es como preguntarle a la oficina de correos "¿puedes meter esto en un sobre?" — podrían decir que sí, pero un actor malintencionado podría interceptar la pregunta y decir "no, no hacemos eso aquí". MTA-STS y DANE son formas de publicar una regla que dice "esta oficina de correos SIEMPRE usa sobres, nunca confíes en quien diga lo contrario".

Cómo TLS protege el correo electrónico en tránsito — STARTTLS, TLS implícito, MTA-STS, DANE, TLSRPT — y por qué el cifrado oportunista no es suficiente.

El Problema: SMTP Nació Desencriptado

SMTP fue diseñado en 1982 (RFC 821) como protocolo de texto plano. Cada comando, cada respuesta, cada encabezado, cada byte del contenido del mensaje viajaba por la red sin cifrar. Las contraseñas enviadas a través de AUTH eran efectivamente gritadas en la habitación.

TLS (Seguridad de la Capa de Transporte) se superpuso a SMTP para solucionar esto. Pero a diferencia de HTTPS — donde TLS es obligatorio y universal — el TLS de correo ha evolucionado a través de una serie de compromisos imperfectos que aún se están resolviendo hoy.

STARTTLS: Cifrado Oportunista

STARTTLS (RFC 3207) actualiza una conexión SMTP de texto plano existente a TLS. El proceso:

# La conexión comienza en texto plano en el puerto 25
220 mx.example.com ESMTP
EHLO sender.example.net
250-mx.example.com
250-STARTTLS
250 SIZE 26214400
STARTTLS
220 Ready to start TLS
# Comienza el protocolo de enlace TLS
# Cliente y servidor negocian versión de TLS, suite de cifrado, intercambian certificados
# La conexión ahora está cifrada
EHLO sender.example.net
250-mx.example.com
250 SIZE 26214400

Puntos clave sobre STARTTLS:

El ataque de eliminación de STARTTLS

Debido a que STARTTLS comienza en texto plano, un atacante de intermediario puede modificar la respuesta EHLO del servidor para eliminar el anuncio de STARTTLS. El MTA de envío piensa que el servidor no admite TLS y continúa en texto plano. El atacante puede entonces leer y modificar el mensaje.

# Lo que el servidor realmente envía:
250-mx.example.com
250-STARTTLS
250 SIZE 26214400

# Lo que el atacante lo modifica a:
250-mx.example.com
250 SIZE 26214400
# Línea STARTTLS eliminada — el remitente regresa a texto plano

Este no es un ataque teórico. Ha sido observado en la práctica, particularmente en países que realizan vigilancia masiva. El STARTTLS oportunista no proporciona protección contra atacantes activos — solo protege contra el espionaje pasivo.

TLS Implícito: Cifrado desde el Primer Byte

RFC 8314 recomienda TLS implícito para envío de correo (cliente a servidor). En lugar de comenzar en texto plano y actualizar, la conexión es TLS desde el primer byte.

RFC 8314 declara explícitamente que el envío SMTP en texto plano en puerto 587 sin TLS es obsoleto, y que TLS implícito en puerto 465 es la ruta de envío preferida. En la práctica, el puerto 587 con STARTTLS sigue siendo ampliamente utilizado, pero la dirección es clara: TLS implícito es el futuro.

Sin embargo, TLS implícito solo se aplica a la ruta de envío (tu cliente a tu servidor). La entrega de servidor a servidor en puerto 25 aún utiliza STARTTLS porque no hay un mecanismo implementado universalmente para que los servidores sepan de antemano que el MX del destinatario admite TLS implícito. Aquí es donde entran en juego MTA-STS y DANE.

MTA-STS: Aplicación de TLS Basada en Políticas

MTA-STS (RFC 8461) resuelve el problema de eliminación de STARTTLS permitiendo que un dominio publique una política que dice "siempre requiere TLS al entregar correo a mis servidores MX." La política se publica a través de HTTPS (no DNS), que proporciona su propia autenticación a través de la PKI web.

Cómo funciona MTA-STS

  1. El dominio publica un registro DNS TXT señalando que existe una política MTA-STS:
_mta-sts.example.com. IN TXT "v=STSv1; id=20260311"
  1. El MTA de envío obtiene la política a través de HTTPS desde una URL bien conocida:
https://mta-sts.example.com/.well-known/mta-sts.txt
  1. El archivo de política especifica el modo y los nombres de host MX válidos:
version: STSv1 mode: enforce mx: mx1.example.com mx: mx2.example.com max_age: 604800
  1. El MTA de envío almacena en caché la política (durante max_age segundos) y la aplica en todas las conexiones futuras. Hará:
    • Requiere STARTTLS en puerto 25 (nunca regresa a texto plano)
    • Valida el certificado TLS del servidor contra el nombre de host MX
    • Solo entrega a los nombres de host MX listados en la política

Modos MTA-STS:

MTA-STS tiene el mismo modelo de confianza que la web: se basa en Autoridades de Certificación. Si una CA se ve comprometida, un atacante podría falsificar un certificado para tu MX. DANE proporciona un modelo de confianza alternativo basado en DNSSEC.

DANE: Verificación de Certificados Basada en DNS

DANE (RFC 7672) utiliza registros TLSA firmados con DNSSEC para asociar un certificado TLS (o su clave pública) directamente con un nombre de host MX. Esto elimina la dependencia de Autoridades de Certificación.

; Registro TLSA para mx1.example.com en puerto 25 _25._tcp.mx1.example.com. IN TLSA 3 1 1 a]b2c3d4e5f6...

Los campos del registro TLSA:

Cómo funciona DANE para correo

  1. El MTA de envío resuelve el registro MX y obtiene mx1.example.com.
  2. Consulta un registro TLSA en _25._tcp.mx1.example.com.
  3. Si existe un registro TLSA validado con DNSSEC, el MTA sabe:
    • TLS es obligatorio (sin regresión a texto plano).
    • El certificado del servidor debe coincidir con el registro TLSA.
  4. El MTA se conecta, realiza STARTTLS, y valida el certificado del servidor contra el registro TLSA en lugar de (o además de) el sistema de CA.

La fortaleza de DANE: no depende de Autoridades de Certificación. Su debilidad: requiere DNSSEC, que muchos dominios no han implementado. Sin DNSSEC, los registros DANE no pueden ser confiables (un atacante que puede manipular DNS puede manipular registros TLSA también).

DANE vs. MTA-STS

MTA-STS DANE
Modelo de confianza PKI Web (Autoridades de Certificación) DNSSEC
Requiere Hosting HTTPS + registro DNS TXT DNSSEC en tu dominio
Adopción Más fácil de implementar; no se requiere DNSSEC Requiere DNSSEC; más difícil de implementar
Vulnerabilidad Una CA comprometida puede falsificar certificados Un DNSSEC comprometido puede falsificar registros TLSA
Primer contacto Vulnerable en la primera obtención de política (TOFU) Seguro desde la primera conexión (si DNSSEC es válido)
Soporte del remitente Gmail, Outlook, Yahoo, la mayoría de proveedores principales Postfix, Exim; limitado en grandes proveedores

Ambos mecanismos pueden coexistir. Un dominio puede publicar políticas tanto de MTA-STS como de DANE. Los remitentes que admiten DANE lo utilizan; los que no pueden recurrir a MTA-STS.

TLSRPT: Reporte de TLS

Reporte de TLS SMTP (RFC 8460) permite que un dominio reciba reportes sobre fallos de conexión TLS de servidores de envío. Es el equivalente de TLS de reportes agregados de DMARC.

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

Los MTA de envío que admiten TLSRPT enviarán reportes JSON diarios detallando:

TLSRPT es esencial durante la implementación de MTA-STS. Comienza con mode: testing en tu política MTA-STS y monitorea reportes de TLSRPT. Cuando veas cero (o fallos aceptables), muévete a mode: enforce.

Gestión de Certificados

TLS requiere certificados, y la gestión de certificados es uno de los puntos de fallo operacional más comunes en la seguridad del correo.

Certificados para servidores de correo

Errores de certificado y su impacto

Error Sin MTA-STS/DANE Con MTA-STS/DANE
Certificado expirado La mayoría de remitentes lo ignoran y entregan de todas formas La entrega falla; mensaje aplazado
Nombre de host incorrecto La mayoría de remitentes lo ignoran La entrega falla
Certificado autofirmado La mayoría de remitentes lo aceptan La entrega falla (MTA-STS); puede pasar (DANE, si TLSA coincide)
Certificado revocado Raramente se verifica Depende de la implementación

Esta tabla revela el problema central con TLS oportunista: sin MTA-STS o DANE, la mayoría de los errores de certificado se ignoran silenciosamente. La conexión está cifrada, pero no autenticada — podrías estar cifrando tu mensaje a un servidor de un atacante.

El Estado del Cifrado de Correo

El cifrado de correo existe en dos niveles, y a menudo se confunden:

Cifrado de transporte (TLS)

TLS cifra la conexión entre servidores. Protege contra el espionaje mientras el mensaje está en tránsito entre cualquier dos puntos. Una vez que el mensaje llega al servidor de destino, se descifra y se almacena en texto plano (típicamente). TLS protege el transporte, no el mensaje.

El cifrado de transporte es salto a salto: el mensaje está cifrado entre tu servidor y el próximo servidor, luego se descifra, luego se vuelve a cifrar para el próximo salto. Cada servidor intermedio tiene acceso al mensaje de texto plano.

Cifrado de extremo a extremo (S/MIME, PGP)

El cifrado de extremo a extremo (S/MIME por RFC 8551, o PGP/OpenPGP) cifra el contenido del mensaje en sí, para que solo el destinatario previsto con la clave privada correcta pueda descifrarlo. El mensaje permanece cifrado en reposo en el servidor y durante cada salto de tránsito.

La adopción del cifrado de extremo a extremo en correo sigue siendo extremadamente baja. Las razones son prácticas:

Para la mayoría del correo, TLS a nivel de transporte es la capa de cifrado práctica. El cifrado de extremo a extremo sigue siendo nicho, utilizado en entornos de alta seguridad donde la carga operacional está justificada.

Requiere TLS (RFC 8689)

RFC 8689 define un mecanismo por mensaje para requerir TLS. El remitente agrega una extensión SMTP REQUIRETLS a mensajes individuales:

MAIL FROM:<alice@example.com> REQUIRETLS
250 OK

Cuando se establece REQUIRETLS:

REQUIRETLS es a nivel de mensaje — puedes usarlo para mensajes sensibles sin requerir TLS para todo el correo. Sin embargo, la adopción aún es limitada. La mayoría de servidores aún no lo admiten.

Guía Práctica de Implementación

Aquí hay una secuencia recomendada para implementar TLS para el correo de tu dominio:

Paso 1: Asegura TLS en tus servidores MX

Obtén certificados válidos de una CA pública para cada nombre de host MX. Automatiza la renovación. Prueba que STARTTLS funciona correctamente desde remitentes externos.

Paso 2: Implementa TLSRPT

Publica un registro DNS TXT _smtp._tls para recibir reportes de fallo de TLS. Comienza a monitorear antes de que hagas cumplir nada.

Paso 3: Implementa MTA-STS en modo de prueba

Publica el registro DNS TXT y el archivo de política HTTPS con mode: testing. Monitorea reportes de TLSRPT para fallos. Investiga y corrige cualquier problema.

Paso 4: Mueve MTA-STS al modo de aplicación

Una vez que los reportes de TLSRPT muestren resultados limpios, cambia el modo a enforce. Incrementa el id en el registro DNS TXT para señalar el cambio de política.

Paso 5: Considera DANE (si usas DNSSEC)

Si tu dominio está firmado con DNSSEC, publica registros TLSA para tus servidores MX. Esto proporciona una capa adicional de fijación de certificados independiente del sistema de CA.

Qué Puede Salir Mal

El certificado expirado causa fallos de entrega

El certificado de tu servidor MX expira. Sin MTA-STS, la mayoría de remitentes ignoran el error y entregan de todas formas (inseguro pero funcional). Con MTA-STS en modo de aplicación, los remitentes que validan certificados aplazarán la entrega. Los mensajes se colan en el lado del remitente. Si no lo arreglas dentro de la ventana de reintento del remitente (típicamente 4–5 días), los mensajes rebotan. La solución: automatiza la renovación de certificados con Let's Encrypt / ACME.

Desajuste de política MTA-STS después del cambio de MX

Agregas un nuevo servidor MX (mx3.example.com) pero olvidas agregarlo a tu archivo de política MTA-STS. Los remitentes que han almacenado en caché la política antigua rechazan conexiones al nuevo MX porque no está en la lista de políticas permitidas. La solución: siempre actualiza el archivo de política MTA-STS antes de agregar nuevos registros MX, e incrementa el id de política en DNS.

Eliminación de STARTTLS no detectada

Sin MTA-STS o DANE, un atacante elimina STARTTLS de la respuesta EHLO del servidor. Los mensajes se entregan en texto plano. Ni remitente ni receptor se da cuenta. La solución: implementa MTA-STS para hacer que la eliminación de TLS sea detectable y prevenible.

El registro TLSA de DANE se vuelve obsoleto

Rotas tu certificado TLS pero olvidas actualizar el registro TLSA en DNS. Los remitentes que validan DANE ven una desajuste y se niegan a entregar. La solución: siempre actualiza registros TLSA antes de implementar un nuevo certificado. Utiliza automatización que coordine la implementación de certificados con actualizaciones de DNS.

Conclusiones Clave

Lectura Adicional

Related RFCs