¿Se considera que vale la pena reemplazar el archivo de módulos de OpenSSH?

12

Consecuencias de manipulado / etc / ssh / moduli describe un posible riesgo si el archivo de módulos para un servidor OpenSSH ha sido manipulado.

Llevando la lógica un paso más allá, ¿existe alguna preocupación con el archivo predeterminado enviado con OpenSSH ? Lo pregunto porque el artículo Secure Secure Shell menciona esto:

  

Si elige habilitar 5 [diffie-hellman-group-exchange-sha256], abra / etc / ssh / moduli si existe, y elimine las líneas donde la 5ª columna es menor que 2000. Si no existe, cree it:

ssh-keygen -G "${HOME}/moduli" -b 4096
ssh-keygen -T /etc/ssh/moduli -f "${HOME}/moduli"
rm "${HOME}/moduli"

Esto me parece que los números primos DH inferiores a 2048 se consideran inseguros y deben reemplazarse con números primos más grandes. Sin embargo, los desarrolladores de OpenSSH, personas inteligentes, no han reemplazado el archivo que se entrega de manera predeterminada por uno que sí incluye números primos más grandes. ¿Me estoy perdiendo algo?

    
pregunta evaryont 12.01.2015 - 22:58
fuente

1 respuesta

11

Intercambio / proceso de selección

¿Por qué eliminar primos más cortos que 2000 bits? Según RFC4419 , el intercambio de claves comienza cuando el cliente envía sus preferencias al servidor en forma de 3 números:

  • la longitud de módulo mínima aceptable,
  • la longitud máxima aceptable
  • y la longitud preferida.

Luego, el servidor elige un primo aleatorio que satisfaga mejor este requisito.

En la práctica (al menos con OpenSSH 6.7), el mínimo y el máximo del cliente siempre son 1024 y 8192. La longitud preferida es 8 veces el nivel de seguridad del cifrado simétrico. El servidor elige así:

  • descarta los números primos fuera del rango mínimo-máximo,
  • luego elige la longitud más corta disponible que no sea menor que la longitud preferida
  • finalmente, elige uno al azar de esos.

Con AES-128, terminamos con un módulo de 1024 bits que es más como un esfuerzo de 2 ^ 80 para romper. (No es lineal, no puedes multiplicar por 8).

¿Por qué regenerar?

¿Por qué regenerar el archivo desde cero? Para citar RFC4419 :

The use of multiple moduli inhibits a determined attacker from
precalculating moduli exchange values, and discourages dedication of
resources for analysis of any particular modulus.

Esto se ha demostrado en el ataque Logjam .

No es tan efectivo si todos usan el mismo archivo de módulos distribuido con el paquete SSH. Por este motivo, generé diferentes archivos moduli en cada host.

Nota: la SSH moderna utiliza la curva elíptica Diffie-Hellman, que es más segura en teoría.

Si desea generar nuevos números primos de curva no elíptica, haga lo siguiente:

ssh-keygen -G moduli-2048.candidates -b 2048
ssh-keygen -T moduli-2048 -f moduli-2048.candidates

Luego reemplaza el contenido de tu archivo de módulos (generalmente /etc/ssh/moduli ) con el contenido de moduli-2048

    
respondido por el stribika 28.01.2015 - 04:43
fuente

Lea otras preguntas en las etiquetas