El correo viaja de servidor en servidor por SMTP. El cifrado entre servidores es independiente de la autenticación de quién envió un mensaje (SPF, DKIM y DMARC, vea Cómo funciona la autenticación de correo: SPF, DKIM y DMARC). STARTTLS convierte una conexión SMTP en texto plano en una conexión TLS, pero los remitentes aceptan en silencio que la mejora falle, de modo que un atacante puede eliminarla. MTA-STS (RFC 8461) permite a un dominio indicar que su correo debe entregarse por TLS verificado. Cree los registros con Generador de Política MTA-STS; la entrada del glosario es MTA-STS y los códigos de respuesta están en Guía rápida de los códigos de respuesta SMTP.
El eslabón débil: STARTTLS oportunista
- La entrega entre servidores por el puerto 25 empieza en texto plano; el remitente solicita
STARTTLSy, si falta la respuesta o falla TLS, normalmente entrega igualmente sin cifrar. - A menudo no se comprueban los certificados, de modo que incluso una mejora correcta puede no detener a un intermediario.
- Los puertos 465 (TLS implícito) y 587 (envío con STARTTLS) son para su propio cliente de correo, no para la entrega entre servidores.
MTA-STS en tres piezas
- Un registro TXT de DNS en
_mta-sts.example.comindica que existe una política:v=STSv1; id=20261028T000000Z. Cambie elidcada vez que cambie la política. - Un archivo de política servido por HTTPS en
https://mta-sts.example.com/.well-known/mta-sts.txt:
version: STSv1
mode: enforce
mx: mail.example.com
mx: *.example.net
max_age: 604800
- La política enumera los hosts MX permitidos, el modo (
testing,enforceonone) y cuánto tiempo pueden guardarla en caché los remitentes (max_age, en segundos; 604800 es una semana).
TLS-RPT: enterarse de cuándo falla
Un registro TLS-RPT (RFC 8460) pide a los servidores remitentes que informen de los fallos. Publique un registro TXT en _smtp._tls.example.com: v=TLSRPTv1; rua=mailto:[email protected]. Los informes JSON diarios muestran entonces qué remitentes no pudieron negociar TLS o validar su certificado.
Cómo desplegarlo
- Empiece en modo
testingcon unmax_agecorto y vigile los informes de TLS. - Asegúrese de que cada host MX tenga un certificado válido y no caducado cuyo nombre coincida con el del host MX (vea Cómo comprobar un certificado SSL).
- Pase a
enforcey aumentemax_age(una semana, luego meses). - MTA-STS protege la entrega a su dominio solo si los remitentes lo admiten; DANE (registros TLSA con DNSSEC) es una alternativa.