Llegamos a ustedes gracias a:



Reportajes y análisis

¿Qué es SSL/TLS? (Y por qué es hora de actualizarse a TLS 1.3)

[16/02/2018] Desde los primeros días de la web, el protocolo SSL y su descendiente, TLS, han proporcionado el cifrado y la seguridad que posibilita el comercio moderno por Internet. La historia de estos protocolos durante décadas ha estado marcada por continuas actualizaciones que apuntan a seguir el ritmo de los atacantes cada vez más sofisticados. La siguiente versión principal del protocolo, TLS 1.3, pronto estará finalizada, y la mayoría de las personas que dirigen un sitio web querrán actualizarse, ya que los ciberdelincuentes se están poniendo al día.

¿Qué es SSL?

Secure Sockets Layer, o SSL, era el nombre original del protocolo cuando fue desarrollado a mediados de la década de 1990 por Netscape, la compañía que creó el navegador web más popular en ese momento. SSL 1.0 nunca fue lanzado al público, y SSL 2.0 tenía serios defectos. SSL 3.0, lanzado en 1996, fue completamente renovado, y preparó el escenario para lo que siguió.

¿Qué es TLS?

Cuando se lanzó la siguiente versión del protocolo en 1999, fue estandarizada por el Grupo de trabajo de ingeniería de Internet (IETF, por sus siglas en inglés) y se le dio un nuevo nombre: Transport Layer Security o TLS. Como indican las notas de la especificación TLS, "las diferencias entre este protocolo y SSL 3.0 no son dramáticas". Por lo tanto, no es realmente una cuestión de TLS vs. SSL; más bien, los dos forman una serie de protocolos continuamente actualizados, y a menudo se agrupan como SSL/TLS.

El protocolo TLS encripta el tráfico de Internet de todos los tipos. El más común es el tráfico web; sabe que su navegador está conectado a través de TLS si la URL en su dirección comienza con "https", y hay un indicador con un candado que le dice que la conexión es segura.

Pero TLS también puede ser utilizado por otras aplicaciones, incluido el correo electrónico y usenet.

Cómo funciona TLS

El cifrado es necesario para comunicarse de forma segura a través de Internet: si sus datos no están encriptados, cualquiera puede examinar sus paquetes y leer información confidencial. El método más seguro de encriptación se llama criptografía asimétrica; esto requiere dos claves criptográficas (piezas de información, por lo general, números muy grandes) para que funcionen correctamente, una pública y otra privada. Las matemáticas aquí son complejas; pero en esencia, puede usar la clave pública para encriptar los datos, pero necesita la clave privada para descifrarla. Las dos claves están relacionadas entre sí por alguna fórmula matemática compleja a la que es difícil de aplicarle ingeniería inversa mediante la fuerza bruta. Piense en la clave pública como información sobre la ubicación de un buzón de correo bloqueado con una ranura en el frente, y la clave privada como la llave que desbloquea el buzón de correo. Cualquiera que sepa dónde está el buzón puede poner un mensaje en él; pero para que alguien más lo lea, necesitan la clave privada.

Debido a que la criptografía asimétrica involucra estos difíciles problemas matemáticos, se necesitan muchos recursos informáticos; tanto que, si lo utiliza para encriptar toda la información en una sesión de comunicaciones, su computadora y su conexión se detendrían. TLS soluciona este problema utilizando solo la criptografía asimétrica al comienzo de una sesión de comunicaciones para encriptar la conversación que el servidor y el cliente deben acordar en una sola clave de sesión que usarán para encriptar sus paquetes desde ese momento. El cifrado que utiliza una clave compartida se denomina criptografía simétrica, y es mucho menos intensiva desde el punto de vista informático que la criptografía asimétrica. Debido a que esa clave de sesión se estableció usando criptografía asimétrica, la sesión de comunicación en conjunto es mucho más segura de lo que sería.

El proceso mediante el cual se acuerda la clave de esa sesión se denomina handshake o apretón de manos, ya que es el momento en que las dos computadoras que se comunican se presentan entre sí, y es el núcleo del protocolo TLS.

Proceso de handshake TLS

