Estos son los conceptos básicos de qué es y cómo funciona SSL/TLS y qué viene después. Y por qué es hora de actualizar a TLS 1.3.
El protocolo TLS encripta el tráfico de Internet de todos los tipos, posibilitando la comunicación segura por Internet (y, por lo tanto, el comercio por Internet). Estos son los conceptos básicos que usted debe conocer.
Desde los primeros días de la web, el protocolo SSL y su descendiente, TLS, han proporcionado el cifrado y la seguridad que hacen posible el comercio moderno en Internet. La siguiente versión del protocolo, TLS 1.3, pronto estará finalizada, y la mayoría de las personas que dirigen un sitio web querrán actualizar, ya que los ciberdelincuentes se están poniendo al día.
1. 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ó.
2. 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) y se le dio un nuevo nombre: Transport Layer Security o TLS. Como señala 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; usted sabe que su navegador está conectado a través de TLS si la URL en su dirección comienza con “https” (usted puede ver que adictec.com tiene el protocolo TLS), y hay un indicador con un candado que le dice que la conexión es segura, como en esta captura de pantalla de Chrome:
Pero TLS también puede ser utilizado por otras aplicaciones, incluido el correo electrónico y usenet (Users Network).
3. Cómo funciona TLS
La encriptación es necesaria 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 cifrar los datos, pero necesita la clave privada para descifrar eso. Las dos claves están relacionadas entre sí por alguna fórmula matemática compleja que es difícil de aplicar 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 clave 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 cualquier otra persona 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 se 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.
La encriptación usando una clave compartida se llama criptografía simétrica,y es mucho menos intensivo computacionalmente 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, ya que es el momento en que las dos computadoras que se comunican se presentan entre sí, y es el “corazón” del protocolo TLS.
4. Proceso de TLS handshake
El proceso de TLS handshake 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.
- El cliente contacta al 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 suites de cifrado admitidos, selecciona uno y le hace saber al servidor que ambos lo usarán.
- El servidor luego proporciona su certificado digital, un documento electrónico emitido por una autoridad externa 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.
- Usando 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 intercambio de claves Diffie-Hellman 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 o handshake para establecer una nueva clave de sesión cuando se restablezca la comunicación.
5. TLS 1.2 y Vulnerabilidades
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 permitió el paso de 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 en la mitad de la 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.
6. 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.
¡Si te ha gustado el artículo, compártelo! 😉