PuTTY CAC é um fork do PuTTY, um popular terminal Secure Shell (SSH). PuTTY CAC adiciona a capacidade de usar a API de certificado do Windows (CAPI), bibliotecas de padrões de criptografia de chave pública (PKCS) ou chaves Fast Identity Online (FIDO) para executar a autenticação de chave pública SSH usando uma chave privada associada a um certificado armazenado em um token de hardware.
PuTTY CAC pode ser usado com muitos tipos de tokens criptográficos, como Yubikeys e modelos populares de cartões inteligentes. O 'CAC' em 'PuTTY CAC' refere-se ao Common Access Card, um token de cartão inteligente usado para instalações do governo dos EUA que foi um dos impulsionadores iniciais para o desenvolvimento do PuTTY CAC.
PuTTY CAC é mantido independentemente do governo dos EUA pela comunidade de código aberto.
Você pode baixar a versão mais recente do PuTTY CAC aqui: https://github.com/NoMoreFood/putty-cac/releases
O código-fonte e os binários do PuTTY CAC são gratuitos para uso para qualquer finalidade. A licença pode ser encontrada aqui: https://github.com/NoMoreFood/putty-cac/blob/master/code/LICENCE
Você pode encontrar um conjunto básico de instruções sobre o uso do site de gerenciamento de ID do governo dos Estados Unidos na seção 'SSH usando PuTTY-CAC':
https://playbooks.idmanagement.gov/piv/engineer/ssh/
PuTTY CAC suporta as mesmas opções de linha de comando que PuTTY com algumas opções adicionais especializadas especificamente para PuTTY CAC.
No lugar de um caminho de arquivo de chave PuTTY para qualquer utilitário PuTTY, você pode especificar a impressão digital do certificado ou o identificador do aplicativo. Por exemplo:
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
Os executáveis PuTTY (putty.exe, pageant.exe, psftp.exe) suportam as seguintes opções adicionais de linha de comando. A maioria dessas opções concentra-se na operação do Pageant e também pode ser configurada na interface do usuário. Uma vez definidas, essas opções serão aplicadas automaticamente às execuções subsequentes, a menos que sejam especificamente desativadas. As configurações que filtram as caixas de diálogo de seleção de certificados do Pageant também afetarão as caixas de diálogo de seleção de certificados de filtro no aplicativo PuTTY padrão:
-autoload
, -autoloadoff
-savecertlist
, -savecertlistoff
-forcepincache
, -forcepincacheoff
-certauthprompting
, -certauthpromptingoff
-trustedcertsonly
, -trustedcertsonlyoff
-ignoreexpiredcerts
, -ignoreexpiredcertsoff
-allowanycert
, -allowanycertoff
Para fins do PuTTY CAC, o certificado é simplesmente uma maneira conveniente de fazer referência a um par de chaves privada/pública. Se você quiser usar o PuTTY CAC para fazer login com segurança no seu sistema e não tiver acesso a uma Autoridade de Certificação (CA), o certificado poderá ser autoassinado. Por outro lado, o PuTTY CAC pode ser usado em conjunto com servidores SSH gerenciados para impor a autenticação multifator. Isso pode ser feito garantindo que o arquivo OpenSSHauthorized_keys contenha apenas chaves públicas associadas a tokens de hardware de forma processual ou criando um índice de todos os certificados emitidos e pesquisando-os por meio de diretivas OpenSSH como AuthorizedKeysCommand.
O código específico usado para fazer interface com o token de hardware utiliza as bibliotecas criptográficas da Microsoft que, por sua vez, são regidas pelas configurações FIPS no nível do sistema (consulte o site da Microsoft). Da mesma forma, é garantido que o token de hardware usado para assinar desafios de autenticação use algoritmos compatíveis com FIPS se a chave de hardware for certificada por FIPS; consulte o site do fabricante do token de hardware para obter mais informações. O próprio PuTTY utiliza criptografia e hashing proprietários assim que a sessão SSH é estabelecida e não passou por avaliação de conformidade ou certificação FIPS.