¿Qué ocurre durante 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.

Objetivos de aprendizaje

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

  • Conocer qué es un protocolo de enlace TLS
  • Entender lo que consigue un protocolo de enlace TLS
  • Explicar los pasos de un protocolo de enlace TLS
  • Explorar los diferentes tipos de protocolos de enlace TLS

Copiar enlace del artículo

¿Qué es un 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.

Protocolo de enlace TLS vs. 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 se llaman ahora protocolos de enlace TLS, aunque el nombre "SSL" sigue siendo muy utilizado.

¿Cuándo se produce un protocolo de enlace TLS?

Un protocolo de enlace TLS tiene lugar siempre 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.

¿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 varían en función del tipo de algoritmo de intercambio de claves utilizado y de los conjuntos de cifrado que admitan ambas partes. El algoritmo de intercambio de claves RSA es el más utilizado y es como sigue:

  1. 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."
  2. 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.
  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 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).
  5. Clave privada utilizada: el servidor descifra el secreto premaster.
  6. 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.
  7. El cliente está listo: el cliente envía un mensaje "terminado" que está cifrado con una clave de sesión.
  8. El servidor está listo: el servidor envía un mensaje "terminado" cifrado con una clave de sesión.
  9. 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 el cifrado asimé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:

  1. 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.
  2. 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):
  3. Firma digital del servidor: el servidor utiliza su clave privada para encriptar el cliente aleatorio, el servidor aleatorio y su parámetro DH*. Estos datos encriptados funcionan como la firma digital del servidor, estableciendo que el servidor tiene la clave privada que coincide con la clave pública del certificado SSL.
  4. Firma digital confirmada: el cliente descifra la firma digital del servidor con la clave pública, verificando 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 han intercambiado para calcular un secreto premaster coincidente por separado.
  6. 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.
  7. El cliente está listo: igual que con un protocolo de enlace RSA.
  8. El servidor está listo.
  9. 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é es un conjunto de cifrado?

Es un conjunto de algoritmos de encriptación que se utilizan para establecer una conexión de comunicaciones segura. (Un algoritmo de cifrado 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 uso generalizado, y una parte esencial del protocolo TLS es acordar qué conjunto de cifrado se utilizará para ese protocolo.

Para saber más 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.