Articles

Todo lo que necesitas saber sobre la seguridad SMTP

¿Qué envías en tus correos electrónicos? Fotos de tu último viaje o recetas para tus hijos? ¿Informes de negocios para su supervisor? O tal vez algo aún más confidencial como los datos de acceso o los números de la seguridad social? No estamos aquí para juzgar. Pero sea lo que sea lo que incluyas en tus correos electrónicos, seguro que no quieres que lo vea nadie más que el receptor. Por suerte para todos nosotros, casi todos los clientes de correo electrónico se encargan de encriptar nuestros correos, por lo que no tienes que preocuparte de cosas como el SMTP seguro o el SSL/TLS. Pero si quieres tomar una decisión más consciente o simplemente estás configurando tu propio cliente, es bueno saber lo que realmente sucede bajo el capó. Veamos:

¿Qué es SMTP? ¿Es seguro?

El Protocolo Simple de Transferencia de Correo es la tecnología utilizada por la gran mayoría de los clientes de correo electrónico para mover los mensajes entre los servidores, de camino a los usuarios finales. En palabras sencillas, es lo que hace que sus correos electrónicos lleguen al destinatario en cuestión de segundos, incluso si éste se encuentra en el autobús 142 de Stampede Trail en Alaska (aunque la cobertura LTE puede ser un factor).

Piense en SMTP como un cartero digital que, en primer lugar, recoge su paquete (correo electrónico) y lo lleva desde su cliente de correo electrónico hasta el servidor, llamado acertadamente servidor SMTP (ya que se utiliza exclusivamente para enviar mensajes). A continuación, otro cartero recoge el paquete y lo lleva hasta el servidor del destinatario, donde es recogido y almacenado durante milisegundos en el servidor POP3/IMAP del destinatario. Una vez que se han intercambiado todas las bromas, el correo entrante se entrega al destinatario, sin la participación de SMTP pero con protocolos IMAP/POP3 separados.

Como puede ver, SMTP se encarga de una parte importante de cada transmisión saliente. ¡Dada la importancia y omnipresencia de este protocolo, se podría pensar que está fuertemente encriptado y asegurado con tecnologías de primer nivel de los laboratorios secretos de Google o Yahoo! Pues bien, nada de eso. El protocolo SMTP estándar no tiene ninguna característica de seguridad, lo que lo hace realmente vulnerable al secuestro y otras formas de ataque. Es como si nuestro cartero subiera a un autobús público interurbano, dejara caer una bolsa con correo en uno de los asientos y se bajara enseguida. ¿Llegará intacto a un destinatario? Posiblemente. ¿Será fácil comprobar lo que se envía o, bueno, jugar un poco con él en perjuicio propio o del destinatario? También es probable.

¿Cuáles son las amenazas a la seguridad SMTP?

Hay una serie de cosas que hay que tener en cuenta a la hora de transmitir incluso una pequeña cantidad de correos electrónicos. Aquí están las más comunes:

Acceso no autorizado a tus correos y fuga de datos

Los ciberdelincuentes podrían intentar acceder a tu servidor SMTP por el que pasa todo el correo saliente. Para ello, rompen tus procedimientos de autenticación con métodos más o menos sofisticados. Una vez dentro, los visitantes no deseados pueden acceder a tus correos y utilizarlos en su beneficio, por ejemplo, filtrando los datos de tus usuarios o robando información confidencial que estabas enviando a tus compañeros de trabajo.

Spam y Phishing

Cuando los estafadores son capaces de acceder a su servidor SMTP, también es probable que lo utilicen para enviar mensajes no autorizados tanto a sus contactos como a cuentas externas (esto se conoce como utilizar su servidor como Open Relay). Esto se hace para enviar spam que, cuando se envía desde su dominio legítimo y (probablemente) conocido, puede tener bastante éxito. O, peor aún, su servidor puede ser utilizado para enviar correos electrónicos maliciosos, por ejemplo, solicitando a sus usuarios que compartan sus credenciales de inicio de sesión o números de tarjetas de crédito.

