MAC y luego encripta en el protocolo SIGMA para el intercambio de claves autenticadas

Dec 21 2020

El protocolo SIGMA propuesto en 2003 y utilizado en TLS 1.3 e IKE significa "SIGn-and-MAc" y, opcionalmente, puede proteger la identidad mediante cifrado.

La variante SIGMA-I que se ilustra a continuación indica que utiliza un enfoque de MAC y luego encripta:

Aquí $\{\dots \}_{K} $ denota el cifrado de la información entre paréntesis bajo una función de cifrado simétrico usando clave $K$.

¿Existe alguna razón en particular para utilizar MAC-then-encrypt en lugar de encriptar-then-MAC para protocolos de intercambio de claves? No pude encontrar una respuesta mejor de lo que parece arbitrario cuando observo una comparación entre MAC-then-encrypt y encrypt-then-MAC .

Editar: RFC 7366 vinculado en esta respuesta relacionada da algunos indicios de que encriptar-luego-MAC debe ser la comunicación TLS preferida (D) (no se dice nada sobre el protocolo de enlace). En particular, dice:

TLS y DTLS utilizan una construcción de MAC y luego encripta que se consideraba segura en el momento en que se especificó el protocolo Secure Socket Layer (SSL) original a mediados de la década de 1990, pero que ya no se considera seguro.

Curiosamente, H Krawczyk (el autor de SIGMA) escribió en 2001 El orden de cifrado y autenticación para proteger las comunicaciones (o: ¿Cuán seguro es SSL?) —Antes de SIGMA.

Respuestas

4 HugoKrawczyk Jan 09 2021 at 06:20

Arnaud me pidió que aclarara este tema.

Es cierto que uno debería usar un modo de cifrado autenticado o cifrar-luego-MAC, y el documento lo dice explícitamente. De hecho, el texto explicativo del documento que sigue a la figura que se muestra arriba (Sección 5.2 dehttps://webee.technion.ac.il/~hugo/sigma-pdf.pdf) aborda este problema. Dice:

Hacemos hincapié en que la función de cifrado (como se aplica en el tercer mensaje) debe ser resistente a los ataques activos y, por lo tanto, debe combinar alguna forma de protección de la integridad. Se pueden usar transformaciones combinadas de secreto-integridad, como las de [16], o se puede usar un modo convencional de cifrado (por ejemplo, CBC) con una función MAC calculada sobre el texto cifrado [3, 26].

A saber, el cifrado denotado $\{...\}_{K_e}$necesita utilizar un esquema de cifrado autenticado. (La necesidad de cifrado autenticado también se repite en el Apéndice B que muestra un protocolo más completo en forma de SIGMA-R).

El hecho de que haya un MAC (en la identidad) bajo el cifrado es solo porque el MAC es (una parte esencial) del protocolo SIGMA y no tiene ninguna relación con el cifrado (en particular, es necesario incluso si no le importa proteger las identidades ). Entonces, aunque parece "MAC-luego encriptar", no tiene relación con este modo de encriptación.

Nota: La razón por la que el texto dice que el cifrado autenticado solo es necesario para el tercer mensaje es que, como se dice al comienzo de ese mismo párrafo, SIGMA-I protege la identidad del iniciador de los atacantes activos y la identidad del respondedor de los pasivos. atacantes. Por lo tanto, cifrar la identidad del respondedor solo necesita seguridad contra ataques pasivos para los que es suficiente el cifrado no autenticado. Este es realmente un comentario académico, ya que en la práctica se usaría el mismo esquema de cifrado para ambos flujos, es decir, cifrado autenticado para ambos.

1 hakoja Dec 28 2020 at 20:19

Esto es algo así como una especulación, pero supongo que se debe a la forma modular en la que se diseñó Sigma. Es decir, cuando Hugo Krawczyk diseñó Sigma, la principal propiedad de seguridad que buscaba era la seguridad AKE, que básicamente consta de dos cosas:

  1. Indistinguibilidad de la clave de sesión: el adversario no debería poder distinguir las claves de sesión reales de las aleatorias; y

  2. Autenticación de entidad explícita (EA): la propiedad de que una vez que un participante del protocolo completa la ejecución del protocolo, se garantiza que de hecho se estaba comunicando con la parte esperada y que esta parte efectivamente calculó la misma clave de sesión.

La propiedad EA es básicamente un paso de confirmación clave que asegura la vivacidad y la autenticación. Esto se logra calculando un MAC sobre algunos de los datos del protocolo, usando una clave$K_m$ derivado del mismo secreto maestro utilizado para derivar la clave de sesión.

¡El punto es que puede lograr seguridad AKE (es decir, propiedad 1 y 2) sin ningún tipo de cifrado! De hecho, cuando Krawczyk demuestra que Sigma satisface la seguridad de AKE (no puedo recordar qué papel era este; trataré de encontrarlo más tarde), ¡simplemente asume que el paso de cifrado no existe en absoluto! (También hace esto en su artículo OPTLS, que es el precursor de TLSv1.3).

Como dije, el objetivo de seguridad estándar para la mayoría de los protocolos de intercambio de claves, desde los artículos originales de Bellare y Rogaway , ha sido básicamente todo sobre la seguridad de AKE. Sin embargo, cuando Krawczyk diseñó Sigma, también quiso agregar otra característica no estándar, la protección de identidad . Pero dado que ya había demostrado que el protocolo Sigma sin cifrado lograba la seguridad AKE, era una simple cuestión de agregar cifrado además de esto para obtener también protección de identidad. Por lo tanto: MAC-then-Encrypt.

Pero tenga en cuenta que estos dos usos de MAC y cifrado son bastante ortogonales y tienen diferentes propósitos: se supone que el MAC interno proporciona seguridad EA, mientras que el cifrado externo proporciona protección de identidad.

Asimismo, cabe destacar que Sigma normalmente no utilizan Cifrar-entonces-MAC. En particular, en la creación de instancias de Sigma en IKEv2 , el cifrado externo va acompañado de una MAC adicional fuera del cifrado en la forma EtM estándar. En IKEv2, se llama a la clave MAC interna, se llama a SK_p*la clave de cifrado externa y se llama a SK_e*la clave MAC externa SK_a*(la *es io rdepende de si este mensaje lo crea el iniciador o el respondedor). Además, en las instancias más recientes de IKEv2, el cifrado externo se reemplaza por algoritmos de cifrado autenticados dedicados. En este caso, las SK_a*claves no se utilizan (y toda la cuestión de EtM se vuelve discutible). En la instanciación TLSv1.3 de Sigma solo se utiliza el cifrado autenticado. Pero nuevamente, observe que dentro del cifrado (ya sea AE o EtM), hay una MAC interna cuyo propósito es brindar seguridad a EA.