TLS es un protocolo de seguridad que ofrece privacidad e integridad de datos para las comunicaciones en Internet. La implementación de TLS es una práctica estándar en el diseño de aplicaciones web seguras.
Después de leer este artículo podrás:
Contenido relacionado
Suscríbase a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar enlace del artículo
Transport Layer Security, o TLS, es un protocolo de seguridad ampliamente adoptado, diseñado para facilitar la privacidad y la seguridad de los datos en las comunicaciones por Internet. Un caso de uso primario de TLS es la encriptación de las comunicaciones entre aplicaciones web y servidores, como los navegadores que cargan un sitio web. TLS también puede usarse para encriptar otras comunicaciones como el correo electrónico, los mensajes y la voz sobre IP (VoIP). En este artículo nos centraremos en el papel de TLS en la seguridad de las aplicaciones web.
TLS fue propuesto por el Grupo de trabajo de ingeniería de Internet (IETF, por sus siglas en inglés), una organización de estandarización internacional. La primera versión del protocolo se publicó en 1999. La versión más reciente es TLS 1.3, que se publicó en 2018.
TLS evolucionó a partir de un protocolo de encriptación anterior llamado Secure Sockets Layer (SSL), que fue desarrollado por Netscape. La versión 1.0 de TLS comenzó en realidad a desarrollarse como la versión 3.1 de SSL, pero el nombre del protocolo se cambió antes de su publicación para indicar que ya no estaba asociado con Netscape. Debido a su historia, a veces los términos TLS y SSL se usan indistintamente.
HTTPS es una implementación de la encriptación TLS en el protocolo HTTP, usado por todos los sitios web así como otros servicios web. Todos los sitios web que usan HTTPS emplean por tanto la encriptación TLS.
La encriptación TLS puede ayudar a proteger las aplicaciones web de las fugas 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.
Hay tres componentes principales en las funciones del protocolo TLS: encriptación, autenticación e integridad.
Para que un sitio web o aplicación use TLS, debe tener un certificado TLS instalado en su servidor de origen (el certificado también se conoce como "certificado SSL" debido a la confusión en los nombres mencionada anteriormente). Los certificados TLS son emitidos por una autoridad de certificación para la persona o empresa propietaria de un dominio. El certificado contiene información importante acerca de la propiedad del dominio, así como la clave pública del servidor. Ambas son necesarias para validar la identidad del servidor.
La conexión TLS se inicia usando una secuencia conocida como protocolo de enlace TLS. Cuando un usuario navega a un sitio web que usa TLS, se inicia el protocolo de enlace TLS entre el dispositivo del usuario (también conocido como dispositivo cliente) y el servidor web.
Durante el protocolo de enlace TLS, el dispositivo del usuario y el servidor web:
El protocolo de enlace TLS establece un conjunto de cifrado para cada sesión de comunicación. El conjunto de cifrado es una serie de algoritmos que especifica detalles tales como qué claves de encriptación o claves de sesión se usarán para una sesión en concreto. TLS puede asignar las claves de sesión a través de un canal no 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. Se lleva a cabo usando claves públicas. Estas son claves de encriptación unidireccionales, con las cuales cualquiera puede descodificar los datos previamente encriptados con la clave privada del servidor para comprobar su autenticidad. Sin embargo, 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 los datos se han encriptado y autenticado, se firman con un código de autenticación de mensajes (MAC). El destinatario pueden entonces verificar el MAC para asegurarse de la integridad de los datos. Puede compararse con el cierre de garantía de un jarabe; el consumidor sabe que nadie ha abierto la medicina porque el cierre está intacto cuando lo compra.
La última versión de TLS apenas impacta el rendimiento de las aplicaciones web.
Dada la complejidad del proceso para establecer una conexión TLS, esta emplea tiempo de carga y potencia computacional. El cliente y el servidor deben comunicarse varias veces antes de transmitir datos, lo cual consume preciosos milisegundos de tiempo de carga de las aplicaciones web, así como algo de memoria del cliente y el servidor.
Sin embargo, hay tecnologías que ayudan a mitigar la posible latencia creada por un protocolo de enlace TLS. Una es TLS False Start, que permite que el servidor y el cliente empiecen a transmitir datos antes de que se complete el protocolo de enlace TLS. Otra tecnología para acelerar TLS es TLS Session Resumption, que permite que los clientes y los servidores que se han comunicado previamente utilicen un protocolo de enlace abreviado.
Estas mejoras han contribuido a que el protocolo TLS sea muy rápido y no afecte a los tiempos de carga de manera perceptible. En cuanto a los costes computacionales asociados al protocolo TLS, son casi insignificantes con respecto a los estándares actuales.
TLS 1.3, lanzado en 2018, es aún más rápido. Los protocolos de enlace en TLS 1.3 solo requieren un recorrido de ida y vuelta (o comunicación bidireccional) en lugar de dos, acortando el proceso unos milisegundos. Cuando el usuario se ha conectado a un sitio web con anterioridad, el protocolo de enlace TLS no hace ningún recorrido de ida y vuelta, agilizándose aún más.
Cloudflare ofrece certificados TLS/SSL gratuitos a todos los usuarios. Quien no use Cloudflare tendrá que adquirir un certificado SSL de una autoridad de certificación, habitualmente previo pago, e instalarlo en sus servidores de origen.
Para más información acerca del funcionamiento de los certificados TLS/SSL, consulta ¿Qué es un certificado SSL?