Malware

Los atacantes suelen utilizar las vulnerabilidades de SMTP para difundir software malicioso a los destinatarios de su correo electrónico, pero también en su propia infraestructura. Puede tratarse de virus, troyanos o cualquier otro tipo de gusanos que luego se utilizan para obstruir las operaciones, obtener acceso a los servidores, cambiar los privilegios y acceder a datos seguros. Si no se combate con la fuerza suficiente, el malware podría seguir propagándose, infectando cada vez más servidores y usuarios.

Ataques DoS

Si todo lo anterior no te pareció grave, los ciberdelincuentes también pueden utilizar tu servidor SMTP para realizar un ataque de denegación de servicio (DoS). Esto básicamente significa inundar otros servidores con una gran cantidad de correos electrónicos para afectar su rendimiento o incluso causar una caída. El DoS también se puede utilizar para inundar una bandeja de entrada y ocultar cualquier mensaje de advertencia sobre violaciones de seguridad a un servidor. Sea cual sea el propósito de un ataque DoS, nunca es bueno.

Estos son sólo algunos de los ejemplos. Pero, ¿hay alguna forma de asegurar nuestra conexión y evitar ese destino?

¿Cómo hacer seguro el SMTP? ¿Qué es SSL/TLS?

Los proveedores de correo electrónico también se dieron cuenta de estas vulnerabilidades y desde los primeros días del correo electrónico comenzaron a añadir capas de seguridad al protocolo SMTP. SSL (Secure Sockets Layer) fue desarrollado en 1995 por Netscape. La primera versión (1.0) nunca se compartió con el público debido a sus vulnerabilidades, pero la v2.0 se convirtió rápidamente en una característica imprescindible para cualquier cliente de correo electrónico respetable.

Unos años más tarde, se lanzó un nuevo estándar llamado TLS (Transport Layer Security) y se ha mejorado constantemente desde entonces. SSL fue finalmente obviado en 2015 y TLS en su versión 1.3 (la más reciente en el momento de escribir este artículo) se considera ahora un estándar de la industria. Aunque todavía es posible utilizar las últimas versiones de SSL, no se recomienda debido a varias vulnerabilidades que se han descubierto. Tenga en cuenta, sin embargo, que los nombres «SSL» y «TLS» se utilizan indistintamente y que a menudo un proveedor de servicios puede referirse a SSL cuando, en realidad, utiliza TLS.

SSL/TLS proporciona una forma de cifrar los mensajes que se intercambian entre el cliente de correo electrónico y el servidor de correo electrónico. Cuando los hackers violan la seguridad de SMTP, sólo verán un conjunto de caracteres aparentemente aleatorios que sustituyen el contenido de los correos electrónicos. Todavía pueden utilizar sus recién adquiridos poderes para causar daños, pero al menos usted y los datos de sus contactos estarán protegidos.

TLS también admite el uso de certificados digitales que proporcionan una capa adicional de seguridad. Piensa en estos certificados como identificaciones o pasaportes con los que cada parte del proceso se identifica. Este proceso se llama Handshake.

¿Cómo funciona el Handshake?

