¿Qué es una clave de sesión? Claves de sesión y protocolos de enlace TLS

El protocolo TLS (históricamente conocido como "SSL") utiliza tanto criptografía asimétrica/de clave pública como simétrica, y hay que generar nuevas claves para la encriptación simétrica en cada sesión de comunicación. Estas claves se denominan "claves de sesión".

Metas de aprendizaje

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

  • Más información sobre qué es una sesión, qué es una clave y cuándo hay que crear nuevas claves de sesión
  • Entender la diferencias entre criptografía asimétrica y simétrica
  • Más información sobre cómo el protocolo de encriptación SSL/TLS utiliza ambos tipos de criptografía

Contenido relacionado


¿Quieres saber más?

Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.

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 una clave de sesión?

Una clave de sesión es cualquier clave criptográfica simétrica utilizada para encriptar una sola sesión de comunicación. En otras palabras, es una clave temporal que solo se utiliza una vez, durante un tramo de tiempo, para encriptar y descifrar datos enviados entre dos partes; las futuras conversaciones entre ambos se encriptarían con claves de sesión diferentes. Una clave de sesión es como una contraseña que alguien restablece cada vez que se conecta.

En TLS (históricamente conocido como "SSL" ), las dos partes que se comunican (el cliente y el servidor) generan claves de sesión al inicio de cualquier sesión de comunicación, durante el protocolo de enlace TLS. La RFC para TLS oficial no llama realmente a estas claves "claves de sesión", pero funcionalmente es exactamente lo que son.

¿Qué es una sesión?

Una sesión es básicamente una conversación entre dos partes. Una sesión tiene lugar en una red, y empieza cuando dos dispositivos se reconocen mutuamente y abren una conexión virtual. Termina cuando los dos dispositivos han obtenido la información que necesitan el uno del otro y envían los mensajes de "cerrar_notificar", finalizando la conexión, como si dos personas se estuvieran enviando mensajes de texto y cerraran la conversación diciendo: "Hablamos más tarde." La conexión también puede terminar debido a la inactividad, como si dos personas estuvieran enviando mensajes de texto y simplemente dejaran de responderse.

Claves de sesión: tres sesiones, cada una con una nueva clave

Una sesión puede ser un periodo de tiempo determinado, o puede durar tanto como el tiempo en el que las dos partes se estén comunicando. Si es lo primero, la sesión caducará después de un tiempo determinado; en el contexto de la encriptación TLS, los dos dispositivos tendrían entonces que intercambiar información y generar nuevas claves de sesión para reabrir la conexión.

¿Qué es una clave criptográfica?

En criptografía, es habitual hablar de claves (normalmente una pieza de datos corta) para referirse a las entradas especiales de un algoritmo criptográfico. Las claves más habituales son las que se utilizan para la encriptación de datos; sin embargo, existen otros tipos de claves para diferentes objetivos.

Un algoritmo de encriptación de datos usa una clave (secreta) para convertir un mensaje en un texto cifrado, es decir, una versión codificada e ilegible del mensaje. Se puede recuperar el mensaje original a partir del texto cifrado mediante el uso una clave de desencriptación.

En un algoritmo de encriptación simétrica, tanto la clave de encriptación como la de desencriptación son iguales. Por ello, cualquiera que tenga la clave secreta puede encriptar y desencriptar datos, y por ese motivo se suele utilizar el término de claves simétricas.

Por el contrario, en un algoritmo de encriptación asimétrica, también conocido como encriptación de clave pública, hay dos claves: una es pública y solo puede utilizarse para encriptar datos, mientras que la otra permanece privada y solo se usa para desencriptar textos cifrados.

¿HTTPS utiliza criptografía simétrica o asimétrica?

HTTPS, que es HTTP en combinación con el protocolo TLS, utiliza ambos tipos de criptografía. Todas las comunicaciones sobre TLS comienzan con un protocolo de enlace TLS. La criptografía asimétrica es fundamental para que funcione el protocolo de enlace TLS.

Durante el transcurso de un protocolo de enlace TLS, los dos dispositivos que se comunican establecerán las claves de sesión, y estas se utilizarán para la encriptación simétrica durante el resto de la sesión (a menos que los dispositivos decidan actualizar sus claves durante la sesión). Lo normal es que los dos dispositivos que se comunican sean un cliente, o un dispositivo de usuario como un portátil o un teléfono inteligente, y un servidor, que es cualquier servidor web que aloja un sitio web. (Para más información, consulta ¿Qué es el modelo cliente-servidor?)

En el protocolo de enlace TLS, el cliente y el servidor también:

  • Negocian qué algoritmos criptográficos utilizar (haciéndolo de forma segura mediante criptografía asimétrica)
  • Autentican la identidad del servidor con su certificado TLS (mediante el uso de criptografía asimétrica)

¿Qué es el "secreto maestro" en un protocolo de enlace TLS? ¿Cómo se relaciona con las claves de sesión?

El secreto maestro es el resultado de combinar una cadena de datos aleatorios enviada por el cliente, datos aleatorios enviados por el servidor y otra cadena de datos conocida como "secreto premaestro" mediante un algoritmo. El cliente y el servidor cuentan cada uno con esos tres mensajes, por lo que deberían llegar al mismo resultado para el secreto maestro.

A continuación, el cliente y el servidor utilizan el secreto maestro para calcular varias claves de sesión que solo se utilizarán en esa sesión. Deberían terminar con las mismas claves de sesión.

Más información sobre cómo funciona TLS: ¿Qué ocurre en un protocolo de enlace TLS?