¿Qué es un protocolo de enlace TLS?
TLS es un protocolo de encriptación y autenticación diseñado para proteger las comunicaciones en Internet. Un protocolo de enlace TLS es el proceso que inicia una sesión de comunicación que utiliza TLS. Durante un protocolo de enlace TLS, las dos partes que se comunican intercambian mensajes para reconocerse y verificarse entre sí, establecer los algoritmos de criptografía que utilizarán y acordar las claves de sesión. Los protocolos de enlace TLS son una parte fundamental del funcionamiento de HTTPS.
Protocolo de enlace TLS vs. SSL
SSL, o Secure Sockets Layer, fue el protocolo de seguridad original desarrollado para HTTP. Fue sustituido por TLS, o Transport Layer Security, hace algún tiempo. Los protocolos de enlace SSL ahora se denominan protocolos de enlace TLS, aunque el nombre "SSL" sigue siendo muy utilizado.
Documento técnico
Optimiza la eficiencia de los certificados TLS
Guía
La guía Zero Trust para proteger el acceso a las aplicaciones
¿Cuándo se produce un protocolo de enlace TLS?
Un protocolo de enlace TLS tiene lugar cada vez que un usuario navega a un sitio web a través de HTTPS y el navegador comienza a consultar el servidor de origen del sitio web. También se produce siempre que cualquier otra comunicación utilice HTTPS, incluidas las llamadas a la API y las consultas al DNS sobre HTTPS.
Los protocolos de enlace TLS se producen después de que se haya abierto una conexión TCP mediante un protocolo de enlace TCP.
SSL seguro
Se incluye un SSL gratis en todos los planes de Cloudflare
¿Qué ocurre durante un protocolo de enlace TLS?
Durante el transcurso de un protocolo de enlace TLS, el cliente y el servidor harán juntos lo siguiente:
- Especificar qué versión de TLS (TLS 1.0, 1.2, 1.3, etc.) van a utilizar.
- Decidir qué conjuntos de cifrado (ver más abajo) van a utilizar.
- Autenticar la identidad del servidor mediante la clave pública del servidor y la firma digital de la autoridad de certificación SSL.
- Generar claves de sesión para poder utilizar el cifrado simétrico una vez finalizado el protocolo de enlace.
¿Cuáles son los pasos de un protocolo de enlace TLS?
Los protocolos de enlace TLS son una serie de datagramas, o mensajes, que intercambian un cliente y un servidor. Un protocolo de enlace TLS implica varios pasos, ya que el cliente y el servidor intercambian la información necesaria para completar el protocolo de enlace y permitir una conversación posterior.
Los pasos exactos de un protocolo de enlace TLS variarán según el tipo de algoritmo de intercambio de claves utilizado y de los conjuntos de cifrado compatibles con ambas partes. El algoritmo de intercambio de claves RSA, aunque ahora se considera que no es seguro, se utilizaba en las versiones de TLS anteriores a la 1.3. A grandes rasgos es como sigue:
- El mensaje de "hola del cliente": el cliente inicia el protocolo de enlace enviando un mensaje "hola" al servidor. El mensaje incluirá la versión de TLS que admite el cliente, los conjuntos de cifrado compatibles y una cadena de bytes aleatorios conocida como "cliente aleatorio."
- El mensaje de "hola del servidor": en respuesta al mensaje de hola del cliente, el servidor envía un mensaje que contiene el certificado SSL del servidor, el conjunto de cifrado elegido por este, y el "servidor aleatorio", otra cadena aleatoria de bytes que genera el servidor.
- Autenticación: el cliente verifica el certificado SSL del servidor con la autoridad certificadora que lo emitió. De este modo, se confirma que el servidor es quien dice ser, y que el cliente está interactuando con el propietario real del dominio.
- El secreto premaster: el cliente envía otra cadena de bytes aleatoria, el "secreto premaster." El secreto premaster se cifra con la clave pública y solo puede ser descifrado con la clave privada por el servidor. (El cliente obtiene la clave pública del certificado SSL del servidor).
- Clave privada utilizada: el servidor descifra el secreto premaster.
- Claves de sesión creadas: tanto el cliente como el servidor generan claves de sesión a partir del cliente aleatorio, el servidor aleatorio y el secreto premaster. Deberían llegar a los mismos resultados.
- El cliente está listo: el cliente envía un mensaje "terminado" que está cifrado con una clave de sesión.
- El servidor está listo: el servidor envía un mensaje "terminado" cifrado con una clave de sesión.
- Encriptación simétrica segura conseguida: el protocolo de enlace se ha completado, y la comunicación continúa utilizando las claves de sesión.
Todos los protocolos de enlace TLS utilizan la criptografíaaasimétrico (la clave pública y la privada), pero no todos utilizan la clave privada en el proceso de generación de claves de sesión. Por ejemplo, un protocolo de enlace Diffie-Hellman efímero procede como sigue:
- Hola del cliente: el cliente envía un mensaje de hola del cliente con la versión del protocolo, el cliente aleatorio y una lista de conjuntos de cifrado.
- Hola del servidor: el servidor responde con su certificado SSL, su conjunto de cifrado seleccionado y el servidor aleatorio. A diferencia del protocolo de enlace RSA descrito anteriormente, en este mensaje el servidor también incluye lo siguiente (paso 3):
- Firma digital del servidor: el servidor calcula una firma digital de todos los mensajes hasta ese momento.
- Firma digital confirmada: el cliente verifica la firma digital del servidor, confirmando que el servidor es quien dice ser.
- Parámetro DH del cliente: el cliente envía su parámetro DH al servidor.
- El cliente y el servidor calculan el secreto premaster: en lugar de que el cliente genere el secreto premaster y lo envíe al servidor, como en un protocolo de enlace RSA, el cliente y el servidor utilizan los parámetros DH que han intercambiado para calcular un secreto premaster coincidente por separado.
- Claves de sesión creadas: ahora, el cliente y el servidor calculan las claves de sesión a partir del secreto premaster, el aleatorio del cliente y el aleatorio del servidor, como en un protocolo de enlace RSA.
- El cliente está listo: igual que con un protocolo de enlace RSA.
- El servidor está listo.
- Se ha conseguido una encriptación simétrica segura.
*Parámetro DH: DH significa Diffie-Hellman. El algoritmo Diffie-Hellman utiliza cálculos exponenciales para llegar al mismo secreto premaster. El servidor y el cliente proporcionan cada uno un parámetro para el cálculo, y cuando se combinan dan lugar a un cálculo diferente en cada lado, con resultados que son iguales.
Para leer más sobre la diferencia entre los protocolos de enlace efímeros Diffie-Hellman y otros tipos de protocolos de enlace, y cómo consiguen la confidencialidad directa, consulta ¿Qué es el SSL sin clave?
¿Qué tiene de diferente un protocolo de enlace en TLS 1.3?
TLS 1.3 no es compatible con RSA, ni otros paquetes de encriptación ni parámetros vulnerables a los ataques. También acorta el protocolo de enlace TLS, lo cual hace que un protocolo de enlace TLS 1.3 sea más rápido y más seguro.
Los pasos básicos de un protocolo de enlace TLS 1.3 son:
- Hola del cliente: el cliente envía un mensaje de hola del cliente con la versión del protocolo, el cliente aleatorio y una lista de conjuntos de cifrado. Ya que se ha eliminado la compatibilidad con conjuntos de cifrado inseguros en TLS 1.3, se ha reducido mucho el número de conjuntos de cifrado posibles. El hola del cliente también incluye los parámetros que se utilizarán para calcular el secreto premaster. En esencia, el cliente asumen que conoce el método de intercambio de claves preferido por el servidor (lo cual, debido a la lista simplificada de conjuntos de cifrado, probablemente sea así). Esto reduce la longitud total del protocolo de enlace, una de las diferencias importantes entre los protocolos de enlace TLS 1.3 y los protocolos de enlace TLS 1.0, 1.1 y 1.2.
- El servidor genera el secreto maestro: en este punto, el servidor ha recibido el cliente aleatorio y los parámetros y conjuntos de cifrado del cliente. Ya tiene el servidor aleatorio, ya que puede generarlo por sí mismo. Por tanto, el servidor puede crear el secreto maestro.
- Hola del servidor y "Terminado": el hola del servidor incluye el certificado del servidor, la firma digital, el servidor aleatorio y el conjunto de cifrado elegido. Debido a que ya tiene el secreto maestro, también envía un mensaje de "Finalizado".
- Pasos finales y "Finalizado" del cliente: el cliente verifica la firma y el certificado, genera el secreto maestro y envía el mensaje de "Finalizado".
- Se ha conseguido una encriptación simétrica segura.
Modo 0-RTT para reanudar la sesión
TLS 1.3 también es compatible con una versión todavía más rápida del protocolo de enlace TLS, que no requiere ningún viaje de ida y vuelta, o comunicación de ida y vuelta entre el cliente y el servidor. Si el cliente y el servidor se han conectado antes (por ejemplo, si el usuario ha visitado antes el sitio web), cada uno puede derivar otro secreto compartido de la primera sesión, conocido como "secreto principal de reanudación". El servidor también envía al cliente algo llamado ticket de sesión durante esta primera sesión. El cliente puede utilizar este secreto compartido para enviar datos encriptados al servidor en su primer mensaje de la siguiente sesión, junto con ese ticket de sesión. Y el TLS se reanuda entre el cliente y el servidor.
¿Qué es un conjunto de cifrado?
Un conjunto de cifrado es un grupo de algoritmos que se utilizan para establecer una conexión de comunicaciones segura. Hay una serie de conjuntos de cifrado de amplio uso, y una parte esencial del protocolo de enlace TLS es acordar qué conjunto de cifrado se utilizará para este protocolo.
Para obtener más información sobre TLS/SSL, consulta ¿Cómo funciona SSL?