TLS es un protocolo de seguridad que ofrece privacidad e integridad de los datos para las comunicaciones de Internet. La implementación de TLS es una práctica estándar en la creación de apps web seguras.
Después de leer este artículo podrás:
Contenido relacionado
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
Transport Layer Security o TLS es un protocolo de seguridad adoptado ampliamente y diseñado para facilitar la privacidad y la seguridad de los datos para las comunicaciones de Internet. Un caso de uso primario de TLS es la encriptación de las comunicaciones entre servidores y aplicaciones web, como cuando los navegadores cargan un sitio web. Asimismo, se puede utilizar el TLS para encriptar otras comunicaciones, tales como correos electrónicos, envío de mensajes, y voz sobre protocolo de Internet (voice over IP, VoIP). En este artículo nos centraremos en el rol del TLS en la seguridad de aplicaciones web.
El Grupo de trabajo de ingeniería de Internet (Internet Engineering Task Force, IETF), una organización internacional de estándares, propuso el TLS y en 1999 se publicó la primera versión del protocolo. La versión más reciente es TLS 1.3, publicada en 2018.
El TLS evolucionó de un protocolo de encriptación anterior denominado Secure Sockets Layer (SSL), desarrollado por Netscape. En realidad, la versión 1.0 de TLS comenzó a desarrollarse como la versión 3.1 de SSL, pero se cambió el nombre del protocolo antes de su publicación para destacar que ya no se lo debía relacionar con Netscape. A causa de su historia, se suelen utilizar los términos TLS y SSL indistintamente.
HTTPS es una implementación de la encriptación de TLS sobre el protocolo HTTP, la cual utilizan todos los sitios web, así como otros servicios web. Cualquier sitio web que utilice HTTPS está, por tanto, empleando una encriptación de TLS.
La encriptación de TLS puede ayudar a proteger las aplicaciones web de la fuga de datos y otros ataques. En la actualidad, el HTTPS protegido por TLS es una práctica estándar de los sitios web. El navegador Google Chrome tomó medidas gradualmente contra los sitios sin HTTPS, y otros navegadores han seguido su ejemplo. Los usuarios habituales de Internet desconfían cada vez más de los sitios web que no cuentan con el icono del candado HTTPS.
Existen tres componentes principales que logra el protocolo TLS: encriptación, autenticación e integridad.
Para que una aplicación o sitio web puedan utilizar el protocolo TLS, deben contar con un certificado TLS instalado en su servidor de origen (el certificado también se conoce como "certificado SSL" a causa de la confusión de nombres mencionada anteriormente). Una autoridad certificada emite el certificado TLS a la persona o comercio dueños de un dominio. El certificado contiene información importante acerca de a quién pertenece el dominio, junto con la clave pública del servidor; tal información es vital para la validación de la identidad del servidor.
Por medio de una secuencia conocida como protocolo de enlace TLS, se inicia una conexión TLS. Cuando un usuario se dirige a un sitio web que utiliza TLS, comienza el protocolo de enlace TLS entre el dispositivo del usuario (o dispositivo del cliente) y el servidor web.
Durante el protocolo de enlace TLS, el dispositivo del cliente y el servidor web:
El protocolo de enlace TLS establece un paquete de cifrado para cada sesión de comunicación. El paquete de cifrado es un conjunto de algoritmos que especifica detalles, tales como qué claves de encriptación o claves de sesión se utilizarán para esa sesión en particular. El TLS puede establecer las claves de sesión coincidentes a través de un canal encriptado, gracias a la tecnología conocida como criptografía de clave pública.
El protocolo de enlace también se encarga de la autenticación que, normalmente, consiste en que el servidor demuestre su identidad al cliente. Esto se realiza por medio de claves públicas. Estas son claves de encriptación que utilizan encriptación de una vía, lo que significa que cualquiera con la clave pública puede descifrar los datos encriptados con la clave privada del servidor para garantizar su autenticidad, pero solo el remitente original puede encriptar los datos con la clave privada. La clave pública del servidor es parte de su certificado TLS.
Una vez que se encriptan y autentican los datos, se firma con un código de autenticación de mensaje (message authentication code, MAC). Luego, el receptor puede verificar el MAC para garantizar la integridad de los datos. Esto es similar a la lámina a prueba de manipulaciones en un frasco de aspirinas: el consumidor sabe que nadie ha alterado su medicación ya que la lámina está intacta al momento de la compra.
Las últimas versiones de TLS apenas influyen en el rendimiento de las aplicaciones web.
Debido a los complejos procesos involucrados en establecer una conexión TLS, se debe contar con una mayor potencia informática y tiempo de carga. El cliente y el servidor se deben comunicar en varias oportunidades antes de transmitir algún dato y eso consume preciados milisegundos de tiempo de carga para las aplicaciones web, así como cierta cantidad de memoria, tanto del cliente como del servidor.
Sin embargo, se implementan tecnologías para ayudar a mitigar la latencia potencial creada por el protocolo de enlace TLS. Una de ellas es el inicio falso TLS, que les permite al servidor y al cliente comenzar a transmitir datos antes de que se complete el protocolo de enlace TLS. Otra tecnología para acelerar el TLS es la reanudación de sesión TLS, que posibilita que los clientes y servidores que se han comunicado con anterioridad utilicen un protocolo de enlace abreviado.
Estas mejoras han ayudado a que el TLS sea un protocolo muy rápido que no debería afectar notablemente los tiempos de carga. En cuanto a los costos informáticos asociados al TLS, son mayormente insignificantes para los estándares actuales.
El protocolo TLS 1.3, lanzado en 2018, ha hecho que el TLS sea aún más rápido. Los protocolos de enlace TLS en la versión 1.3 solo requieren un único recorrido (o comunicación de ida y vuelta), en lugar de dos, lo que acorta el proceso en algunos milisegundos. Cuando el usuario ya se ha conectado a un sitio web, el protocolo de enlace TLS tiene cero recorridos, lo que lo acelera aún más.
Cloudflare ofrece certificados SSL/TLS gratis a todos los usuarios. Aquellos que no utilicen Cloudflare deberán adquirir un certificado SSL por parte de una autoridad certificada, con frecuencia mediante el pago de un cargo, e instalar el certificado en sus servidores de origen.
Para obtener más información sobre cómo funcionan los certificados TLS/SSL, consulta ¿Qué es un certificado SSL?