Los estándares RFC literalmente nos obligan a aceptar conexiones no cifradas en el puerto 25
. Para entender por qué, debemos entender cómo funciona el envío de correos electrónicos. Pero el envío de correos electrónicos es un tema bastante complejo y creé este ejemplo junto con una tabla para intentar entenderlo todo.
¿Alguien puede leer y decirme si me equivoco en alguna parte de la explicación? Porque no estoy muy seguro de si mi comprensión del tema es correcta.
EJEMPLO
Cuando el usuario (remitente) envía un correo electrónico a través de"agente de usuario de correo" (MUA), este correo electrónico se transfiere inmediatamente a la"agente de envío de correo"(MSA) que está o no en una máquina separada. MSA preprocesa el correo electrónico y lo entrega a"agente de transferencia de correo"(MTA) en la misma máquina. Luego, el MTA (remitente) utiliza DNS y determina a qué MTA (receptor) se debe enviar el correo electrónico. Esta parte del transporte sólo se realiza a través del puerto 25
. Cuando el MTA (receptor) recibe el correo electrónico, lo entrega al MSA en la misma máquina y luego el usuario (receptor) puede leer el correo electrónico usando MUA.
La comunicación entre MUA y MSA y MSA y MTA puede utilizar puertos seguros, pero la conexión entre MTA y MTA no. La siguiente tabla muestra qué protocolos se usan o se pueden usar y qué puertos se pueden usar para cada paso del ejemplo anterior. También usamos ✘ y ✔ donde hay una opción para indicar qué debería usar una configuración moderna.
# | remitente | receptor | protocolos que podemos utilizar | puertos de los respectivos protocolos |
---|---|---|---|---|
1 | MUA | MSA | (✘) SMTP (✔) SMTP |
(✘) 25 (✔) 587 |
2 | MSA | MTA | (✘) SMTP (✔) SMTP |
(✘) 25 (✔) 587 |
3 | MTA | MTA | (✔)SMTP | (✔)25 |
4 | MTA | MSA | (✔)SMTP | (✔)25 |
5 | MSA | MUA | (✘) POP3 (✘) POP3S (✘) IMAP (✔) IMAPS |
(✘) 110 (✘) 995 (✘) 143 (✔) 993 |
Respuesta1
Esto se basa en la idea errónea de que los puertos tienen algo que ver con el cifrado. Sin embargo, considero que ésta es una buena pregunta, ya que brinda la oportunidad de corregir este malentendido.
Los puertos no indican cifrado, sino que se utilizan para diferentes propósitos:
- El puerto
25
se utiliza para SMTP (RFC 5321)retransmisión de mensajesentre MTA:s. - El puerto
587
se utiliza paraenvío de mensajes(RFC 6409) de MUA a MSA. - Ambos se pueden cifrar con
STARTTLS
(RFC 3207). - Además, existe SMTPS que envuelve el SMTP (de MUA a MSA) dentro de TLS en el puerto
465
. Este fue registrado en 1997 pero revocado en 1998, cuandoSTARTTLS
fue estandarizado. Sin embargo, esto se ha revertido 20 años después, en 2018, comoRFC 8314ahora considera obsoleto el texto sin cifrar y recupera TLS implícito para envío POP, IMAP y SMTP.
La mayor parte del correo electrónico actual está cifrado en tránsito (entre MTA), diceInforme de transparencia de Google.
La comunicación entre MTA aún debe aprobar conexiones no cifradas para compatibilidad con versiones anteriores y, por lo tanto, es fácil para un intermediario degradar la conexión eliminando la 250-STARTTLS
respuesta que indica el soporte para la extensión. Sin embargo, si el remitente admiteDANE oportunista(RFC 7672) y el receptor tiene un TLSA
registro que indica que no necesita intentos de entrega sin cifrar (como excepción a la compatibilidad con versiones anteriores), este tipo de ataques fallarán.
La siguiente ilustración (CC BY-SA 3.0deAle2006-de-esen WikipediaAgente de envío de mensajes) muestra las diferentes funciones del servidor y las flechas azules se pueden implementar mediante diferentes variaciones de SMTP. Observe también que el mismo servidor puede tener varias funciones a la hora de entregar el mensaje.
Para realzar tu mesa:
# | remitente | receptor | protocolos y puertos en uso |
---|---|---|---|
1 | MUA | MSA | (✘) envío 587 con STARTTLS (✔) SMTPS 465 con TLS implícito |
2 | MSA | MTA | Entrega interna (mismo servidor con dos roles) |
3... | MTA | MTA (posiblementeMX) | (✘✘) SMTP sin cifrar 25 (✘) SMTP 25 con STARTTLS (✔) SMTP 25 , STARTTLS aplicado con DANE |
N-1 | MX | MDA➔MS | Entrega interna (mismo servidor con múltiples roles) |
norte | EM | MUA | (✘) IMAP 143 con STARTTLS (✔) IMAPS 993 con TLS implícito |
Los dos últimos pasos no pueden verse exactamente como emisor y receptor, ya que elMensaje Agente de UsuarioMUA se conecta alAlmacén de mensajesMS y extrae el mensaje en lugar de enviarlo. El MX MTA final entrega el correo al MS con una funcionalidad llamadaAgente de entrega de mensajes(MDA). ElAgente de envío de mensajes(MSA) sólo se refiere al envío de correo. Puede encontrar información más detallada sobre estas definiciones enArquitectura de correo de Internet RFC 5598.