OpenSSH 8.2 llega con soporte para tokens de autenticación 2FA
Después de cuatro meses de desarrollo, se acaba de presentar el lanzamiento de la nueva versión de OpenSSH 8.2, la cual es una implementación abierta del cliente y el servidor para trabajar en los protocolos SSH 2.0 y SFTP. Una de las mejoras clave en el lanzamiento de OpenSSH 8.2 fue la capacidad de utilizar la autenticación de dos factores utilizando dispositivos que admiten el protocolo U2F desarrollado por la alianza FIDO.
U2F permite crear tokens de hardware de bajo costo para confirmar la presencia física del usuario, cuya interacción es a través de USB, Bluetooth o NFC. Dichos dispositivos se promocionan como un medio de autenticación de dos factores en los sitios, ya son compatibles con los principales navegadores y son producidos por varios fabricantes, incluidos Yubico, Feitian, Thetis y Kensington.
Para interactuar con dispositivos que confirman la presencia del usuario, OpenSSH ha agregado dos nuevos tipos de claves “ecdsa-sk” y “ed25519-sk”, que utilizan los algoritmos de firma digital ECDSA y Ed25519 en combinación con el hash SHA-256.
Los procedimientos para interactuar con los tokens se han transferido a una biblioteca intermedia, que se carga por analogía con la biblioteca para el soporte PKCS#11 y es un enlace sobre la biblioteca libfido2, que proporciona medios para comunicarse con los tokens a través de USB (se admiten los protocolos FIDO U2F/CTAP 1 y FIDO 2.0/CTAP 2).
La biblioteca intermedia libsk-libfido2 preparada por los desarrolladores de OpenSSH se incluye en el núcleo libfido2, así como el controlador HID para OpenBSD.
Para la autenticación y la generación de claves, se debe especificar el parámetro “SecurityKeyProvider” en la configuración o establecer la variable de entorno SSH_SK_PROVIDER, especificando la ruta a la biblioteca externa libsk-libfido2.so.
Es posible construir openssh con soporte integrado para la biblioteca de capas intermedias y en este caso se necesita establecer el parámetro “SecurityKeyProvider=internal”.
Además, de forma predeterminada, cuando se realizan operaciones clave, se requiere una confirmación local de la presencia física del usuario, por ejemplo, se sugiere tocar el sensor en el token, lo que dificulta realizar ataques remotos en sistemas con un token conectado.
Por otra parte, la nueva versión de OpenSSH también anunció la próxima transferencia a la categoría de algoritmos obsoletos que usan hash SHA-1 debido a un aumento en la eficiencia de los ataques de colisión.
Para facilitar la transición a nuevos algoritmos en OpenSSH en una de las próximas versiones, la configuración UpdateHostKeys se habilitará de manera predeterminada, lo que cambiará automáticamente a los clientes a algoritmos más confiables.
Tambien se podrá encontrar en OpenSSH 8.2, la capacidad de conectarse usando “ssh-rsa” todavía se deja, pero este algoritmo se elimina de la lista CASignatureAlgorithms, que define los algoritmos que son válidos para firmar digitalmente nuevos certificados.
Del mismo modo, el algoritmo diffie-hellman-group14-sha1 se ha eliminado de los algoritmos predeterminados de intercambio de claves.
De los demás cambios que se destacan de esta nueva versión:
- Se ha agregado una directiva incluir a sshd_config, que permite incluir el contenido de otros archivos en la posición actual del archivo de configuración.
- La directiva PublishAuthOptions se ha agregado a sshd_config, combinando diferentes opciones relacionadas con la autenticación de clave pública.
- Se agregó la opción “-O write-attestation = / path” a ssh-keygen, que permite escribir certificados de certificación FIDO adicionales al generar claves.
- La capacidad de exportar PEM para claves DSA y ECDSA se ha agregado a ssh-keygen.
- Se agregó un nuevo archivo ejecutable ssh-sk-helper utilizado para aislar la biblioteca de acceso de token FIDO / U2F.
¿Como instalar OpenSSH 8.2 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 de OpenSSH 8.2. Esto lo puedes hacer desde el siguiente enlace (en el momento de la redacción el paquete aún no aparece disponible en los mirrors y mencionan que puede tardar unas horas más)
Hecha la descarga, ahora vamos a descomprimir el paquete con el siguiente comando:
tar -xvf openssh-8.2.tar.gz
Entramos al directorio creado:
cd openssh-8.2
Y podremos realizar la compilación con los siguientes comandos:
./configure --prefix=/opt --sysconfdir=/etc/ssh make make install