a menudo hay una gran confusión sobre los diferentes términos: SSL, TLS, STARTTLS y STLS.

SSL y TLS

SSL y TLS son protocolos criptográficos, ambos proporcionan una forma de cifrar el canal de comunicación entre dos máquinas a través de Internet (por ejemplo, un equipo cliente y un servidor). SSL significa Secure Sockets Layer y la versión actual es 3.0. TLS significa Transport Layer Security y la versión actual es 1.2. TLS es el sucesor de SSL., Los Términos SSL y TLS se pueden usar indistintamente, a menos que se refiera a una versión específica del protocolo.

la numeración de versiones es inconsistente entre SSL y TLSs. Cuando TLS tomó SSL como nombre de protocolo preferido, comenzó con un nuevo número de versión. El orden de los protocolos en términos de más antiguo a más nuevo es: SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2.

STARTTLS y STLS

STARTTLS es un comando de protocolo, que es emitido por un cliente de correo electrónico. Indica que el cliente desea actualizar la conexión insegura existente a una conexión segura utilizando el protocolo criptográfico SSL/TLS., El nombre de comando STARTTLS es utilizado por los protocolos SMTP e IMAP, mientras que el protocolo POP3 usa STLS como nombre de comando.

a pesar de tener TLS en el nombre, STARTTLS no significa que se utilizará TLS. Tanto SSL como TLS son protocolos aceptables para asegurar la comunicación.

Clear text / Plain text

No se utiliza ningún protocolo de seguridad. Todos los comandos, respuestas y datos se transfieren en texto sin formato.

client.Connect("mail.example.com");

Implícito modo SSL

Implícito modo SSL significa, que se conecta a SSL/TLS cifrado puerto.,

client.ConnectSSL("mail.example.com");

modo SSL explícito

El modo SSL explícito significa que se conecta al puerto de texto plaint y asegura la conexión emitiendo el comando STARTTLS (o STLS) después (asegura explícitamente la conexión).

client.Connect("mail.example.com");client.StartTLS();

asegurar la conexión

independientemente de si utiliza el modo implict (conectarse a un puerto cifrado SSL/TLS) o explicit (usar STARTTLS para actualizar una conexión existente), ambas partes negociarán qué protocolo y qué versión usar., Esta negociación se basa en cómo se han configurado el cliente y el servidor y lo que admite cada lado.

soporte SSL/TLS

el soporte para SSL / TLS es prácticamente universal, sin embargo, las versiones que se admiten son variables. Casi todo es compatible con SSLv3. La mayoría de las máquinas son compatibles con TLSv1.0.

TLS vs STARTTLS naming problem

un factor de complicación significativo es que algunos programas de correo electrónico utilizan incorrectamente el término TLS cuando deberían haber utilizado «STARTTLS» o «explicit SSL / TLS»., Las versiones anteriores de Thunderbird usaban «TLS «para significar» forzar el uso de STARTTLS para actualizar la conexión, y fallar si STARTTLS no está soportado «y» TLS, si está disponible «para significar» usar STARTTLS para actualizar la conexión, si el servidor anuncia soporte para ella, de lo contrario solo use una conexión insegura » (muy problemático, como veremos más adelante).

números de Puerto

para agregar seguridad a algunos protocolos existentes (IMAP, POP3, SMTP), se decidió simplemente agregar el cifrado SSL / TLS como una capa debajo del protocolo existente., Sin embargo, para distinguir que el software debe hablar con SSL/TLS versión cifrada del protocolo en lugar de texto plano en uno, un número de puerto diferente fue utilizado para cada protocolo:

Protocolo texto sin formato SSL
IMAP 143 993
POP3 110 995
SMTP 587 o el 25 465

Demasiados puertos?, Solución: texto plano + STARTTLS

en algún momento, se decidió que tener 2 puertos para cada protocolo era un desperdicio, y en su lugar es mejor tener 1 puerto, que comienza como texto plano, pero los clientes pueden actualizar la conexión a un cifrado SSL/TLS usando el comando STARTTLS (o STLS para el protocolo POP3).

problemas de STARTTLS

hubo algunos problemas con esto. Existe un montón de software, que utiliza los números de Puerto alternativos con conexiones SSL/TLS puros., El software cliente puede tener una vida muy larga, por lo que no puede deshabilitar los puertos cifrados hasta que se haya actualizado todo el software.

cada protocolo recibió mecanismos para decirle a los clientes que el servidor soportaba la actualización a SSL / TLS (por ejemplo, STARTTLS en la respuesta de capacidad de IMAP), y que no deberían intentar iniciar sesión sin hacer la actualización de STARTTLS (LOGINDISABLED en la respuesta de capacidad de IMAP)., Esto creó dos situaciones desafortunadas:

  • algún software simplemente ignoró el anuncio «login disabled until upgraded» (LOGINDISABLED, STARTTLS) y simplemente intentó iniciar sesión de todos modos, enviando el nombre de usuario y la contraseña a través del canal de texto claro. El servidor rechazó el nombre de usuario y la contraseña, pero los detalles ya se habían enviado a través de Internet en texto sin formato.
  • otro software vio el anuncio» login disabled until upgraded», pero luego no actualizó la conexión automáticamente, y por lo tanto informó de los errores de inicio de sesión al usuario, lo que causó confusión sobre lo que estaba mal.,
    • ambos problemas dieron lugar a problemas de compatibilidad significativos con los clientes existentes, por lo que la mayoría de los administradores del sistema continuaron utilizando conexiones de texto sin formato en un puerto y conexiones cifradas en un número de Puerto separado.

      desactivar el texto plano para IMAP y POP3

      muchas empresas (por ejemplo, Gmail, Outlook.com) deshabilitado IMAP plano (puerto 143) y POP3 plano (puerto 110), por lo que la gente debe utilizar una conexión cifrada SSL/TLS – esto elimina la necesidad de tener comando STARTTLS completamente.

      SMTP STARTTLS permanece

      la única excepción real a lo anterior es SMTP., La mayoría del software de correo electrónico utiliza SMTP en el puerto 25 para enviar mensajes al servidor de correo electrónico para su posterior transmisión al destino. Sin embargo, SMTP fue diseñado originalmente para transferencia, no para envío. Así que se definió otro puerto (587) para el envío de mensajes.

      El puerto 587 no requiere que se inicie, sin embargo, el uso del puerto 587 se hizo popular al mismo tiempo que se dio cuenta de que el cifrado SSL/TLS de las comunicaciones entre clientes y servidores era un problema importante., El resultado es que la mayoría de los sistemas que ofrecen envío de mensajes a través del puerto 587 requieren que los clientes utilicen STARTLS para actualizar la conexión. También se requiere el inicio de sesión y la contraseña para autenticarse.

      este enfoque también ha tenido un beneficio adicional. Al alejar a los usuarios del uso del puerto 25 para el envío de correo electrónico, los ISP pueden bloquear las conexiones salientes del puerto 25 de las computadoras de los usuarios, que eran una fuente significativa de spam, debido a las computadoras de los usuarios infectadas con virus de envío de spam.,

      más lecturas

      usando SSL/TLS con IMAP
      usando SSL/TLS con SMTP
      usando SSL/TLS con POP3

      etiquetas: IMAP, POP3, SMTP, SSL, TLS