¿Todos los servidores de correo electrónico (también proveedores diferentes) que implementan tls, usan tls para cifrar los mensajes y los encabezados?
El uso de TLS en el transporte de correo electrónico no encripta el correo electrónico en sí mismo como el uso de TLS en HTTP no encripta la solicitud y la respuesta específicamente. En su lugar, la conexión subyacente se cifra, ya sea desde el inicio (smtps, puerto 465) o después de un comando STARTTLS (smtp, puerto 25). Al cifrar las conexiones subyacentes, todo lo que se encuentra dentro de estas conexiones se protege, lo que incluye, en el caso de SMTP, el correo, pero también los comandos SMTP para la autorización, la especificación del remitente y el destinatario, etc.
... y cómo saber si un servidor implementa tls?
Puede conectarse al servidor y hablar el protocolo SMTP, emitir una solicitud EHLO y verificar si la respuesta contiene la información de que el servidor admite el comando STARTTLS:
$ telnet aspmx.l.google.com 25
220 mx.google.com ESMTP b48si10559063wrb.307 - gsmtp
ehlo myhost
250-mx.google.com at your service
...
250-STARTTLS
Pero tenga en cuenta que, a diferencia del uso de TLS para HTTP (es decir, HTTPS), TLS en SMTP no proporciona un cifrado de extremo a extremo del remitente al destinatario, sino solo un cifrado de salto por salto entre los agentes de transferencia de correo ( MTA). Por lo tanto, solo se entera de esto que un MTA específico admite TLS y no que todos los saltos en el camino a un destinatario específico lo hagan. Además, cada salto tiene el correo en texto claro, es decir, solo el transporte entre saltos está protegido con TLS.
La falta de cifrado tls podría ser un signo de ssl-downgrading ...
Hay algunos firewalls que eliminan STARTTLS de la respuesta y, por lo tanto, hacen que el cliente no use TLS .