OpenSSH 9.9 llega con soporte para una nueva clave híbrida post-cuántica, mejoras y mas
Se dio a conocer el lanzamiento de la nueva versión de OpenSSH 9.9, una solución de código abierto para cliente y servidor que opera sobre los protocolos SSH 2.0 y SFTP. La nueva versión se destaca por el soporte añadido para el intercambio de claves resistente a la computación cuántica, mejoras en directivas, la aleatorización en el tiempo de espera de conexión, correcciones y más.
Cabe destacar que OpenSSH ha anunciado la eliminación completa del soporte para el algoritmo de firma DSA a principios de 2025. En esta versión, DSA ya está deshabilitado de forma predeterminada durante la compilación. Aunque OpenSSH deshabilitó las claves DSA por defecto desde 2015, aún mantuvo un soporte opcional en tiempo de ejecución debido a que en los RFC de SSHv2 DSA era el único algoritmo obligatorio.
Actualmente, DSA solo está disponible si se habilita en la compilación, y el soporte será eliminado por completo en la primera versión de OpenSSH en 2025.
Novedades en OpenSSH 9.9
OpenSSH 9.9 presenta mejoras en el cliente y servidor ssh y sshd, ya que ahora soportan el algoritmo híbrido de intercambio de claves denominado mlkem768x25519-sha256, que combina X25519 ECDH con ML-KEM (parte del estándar CRYSTALS-Kyber ). El algoritmo está diseñado para ser seguro tanto ante ataques de ordenadores cuánticos como convencionales, gracias al uso de técnicas de criptografía basadas en la resolución de problemas de teoría de redes.
Se ha añadido «RefuseConnection» en el archivo de configuración sshd_config. Esta opción provoca que sshd cierre la conexión después del primer intento fallido de autenticación. Además, se ha creado la clase «refuseconnection», utilizada en la directiva PerSourcePenalties, que se activa cuando se finaliza una conexión bajo esta política.
Además de ello, el cliente ssh ha dejado de admitir la compresión de datos antes de la autenticación, ya que esta característica ampliaba la superficie de ataque en los servidores SSH, permitiendo posibles vulnerabilidades al analizar indirectamente la información intercambiada durante el proceso de autenticación. La compresión previa ya había sido deshabilitada previamente en el servidor sshd.
Tanto en ssh como en sshd, ahora se utilizan reglas más avanzadas para el análisis de los argumentos de la directiva «Match», similares a las de un shell. Estas reglas permiten trabajar con cadenas entre comillas, incluyendo el anidamiento y la posibilidad de usar caracteres de escape como «\.» En el archivo de configuración ssh_config, la directiva «Include» ha sido actualizada para admitir variables de entorno y sustituciones «%,» de manera similar a cómo se comporta la directiva «Match Exec.»
De los demás cambios que se destacan:
- En sshd_config, se ha añadido una opción que permite activar la directiva «Match» cuando se intenta iniciar sesión con un nombre de usuario inválido, mejorando la gestión de accesos no autorizados.
- El algoritmo de intercambio de claves híbrido Streamlined NTRUPrime/X25519 ahora tiene un nombre alternativo más fácil de usar: sntrup761x25519-sha512, además de su denominación técnica completa sntrup761x25519-sha512@openssh.com.
- Se ha incorporado una capa adicional de protección contra la pérdida de claves privadas en archivos esenciales, en los componentes ssh, sshd y ssh-agent, disponible en sistemas OpenBSD, Linux y FreeBSD.
- El manejo de claves se ha actualizado para aprovechar la API EVP_PKEY de la librería libcrypto, mejorando la gestión de claves y aumentando la seguridad.
- Se ha añadido un cambio aleatorio en el tiempo de espera de la conexión (LoginGraceTime) dentro de un rango de 4 segundos en sshd, lo que dificulta la detección precisa del momento en que expira el tiempo de espera, aumentando así la seguridad contra ataques de fuerza bruta.
Finalmente, esta versión corrige varios problemas relacionados con la compilación del código utilizando la librería Musl, lo que mejora su compatibilidad con ciertos entornos de desarrollo.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
¿Como instalar OpenSSH en Linux?
Para quienes estén interesados en poder instalar esta nueva versión de OpenSSH en sus sistemas, de momento podrán hacerlo descargando el código fuente de este y realizando la compilación en sus equipos.
Esto es debido a que la nueva versión aún no se ha incluido dentro de los repositorios de las principales distribuciones de Linux. Para obtener el código fuente, puedes hacer desde el siguiente enlace.
Hecha la descarga, ahora vamos a descomprimir el paquete con el siguiente comando:
tar -xvf openssh-9.9.tar.gz
Entramos al directorio creado:
cd openssh-9.9
Y podremos realizar la compilación con los siguientes comandos:
./configure --prefix=/opt --sysconfdir=/etc/ssh make make install