Ya establecimos que cualquier correo electrónico enviado por SMTP viaja de la siguiente manera:

  1. Cliente de correo electrónico del remitente
  2. Servidor de correo electrónico del remitente
  3. Servidor de correo electrónico del destinatario
  4. Cliente de correo electrónico del destinatario
    1. Cuando un correo electrónico cruza entre cualquiera de estas etapas, se inicia una conexión y, cuando se utiliza TLS, ambas partes necesitan establecer la confianza entre ellas. Esto se denomina «Handshake». El cliente del remitente quiere saber que se está comunicando con su propio servidor, y no con algo que se le parece pero que en realidad es una trampa. El servidor también quiere conocer mejor al otro servidor antes de confiarle un mensaje valioso. Sólo después de que comprueben los papeles del otro y establezcan algunas reglas de cooperación, procederán a la transmisión.

      El apretón de manos consta de varios pasos y es el siguiente:

      1. El cliente de correo electrónico envía un mensaje de «hola» en el que indica con qué versiones de SSL/TLS es compatible y los tipos de cifrado que admite.
      2. El servidor devuelve el «hola», pero su respuesta es diferente. Incluye su certificado digital TLS y su clave pública de cifrado.
      3. El cliente de correo electrónico verifica si el certificado es legítimo. Si lo es, procede a…
      4. generar una Clave Secreta Compartida con la clave de cifrado pública del servidor que acaba de recibir hace dos pasos.
      5. El servidor descifra entonces la Clave Secreta Compartida recibida.
      6. Si todo ha ido bien, ambos sitios pueden ahora utilizar esta Clave Secreta Compartida para cifrar y descifrar los mensajes enviados entre ellos.

      Si te interesa una descripción mucho más detallada de este encuentro, echa un vistazo a este interesante desglose de cada byte utilizado en un handshake TLS.

      Nota cómo la encriptación de esta interacción fue, al principio, asíncrona (ambos lados estaban usando claves diferentes). En el transcurso del handshake, lograron establecer que el uso de la Clave Secreta Compartida era el camino a seguir y el cifrado se convirtió en sincrónico (y, como resultado, más rápido).

      Inspeccione sus correos electrónicos

      Optimista vs Forzado TLS. STARTTLS explicado.

      Para que se produzca un Handshake en primer lugar, es necesario establecer la conexión entre ambas partes. TLS viene con la opción de dos enfoques diferentes para establecer la comunicación:

      Con TLS Oportunista (Explícito), un cliente de correo electrónico durante un Handshake le dirá a un servidor de correo electrónico que quiere hablar pero en privado. En otras palabras, sugerirá un cambio de una conexión SMTP simple, no encriptada, a una conexión encriptada por TLS. Sin embargo, si el intento falla, iniciará la transmisión en texto plano, sin ninguna encriptación aplicada.

      Con el TLS forzado (implícito), un cliente de correo electrónico exigirá que se hable en privado (y que se utilice la conexión encriptada) Un servidor de correo electrónico responderá entonces si tal acuerdo le funciona o no. Si no es compatible con la versión de TLS utilizada por el cliente, no soporta TLS en absoluto o la conexión falla, la transmisión se detendrá y el correo electrónico no avanzará más.

      STARTTLS es el comando SMTP utilizado para iniciar el cambio a una conexión cifrada cuando se utiliza TLS oportunista. A pesar de su nombre, también se puede utilizar para iniciar un cambio a SSL si sólo este protocolo está habilitado para ambos lados.

      Casi todos los clientes de correo electrónico que proporcionan cifrado TLS a sus usuarios ofrecen TLS Oportunista por defecto. A menudo es posible habilitar el TLS forzado a petición del usuario, pero asegúrese de considerar primero los pros y los contras de tal enfoque. La elección se reduce a si quiere asegurar la máxima entregabilidad (TLS oportunista) o la máxima privacidad (TLS forzado). Con el primer enfoque, se arriesga a enviar algunos (probablemente muy pocos) correos electrónicos sin cifrado. Con el segundo, su capacidad de entrega podría sufrir un poco. La elección es suya.

      Encriptación de extremo a extremo

      Otro enfoque para asegurar la comunicación por correo electrónico es con la encriptación de extremo a extremo. Como hemos mencionado anteriormente, SSL/TLS sólo cifra el correo electrónico en su camino entre el cliente de correo electrónico del remitente y su servidor de correo electrónico. Un mensaje se descifra entonces y viaja hasta la bandeja de entrada del destinatario sin ningún tipo de cifrado, siendo vulnerable a los ataques.

      Los métodos de cifrado de extremo a extremo proporcionan un enfoque diferente. Un mensaje se encripta en el dispositivo del remitente antes incluso de que se envíe desde un cliente. A continuación, viaja a través de la red (a menudo encriptado con TLS en el camino, lo que le da una seguridad adicional). Cuando llega al cliente del destinatario, es descifrado por éste. A lo largo de la transferencia, el mensaje está cifrado en todo momento. Incluso si es víctima de un secuestro, los datos serán inútiles para un ladrón.

      Para que el cifrado de extremo a extremo funcione, ambas partes deben ser compatibles con un determinado método de cifrado y tener las claves adecuadas para cifrar/descifrar un mensaje. Supongamos que Charlie (un remitente) quiere enviar un mensaje a María (un destinatario) utilizando el cifrado de extremo a extremo. El proceso sería el siguiente:

      1. María genera una clave pública y una clave privada. A partir de ahora, compartirá la clave pública con cualquiera que esté dispuesto a enviarle un mensaje, pero mantendrá su clave privada… en privado.
      2. Charlie se enteró de la clave pública de Mary y la utiliza para cifrar su mensaje. El contenido de un correo electrónico se convierte en algo llamado texto cifrado, lo que parece un conjunto aleatorio de caracteres.
      3. El mensaje se envía desde el cliente de correo electrónico de Charlie hasta el cliente de Mary, siguiendo los procedimientos estándar. Si alguien viera el mensaje por el camino, sólo vería un texto cifrado.
      4. El mensaje llega y Mary utiliza su clave privada para descifrar el mensaje.
      5. Mary se dio cuenta de que lo que Charlie cifró con tanto cuidado eran los billetes de avión para su viaje sorpresa de cumpleaños. ¡Qué emoción! Inmediatamente después, solicitó la clave pública de Charlie, escribió su respuesta y la cifró con la clave recibida. Él sabrá lo que tiene que hacer, pensó.

        Métodos de encriptación de extremo a extremo más populares

        S/MIME

        Las extensiones de correo de Internet seguras y multipropósito son un método de encriptación muy popular. Se basa en el cifrado asíncrono y, de nuevo, en un conjunto de una clave pública y otra privada. Al igual que en el caso de TLS, el remitente que desea cifrar un mensaje utiliza la clave pública del destinatario. Cuando se recibe un mensaje, el destinatario utiliza su propia clave privada para ver el contenido de un correo electrónico. S/MIME también permite añadir una firma digital a un mensaje de correo electrónico, certificando que usted es realmente el remitente. Esto ayuda a evitar la suplantación de identidad. Este método puede añadirse fácilmente a clientes de correo electrónico populares como Gmail o Outlook.

        PGP

        Pretty Good Privacy (¡tiene que encantar el nombre!) es probablemente el método de encriptación más popular y ha existido desde principios de los 90. No sólo se utiliza para cifrar correos electrónicos, sino también archivos, directorios y particiones de disco enteras. En cuanto al correo electrónico, su funcionamiento no difiere del de S/MIME. También se basa en la combinación de claves privadas y públicas, pero los datos cifrados son aún más difíciles de descifrar. PGP utiliza una mezcla de compresión de datos, criptografía de clave pública y hashing para conseguir una cadena de caracteres casi indescifrable que representa los datos protegidos. Para validar al remitente, su clave privada también se utiliza para certificar la propiedad de una cuenta. Desde 1997, PGP está disponible como un estándar no propietario llamado OpenPGP y todo el mundo es libre de implementarlo en su software.

        Bitmessage

        Bitmessage se conoce a menudo como el «bitcoin de las comunicaciones» y sus usuarios afirman que es mucho más seguro y fácil de usar que los dos métodos anteriores que hemos cubierto. Para enviar mensajes de esta manera, cada usuario crea una dirección de Bitmessage que consta de dos claves: una pública y otra privada. Como en todos los casos anteriores, se utiliza una clave pública para cifrar los mensajes y una privada para encriptarlos. Al descifrar un mensaje, se aplican varios procesos adicionales para certificar que se trata efectivamente de un remitente de mensaje. Estos pueden incluir el hashtag, el mapeo de datos, la «firma» del mensaje, así como proporcionar una «prueba de trabajo».

        Por último, se envía un mensaje a una red pública de miles de usuarios. Cada miembro descarga cada uno de los mensajes recibidos, pero sólo puede descifrar los cifrados con su clave pública. Esto mantiene tanto el cuerpo del mensaje como los metadatos absolutamente seguros y prácticamente imposibles de penetrar tanto para los hackers ocasionales como para las sofisticadas agencias gubernamentales. No hace falta decir que Bitmessage experimentó un crecimiento explosivo después de un escándalo en 2013 que reveló las prácticas de vigilancia del correo electrónico de la NSA.

        Los métodos de encriptación de extremo a extremo son ciertamente más seguros que TLS y deben utilizarse cuando se envían datos confidenciales. Aunque implementar Bitmessage para enviar informes semanales a su supervisor podría ser un poco exagerado, tanto S/MIME como PGP merecen ser considerados. Siempre tenga en cuenta que ambas partes deben ser compatibles con el método utilizado, de lo contrario, la otra parte no necesariamente comprenderá lo que usted realmente tenía en mente.

        Otras consideraciones

        Una vez que haya configurado TLS y/o el cifrado de extremo a extremo, también vale la pena echar un vistazo a cómo equipar sus correos electrónicos con métodos adicionales de autenticación. Se utilizan para evitar la suplantación de su comunicación y también para mejorar la entregabilidad de sus correos electrónicos.

        Los métodos más utilizados son SPF y DKIM.

        El SPF se utiliza para identificar a un remitente cargando en los registros DNS las direcciones IP utilizadas para enviar correos electrónicos en nombre de un determinado dominio. El cliente receptor, antes de entregar un mensaje, comprueba si se ha utilizado la dirección correcta y podría descartar un mensaje si detecta alguna anomalía.

        DKIM, por su parte, es un certificado digital que se envía con un correo electrónico. Permite al destinatario de un mensaje verificar si el contenido de un correo electrónico o las cabeceras no fueron modificadas (falsificadas) durante una transmisión. Una prueba DKIM fallida afecta a la capacidad de entrega de un mensaje y puede ser una razón para que no llegue a la bandeja de entrada.

        DMARC es el más sofisticado de los tres métodos y aprovecha los otros dos para realizar comprobaciones adicionales. Es el único método que, además de ejecutar una prueba, también puede sugerir a un servidor receptor qué hacer si un mensaje no supera una comprobación.

        Merece la pena tener los tres configurados para su dominio. Los cubrimos todos en detalle en artículos separados, compruébalos en los enlaces de arriba.

        Por último, vale la pena comprobar si tu servidor SMTP funciona como se espera. Puedes hacerlo a través de Telnet o utilizar una serie de herramientas que ofrecen este tipo de comprobaciones. Vea nuestro artículo sobre cómo probar el servidor SMTP.

        Si está buscando una forma de probar los correos electrónicos de forma segura, no necesita enviarlos a usuarios reales. Mailtrap crea un servidor SMTP falso que captura todos sus correos electrónicos de prueba sin el riesgo de enviar spam a los usuarios reales. A continuación, puede previsualizar sus mensajes y reenviarlos a bandejas de entrada reales antes de implementarlos en producción.

        Pruebe Mailtrap gratis

        Resumen

        Empezamos diciendo lo vulnerable que es la conexión SMTP. Por suerte, hay un montón de métodos que pueden hacerla realmente segura y muchos ya han sido implementados en varios clientes de correo electrónico. Esperamos que hayas disfrutado de la lectura de este artículo, echa un vistazo a las otras piezas de nuestro blog donde hablamos mucho de las pruebas y envíos de correo electrónico. Hasta la próxima!

        Si te ha gustado este artículo, por favor, comparte y difunde. Te lo agradeceremos mucho.

Dejar una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *