técnico · respuesta con fuentes
STARTTLS: comunicación SMTP segura mediante TLS oportunista
STARTTLS es una extensión del servicio SMTP que permite convertir una conexión insegura en una segura mediante TLS. Permite a un cliente y a un servidor negociar un canal seguro en un único puerto, de modo que el contenido del correo y las credenciales de autenticación viajan cifrados.
Funcionamiento técnico
El proceso empieza con un handshake SMTP estándar en texto claro. El servidor anuncia la capacidad STARTTLS en su respuesta a EHLO. A continuación, el cliente emite el comando STARTTLS. Si el servidor lo acepta, ambas partes realizan un handshake TLS para establecer el cifrado. Una vez activa la capa segura, la sesión continúa con los comandos SMTP estándar, pero todos los datos posteriores van cifrados.
Por qué importa a los remitentes
STARTTLS evita las escuchas y los ataques de intermediario (man-in-the-middle) al cifrar el canal de comunicación entre servidores de correo. Sin él, el tráfico SMTP viaja en texto claro y expone el cuerpo de los mensajes y las credenciales de inicio de sesión a cualquiera que vigile la ruta de red. La mayoría de los servidores receptores modernos priorizan o exigen conexiones cifradas para aceptar correo.
Consideraciones operativas
Un riesgo crítico es el ataque de degradación (downgrade), en el que un atacante elimina el comando STARTTLS de la respuesta del servidor y obliga al cliente a enviar el correo en texto claro. Para evitarlo, los administradores pueden implementar MTA-STS o configurar TLS obligatorio. Las herramientas gratuitas de SendHQ (https://sendhq.cc/tools) le ayudan a verificar la configuración general de su dominio para mejorar la entrega.
Errores de implementación comunes
Un error frecuente es confundir STARTTLS con TLS implícito. STARTTLS empieza en un puerto en texto claro (como el 587) y luego actualiza la conexión, mientras que TLS implícito (puerto 465) exige un handshake seguro antes de enviar cualquier comando SMTP. Configurar mal el puerto o no proporcionar un certificado SSL válido provocará fallos de conexión o el retroceso a una transmisión insegura.
Ejemplo concreto
Un cliente se conecta al puerto 587 y envía EHLO. El servidor responde con 250-STARTTLS. El cliente envía STARTTLS. El servidor responde 220 Ready to start TLS. El cliente y el servidor negocian las claves y cifran la sesión. Después, el cliente envía AUTH LOGIN para proporcionar sus credenciales de forma segura sin exponerlas en la red.
Preguntas habituales de los equipos
¿STARTTLS es lo mismo que SSL/TLS?
STARTTLS es un comando que inicia una sesión TLS sobre una conexión existente en texto claro, mientras que SSL/TLS designa los propios protocolos de cifrado subyacentes.
¿Qué ocurre si falla STARTTLS?
De forma predeterminada, la mayoría de los servidores usan TLS oportunista, es decir, vuelven al texto claro si el handshake falla, salvo que se haya configurado explícitamente TLS obligatorio.
¿Qué puerto se usa normalmente para STARTTLS?
El puerto 587 es el puerto de envío estándar para STARTTLS, aunque también se usa con frecuencia en el puerto 25 para el relay entre servidores.