¿Qué es StartTLS?
Publicado: 2020-03-21¿Alguna vez se preguntó cómo se envía el correo electrónico de forma segura de un servidor a otro? Cuando usamos el Protocolo simple de transferencia de correo (SMTP) para enviar correo, confiamos en una combinación de StartTLS y Transport Layer Security (TLS) o Secure Sockets Layer (SSL) para cifrar nuestro correo y ayudarlo a llegar de forma segura a la bandeja de entrada.
Pero, ¿qué es StartTLS?
StartTLS es un comando de protocolo que se utiliza para informar al servidor de correo electrónico que el cliente de correo electrónico desea actualizar de una conexión insegura a una segura mediante TLS o SSL. StartTLS se usa con SMTP e IMAP, mientras que POP3 usa un comando ligeramente diferente para el cifrado, STLS.
Profundizaremos en las diferencias entre TLS y SSL, el proceso StartTLS y cómo probar StartTLS para su programa.
¿Cómo funciona StartTLS?
TLS frente a SSL
Aunque "TLS" está en su nombre, StartTLS funciona con ambos protocolos de encriptación, TLS y SSL.
Si bien StartTLS funciona con ambos protocolos, recomendamos usar TLS sobre SSL. SSL es un protocolo más antiguo y no es tan seguro como su sucesor, TLS. SSLv2 y SSLv3 han quedado obsoletos.
Como referencia, aquí hay una lista de protocolos SSL y TLS del más antiguo al más nuevo:
SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
Tanto el cliente de correo electrónico como el servidor de correo electrónico deben ponerse de acuerdo sobre qué conexión usar. El cliente de correo electrónico puede admitir TLSv1.3, pero el servidor de correo electrónico solo puede admitir hasta TLSv1.2. Esto significa que ambas partes deberán usar TLSv1.2 para continuar con el cifrado.
Para obtener aún más información sobre TLS frente a SSL, consulte nuestra página de documentos .
El proceso StartTLS
SMTP siempre comienza sin cifrar. El comando StartTLS inicia la negociación entre el servidor y el cliente. Aquí hay un resumen de la comunicación que ocurre entre el cliente de correo electrónico y el servidor de correo electrónico.
- El proceso comienza con el apretón de manos del Protocolo de control de transmisión (TCP) para ayudar a que tanto el cliente como el servidor de correo electrónico se identifiquen entre sí.
- El servidor identifica con 220 Listo que el cliente de correo electrónico puede continuar con la comunicación.
- El cliente envía al servidor "EHLO" para informar al servidor que al cliente le gustaría usar Extended SMTP (la versión más avanzada de SMTP que le permite incluir imágenes, archivos adjuntos, etc.).
- El cliente envía "250-STARTTLS" al servidor de correo para preguntar si se acepta StartTLS o no.
- Si el servidor devuelve "adelante", se puede crear la conexión StartTLS.
- El cliente reinicia la conexión y el mensaje de correo electrónico se cifra.
Aquí hay una representación visual del proceso StartTLS.
¿Qué puerto debe usar?
El puerto que usa StartTLS con mayor frecuencia es el puerto 587. A menudo requiere que los clientes de correo electrónico usen StartTLS para enviar correo. Otros puertos utilizados para enviar correo cifrado son 25, 465 y 2525. Dado que el puerto 25 se diseñó para la transferencia de correo, no para el envío, su ISP puede bloquear el correo electrónico enviado a través de este puerto. El puerto 465 es el segundo puerto más utilizado para StartTLS.
TLS oportunista vs. obligatorio
Hay un par de formas diferentes de configurar su programa de cifrado de correo electrónico utilizando TLS oportunista o TLS forzado:
TLS oportunista (o TLS explícito) permite que el cliente de correo electrónico entregue en el nivel de cifrado más alto que acepta el servidor del destinatario. Si el servidor del destinatario no acepta TLS, el cliente de correo electrónico negociará con el servidor y aceptará cambiar a una conexión no cifrada. A continuación, el mensaje se enviará en formato de texto sin formato y sin cifrar. Este método es útil porque puede usar el mismo puerto para correo cifrado y de texto sin formato.
TLS forzado (o TLS implícito) requiere que el correo se envíe a través de una conexión segura. Si la conexión no está encriptada, se bloqueará el envío del correo. Este método es mucho más seguro que el TLS oportunista, pero provoca que se descarten más correos.
Ambos enfoques se usan ampliamente en el mundo del correo electrónico, así que considere qué tiene más sentido para su programa. Si está enviando un correo electrónico que contiene información personal confidencial, puede ser mejor usar TLS obligatorio. Por otro lado, si envía material no confidencial, como marketing o promociones, es posible que se sienta más inclinado a utilizar TLS oportunista.
Otros casos de uso de TLS
TLS se usa con frecuencia para cifrar una variedad de métodos de comunicación fuera del correo electrónico. Dado que TLS es un protocolo de varios pasos relativamente simple, facilita el ajuste para una variedad de tipos de comunicación. Esto incluye navegadores web, SMS y Voz sobre IP. De hecho, muchas empresas utilizan TLS para cifrar toda la comunicación entre sus servidores web y navegadores, incluso si la mayoría de la comunicación no es material confidencial.
Para obtener más información sobre cómo Twilio usa TLS, consulte la página de seguridad de Twilio .
¿Por qué es importante StartTLS?
SMTP no está protegido de forma predeterminada, lo que significa que si enviara un correo electrónico a través de SMTP sin StartTLS, el correo electrónico podría ser interceptado e interpretado fácilmente. Esto es especialmente preocupante cuando se envía información personal confidencial, como nombres de usuario, contraseñas o información bancaria.
Sin StartTLS, su información personal corre el riesgo de ser robada.
Cuando un cliente de correo electrónico usa StartTLS, le informa al servidor que el contenido debe estar encriptado. De esta forma, si se intercepta el correo, el contenido ha sido codificado y es muy difícil de descifrar. El servidor de correo electrónico y el cliente de correo electrónico son los únicos que tienen la clave para decodificar el mensaje.
inconvenientes
Hay ciertos inconvenientes en el uso de StartTLS. Los clientes de correo electrónico son susceptibles a los ataques de intermediarios porque, en la conexión inicial entre el cliente de correo electrónico y el servidor, las direcciones IP no están cifradas.
El uso de StartTLS también podría agregar algo de latencia a la conexión SMTP. Esto no sería un retraso suficiente para que sea necesario enviar correo electrónico sin cifrar, pero es bueno tenerlo en cuenta.
¿Cómo pruebo StartTLS?
Es importante probar con anticipación para asegurarse de que el servidor sea capaz de procesar StartTLS. Si no es capaz de procesar StartTLS, podría enviar accidentalmente una buena cantidad de correo electrónico que no está encriptado y, por lo tanto, es susceptible a los vectores de ataque.
Este es un ejemplo de cómo probaría StartTLS desde el servidor SMTP de SendGrid.
¿Cómo utiliza Twilio SendGrid StartTLS?
Twilio SendGrid es compatible con TLS v1.1 y superior. Se aceptan conexiones sin cifrar y TLS en los puertos 25, 587 y 2525. O puede conectarse a través de SSL en el puerto 465.
Seguimos TLS oportunista y enviamos con el nivel de cifrado más alto que acepta el servidor del destinatario. También ofrecemos TLS obligatorio . Es su elección si desea o no que su correo electrónico se envíe a través de una conexión cifrada. Si el servidor del destinatario no acepta mensajes cifrados, el mensaje se descarta y enviamos un evento de bloqueo.
Principalmente interactuaría con StartTLS al iniciar la solicitud SMTP a Twilio SendGrid, solicitando enviar correo. De lo contrario, Twilio SendGrid maneja la coincidencia de los certificados TLS, el resto del proceso de cifrado y cualquier problema que pueda surgir en el camino.
Para obtener más información sobre Twilio SendGrid y SMTP, diríjase a nuestro artículo de documentos, Cómo enviar un correo electrónico SMTP .