En OpenVPN, ¿depende el archivo dh1024.pem de la CA?

5

Como ya indica la pregunta, me gustaría saber si el archivo dh1024.pem, generado por ./build-dh en openvpn, depende del archivo de ca. (clave crt |)

El motivo fue que necesitaba ./clear-todos las claves, pero mantuve el archivo dh1024.pem abierto en un editor y lo volví a guardar después de borrar las claves. Luego continué con la creación de ./build-ca, ./build-key-server y ./build-client.

En este sentido, ¿podría el archivo dh * .pem depender de la clave del servidor o de cualquier otra cosa? ¿O es solo un archivo con una porción de datos bien computados sin dependencias?

Saludos cordiales.

    
pregunta Daniel F 04.11.2014 - 15:39
fuente

1 respuesta

11

Ese archivo no depende de ningún certificado o clave privada. Tampoco es secreto. Incluso se puede compartir entre varios servidores que no necesariamente confían o ni siquiera se conocen entre sí.

El archivo dh1024.pem contiene parámetros Diffie-Hellman . El intercambio de claves DH es un algoritmo jugado en un grupo finito ; a saber, enteros modulo a prime p . Para un DH exitoso:

  • Hay parámetros conocidos p (un gran primo) y g (un entero convencional en el rango de 2 a p-2 , conocido como el generador ).
  • Party A genera un valor secreto aleatorio a , calcula ga mod p , y se lo envía a la parte B .
  • Party B genera un valor secreto aleatorio b , calcula gb mod p , y se lo envía a la parte A .
  • Party A calcula ( g b ) a mod p (elevando el valor recibido de B a su exponente secreto a ).
  • computador B ( g a ) b mod p (elevando el valor recibido de A a su exponente secreto b ).

La magia de DH es que tanto A como B terminan con el mismo valor, que el intruso no puede volver a calcular a partir de los dos valores que se enviaron a través de los cables.

En todo esto, los valores de p y g son los "parámetros" y deben ser conocidos por ambas partes; Pero no son secretos. La seguridad está garantizada siempre y cuando:

  • p es lo suficientemente grande (al menos 1024 bits; podría decirse que 2048 bits sería mejor).
  • p no se generó con una "estructura especial" que hace más fácil logaritmo discreto .
  • g genera un subgrupo de enteros modulo p cuyo tamaño es un múltiplo de un primo suficientemente grande (el orden de g módulo p es el entero más pequeño r ≥ 1 tal que gr mod p = 1; se requiere que el mayor divisor principal de r tenga una longitud de al menos 160 bits, preferiblemente 256 bits o más).

Todo el mundo podría usar los mismos parámetros; pero muchas personas prefieren generar sus propios parámetros, solo para asegurarse de que sus parámetros no fueron "cocinados". Esto es lo que hace build-dh . El archivo resultante ( dh1024.pem ) contiene p y g , pero nada más. Estos valores no son secretos. No dependen de ningún elemento externo, ni certificado, clave privada o cualquier otra cosa.

    
respondido por el Tom Leek 04.11.2014 - 16:35
fuente

Lea otras preguntas en las etiquetas