PuTTY CAC es una bifurcación de PuTTY, un popular terminal Secure Shell (SSH). PuTTY CAC agrega la capacidad de usar la API de certificados de Windows (CAPI), las bibliotecas de estándares de criptografía de clave pública (PKCS) o las claves Fast Identity Online (FIDO) para realizar la autenticación de clave pública SSH utilizando una clave privada asociada con un certificado que se almacena en una ficha de hardware.
PuTTY CAC se puede utilizar con muchos tipos de tokens criptográficos, como Yubikeys y modelos populares de tarjetas inteligentes. El 'CAC' en 'PuTTY CAC' se refiere a Common Access Card, un token de tarjeta inteligente utilizado para las instalaciones del gobierno de EE. UU. que fue uno de los impulsores iniciales para el desarrollo de PuTTY CAC.
PuTTY CAC se mantiene independientemente del gobierno de EE. UU. por parte de la comunidad de código abierto.
Puede descargar la última versión de PuTTY CAC aquí: https://github.com/NoMoreFood/putty-cac/releases
El código fuente y los archivos binarios de PuTTY CAC son de uso gratuito para cualquier propósito. La licencia se puede encontrar aquí: https://github.com/NoMoreFood/putty-cac/blob/master/code/LICENCE
Puede encontrar un conjunto básico de instrucciones sobre el uso del sitio web de administración de ID del gobierno de los Estados Unidos en la sección 'SSH usando PuTTY-CAC':
https://playbooks.idmanagement.gov/piv/engineer/ssh/
PuTTY CAC admite las mismas opciones de línea de comandos que PuTTY con algunas opciones adicionales especializadas específicamente para PuTTY CAC.
En lugar de una ruta de archivo de clave PuTTY para cualquier utilidad PuTTY, puede especificar una huella digital de certificado o un identificador de aplicación. Por ejemplo:
putty.exe user@host -i CAPI:716B8B58D8F2C3A7F98F3F645161B1BF9818B689
putty.exe user@host -i PKCS:B8B58D8F2C3A7F98F3F645161B1BF9818B689716=C:PKCS.dll
putty.exe user@host -i FIDO:ssh:MyFidoKey
Los ejecutables de PuTTY (putty.exe, pageant.exe, psftp.exe) admiten las siguientes opciones de línea de comandos adicionales. La mayoría de estas opciones se centran en el funcionamiento de Pageant y también se pueden configurar desde su interfaz de usuario. Una vez configuradas, estas opciones se aplicarán automáticamente a ejecuciones posteriores a menos que se desactiven específicamente. Las configuraciones que filtran los cuadros de diálogo de selección de certificados del concurso también afectarán los cuadros de diálogo de selección de certificados de filtrado en la aplicación PuTTY estándar:
-autoload
, -autoloadoff
-savecertlist
, -savecertlistoff
-forcepincache
, -forcepincacheoff
-certauthprompting
, -certauthpromptingoff
-trustedcertsonly
, -trustedcertsonlyoff
-ignoreexpiredcerts
, -ignoreexpiredcertsoff
-allowanycert
, -allowanycertoff
A los efectos de PuTTY CAC, el certificado es simplemente una forma conveniente de hacer referencia a un par de claves pública y privada. Si desea utilizar PuTTY CAC para iniciar sesión de forma segura en su sistema y no tiene acceso a una Autoridad de certificación (CA), el certificado puede estar autofirmado. Por el contrario, PuTTY CAC se puede utilizar junto con servidores SSH administrados para aplicar la autenticación multifactor. Esto se puede hacer asegurándose de que el archivo Authorized_keys de OpenSSH solo contenga claves públicas asociadas con tokens de hardware, ya sea de forma procesal o creando un índice de todos los certificados emitidos y buscándolos a través de directivas OpenSSH como AuthorizedKeysCommand.
El código específico utilizado para interactuar con el token de hardware utiliza las bibliotecas criptográficas de Microsoft que a su vez se rigen por la configuración FIPS a nivel del sistema (consulte el sitio web de Microsoft). De manera similar, se garantiza que el token de hardware que se utiliza para firmar desafíos de autenticación utilizará algoritmos compatibles con FIPS si la clave de hardware está certificada por FIPS; consulte el sitio web del fabricante del token de hardware para obtener más información. El propio PuTTY utiliza cifrado y hash patentados una vez que se establece la sesión SSH que no ha sido sometida a evaluación para determinar el cumplimiento o la certificación de FIPS.