En Ephemeral Diffie Hellman Key Exchange: ¿qué es realmente efímero?

6

Estoy empezando a aprender sobre Diffie-Hellman, y parece bastante simple, pero estoy luchando por encontrar cualquier recurso que explique en un Intercambio de claves efímero Diffie Hellman, ¿qué es eso realmente efímero?

Por lo tanto, en DH tenemos un p primo conocido públicamente, y g mod p sobre el grupo multiplicativo cíclico, donde g es un generador del grupo.

  1. Alice elige una a al azar, Bob elige una b al azar, ambos mod p.
  2. Alice calcula A = g ^ a mod p
  3. Bob calcula B = g ^ b mod p
  4. Bob transfiere B a Alice
  5. Alice transfiere A a Bob.
  6. Alicia calcula B ^ a mod p
  7. Bob calcula A ^ b mod p
  8. Ambos cálculos dan como resultado la misma respuesta y, por lo tanto, se ha establecido una clave compartida.

En lo efímero de Diffie Hellman, ¿qué es exactamente lo efímero? ¿P y g cambian? ¿A y b se recalculan periódicamente?

Gracias

    
pregunta stats_novice_123 19.11.2015 - 23:09
fuente

2 respuestas

7

A & B se denominan los efímeros que Alice y Bob intercambian. No es más complicado que eso. Hay otras formas de usar Diffie Hellman, por ejemplo DSA - Algoritmo de firma digital en el que el término efímero no aparece.

Además, generalmente, (P, g) se corrigen no solo para un sitio web, sino también para gran parte de Internet (a través de RFC) que está relacionado con la reciente revelación sobre los ataques de Logjam y los posibles piratas informáticos de la NSA. Aquí está mi reseña sobre eso . En cualquier caso, (P, g) son complicados de crear, por lo que la mayoría de la gente usa los que ya están disponibles. Por lo tanto, no cambian mucho. Dadas las recientes exposiciones, parece que necesitamos usar otras más grandes o puedes calcular las tuyas (debería ser una gran P).

(a, b) no se recalculan periódicamente, excepto por la política de algún protocolo de seguridad de red o, en el caso de TLS, la configuración del conjunto de cifrado. No estoy lo suficientemente familiarizado con la configuración de la suite de cifrado TLS para responder a esa pregunta. En general, para una seguridad mejorada, una sesión de red debe volver a calcular las claves de sesión periódicamente. Esto suele ser de 8 horas, aunque puede ser más corto o más largo. Nada en matemáticas requiere el recálculo, solo se aconseja.

    
respondido por el Andrew Philips 20.11.2015 - 00:39
fuente
2

Aquí está mi tiro. No estoy completamente feliz con eso. Apreciaría las críticas.

Al menos pubkey / privkey. A veces params.

No creo que esto esté bien definido. Pero NO tengo fuentes para respaldar esto. (Si alguien me puede mostrar un documento de normas, me complacería que me mostraran mal. Cualquier cosa es mejor que la incertidumbre para mí).

El RFC TLS1.2 dice que el servidor puede elegir estos tres:

  struct {
      opaque dh_p<1..2^16-1>;
      opaque dh_g<1..2^16-1>;
      opaque dh_Ys<1..2^16-1>;
  } ServerDHParams;     /* Ephemeral DH parameters */

Entonces el servidor PODRÍA cambiar CUALQUIERA de los tres.

Pero creo que en realidad solo cambiará la clave del servidor ( dh_Ys ). Y este debería ser suficiente para dar secreto hacia adelante.

Pero solo si tu

  opaque dh_p<1..2^16-1>;
  opaque dh_g<1..2^16-1>;

es poco probable que se rompa en el corto plazo. (Como si fueran 2048 bits.) (Y Thomas Pornin dijo en una pregunta diferente : Para obtener parámetros de DH incorrectos, debe hacerlo a propósito. )

"Uso único de DH de F5"

Ahora he mirado el sitio web de F5 para averiguar cómo sus balanceadores de carga implementan EDH.

Y tienen una opción llamada Single DH use que pienso regenera el par dh_p / dh_g.

Aquí está la cita. No entiendo por qué querría eso. Me confunde.

  

Uso único de DH

     

Esta opción crea una nueva clave cuando se utilizan parámetros DH temporales / efímeros. Debe usar esta opción si desea evitar pequeños ataques de subgrupos, cuando los parámetros DH no se generaron usando números fuertes (por ejemplo, cuando se usan parámetros DSA). Si se utilizaron primos fuertes, no es estrictamente necesario generar una nueva clave DH durante cada saludo, pero recomendamos esto. Debe habilitar la opción de uso de un solo DH siempre que se utilicen parámetros temporales / efímeros de DH.

F5 claves generadas cada hora

F5 tiene un artículo que dice Comenzando en BIG- IP 11.4.0, la generación de nuevas claves efímeras ocurre cada hora.

Sospecho que están usando "claves" y "parámetros" de manera intercambiable.

CryptoPP llama al método de "par de llaves regeneradas" de manera efímera.

Cuando CryptoPP habla sobre EDH que significa: el grupo se mantiene igual. Cambios de par de llaves.

Citrix NetScaler no estoy seguro.

De nuevo, estoy no estoy seguro si se diferencian completamente entre dhparams y dh-keypair.

  

dhFile

     

Nombre para y, opcionalmente, ruta al archivo de parámetros DH en formato PEM que se instalará. / nsconfig / ssl / es la ruta predeterminada.

     

Este parámetro no es aplicable cuando se configura un perfil backend.

     

dhCount

     

Número de interacciones, entre el cliente y el dispositivo NetScaler, después de lo cual se regenerará el par DH privado-público. Un valor de cero (0) especifica el uso infinito (sin actualización).

     

Este parámetro no es aplicable cuando se configura un perfil backend.

     

Valor mínimo: 0

     

Valor máximo: 65534

     

dhKeyExpSizeLimit

     

Esta opción permite el uso del tamaño de bit recomendado por NIST (Publicación especial 800-56A de NIST) para el tamaño de clave privada. Por ejemplo, para parámetros DH de tamaño 2048 bits, el tamaño de clave privada recomendado es 224 bits. Esto se redondea a 256 bits.

     

Valores posibles: ENABLED, DISABLED

     

Valor predeterminado: DESACTIVADO

Aquí dhKeyExpSizeLimit me confunde. No entiendo por qué permitiría que esa parte fuera definible por el usuario.

    
respondido por el StackzOfZtuff 20.11.2015 - 13:29
fuente

Lea otras preguntas en las etiquetas