¿Qué ocurre en un protocolo de enlace TLS? | Protocolo de enlace SSL

En un protocolo de enlace TLS/SSL, los clientes y los servidores intercambian certificados SSL, requisitos del conjunto de cifrado y datos generados aleatoriamente para crear claves de sesión.

Metas de aprendizaje

Después de leer este artículo podrás:

  • Conocer qué es un protocolo de enlace TLS
  • Comprender lo que logra un protocolo de enlace TLS
  • Explicar los pasos del protocolo de enlace TLS
  • Explorar los distintos tipos de protocolos de enlace TLS

Contenido relacionado


Want to keep learning?

Subscribe to theNET, Cloudflare's monthly recap of the Internet's most popular insights!

Revisa la política de privacidad de Cloudflare para saber más sobre cómo Cloudflare gestiona tus datos personales.

Copiar el enlace del artículo

¿Qué es un protocolo de enlace TLS?

el protocolo de enlace TLS

TLS es un protocolo de encriptació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 la encriptación 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 encriptación que utilizarán y acordar las claves de sesión. Los protocolos de enlace TLS son una parte fundamental del funcionamiento de HTTPS.

Protocolos de enlace TLS en comparación con SSL

SSL, o Secure Sockets Layer, fue el protocolo de encriptación 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.

¿Cuándo se produce el 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 un protocolo de enlace TLS siempre que cualquier otra comunicación utilice HTTPS, incluidas las llamadas API y las consultas de DNS en 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.

¿Qué sucede durante un protocolo de enlace TLS?

Durante un protocolo de enlace TLS, el cliente y el servidor juntos realizarán las siguientes acciones:

  • Especificar que 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 del certificado SSL.
  • Generar claves de sesión para utilizar la encriptación simétrica una vez finalizado el protocolo de enlace.

¿Cuáles son los pasos de los protocolos de enlace TLS?

Los protocolos de enlace TLS son una serie de datagramas o mensajes, intercambiados por 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. En la mayoría de ellos, se utiliza de intercambio de claves RSA. Este es el siguiente:

  1. El mensaje de "hola del cliente": el cliente inicia el protocolo de enlace enviando un mensaje de "hola" al servidor. El mensaje incluirá qué versión de TLS es compatible con la del el cliente, los conjuntos de cifrado compatibles y una cadena de bytes aleatorios conocida como "cadena aleatoria del cliente".
  2. El mensaje "hola del servidor": en respuesta al mensaje "hola" del cliente, el servidor envía un mensaje que contiene el certificado SSL del servidor, el conjunto de cifrado elegido por el servidor y la cadena "aleatoria del servidor", otra cadena de bytes aleatoria generada por el servidor.
  3. 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.
  4. El secreto premaster: el cliente envía una cadena más de bytes aleatorios, el "secreto premaster". El secreto premaster se cifra con la clave pública y solo lo puede descifrar el servidor con la clave privada. (El cliente obtiene la clave pública del certificado SSL del servidor).
  5. Uso de la clave privada: el servidor descifra el secreto premaster.
  6. Creación de claves de sesión: tanto el cliente como el servidor generan claves de sesión a partir de la cadena aleatoria del cliente, la del servidor y el secreto premaster. Deberían llegar a los mismos resultados.
  7. El cliente está listo: envía un mensaje de "finalizado" que está cifrado con una clave de sesión.
  8. El servidor está listo: envía un mensaje de "finalizado" cifrado con una clave de sesión.
  9. Se consigue una encriptación simétrica segura: se completa el protocolo de enlace, y la comunicación continúa utilizando las claves de sesión.

Todos los protocolos de enlace TLS hacen uso de la encriptación asimétrica (la clave pública y la privada), pero no todos utilizarán 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 de la siguiente forma:

  1. Hola del cliente: el cliente envía un mensaje de hola con la versión del protocolo, la cadena aleatoria del cliente y una lista de conjuntos de cifrado.
  2. Hola del servidor: el servidor responde con su certificado SSL, su conjunto de cifrado seleccionado y la cadena aleatoria del servidor. A diferencia del protocolo de enlace RSA descrito anteriormente, en este mensaje el servidor también incluye lo siguiente (paso 3):
  3. Firma digital del servidor: el servidor utiliza su clave privada para encriptar la cadena aleatoria del cliente y la del servidor, y su parámetro DH*. Estos datos cifrados funcionan como la firma digital del servidor, y establecen que el servidor tiene la clave privada que coincide con la clave pública del certificado SSL.
  4. Confirmación de la firma digital: el cliente descifra la firma digital del servidor con la clave pública, y verifica que el servidor controla la clave privada y es quien dice ser. Parámetro DH del cliente: el cliente envía su parámetro DH al servidor.
  5. 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 intercambiaron para calcular un secreto premaster coincidente por separado.
  6. Creación de las claves de sesión: ahora, el cliente y el servidor calculan las claves de sesión a partir del secreto premaster, la cadena aleatoria del cliente y la del servidor, al igual que en un protocolo de enlace RSA.
  7. El cliente está listo: igual que con un protocolo de enlace RSA.
  8. El servidor está listo.
  9. Se consigue una encriptación simétrica segura.

*Parámetro DH: DH son las iniciales de 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 obtener más información sobre la diferencia entre los protocolos de enlace Diffie-Hellman efímeros y otros tipos de protocolos de enlace, y cómo logran la confidencialidad directa, consulta ¿Qué es el SSL sin clave?

¿Qué es un conjunto de cifrado?

Es un grupo de algoritmos de encriptación que se utilizan para establecer una conexión de comunicaciones segura. (Un algoritmo de encriptación es un conjunto de operaciones matemáticas que se realizan sobre los datos para que estos parezcan aleatorios). 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? Para comprobar si un sitio web utiliza TLS correctamente, visita el Centro de diagnóstico de Cloudflare.