TLS vs. SSL: Evolución, diferencias y buenas prácticas

Si alguna vez has tenido que lidiar con la seguridad en Internet, es probable que te hayas encontrado con los términos TLS y SSL.
Estas siglas representan dos pilares clave en el ámbito de la encriptación de datos y la comunicación segura a través de Internet.
A pesar de su objetivo común, existen claras diferencias entre TLS (Transport Layer Security) y SSL (Secure Sockets Layer).
Este artículo definirá estas diferencias, explorará cómo ambos protocolos sustentan HTTPS y explicará por qué, para la mayoría de los usuarios finales, los matices entre TLS y SSL no son una preocupación significativa.

¿Cuáles son las diferencias entre TLS y SSL?

TLS y SSL son protocolos criptográficos diseñados para cifrar datos durante la comunicación por Internet, garantizando así que cualquier dato transferido entre servidores web y clientes permanezca privado e intacto.
Ambos protocolos emplean una combinación de clave pública y cifrado simétrico para proteger las comunicaciones, pero la diferencia clave radica en su evolución y sus características de seguridad.

Evolución

SSL 1.0 (1994): Fue la primera versión desarrollada por Netscape, pero nunca se hizo pública debido a graves fallos de seguridad.SSL 2.0 (1995): La primera versión pública de SSL, SSL 2.0, se publicó en 1995.
Incluía mejoras con respecto a la versión SSL 1.0, que aún no se había publicado, pero seguía presentando varias vulnerabilidades de seguridad, como problemas con el protocolo de enlace y la posibilidad de ataques de intermediario.

SSL 3.0 (1996): SSL 3.0 fue un rediseño completo de SSL 2.0, que solucionó muchas de las vulnerabilidades de seguridad de su predecesor.
Introdujo características como un proceso de intercambio más seguro y una comprobación de errores mejorada.
A pesar de estas mejoras, SSL 3.0 acabó siendo vulnerable a varios tipos de ataques criptográficos, como el ataque POODLE (Padding Oracle On Downgraded Legacy Encryption), lo que llevó a su desaparición en favor de TLS.

TLS 1.0 (1999): Introducido como actualización de SSL 3.0, TLS 1.0 se diseñó para solucionar algunas de las vulnerabilidades de seguridad presentes en SSL.
Sin embargo, con el tiempo, el propio TLS 1.0 se volvió vulnerable a diversos ataques (como BEAST, y problemas relacionados con el uso de funciones criptográficas más antiguas), lo que llevó al desarrollo de versiones posteriores.

TLS 1.1 (2006): Esta versión introdujo varias mejoras respecto a TLS 1.0, como la protección añadida contra los ataques de encadenamiento de bloques cifrados (CBC) y la introducción de un Vector de Inicialización (IV) explícito para el cifrado en modo CBC.
A pesar de estas mejoras, TLS 1.1 también quedó anticuado con el tiempo debido a la evolución de las normas de seguridad y las vulnerabilidades.

TLS 1.2 (2008): TLS 1.2 supuso una actualización importante, al introducir soporte para algoritmos criptográficos más potentes (como SHA-256) y dejar obsoletos los más débiles.
También añadió flexibilidad al proceso de negociación criptográfica entre clientes y servidores, permitiendo configuraciones más seguras.
TLS 1.2 ha sido ampliamente adoptado y sigue utilizándose, aunque está siendo suplantado gradualmente por TLS 1.3.

TLS 1.3 (2018): La última versión, TLS 1.3, ofrece varias mejoras importantes respecto a TLS 1.2.
Entre ellas se incluyen la reducción de la latencia del «handshake» (que hace que las conexiones se establezcan más rápidamente), garantías de seguridad más sólidas y una mayor privacidad al cifrar una mayor parte del proceso de «handshake».
TLS 1.3 simplifica y racionaliza el protocolo, eliminando la compatibilidad con funciones criptográficas antiguas y menos seguras, y centrándose en métodos de comunicación modernos, eficaces y seguros.

Cómo funcionan TLS y SSL

SSL (Secure Sockets Layer) y TLS (Transport Layer Security) son protocolos criptográficos diseñados para proporcionar una comunicación segura a través de una red, como Internet.
Aunque SSL fue el precursor de TLS, sus marcos operativos son similares, aunque TLS incorpora características y mejoras de seguridad más avanzadas.
Tanto TLS como SSL aseguran los datos en tránsito mediante un proceso conocido como «handshake».
Este «apretón de manos» implica la negociación de claves criptográficas entre el cliente y el servidor antes de la transferencia de cualquier dato sensible.
Los protocolos también autentifican al servidor (y opcionalmente al cliente), garantizando que ambas partes son quienes dicen ser.
A pesar de estas similitudes, TLS incorpora algoritmos de cifrado más potentes y mecanismos mejorados para evitar ataques.
Aquí tienes un resumen de cómo funcionan

