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 |
Wide-Mouth Frog es quizás el protocolo más simple para el intercambio de claves simétricas utilizando un servidor confiable. (Alice) y (Bob) comparten una clave secreta con (Trent). En este protocolo, las claves se utilizan solo para su distribución y no para cifrar mensajes [1] .
El protocolo se atribuye a Michael Burrows y se publicó por primera vez en Michael Burrows, Martin Abadi y Roger Needham. Una lógica de autenticación" [2] en 1989. En 1997 , Gavin Lowe ( científico informático) en su trabajo "A Family of Attacks upon Authentication Protocols" [3] propuso un protocolo Wide-Mouthed Frog modificado ( Lowe modified Wide-Mouthed frog protocol ), que corrige algunas vulnerabilidades.
Para iniciar una sesión de mensajería, Alice cifra la concatenación de la marca de tiempo, la ID de Bob y una clave de sesión aleatoria generada. La clave de cifrado es una clave conocida por Alice y Trent, un servidor de confianza intermedio. Después de eso, Alice le da su nombre (en texto claro) y datos encriptados a Trent.
Trent descifra el paquete con la clave compartida con Alice, selecciona una clave de sesión aleatoria generada por Alice y concatena la nueva marca de tiempo, el identificador de Alice y la clave de sesión, luego lo cifra con la clave compartida con Bob y se la envía.
Después de eso, Bob descifra el paquete de datos con la clave compartida con Trent y puede usar la clave de sesión aleatoria generada por Alice para transferir los datos.
En 1995, Ross Anderson y Roger Needham propusieron el siguiente algoritmo de ataque de protocolo :
donde I(Alice) y I(Bob) son un atacante que imita a Alice y Bob, respectivamente.
La falla en el protocolo es que Trent actualiza su marca de tiempo a partir de la marca de tiempo de Alice . Es decir, siempre que Trent no mantenga una lista de todas las claves y etiquetas que funcionan, un atacante puede mantener las claves en funcionamiento utilizando Trent como predictor.
El efecto práctico de esta deficiencia dependerá de la aplicación. Por ejemplo, si los usuarios utilizan una tarjeta inteligente con este protocolo, que envía la clave de sesión en texto sin formato a la rutina de cifrado masivo del software , las claves pueden quedar expuestas a este ataque. Un atacante puede ver a Alice y Bob realizar sesiones y mantener las claves funcionando hasta que sea posible robar una tarjeta inteligente [5] .
En 1997, Gavin Lowe propuso otro ataque a este protocolo, basado en que el atacante hace pensar a Bob que Alice ha establecido dos sesiones de intercambio, mientras que Alice establece una sesión. El ataque involucra dos pases de protocolo intercalados, que llamaremos y , denotaremos, por ejemplo, el segundo mensaje de sesión \alpha como Entonces el ataque se ve así:
donde I(Trent) es un atacante que imita a Trent.
La sesión representa el curso normal del intercambio de claves cuando Alice establece una sesión con Bob usando la clave . Luego, en el mensaje , el atacante imita a Trent y repite el mensaje ; con lo cual Bob cree que Alice está tratando de iniciar una segunda sesión.
Además, el atacante puede reproducir el mensaje a Trent como el mensaje de la próxima sesión. Esto hará que Bob reciba un segundo mensaje, con el mismo resultado que antes.
Esta vulnerabilidad se corrige mediante el protocolo de rana de boca ancha modificado ( protocolo de rana de boca ancha modificado por Lowe ) [3] .
Esta modificación fue propuesta por Gavin Lowe para eliminar la vulnerabilidad al ataque de 1997. Se parece a esto:
Estos cambios evitarán los ataques de 1997: Bob generará dos nonces diferentes, uno para cada sesión, y esperará como respuesta el mensaje 4. Al mismo tiempo, Alice devolverá solo uno de esos mensajes, y el atacante no podrá generar otro.
Desafortunadamente, esta modificación elimina la característica más atractiva del protocolo de rana de boca ancha: la simplicidad [3] .
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 |