Cloudflare ha lanzado OPKSSH (OpenPubkey SSH), una herramienta de autenticación basada en OpenID Connect (OIDC) para servidores SSH, permitiendo a los administradores reemplazar las tradicionales claves SSH con un acceso controlado por identidad. Esta nueva propuesta elimina la necesidad de manejar claves SSH estáticas y permite gestionar el acceso a los sistemas de manera mucho más segura y flexible.
OPKSSH ha sido liberado como código abierto bajo el proyecto OpenPubkey, una iniciativa que ya se encontraba bajo el paraguas de la Linux Foundation desde 2023. Originalmente desarrollada por BastionZero, una empresa que ahora forma parte de Cloudflare, esta herramienta es un avance significativo en la gestión de accesos en entornos de infraestructura, permitiendo el uso de un sistema de autenticación robusto y estandarizado a través de proveedores de identidad.
Ventajas Principales de OPKSSH
- Seguridad Mejorada: OPKSSH elimina el uso de claves SSH estáticas y reemplaza estas con claves efímeras que se generan bajo demanda. Estas claves se crean cuando el usuario realiza el inicio de sesión y caducan automáticamente en 24 horas por defecto, aunque este período es configurable. Este enfoque reduce el riesgo de que las claves SSH sean comprometidas y limita el impacto en caso de una filtración, dado que las claves son de corta duración.
- Usabilidad Mejorada: El proceso de autenticación se simplifica enormemente. Para acceder a un servidor SSH, el usuario simplemente debe iniciar sesión a través de su proveedor de identidad, como Google, Microsoft/Azure, o GitLab, utilizando el comando
opkssh login
. OPKSSH genera automáticamente una clave SSH que contiene el token de identidad del usuario, lo que elimina la necesidad de gestionar claves privadas manualmente. Esto facilita la gestión de acceso y elimina la dependencia de las claves físicas. - Mejor Visibilidad y Control de Acceso: OPKSSH facilita el control de accesos al cambiar la autenticación de clave pública a una basada en identidad. Los administradores pueden gestionar el acceso a servidores solo agregando las direcciones de correo electrónico de los usuarios a los archivos de configuración de OPKSSH. Esto mejora la trazabilidad de quién tiene acceso a qué recursos, ya que los usuarios están identificados por su identidad digital, en lugar de por una clave SSH. Además, la administración de accesos se vuelve más sencilla, ya que los administradores pueden asignar permisos fácilmente a través de las direcciones de correo electrónico.
Mejoras en OpenPubkey
El proyecto OpenPubkey ya incluía soporte para usar SSH mediante la integración con OpenPubkey, pero el código en esa etapa era solo un prototipo. Con el lanzamiento de OPKSSH, este soporte ha sido mejorado y ahora se ofrece como una solución completamente funcional para entornos de producción. Las mejoras clave incluyen:
- Soporte para SSH listo para producción
- Instalación automatizada de las herramientas necesarias
- Mejores herramientas de configuración para facilitar la gestión y el mantenimiento de los entornos de autenticación
Cómo Funciona OPKSSH
OPKSSH se basa en la capacidad de SSH para manejar certificados SSH y la extensión de campos dentro de estos certificados. Utiliza los tokens PK, que incluyen el ID Token de OpenID Connect, y los inyecta en el proceso de autenticación de SSH. Esto permite que el servidor SSH verifique la autenticidad del usuario mediante la verificación de su identidad a través de los tokens emitidos por su proveedor de identidad.
Para implementar OPKSSH, los administradores deben instalar el binario en sus servidores y configurarlo para utilizarlo como mecanismo adicional de autenticación en el servidor SSH. A continuación, los usuarios pueden conectarse a los servidores utilizando sus credenciales de OpenID Connect, sin necesidad de intercambiar o almacenar claves SSH tradicionales.
Instalación y Configuración
La instalación de OPKSSH en el servidor es simple. Se puede instalar automáticamente mediante un script en sistemas Linux, o bien manualmente utilizando los binarios disponibles para Linux, macOS y Windows. Una vez instalado, los administradores pueden agregar fácilmente a los usuarios autorizados mediante sus identificadores de OpenID (correo electrónico o identificador de sujeto), y configurar el servidor para aceptar solo claves generadas a través de OPKSSH.
Los usuarios solo necesitan ejecutar el comando opkssh login
, que abrirá una ventana del navegador para que se autentiquen con su proveedor de identidad. Posteriormente, el sistema genera una clave SSH temporal, que permite la autenticación en los servidores configurados para aceptar OPKSSH.
Compatibilidad con Proveedores de Identidad
OPKSSH es compatible con varios proveedores de identidad populares como Google, Microsoft/Azure, y GitLab. Además, los administradores pueden configurar OPKSSH para integrarlo con otros proveedores de identidad a través de OpenID Connect, lo que asegura que cualquier organización puede adaptar la herramienta a su infraestructura existente.
Conclusión
La liberación de OPKSSH marca un hito importante en la gestión de la autenticación SSH en entornos corporativos y de nube. Con la adopción de OpenID Connect y la eliminación de claves SSH estáticas, OPKSSH ofrece una forma más segura, sencilla y eficiente de manejar los accesos a los servidores, sin comprometer la seguridad ni la trazabilidad. Este avance se alinea con la creciente necesidad de integrar las autenticaciones en los sistemas modernos de gestión de identidades, contribuyendo a la protección de infraestructuras críticas frente a amenazas externas e internas.