Al trasladar el material de las claves SSH a enclaves de hardware seguros, los usuarios pueden garantizar que, incluso si el sistema de archivos de un host se ve comprometido, las claves privadas no puedan ser exfiltradas ni utilizadas sin la presencia física del hardware. Este cambio aborda la vulnerabilidad de las claves 'tradicionales' en disco, que permanecen accesibles para cualquier atacante que obtenga acceso root a la máquina local.
El cambio hacia las claves residentes en hardware
Las claves SSH tradicionales suelen almacenarse como archivos en un disco, protegidas únicamente por una frase de contraseña. Aunque una frase de contraseña cifra la clave utilizando bcrypt y AES, el material descifrado sigue siendo vulnerable si un atacante obtiene privilegios suficientes en el host. Las claves residentes en hardware trasladan esta protección a un enclave seguro o a un dispositivo diseñado específicamente como una YubiKey.
El principal beneficio de seguridad es que se requiere el hardware utilizado para generar la clave para poder usarla. Debido a que no existe un mecanismo para exfiltrar el material de la clave interna, un atacante que robe una imagen de disco o obtenga acceso root remoto no puede replicar la clave sin la posesión física del hardware.
“El beneficio teórico aquí es que se necesita el hardware utilizado para generar la clave SSH para poder usar la clave.”
— I deleted all my SSH keys
Métodos de implementación: YubiKey, TPM y Secure Enclave
El método YubiKey utiliza el formato ed25519-sk (Security Key). Cuando se inscribe una clave con la opción residente, la YubiKey almacena el material internamente. El archivo en el disco del host se convierte en un simple 'manejador' que apunta al dispositivo de hardware. Los usuarios pueden configurar estas claves para requerir un toque físico en cada intento de autenticación, proporcionando un alto nivel de detección de presencia.

Esta captura de pantalla ilustra el método específico de línea de comandos para inscribir claves en la memoria interna de una YubiKey.
Para los usuarios que deseen aprovechar el hardware existente, el TPM (Trusted Platform Module) puede usarse a través de ssh-tpm-agent. A diferencia de la YubiKey, el TPM no admite de forma nativa la inscripción de claves SSH; en su lugar, el material de la clave privada se almacena en disco en forma cifrada, y el TPM se utiliza para descifrarlo. Esto vincula la clave al hardware de la máquina específica.

Esta imagen demuestra la implementación de claves respaldadas por TPM utilizando ssh-tpm-agent.
En macOS, el sistema Smart Card Auth puede crear identidades no exportables dentro del Apple Secure Enclave. Al usar la bandera -ne (non-exportable) durante la creación, la clave se ve obligada a permanecer dentro del enclave. Estas identidades pueden exportarse como manejadores al disco, que OpenSSH puede utilizar entonces a través del proveedor ssh-keychain.dylib.

Esta captura de pantalla muestra el proceso para crear identidades no exportables en macOS.
Compensaciones operativas y limitaciones
Pasar a las claves residentes en hardware introduce restricciones operativas específicas. Por ejemplo, las claves del Secure Enclave de Apple pueden fallar en 'modo clamshell' (portátil con la tapa cerrada) porque TouchID no está disponible, lo que requiere que los usuarios utilicen un teclado Bluetooth con TouchID o una YubiKey para la detección de presencia. Además, un mal funcionamiento o la pérdida del hardware puede hacer que las claves sean permanentemente inutilizables, lo que hace que la redundancia en múltiples dispositivos sea esencial.
Existe una limitación significativa para la autenticación no atendida. Aunque las YubiKeys admiten una bandera de 'no requiere toque', esto debe permitirse explícitamente en el lado del servidor anteponiendo la clave en el archivo authorized_keys. Este requisito puede no ser compatible con todos los servicios de terceros, como GitHub o BitBucket, que pueden limitar el uso de estas claves para flujos de trabajo automatizados.
Qué dicen los lectores de Hacker News
- Nota técnica: Un comentarista señaló que el método TPM todavía almacena el material de la clave privada en disco en forma cifrada, observando que cualquiera con acceso al TPM podría potencialmente recrear las claves sin una contraseña del propietario. comentario ↗
- Nota técnica: Varios comentaristas expresaron preocupaciones con respecto a la fiabilidad del hardware, con un usuario compartiendo una experiencia personal de una YubiKey que se derritió y otro cuestionando cómo manejar bloqueos permanentes si un dispositivo se pierde o se daña. comentario ↗
- Nota técnica: Un comentarista sugirió un punto medio alternativo utilizando una YubiKey como Autoridad de Certificación para firmar certificados SSH de corta duración y con alcance restringido. comentario ↗
- Nota técnica: Un comentarista señaló una limitación práctica con respecto a la autenticación de múltiples saltos, cuestionando si las claves de hardware pueden actualmente admitir la autenticación de un segundo salto a través de un jump box. comentario ↗
Resumen de opiniones del hilo de Hacker News; no son hechos verificados. Leer el debate completo ↗