En SSL / TLS , el grupo (módulo y generador) utilizado para las suites de cifrado DHE es totalmente de servidor. . OpenSSL (la biblioteca) se puede configurar para usar un grupo específico; con la herramienta de línea de comandos ( openssl s_server
), se trata de usar la opción -dhparam
; de lo contrario, los parámetros DH se pueden incluir en el archivo que contiene el certificado.
Esta página contiene información, incluida esta:
Para utilizar los conjuntos de cifrado de secreto de reenvío perfecto, debe configurar los parámetros de Diffie-Hellman (en el lado del servidor), o los conjuntos de cifrado PFS se ignorarán silenciosamente.
Por lo tanto, la biblioteca no utiliza los "parámetros DH predeterminados"; depende de cualquier software que use la biblioteca. En el caso de la herramienta de línea de comandos, parece utilizar un módulo de 512 bits, que es, por decir lo menos, un poco corto ... pero está bien para la prueba. En su caso, uno debe asumir que cualquiera que sea su aplicación de servidor que use OpenSSL, ha configurado la biblioteca con un módulo de 768 bits. Es posible (pero depende de esa aplicación) que rellenar los parámetros DH explícitos en el mismo archivo que el que contiene el certificado del servidor es suficiente para forzar a OpenSSL a usar estos parámetros.
Notas :
- Si OpenSSL, como servidor, selecciona un conjunto de cifrado "exportado", forzará el uso de un módulo de 512 bits para DH, pero este es un caso de borde.
- No es completamente libre de usar el tamaño que desee debido a problemas de interoperabilidad. Parece que a algunos clientes SSL no les gustará un módulo DH de más de 1024 bits. También supongo que un tamaño de módulo DH que no sea un múltiplo de 32 o 64 puede inducir problemas adicionales.
- Con Elliptic Curve DH (el reciente
ECDHE
cipher suite) el problema es diferente, porque la mayoría de las implementaciones admiten solo un puñado de curvas específicas, no "cualquier curva de un tamaño determinado". Hay una una extensión que le permite al cliente decir qué curvas admite; de lo contrario, el servidor elegirá dependiendo de su configuración (en cualquier caso, cualquier cosa que no sea P-256 implicará problemas de interoperabilidad).