Identificadores de Alice ( Alice ), la iniciadora de la sesión | |
Identificador de Bob ( Bob ), el lado desde el que se establece la sesión | |
Identificador de Trent ( Trent ), una parte intermediaria de confianza | |
Las claves públicas de Alice, Bob y Trent | |
Claves secretas de Alice, Bob y Trent | |
Cifrado de datos con la clave de Alice o la clave conjunta de Alice y Trent | |
Cifrado de datos con la clave de Bob o la clave conjunta de Bob y Trent | |
Cifrado de datos con claves secretas de Alice, Bob (firma digital) | |
Número de secuencia de la sesión (para evitar ataques de reproducción) | |
Clave de sesión aleatoria que se utilizará para el cifrado de datos simétrico | |
Cifrado de datos con una clave de sesión temporal | |
Marcas de tiempo añadidas a los mensajes por Alice y Bob respectivamente | |
Números aleatorios ( nonce ) que fueron elegidos por Alice y Bob respectivamente | |
Pares de claves públicas y privadas pregeneradas de Alice, Bob y Trent, respectivamente | |
Par de claves pública/privada de sesión aleatoria que se utilizará para el cifrado asimétrico | |
Firma de datos utilizando la clave privada de Alice, Bob, la parte intermedia ( Trent ) o una clave privada de un par aleatorio, respectivamente | |
Cifrado de datos asimétrico utilizando la clave pública de Alice, Bob, una parte intermedia ( Trent ) o una clave pública de un par aleatorio, respectivamente |
El protocolo Denning-Sacco [1] es un nombre común para los protocolos de distribución de claves de partes confiables simétricos y asimétricos .
En 1981, los empleados de la Universidad de Purdue Dorothy E. Denning y Giovanni Maria Sacco presentaron un ataque al protocolo Needham-Schroeder y propusieron su propia modificación del protocolo basada en el uso de etiquetas de tiempo [2] .
Con el cifrado simétrico , se supone que la clave secreta que pertenece al cliente solo la conocen él y un tercero de confianza: el servidor de autenticación. Durante la ejecución del protocolo, los clientes (Alice, Bob) reciben del servidor de autenticación (Trent) una nueva clave de sesión secreta para cifrar los mensajes mutuos en la sesión de comunicación actual. Considere la implementación del protocolo Denning-Sacco con una clave simétrica [3] :
El primer mensaje de Alice a Trent contiene los identificadores de los participantes en el próximo intercambio: Alice y Bob. Este mensaje se envía en texto sin cifrar:
Trent genera una clave de sesión y le envía a Alice un mensaje encriptado que incluye la ID de Bob, la clave de sesión, la marca de tiempo y un paquete que actúa como certificado de Alice:
Luego, Alice descifra el mensaje de Trent y envía su certificado a Bob :
Al final del protocolo, Alice y Bob tienen una clave de sesión compartida .
Alice y Bob pueden verificar que los mensajes que reciben son válidos comprobando las marcas de tiempo .
En 1997, Gavin Lowe presentó un ataque al protocolo [4] :
Las acciones del atacante llevan a Bob a decidir que Alice quiere establecer una nueva conexión con él.
En el mismo trabajo, Low propuso una modificación de protocolo que proporciona la autenticación de Alice a Bob [4] :
En el marco del protocolo, Bob no confirma de ninguna manera la recepción de una nueva clave de sesión y la capacidad de operar con ella. El mensaje de Alice en el quinto pase podría haber sido interceptado o modificado por un atacante. Pero Alice ya no espera ninguna respuesta de Bob y está segura de que el protocolo se completó con éxito.
Una versión asimétrica del protocolo Denning-Sacco. El servidor de autenticación posee las claves públicas de todos los clientes. Considere la implementación del protocolo Denning-Sacco con una clave pública [5] :
El primer mensaje de Alice a Trent contiene los identificadores de los participantes en el próximo intercambio: Alice y Bob. Este mensaje se envía en texto sin cifrar:
En respuesta, Trent envía a Alice los certificados de clave pública firmados por Alice y Bob. Además, se agregan marcas de tiempo a cada certificado:
Alice genera una nueva clave de sesión y se la envía a Bob junto con una marca de tiempo , la firma con su clave y la cifra con la clave pública de Bob, junto con los dos mensajes recibidos de Trent:
Bob verifica la firma de la CA en el certificado , descifra la clave de sesión y verifica la firma de Alice.
Abadi y Needham describieron un ataque al protocolo [6] en el que Bob, al recibir un mensaje de Alice, puede hacerse pasar por ella en una sesión con otro usuario. La ausencia del identificador de Bob en el mensaje de Alice hace que Bob pueda utilizar los datos recibidos de Alice para suplantar a Alice en una nueva sesión con un tercero (Clara).
Clara verifica con éxito la firma de la CA en el certificado , descifra la clave de sesión y verifica la firma de Alice. Como resultado, Clara está segura de haber establecido una sesión de comunicación con Alice, ya que todos los pasos necesarios del protocolo se realizaron correctamente y todos los mensajes fueron correctos.
Protocolos de autenticación e intercambio de claves | |
---|---|
Con algoritmos simétricos | |
Con algoritmos simétricos y asimétricos | |
Protocolos y servicios utilizados en Internet |