Protocolo de protocolo de enlace TLS
El protocolo de protocolo de enlace de seguridad de la capa de transporte (TLS) es responsable de la autenticación y el intercambio de claves necesarios para establecer o reanudar sesiones seguras. Al establecer una sesión segura, el protocolo de protocolo de enlace administra lo siguiente:
- Negociación del conjunto de cifrado
- Autenticación del servidor y, opcionalmente, el cliente
- Intercambio de información de clave de sesión.
Negociación del conjunto de cifrado
El cliente y el servidor realizan contacto y eligen el conjunto de cifrado que se usará a lo largo de su intercambio de mensajes.
Authentication
En TLS, un servidor demuestra su identidad al cliente. Es posible que el cliente también tenga que demostrar su identidad en el servidor. PKI, el uso de pares de claves públicas y privadas, es la base de esta autenticación. El método exacto utilizado para la autenticación viene determinado por el conjunto de cifrado negociado.
Intercambio de claves
El cliente y el servidor intercambian números aleatorios y un número especial denominado secreto premaestro. Estos números se combinan con datos adicionales que permiten al cliente y al servidor crear su secreto compartido, denominado Secreto maestro. El cliente y el servidor usan el secreto maestro para generar el secreto MAC de escritura, que es la clave de sesión que se usa para el hash y la clave de escritura, que es la clave de sesión que se usa para el cifrado.
Establecimiento de una sesión segura mediante TLS
El protocolo de protocolo de enlace TLS implica los pasos siguientes:
- El cliente envía un mensaje "Client hello" al servidor, junto con el valor aleatorio del cliente y los conjuntos de cifrado admitidos.
- El servidor responde enviando un mensaje "Server hello" al cliente, junto con el valor aleatorio del servidor.
- El servidor envía su certificado al cliente para la autenticación y puede solicitar un certificado del cliente. El servidor envía el mensaje "Server hello done".
- Si el servidor ha solicitado un certificado del cliente, el cliente lo envía.
- El cliente crea un secreto premaestro aleatorio y lo cifra con la clave pública del certificado del servidor y envía el secreto premaestro cifrado al servidor.
- El servidor recibe el secreto premaestro. Cada servidor y cliente generan el secreto maestro y las claves de sesión en función del secreto premaestro.
- El cliente envía la notificación "Cambiar especificación de cifrado" al servidor para indicar que el cliente comenzará a usar las nuevas claves de sesión para aplicar un algoritmo hash y cifrar mensajes. El cliente también envía el mensaje "Client finished".
- El servidor recibe "Cambiar especificación de cifrado" y cambia su estado de seguridad de la capa de registro al cifrado simétrico mediante las claves de sesión. El servidor envía el mensaje "Server finished" al cliente.
- El cliente y el servidor ahora pueden intercambiar datos de aplicación a través del canal protegido que han establecido. Todos los mensajes enviados desde el cliente al servidor y desde el servidor al cliente se cifran mediante la clave de sesión.
Reanudación de una sesión segura mediante TLS
El cliente envía un mensaje "Client hello" mediante el identificador de sesión de la sesión que se va a reanudar.
El servidor comprueba la memoria caché de sesión de un identificador de sesión coincidente. Si se encuentra una coincidencia y el servidor puede reanudar la sesión, envía un mensaje "Server hello" con el identificador de sesión.
Nota
Si no se encuentra una coincidencia de identificador de sesión, el servidor genera un nuevo identificador de sesión y el cliente y el servidor TLS realizan un protocolo de enlace completo.
El cliente y el servidor deben intercambiar mensajes de "Cambiar especificación de cifrado" y enviar mensajes "Cliente finalizado" y "Servidor finalizado".
El cliente y el servidor ahora pueden reanudar el intercambio de datos de la aplicación a través del canal seguro.