TLS y SSL
Los protocolos Transport Layer Security (TLS) y Secure Sockets Layer (SSL) desempeñan una de las funciones más importantes en la web: proteger nuestras comunicaciones personales de los más decididos pícaros. El mundo de la tecnología ha enfrentado durante mucho tiempo a TLS y SSL, a menudo sin entender sus diferencias y evoluciones, negándose a admitir que estos protocolos son en realidad muy similares.
¿Qué es el protocolo TLS?
TLS es el protocolo más utilizado para asegurar las comunicaciones entre dispositivos en una red. ¿Su objetivo? Garantizar la confidencialidad e integridad de la información transmitida, incluso cuando los propios enlaces de red no son perfectamente fiables. TLS se utiliza más a menudo para asegurar las sesiones entre un navegador y un servidor web, pero también se puede utilizar para las VPN y los chats de vídeo.
La versión 1.0 del protocolo TLS apareció en 1999. Se basaba en gran medida en el protocolo SSL, que había sido desarrollado unos años antes por Netscape. Esta nueva versión recibió un nombre distinto para dejar claro que era un estándar abierto que todas las empresas y proyectos podían utilizar. En ese momento, Netscape utilizaba SSL en su software de servidor web propietario (Netscape Enterprise Server) para cifrar los datos en tránsito. Este protocolo abierto se ha actualizado posteriormente en varias ocasiones. La última versión disponible, TLS 1.3, data de 2018.
¿Qué es el protocolo SSL?
SSL es la primera tecnología utilizada a gran escala para asegurar las comunicaciones en la web. Desarrollado a mediados de los 90 por un equipo de Netscape que incluía a Taher Elgamal, un criptógrafo de renombre, el protocolo sentó las bases de nuestra actual Internet. Sus versiones iniciales presentaban grandes debilidades, pero una vez alcanzada la versión 3.0, pudo soportar el auge del comercio electrónico y otras actividades en línea inimaginables sin encriptación.
Algoritmos, certificados y HTTPS
TLS se diseñó para realizar una tarea sobrehumana: proteger nuestras comunicaciones y transacciones de los hackers más hábiles. Para lograrlo, el protocolo se basa en una serie de tecnologías complejas, algunas de las cuales se añaden o eliminan a medida que surgen vulnerabilidades. He aquí algunos de los más importantes:
Los algoritmos criptográficos convierten la información en texto plano en texto cifrado que sólo pueden ver las partes autorizadas. SSL y TLS utilizan una combinación de algoritmos denominada "suite criptográfica" para proteger el contenido, la integridad y la autenticidad de los mensajes. Las funciones matemáticas de cada algoritmo se evalúan continuamente para detectar posibles vulnerabilidades. Cuando se detectan estas vulnerabilidades, se introducen nuevos algoritmos, lo que ha ocurrido varias veces a lo largo de los años.
Otro vínculo clave en los protocolos TLS y SSL son los certificados. Su objetivo es doble: validar la identidad del sitio al que un usuario intenta conectarse y proporcionar la clave pública de cifrado para descifrar los mensajes cifrados enviados por el sitio.
El Protocolo de Transferencia de Hipertexto Seguro (HTTPS) no es ni más ni menos que la versión segura del Protocolo de Transferencia de Hipertexto (HTTP), que utilizan los navegadores y los servidores web para comunicarse entre sí. TLS y SSL no cambian el funcionamiento subyacente de este protocolo, sino que encapsulan los mensajes HTTP tradicionales en una capa de cifrado. Por tanto, HTTPS es más una combinación de HTTP con TLS o SSL que la denominación de un nuevo protocolo en sí.
La historia de TLS y SSL
Muchos de los estándares y protocolos utilizados hoy en día en Internet se desarrollaron en una época en la que la seguridad informática tenía poca importancia. Esto explica por qué el protocolo IP en la capa de red y el protocolo HTTP que sustenta la Web no incluyen cifrado ni autenticación. La consecuencia directa de esta falta de seguridad es que cualquiera que se interponga entre usted y un servidor web puede espiar e incluso manipular el tráfico. Esto no era un problema real cuando nuestra actividad más sensible era pasar el rato en Lycos e intercambiar arte ASCII con temática de Star Trek. En cambio, nuestras actividades modernas, desde la gestión de nuestras cuentas bancarias hasta la reserva de citas médicas, requieren una mayor seguridad.
A finales de los años 80 y principios de los 90, expertos en informática e investigadores de universidades, agencias gubernamentales y empresas estudiaron dónde y cómo implantar el cifrado manteniendo la compatibilidad con la infraestructura de red y las aplicaciones que ya se utilizaban en todo el mundo. Han considerado varias soluciones y protocolos, pero ninguno de sus intentos iniciales ha cuajado. En cambio, muchos de los conceptos generales que idearon en su momento se trasladaron posteriormente a SSL y luego a TLS.
- 1986-1995: Varios grupos abordan la cuestión de la protección de la información confidencial en tránsito por la red. Se han propuesto varias técnicas, pero la mayor parte del tráfico de Internet se sigue intercambiando en claro.
- 1995: Netscape introduce Secure Sockets Layer (SSL) para asegurar el tráfico web.
- 1999: la seguridad de la capa de transporte (TLS) 1.0, basada en SSL, se convierte en un estándar abierto y en la opción por defecto para proteger los sitios de comercio electrónico y el tráfico de gran volumen.
- 2008: se publica TLS 1.2. Esta nueva versión incluye una mayor seguridad, nuevas suites criptográficas y la posibilidad de determinar el orden de utilización de los algoritmos de seguridad.
- 2012-2017: Crece la preocupación por la vigilancia del tráfico y las escuchas. Se pide que todo el tráfico web esté encriptado. En 2017, Google comienza a incluir el uso del cifrado SSL/TLS en sus criterios de clasificación.
- 2018: Se presenta la versión 1.3 de TLS. Refuerza aún más la privacidad del tráfico. Algunos gobiernos y empresas critican que esta nueva versión va demasiado lejos.
Hoy: TLS 1.2 es la versión mínima aceptable en producción.
Aunque la distinción en sus nombres podría sugerir lo contrario, nunca ha habido realmente un debate "TLS versus SSL". TLS es sólo una evolución natural de SSL. La verdadera diferencia entre ellos radica en sus autores. SSL fue creado por Netscape y originalmente era un producto propietario, mientras que TLS siempre ha sido un estándar abierto desarrollado por el Internet Engineering Task Force (IETF) desde la versión 1.0.
Técnicamente, cada iteración de TLS, desde la versión 1.0 hasta la 1.3, ha corregido las vulnerabilidades de la versión inmediatamente anterior, lo que significa que TLS 1.3 es mucho más seguro que la última versión de SSL. Otros cambios son las mejoras de rendimiento y la eliminación de suites criptográficas cuya seguridad se considera obsoleta.
Certificados TLS y SSL
Es posible que ya esté familiarizado con los certificados SSL. Los certificados digitales juegan un papel tan importante con TLS como con SSL. Lo que pasa es que cuando se introdujo TLS, ya estábamos acostumbrados a hablar de "certificados SSL" y el término se quedó, aunque haya "certificados TLS". Por si la confusión entre los certificados TLS y SSL no fuera suficiente, ambos protocolos se basan técnicamente en certificados X.509, aunque esto casi nunca se menciona.
Se llamen como se llamen, los certificados funcionan todos de la misma manera y desempeñan varias funciones esenciales en la arquitectura de seguridad. En primer lugar, autentifican la identidad del titular. Cuando se conecta a varonis.com, puede estar seguro de que está en el sitio web de Varonis porque el servidor ha presentado a su navegador un certificado. Para confirmarlo, su navegador muestra un icono de candado en la barra de direcciones. Puede ver el certificado haciendo clic en este icono:
Los certificados son emitidos por una organización llamada Autoridad de Certificación (CA). En este ejemplo, el certificado de Varonis fue emitido por GlobalSign. Los navegadores tienen una lista preinstalada de autoridades de confianza, que a su vez tienen un certificado digital firmado por una autoridad raíz. Los certificados también pueden ser autofirmados, pero su navegador generará una alerta. Esta estrategia nunca debe utilizarse en producción, ya que la autofirma no garantiza la autenticidad del certificado.
Además de la autenticación, los certificados permiten el uso inteligente del llamado cifrado asimétrico, tanto con SSL como con TLS. El cifrado asimétrico recibe su nombre del uso de dos claves distintas para cifrar y descifrar los datos. Normalmente, una de estas claves es secreta, mientras que la otra puede compartirse libremente. Esto contrasta con el cifrado simétrico, en el que se utiliza una única clave para cifrar y descifrar. El cifrado simétrico consume muchos menos recursos que su versión asimétrica, pero requiere mantener la clave secreta para garantizar la confidencialidad del mensaje. Esto es problemático cuando estas claves van a ser enviadas a través de un medio no seguro o no confiable, como Internet. Los desarrolladores de SSL/TLS tuvieron una idea para reunir lo mejor de ambos mundos: el cifrado asimétrico permitiría el intercambio de una clave simétrica única en cada sesión de navegación.
Durante la conversación inicial, conocida como "handshake", el cliente y el servidor deciden qué suite criptográfica van a utilizar y luego generan una clave simétrica única utilizando uno de los algoritmos de cifrado asimétrico. Esta clave se utilizará para el resto de la sesión. El uso del cifrado asimétrico durante el apretón de manos impide que la clave de sesión sea fácilmente capturada o adivinada, incluso si el hacker está escuchando el enlace de red. Por supuesto, el proceso es técnicamente un poco más complejo de lo que sugieren estas pocas líneas, pero los conceptos generales no han cambiado desde la aparición de SSL.
¿Debo utilizar TLS o SSL?
Todas las versiones de SSL se consideran ahora obsoletas y no deben utilizarse. Los navegadores modernos consideran que las conexiones SSL, o incluso las realizadas con una versión anterior de TLS, son inseguras, ya que estos protocolos contienen muchas vulnerabilidades conocidas. Sin embargo, la terminología se utiliza de forma muy inconsistente, y el término "SSL" se utiliza muy a menudo como sinónimo de "sistema de comunicaciones web seguras". Por ejemplo, es muy común referirse a los "certificados SSL" en referencia a los certificados utilizados para la criptografía asimétrica, incluso cuando estos certificados se utilizan realmente con las últimas versiones de TLS.
Dejando de lado estas imprecisiones, es importante desactivar el soporte de todas las versiones de SSL en los servidores web y otras aplicaciones. Si no lo hace, estará infringiendo muchas normas de seguridad, incluida la PCI DSS. Más allá de los problemas de cumplimiento, SSL y las primeras versiones de TLS contienen vulnerabilidades lo suficientemente graves como para que ya no proporcionen una protección eficaz para las comunicaciones.
El protocolo TLS por sí solo no es suficiente
TLS, y antes SSL, contribuyen en gran medida a la seguridad de nuestras comunicaciones, pero no son perfectos. Esos pequeños candados en la barra de direcciones de su navegador sólo garantizan que la conexión es segura: no se puede deducir nada sobre el contenido transmitido a través de esa conexión. El malware se transmite regularmente a través de TLS/SSL, y el uso de la encriptación puede incluso dificultar la tarea de las soluciones de seguridad. Además, los protocolos TLS y SSL sólo afectan a los datos en tránsito y no protegen en absoluto los datos almacenados.
Como siempre, lo mejor es ver la seguridad desde diferentes perspectivas. El uso de TLS para cifrar los datos confidenciales es algo positivo, pero también es importante tomar medidas para reducir el riesgo general y seguir las buenas prácticas, como la actualización de los sistemas operativos y el uso de software de seguridad para puntos finales.