¿Cuál es la longitud modp de diffie-hellman-group-exchange-sha256?

7

OpenSSH 6.2 ofrece los siguientes algoritmos de intercambio de claves por defecto

ecdh-sha2-nistp256
ecdh-sha2-nistp384
ecdh-sha2-nistp521
diffie-hellman-group-exchange-sha256
diffie-hellman-group-exchange-sha1
diffie-hellman-group14-sha1
diffie-hellman-group1-sha1

El tamaño del grupo de los tres primeros es obvio. Lo mismo vale para los dos últimos. Pero no está claro qué grupo de los dos algoritmos

diffie-hellman-group-exchange-sha256
diffie-hellman-group-exchange-sha1

operar en. Es difícil aceptar que un punto tan importante de seguridad no esté documentado. El RFC 4419 no dice nada al respecto y también la página de manual de openSSH. ¿Alguien puede aclarar esto, por favor?

    
pregunta fr00tyl00p 26.07.2013 - 14:23
fuente

1 respuesta

4

Un grupo DH se define por un módulo principal y un generador. El módulo principal es un poco caro de generar, por lo que OpenSSH no lo hará de forma general. En su lugar, sshd , al recibir una conexión, utilizará uno de los grupos en los archivos /etc/ssh/moduli . Ese archivo contiene módulos pre-generados de varios tamaños. Puede usar el que se proporciona con OpenSSH o generar el suyo propio con ssh-keygen ; vea la página de manual (no hay ningún problema de seguridad al usar el mismo grupo que otras personas, pero sin embargo, para algunos Por razones psicológicas, algunos administradores de sistemas experimentan una sensación de mayor seguridad cuando generan sus propios módulos).

El proceso de selección real es, en el código fuente de OpenSSH, en la función choose_dh() en el archivo dh.c . En términos generales, si el cliente desea al menos min bits, a lo sumo max bits, y preferiblemente n bits, entonces el servidor elegirá entre los módulos en el rango min..max ; intentará obtener el módulo más pequeño que exceda de n y, si no hay ninguno, el módulo más grande que tiene (aún en el rango min..max , por supuesto ). Si el servidor encuentra varios módulos de la misma longitud "óptima", selecciona uno al azar. Si el servidor no conoce ningún módulo en el rango min..max , la conexión falla.

El /etc/ssh/moduli predeterminado, al menos en mi servidor, parece tener módulos de tamaño de 1023 a 8191 bits.

    
respondido por el Thomas Pornin 26.07.2013 - 19:33
fuente

Lea otras preguntas en las etiquetas