TLS: cómo se encripta en Internet
En los primeros días de Internet, algunos aspectos, como la seguridad de los datos, no eran tan importantes como hoy en día. Toda la comunicación se transmitía de un ordenador a otro de forma abierta y sin cifrar. Podríamos compararlo con una postal: cualquier cartero puede leerla.
El TLS protocol, también conocido como SSL/TLS, introdujo el cifrado de los contenidos transmitidos. Para continuar con la analogía, dicho cifrado sería el equivalente a un sobre cerrado que solo su legítimo destinatario puede leer.
El TLS protocol, también conocido como SSL/TLS, introdujo el cifrado de los contenidos transmitidos. Para continuar con la analogía, dicho cifrado sería el equivalente a un sobre cerrado que solo su legítimo destinatario puede leer.
¿Qué es TLS?
TLS es el acrónimo de Transport Layer Security, que se traduce al español como seguridad de la capa de transporte. Esta denominación hace referencia a la capa de transporte del modelo TCP/IP. TLS es un proceso que encripta los flujos de datos de Internet para que solo sus legítimos destinatarios puedan leerlos. Anteriormente se conocía como SSL (Secure Socket Layer). Dado que esta abreviatura sigue siendo más popular que TLS, es habitual que nos refiramos a TLS con la doble denominación SSL/TLS.
¿Cómo funciona TLS?
TLS encripta por cifrado simétrico todo el tráfico de datos que se realiza a través de TCP.
Encuentra información exhaustiva sobre métodos de cifrado en nuestra guía.
Aunque suene fácil en la práctica, la realidad es más complicada. El problema principal es que el servidor debe comunicar la clave al cliente y, además, debe hacerlo antes de que la comunicación se asegure con TLS. Si envías habitualmente archivos cifrados por correo, conocerás este problema: cifras un archivo y después debes compartir la contraseña con el destinatario, por ejemplo, por teléfono.
Para resolver este problema, el protocolo TLS utiliza el siguiente método:
Para resolver este problema, el protocolo TLS utiliza el siguiente método:
- Cuando el cliente, por ejemplo, un navegador web, contacta con el servidor web, este le envía primero su certificado. Este certificato SSL prueba que el servidor es auténtico y no está simulando una identidad falsa.
- El cliente comprueba la validez del certificado y envía al servidor un número aleatorio cifrado con la clave pública (public key) del servidor.
- A partir de ese número aleatorio, el servidor genera la clave de sesión (session key) con la que debe encriptarse la comunicación. Dado que el número aleatorio procede del cliente, este puede estar seguro de que la clave de sesión se origina realmente en el servidor contactado.
- El servidor remite la clave de sesión al cliente de forma cifrada. Este cifrado se realiza mediante el protocolo criptográfico Diffie-Hellmann.
- Ahora, ambas partes pueden enviar sus datos de forma segura con la clave de sesión.
Pros y contras de TLS
TLS es una solución sencilla para hacer más seguro el tráfico de datos en la web, pues no requiere que las partes cifren por sí mismas el contenido, como pueden ser los datos de un formulario. En su lugar, basta con que el tráfico se produzca a través del TLS protocol, independientemente del sistema operativo y de las aplicaciones informáticas que utilicen los involucrados. Durante la transmisión, todos los flujos de datos se cifran de forma automática.
El precio de esta seguridad es una conexión ligeramente más lenta, ya que las etapas del proceso que acabamos de describir —certificado, número aleatorio e intercambio de claves— es muy exigente a nivel computacional.
El precio de esta seguridad es una conexión ligeramente más lenta, ya que las etapas del proceso que acabamos de describir —certificado, número aleatorio e intercambio de claves— es muy exigente a nivel computacional.
Campos de aplicación de TLS
Tal y como hemos explicado, TLS se puede utilizar de forma universal, sin importar la aplicación ni el sistema operativo. Como consecuencia, son muchos los protocolos de aplicación que cuentan con una versión segura de TLS. El esquema de designación es muy simple: cuando el protocolo se comunica por TLS, se coloca la letra S tras del nombre del protocolo.
El ámbito de aplicación más importante de TLS es la World Wide Web o, más concretamente, el protocolo HTTP. Su variante cifrada recibe el nombre de HTTPS.
Otros casos de aplicación habituales son:
El ámbito de aplicación más importante de TLS es la World Wide Web o, más concretamente, el protocolo HTTP. Su variante cifrada recibe el nombre de HTTPS.
Otros casos de aplicación habituales son:
- POP3S: los correos electrónicos desde el servidor se reciben con el protocolo POP3.
- IMAPS: la bandeja de entrada se sincroniza con el servidor utilizando el protocolo IMAP.
- SMTPS: envío de correos electrónicos.
- FTPS: transferencia de archivos a través del protocolo FTP.
- SIPS: telefonía de voz sobre IP utilizando el protocolo SIP.
- IRCS: chats cifrados.
Aplicaciones de TLS
Algunas aplicaciones importantes de TLS son:
- OpenSSL: de lejos, su aplicación más habitual, ya que la mayoría de páginas web utilizan HTTPS.
- GnuTLS: Desarrollada por la Free Software Foundation.
- LibreSSL: Desarrollada por OpenBSD.
- NSS: Desarrollada por Network Security Services.
- BoringSSL: Desarrollada por Google.
- Cryptlib: Desarrollada por Peter Gutmann.
- Botan: Licencia de BSD, desarrollada por Jack Lloyd.
- JSSE: Desarrollada por Java Secure Socket Extension y Oracle.
- S2n: Desarrollada por Amazon.
Ataques conocidos a TLS
TLS no está totalmente a salvo de los ataques y de las filtraciones. Algunos puntos de ataque conocidos son:
- Errores de programación: como el famoso agujero Heartbleed, un grave error de programación en las primeras versiones de OpenSSL, que se corrigió en 2014.
- Encriptación débil: como consecuencia de las restricciones estadounidenses de exportación de la criptografía, se desarrollaron versiones exportables más fáciles de descifrar que las originales.
- Ataques de compresión: utilizar la compresión HTTP en vez de la compresión TLS hace que a los piratas informáticos les resulte más fácil adivinar el contenido cifrado con TLS mediante distintos procesos.
- El ataque BEAST afectó a la versión 1.0 de TLS y ya se describió en 2014. Las versiones actuales de TLS son más seguras frente a ese tipo de ataques.
- El ataque Padding Oracle se descubrió en 2002 y no se corrigió hasta la versión 3.0 de SSL. La versión actual 1.3 de TLS no se ve afectada.