Pregunta

La mayoría de los clientes de correo que admiten SSL / TLS solo requieren que el usuario indique si SSL debe estar habilitado o no. El usuario no tiene que saber nada sobre Explicit & amp; SSL implícito y las diferencias entre ellos.

Entonces, ¿cómo determina el cliente de correo qué tipo de SSL usar? ¿Se basa en números de puerto predeterminados? ¿Solo prueba uno y luego el otro?

¿Fue útil?

Solución

Un cliente de correo debe saber si SSL implícito está en uso cuando se conecta, ya que es responsable de iniciar el protocolo de enlace SSL con un mensaje ClientHello . Cómo determina esto depende del cliente. Los números de puerto son una buena pista, pero también podría haber una casilla de verificación en alguna IU que lo fuerce incluso cuando se usa el número de puerto estándar (sin protección).

Hay números de puerto registrados de IANA para correo seguro, pero algunos ISP pueden usar otros puertos.

  • IMAP / SSL: 993
  • POP3 / SSL: 995

SMTP / SSL a menudo se ofrece en el puerto 465, pero esto no está registrado y es menos común ya que los agentes SMTP admiten ampliamente la compatibilidad con SSL explícito.

Un servidor puede anunciar la compatibilidad con SSL explícito mediante una negociación específica de protocolo. Por ejemplo, cuando un cliente se conecta a un servidor SMTP y emite el comando EHLO, el servidor enumerará sus capacidades, que pueden incluir soporte para el comando STARTTLS.

Otros consejos

El puerto 465 es muy común entre los servidores de correo comercial y se usa con mucha frecuencia. La mayoría de las veces se usa para SSL implícito. Cuando telnet a este puerto obtendrá un tiempo de espera ya que primero debe configurar la conexión SSL antes de las comunicaciones con el servidor de correo. Por lo tanto, un tiempo de espera puede ser la primera pista de que tiene una conexión SSL implícita. No puede usar EHLO para devolver resultados porque no se permite ninguna conexión que no sea una conexión SSL. Y NO, simplemente no se conecta a un servidor SMTP que ejecuta SSL implícito, no responderá y simplemente cortará la conexión. Eso es lo que se supone que debe hacer. SSL explícito permitirá la conexión primero y luego configurará SSL. Y sí, el SSL implícito se usa a menudo. El inconveniente es que los estándares RFC no son específicos en cuanto a cómo se implementa, por lo que diferentes desarrolladores lo configuran de diferentes maneras, aunque algunos consideran que el SSL implícito se deprecia.

Creo que la mayoría de los clientes que admiten SMTP sobre SSL comienzan con una conexión sin cifrar y emiten un EHLO en lugar de HELO. El primero tiene respuestas de indicador adicionales, una de las cuales indica si el servidor admite el comando STARTTLS o no. Si lo hacen, entonces el cliente puede usar STARTTLS y luego usar SSL a partir de ese momento.

Ejemplo:

% telnet quack.kfu.com 25
220 quack.kfu.com ESMTP ready NO UCE
EHLO client
250-quack.kfu.com Hello client [xx.xx.xx.xx] (may be forged), pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 25000000
250-ETRN
250-AUTH PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP
starttls
220 2.0.0 Ready to start TLS
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top