El apretón de manos

El proceso comienza cuando un cliente (por ejemplo, un navegador web) inicia una conexión segura con un servidor (por ejemplo, un sitio web).
Este inicio es el comienzo del «apretón de manos TLS», que establece la configuración de seguridad de la sesión.

Autenticación del servidor

El servidor envía su certificado digital al cliente.
Este certificado contiene la clave pública del servidor y está firmado por una Autoridad de Certificación (AC) de confianza.
El cliente comprueba la validez del certificado para asegurarse de que se comunica con el servidor auténtico.

Intercambio de llaves

El cliente y el servidor acuerdan la versión del protocolo que van a utilizar y seleccionan un conjunto de cifrado, que incluye el algoritmo de cifrado, el método de intercambio de claves y la función hash para la sesión.
A continuación, realizan un intercambio de claves, que permite a ambas partes generar de forma segura una clave secreta compartida para cifrar los datos de la sesión.

Establecer una conexión segura

Normalmente, el cliente genera un secreto premaestro y lo encripta con la clave pública del servidor (obtenida del certificado digital del servidor).
Sólo el servidor puede descifrarlo con su clave privada.

Tanto el cliente como el servidor utilizan el secreto premaestro para generar el mismo conjunto de claves de sesión.
These keys include separate encryption and MAC (Message Authentication Code) keys for both client-to-server and server-to-client communication.

Ambas partes intercambian un mensaje finalizadoencriptado con las claves de sesión, para confirmar que el apretón de manos se ha completado y puede comenzar una comunicación segura.

Transferencia segura de datos

Con la conexión segura establecida y las claves de sesión en su lugar, se pueden intercambiar datos.
Los datos se cifran con las claves de sesión antes de enviarlos y se descifran al recibirlos.
Esto garantiza la confidencialidad, ya que sólo el destinatario previsto puede descifrar el mensaje, y la integridad, ya que puede detectarse cualquier manipulación de los datos.

Cualquiera de las partes puede finalizar la sesión de forma segura enviando un cerrar_aviso alerta, asegurando que la sesión se termina sin dejar oportunidades para ataques como el truncamiento.

Principales diferencias y mejoras en TLS

Mientras que SSL sentó las bases, TLS introdujo varias mejoras clave:

Algoritmos de encriptación más potentes: TLS admite algoritmos más robustos y seguros.

Mecanismos de intercambio de claves más seguros: Las mejoras en la forma de intercambiar y verificar las claves ofrecen una mejor protección contra los ataques.

Reanudación de la sesión: Esta función permite a los clientes y servidores almacenar parámetros de sesión para reutilizarlos en futuras conexiones, reduciendo la sobrecarga del apretón de manos en posteriores conexiones seguras.

Protección contra ataques: TLS incluye medidas de protección contra vulnerabilidades conocidas de SSL, como los ataques de «padding oracle».

TLS sigue evolucionando, y TLS 1.3 simplifica el proceso de enlace, mejora la seguridad (eliminando algoritmos obsoletos) y aumenta el rendimiento en comparación con sus predecesores.

¿Por qué se llama Certificado SSL y no Certificado TLS?

El término «certificado SSL» se ha convertido en un término omnipresente, en gran parte debido a la prevalencia histórica de SSL antes de que TLS se convirtiera en la norma.
En la práctica, estos certificados no difieren en función del protocolo (SSL o TLS) que soportan.
En cambio, facilitan la conexión segura que permite cualquiera de los dos protocolos.
El uso continuado de «certificado SSL» es más una cuestión de convención que de precisión técnica.

Por qué debes utilizar TLS

Dadas las vulnerabilidades de seguridad asociadas a SSL 2.0 y 3.0, la comunidad de Internet ha abandonado en gran medida SSL en favor de TLS.
Los navegadores y servidores modernos utilizan protocolos TLS para asegurar las comunicaciones, siendo TLS 1.2 y 1.3 las versiones más ampliamente soportadas y recomendadas.
La desaparición de SSL y TLS 1.0 y 1.1 significa que utilizar TLS 1.2 o superior no sólo es una práctica recomendada, sino a menudo un requisito para cumplir las normas de seguridad.