El proceso de apretón de manos TLS es bastante complejo, y hay una serie de variaciones permitidas por el protocolo. Los siguientes pasos proporcionan un amplio esquema que debería darle una idea de cómo funciona.

  1. El cliente se pone en contacto con el servidor y solicita una conexión segura. El servidor responde con la lista de suites de cifrado (conjuntos de herramientas algorítmicas para crear conexiones encriptadas) que sabe cómo usar. El cliente compara esto con su propia lista de conjuntos de cifrado compatibles, selecciona uno y le hace saber al servidor que ambos lo usarán.
  2. El servidor luego proporciona su certificado digital, un documento electrónico emitido por una autoridad de un tercero que confirma la identidad del servidor. La información más importante en el certificado es la clave criptográfica pública del servidor. El cliente confirma la autenticidad del certificado.
  3. Al utilizar la clave pública del servidor, el cliente y el servidor establecen una clave de sesión que ambos usarán durante el resto de la sesión para encriptar la comunicación. Hay varias técnicas para hacer esto. El cliente puede usar la clave pública para encriptar un número aleatorio que luego se envía al servidor para descifrar, y ambas partes usan ese número para establecer la clave de sesión. Alternativamente, las dos partes pueden usar lo que se llama una clave Diffie-Hellman Exchange para establecer la clave de sesión.

Este artículo en SSL.com tiene un gran diagrama que describe cada paso de comunicación a lo largo del proceso de handshake de TLS.

Como su nombre lo indica, la clave de sesión solo es válida para el curso de una sola sesión de comunicaciones sin interrupción. Si por alguna razón se cortan las comunicaciones entre el cliente y el servidor, debido a un problema de red, por ejemplo, o porque el cliente permanece inactivo durante demasiado tiempo, se requerirá un nuevo apretón de manos para establecer una nueva clave de sesión cuando se restablezca la comunicación.

Vulnerabilidades TLS 1.2 y TLS 1.2

TLS 1.2 es la versión definida más reciente del protocolo, y lo ha sido durante varios años. Estableció una serie de nuevas opciones criptográficas para la comunicación. Sin embargo, al igual que algunas versiones anteriores del protocolo, también permitía el uso de técnicas criptográficas antiguas para admitir computadoras antiguas. Desafortunadamente, eso lo abrió a las vulnerabilidades, ya que esas técnicas más antiguas se han vuelto más vulnerables a medida que pasa el tiempo y la potencia informática se ha vuelto más barata.

En particular, TLS 1.2 se ha vuelto cada vez más vulnerable a los llamados ataques "man-in-the-middle", en los cuales un hacker intercepta paquetes a media comunicación y los envía después de leerlos o alterarlos. También está abierto para los ataques POODLE, SLOTH, y DROWN. Muchos de estos problemas han surgido en los últimos dos años, aumentando el sentido de urgencia para actualizar el protocolo.

TLS 1.3

Afortunadamente, la ayuda está en camino. La versión 1.3 del protocolo TLS, actualmente en borrador, pero que pronto estará finalizada, conecta muchos de estos agujeros descartando la compatibilidad con los sistemas de encriptación heredados. Existe compatibilidad con versiones anteriores en el sentido de que las conexiones volverán a caer en TLS 1.2 si un extremo no es capaz de utilizar los sistemas de encriptación más nuevos en la lista 1.3 aprobada. Sin embargo, si, por ejemplo, un ataque de hombre en el medio intenta forzar un repliegue a 1.2 para husmear en los paquetes, eso se detectará y se interrumpirá la conexión.

Todavía hay servidores que están usando versiones de TLS incluso más antiguas que 1.2, algunas todavía usan el protocolo SSL original. Si su servidor es uno de ellos, debe actualizarlo ahora, y simplemente avanzar y actualizar a la especificación del borrador 1.3.

TLS crimeware

Una última nota sobre TLS y la seguridad: ¡los buenos no son los únicos que lo usan! Muchos ciberdelincuentes usan TLS para cifrar el tráfico de comando y control entre sus servidores y el malware instalado en las computadoras de sus víctimas. Esto termina invirtiendo el estado habitual de las cosas y deja a las víctimas del delito cibernético buscando una forma de descifrar el tráfico. Hay una serie de técnicas para hacer frente a este tipo de ataque cifrado, incluido el uso de metadatos de red sobre el tráfico cifrado para tener una idea de lo que están haciendo los atacantes sin leer nada de eso.