STS (protocolo)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 5 de octubre de 2020; las comprobaciones requieren 2 ediciones .

El protocolo STS o el Protocolo Station-To-Station ( Station-to-Station protocol , STS ) es un protocolo criptográfico que permite a dos partes obtener una clave secreta compartida utilizando un canal de comunicación desprotegido . La clave resultante se utiliza para un mayor intercambio mediante cifrado simétrico . El protocolo se basa en el algoritmo Diffie-Hellman .  

Una característica distintiva del protocolo STS es la ausencia de marcas de tiempo y soporte para la propiedad de confidencialidad directa perfecta . . El protocolo también realiza una confirmación de clave bidireccional [1] , lo que permite que el protocolo se clasifique como " acuerdo de clave autenticado con confirmación de clave " (AKC).

Historia

STS se introdujo originalmente en 1987 en el contexto de la seguridad de la red telefónica ISDN (O'Higgins et al. 1987) [2] , se amplió en 1989 y finalmente fue introducido por Whitfield Diffie , Paul C. van Oorschot y Michael Weiner (Michael J. Wiener) en 1992. Basado en el protocolo STS, se creó el protocolo IKE , que se ha convertido en un estándar de la industria. .

Descripción del algoritmo STS ordinario

Para una descripción detallada del principio de funcionamiento, considere el proceso de intercambio de información entre algunos usuarios  : Alice y Bob. Supongamos que Alice tiene la clave pública certificada de Bob y Bob tiene la clave pública certificada de Alice. Al mismo tiempo, ambas claves fueron previamente certificadas por una autoridad de certificación de confianza que no está directamente involucrada en el proceso. Antes de iniciar el protocolo, debe realizar los siguientes pasos [3] [4] :

  1. Genere un par de firmas aleatoriamente asimétricas para una mayor autenticación del usuario .
  2. Defina los parámetros para crear mensajes: el módulo p en el que se crea el grupo cíclico y su generador g .

El protocolo consta de las siguientes rondas de intercambio de información entre Alice y Bob :

1. Alice elige un número aleatorio x tal que 2 ≤ x ≤ p-1 y le envía a Bob un mensaje m A = g x mod p

(1) Alice → Bob: m A = g x mod p,

2. Bob elige un número aleatorio y tal que 2 ≤ y ≤ p-1, calcula m B = g y mod p y, usando el mensaje recibido de Alice, calcula la clave secreta compartida K = m A y mod p = g xy mod pág. Luego envía a Alice m B y un mensaje encriptado E K (Sig B ( m B , m A )), firmado con su firma digital electrónica.

(2) Alice ← Bob : m B = g y mod p, E K (Sig B ( m B , m A )),

3. Alice calcula de manera similar la clave secreta y descifra el mensaje de Bob. Luego autentica a Bob verificando su firma electrónica y le envía su mensaje E k (Sig A ( m A , m B )), firmado con su firma.

(3) Alice → Bob: E k (Sig A ( m A , m B )),

4. Bob recibe el mensaje de Alice, lo descifra y verifica la firma de Alice.

Aquí Sig A y Sig B  son firmas digitales de los usuarios Alice y Bob , respectivamente, K = g xy mod p es la clave común requerida.

El uso de firmas digitales al transmitir mensajes entre Alice y Bob garantiza [5] la autenticidad de recibir un mensaje del usuario de quien debería haber venido. Se introdujo el cifrado de los valores de la firma del usuario utilizando un algoritmo simétrico E para garantizar la confirmación mutua de la exactitud del cálculo de la clave, ya que es imposible obtener los valores correctos de las firmas digitales con una clave calculada incorrectamente. .

Ataque a un STS normal

En 1994, el profesor de la Universidad de Oxford, Kevin Lowe ,ataque al protocolo STS [6] En este caso, Eva está tratando de averiguar la correspondencia [7] .

(1) Alicia → Eva (Bob): m A = g x mod p, (2) Eva → Bob : m A , (3) Eve ← Bob : m B = g y mod p, E K (Sig B ( m B , m A )), (4) Alice ← Eve(Bob) : m B , E K (Sig B ( m B , m A )), (5) Alicia → Eva (Bob): E K (Sig A ( m A , m B )).

La criptoanalista Eve, en el medio entre Alice y Bob, usa su intercambio legítimo con Bob para convencer a Alice de que está actuando en nombre de Bob. La sesión con Bob permanece incompleta porque Eve, al no conocer la clave secreta compartida, no podrá adivinar la respuesta correcta para Bob. Por lo tanto, cualquier mensaje de Eva en el tercer paso será rechazado. Este ataque no representa un peligro real [4] , ya que Eve desconoce la clave secreta K. Sin embargo, en este caso, Alice confundirá a Eve con Bob. Bob pensará que ha formado una clave compartida con Eve, pero en realidad con Alice. Por lo tanto, el protocolo no funcionará correctamente. Las consecuencias de tal ataque son comparables a la situación en la que Eve permanece pasiva hasta que Alice envía el último mensaje a Bob. Bob no puede recibirlo porque Eve está bloqueando el último mensaje. Bob notifica a Alice que no se ha recibido el último mensaje. Aunque un solo ataque no es peligroso, sin embargo, un grupo de atacantes, habiendo realizado dicho ataque, puede reducir drásticamente el poder del servidor central, ya que el servidor reservará recursos para los usuarios cuyas notificaciones no llegarán. También vale la pena señalar que durante un ataque de este tipo, Eve y sus aliados no necesitan certificados . Así que este ataque requiere una pequeña cantidad de recursos. .

En 1995, Martin Abadi y Robert Needham propusieron una forma de prevenir tal ataque al servidor. Para ello, basta con pasar el nombre de usuario abiertamente [8] .

Protocolo STS modificado

En 2004, Colin Boyd y Wenbo Mao propusieron la siguiente especificación para el protocolo STS [9] :

(1) Alice → Bob: m A = g x mod p (2) Alice ← Bob : metro segundo = g y mod p , Sig segundo ( metro segundo , metro una ), h K 0 ( metro segundo , metro una ) (3) Alice → Bob: Sig A ( m A , m B ), h K 0 ( m A , m B )

donde K 0 = f(k) es el parámetro clave de la función hash h K 0 ( m A , m B ), calculado como el valor de alguna función a partir de la clave de sesión resultante K = g xy mod p. El módulo p y el generador g todavía están abiertos.

Ataque a STS modificado

Existe la posibilidad de un "ataque bilateral de clave compartida desconocida" ( ataque BUKS  ) [4] En este caso, los criptoanalistas Eva y Mallory están tratando de averiguar la correspondencia.

(1) Alicia → Eva: m A = g x mod p (2) Eve → Mallory : m A (3) Mallory → Bob : m A (4) Mallory ← Bob : m B = g y mod p, Sig B ( m B , m A ), h K 0 ( m B , m A ) (5) Eve ← Mallory : m B , h K 0 ( m B , m A ) (6) Alice ← Eve : m B , Sig E ( m B , m A ), h K 0 ( m B , m A ) (7) Alicia → Eva: Sig A ( m A , m B ), h K 0 ( m A , m B ) (8) Eve → Mallory : h K 0 ( m A , m B ) (9) Mallory → Bob : Sig M ( m A , m B ), h K 0 ( m A , m B )

Como resultado, Eve y Mallory, en connivencia, engañan a Alice y Bob, quienes formaron una clave común. Al mismo tiempo, Alice está segura de que ha formado una clave compartida con Eve y Bob está seguro de que ha formado una clave compartida con Mallory. .

STS simplificado

Se utiliza un algoritmo simplificado para la autenticación puramente mutua sin generar un secreto compartido. La implementación se ve así [10] :

(1) Alice → Bob: m A = g x mod p (2) Alice ← Bob : m B = g y mod p, Sig B ( m B , m A ) (3) Alice → Bob: Sig A ( m A , m B )

Ataque a STS simplificado

Durante el ataque, Eve, que es una usuaria legítima del sistema y posee un certificado de clave pública, le pide a Alice que inicialice el protocolo. Después de eso, entabla una conversación con Bob, se presenta como Alice y usa su número aleatorio único. Después de recibir una respuesta de Bob, Eve reemplaza su certificado y firma con sus propias copias. Esto le pide a Alice que firme el mensaje de Bob, lo que a su vez le permite a Eve engañar a Bob. .

(1) Alicia → Eva: m A = g x mod p (2) Eve → Bob : m A (3) Eve ← Bob : m B = g y mod p, Sig B ( m B , m A ) (4) Alice ← Eve : m B = g y mod p, Sig E ( m B , m A ) (5) Alicia → Eva: Sig A ( m A , m B ) (6) Eva → Bob: Sig A ( m A , m B )

Como resultado, Alice cree que está hablando con Eve y Bob cree que él está hablando con Alice. Este ataque es perfecto porque ni Alice ni Bob sospechan nada. Cabe señalar que Eve juega un papel muy activo en este ataque: firma el mensaje generado por Bob y convence a Alice de que también lo firme para engañar por completo a Bob. Si Eve hubiera jugado el papel de una observadora pasiva ordinaria, Alice nunca habría firmado el mensaje de Bob y no se habría dejado engañar [7] .

STS-MAC

En los casos en que sea imposible determinar el usuario de quien se recibió el mensaje, K = g xy se puede usar para crear una inserción falsa [11] :

(1) Alice → Bob: m A = g x mod p (2) Alice ← Bob : m B = g y mod , Sig B ( m B , m A ), MAC K (Sig B ( g y , g x )) (3) Alice → Bob : SA ( g x , g y ) , MAC K (Sig A ( g x , g y ))

Véase también

Notas

  1. Protocolo de estación a estación . Descripción general de Sterling Connect:Direct Secure Plus para z/OS . IBM. - El protocolo de estación a estación (STS) es una variación de tres pasos del protocolo básico Diffie-Hellman. Le permite establecer una clave secreta compartida entre dos nodos con autenticación de entidad mutua". Recuperado: 18 de noviembre de 2013.
  2. Delfs, Hans, Knebl, Helmut. Introducción a la Criptografía: Principios y Aplicaciones. - 2. - Springer Publishing Company, Incorporated, 2010. - S. 88-89. — 368 págs. — ISBN 978-3642080401 .
  3. Bruce Schneier. Criptografía aplicada. - 2ª ed.- Triunfo, 2002. - S. 378-379. — 816 pág. - ISBN 5-89392-055-4 .
  4. 1 2 3 4 AV Cheremushkin. Protocolos criptográficos: principales propiedades y vulnerabilidades // Matemática Discreta Aplicada: revista. - 2009. - Nº 2 . - S. 115-150 .
  5. A. V. Cheremushkin "Protocolos criptográficos: propiedades básicas y vulnerabilidades", revista "Matemáticas discretas aplicadas" UDC 003.26 (075.8)
  6. G. Lowe. Algunos nuevos ataques a los protocolos de seguridad // IEEE Computer Society: Procediendo. - 1996. - S. 162 . — ISBN 0-8186-7522-5 .
  7. 12 Mao , 2005 , pág. 415-416.
  8. Martín Abadi, Roger Needham. Práctica de ingeniería prudente para protocolos criptográficos // IEEE Computer Society: Procedimiento. - 1994. - S. 122 .
  9. Colin Boyd, Wenbo Mao, Kenneth G. Paterson. Acuerdo clave utilizando autenticadores con clave estática // Criptografía aplicada y seguridad de red: notas de clase en informática. — 2004.
  10. Douglas R. Stinson. Revisión de Criptografía: teoría y práctica // ACM SIGACT News : Newsletter. - 2003. - Nº 34 . - S. 22-25 . — ISSN 0163-5700 . -doi : 10.1145/ 954092.954097 .
  11. Simon Blake-Wilson, Alfred Menezes. PKC '99 Actas del Segundo Taller Internacional sobre Práctica y Teoría en Criptografía de Clave Pública // Actas del Segundo Taller Internacional sobre Práctica y Teoría en Criptografía de Clave Pública: Actas. - 1999. - S. 154-170 . — ISBN 3-540-65644-8 .

Literatura