Como usuario final, la distinción entre TLS y SSL puede parecer técnica y un poco arcana.
Sin embargo, la importancia subyacente es que tus datos permanecen seguros durante la transmisión.
Cuando veas HTTPS en la barra de direcciones de tu navegador, puedes estar seguro de que tu conexión está protegida por TLS, lo que garantiza que tus datos están encriptados y a salvo de escuchas.
Para la gran mayoría de los usuarios, la transición de SSL a TLS ha sido fluida y no ha requerido ninguna acción por su parte.
Los protocolos funcionan entre bastidores para proteger tus actividades en línea, ya estés comprando, realizando operaciones bancarias o simplemente navegando por la web.

Asegúrate de que tu sitio utiliza TLS

Para alinearte con las mejores prácticas de seguridad y rendimiento, es esencial que te asegures de que tu sitio web o aplicación utiliza exclusivamente TLS, en particular las versiones más recientes, como TLS 1.2 y TLS 1.3.
He aquí cómo conseguirlo:

Comprender la compatibilidad de los certificados

En primer lugar, es importante aclarar que el término «certificado SSL» es en cierto modo un término equivocado en el panorama actual de la seguridad.
A pesar del nombre, estos certificados son compatibles tanto con el protocolo SSL como con el TLS.
La distinción no radica en el certificado en sí, sino en cómo está configurado tu servidor para utilizar estos protocolos.

Configuración del servidor

La clave para utilizar TLS está en la configuración de tu servidor.
Aquí es donde especificas qué protocolos debe utilizar tu sitio web al comunicarse con los navegadores.
Para garantizar el uso de TLS, debes desactivar la compatibilidad con los protocolos SSL (SSL 2.0 y 3.0) y activar la compatibilidad con los protocolos TLS, concretamente TLS 1.2 y 1.3.
Esta configuración ayuda a evitar que posibles atacantes exploten las vulnerabilidades conocidas de SSL.

Comprueba el soporte de protocolo de tu sitio web

Herramientas como la Prueba SSL de SSL Labs ofrecen una forma fácil y eficaz de comprobar qué protocolos admite tu servidor.
Introduciendo la URL de tu sitio, puedes recibir un informe completo que detalla el grado de seguridad de tu sitio, el soporte de protocolos y otras características de seguridad.
Esta prueba puede revelar si tu sitio aún admite versiones obsoletas de SSL o TLS, permitiéndote tomar medidas correctivas.

Alojamiento web y soporte TLS

Si utilizas un proveedor de alojamiento gestionado como 10Web, ellos pueden encargarse de esta configuración por ti, a menudo habilitando TLS 1.3 por defecto, aunque también admiten TLS 1.2.
Esto elimina la carga de configurar manualmente tu servidor para TLS.
Sin embargo, si alojas tu sitio en otro lugar o gestionas tu propio servidor, tendrás que consultar la documentación o el panel de control de tu servidor para ajustar la configuración TLS.

Compatibilidad con navegadores

Los navegadores web modernos han eliminado gradualmente la compatibilidad con SSL y versiones antiguas de TLS.
Google Chrome, por ejemplo, dejó de admitir SSL 3.0 en 2014 y ha implementado advertencias para los sitios que utilizan versiones obsoletas de TLS.
Asegurarte de que tu sitio utiliza las últimas versiones de TLS evitará estas advertencias y garantizará la compatibilidad con la mayoría de los navegadores web.

La importancia del TLS

Pasarse a TLS no consiste sólo en evitar las advertencias de los navegadores o el cumplimiento técnico; se trata de proteger la integridad y la privacidad de los datos intercambiados entre tu sitio y sus usuarios.
Las mejoras de TLS con respecto a SSL incluyen algoritmos de cifrado más potentes, procesos de negociación más eficientes y mecanismos para evitar ataques como BEAST (Browser Exploit Against SSL/TLS) y POODLE (Padding Oracle On Downgraded Legacy Encryption).

Reflexiones finales

Aunque puede que tus certificados digitales sigan etiquetados como «SSL», el futuro -y el presente- de la comunicación segura en Internet reside firmemente en TLS.
Al configurar tu servidor para que utilice las últimas versiones de TLS, garantizas la seguridad y el rendimiento de tu sitio web, generando confianza entre tus usuarios y protegiendo sus datos.
Tanto si eres un particular que gestiona un blog personal como una empresa que maneja información confidencial de sus clientes, adoptar TLS es un paso fundamental para asegurar tu presencia en Internet.


Say goodbye to website errors

Share article

Leave a comment

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

Your email address will never be published or shared. Required fields are marked *

Comment*

Name *