La otra respuesta no parece responder a la pregunta, solo aclara el uso de los términos y las malas suposiciones. Entonces, si quieres saber cuál es mejor, diffie-hellman-group14-sha1 versus diffie-hellman-group14-sha1, aquí está mi intento de hacerlo.
Una parte de la pregunta es entre SHA2 y SHA1. SHA2 es más fuerte que SHA1, y diffie-hellman-group-exchange-sha256 es SHA2.
El otro es los primos utilizados en el intercambio. Los primos de grupo 14 se consideran fuertes (2048 bits), pero se conocen públicamente. Los primos de intercambio de grupo dependen de una lista de primos del lado del servidor y de las restricciones del lado del cliente. En OpenSSH en Linux, tiene un archivo / etc / ssh / moduli que contiene estos. Ese archivo lo proporciona la distro, por lo que también se conocen públicamente, pero puede cambiarlos.
Para ver un recuento de cada tamaño que tiene ahora, intente algo como:
awk '$1 != "#" {print $5+1}' /etc/ssh/moduli | sort | uniq -c
Lo que en algunos sistemas Ubuntu 16.04 que probé dicen lo mismo:
49 1536
40 2048
37 3072
38 4096
37 6144
36 7680
29 8192
Por lo tanto, es posible que su intercambio de grupo use claves muy pequeñas del tamaño de 1536. Así que si elimina todas las más pequeñas para que coincidan con group14 (Oakley Group 14, tamaño 2048), probablemente debería ser mejor (ya que sha256 es mejor que sha1) y también porque puedes controlarlos para que no se conozcan públicamente. El cambio en el tamaño podría no tener ningún efecto si los clientes limitan sus propios mínimos y máximos de todos modos ... pero no puede hacer daño. o si prefieren un tamaño grande pero el mínimo es bajo, un ataque de baja calificación como LogJam puede funcionar.
Para recortar su archivo para que contenga solo números primos 2048 y más grandes (todavía se conoce públicamente), tal vez debería usar:
awk '$1 == "#" || $5 >= 2048 {print $0}' /etc/ssh/moduli > /etc/ssh/moduli.tmp
mv /etc/ssh/moduli /etc/ssh/moduli.bak.$(date +%s)
mv /etc/ssh/moduli.tmp /etc/ssh/moduli
Y para hacer un nuevo archivo de números primos únicos, quizás no conocidos públicamente (por supuesto, existe una posible superposición), puede generarlos (lo que puede llevar horas):
mv /etc/ssh/moduli /etc/ssh/moduli.bak.$(date +%s)
ssh-keygen -G /tmp/moduli -b 2048
ssh-keygen -T /etc/ssh/moduli -f /tmp/moduli
Sugiero reiniciar sshd después de hacer esto.
También vea enlace