PuTTY CAC — это ответвление PuTTY, популярного терминала Secure Shell (SSH). PuTTY CAC добавляет возможность использовать API сертификатов Windows (CAPI), библиотеки стандартов шифрования с открытым ключом (PKCS) или ключи Fast Identity Online (FIDO) для выполнения аутентификации с открытым ключом SSH с использованием закрытого ключа, связанного с сертификатом, который хранится на аппаратный токен.
PuTTY CAC можно использовать со многими типами криптографических токенов, таких как Yubikeys и популярные модели смарт-карт. «CAC» в «PuTTY CAC» относится к общей карте доступа, токену смарт-карты, используемому на государственных учреждениях США, который был одним из первоначальных стимулов для разработки PuTTY CAC.
PuTTY CAC поддерживается сообществом открытого исходного кода независимо от правительства США.
Вы можете скачать последнюю версию PuTTY CAC здесь: https://github.com/NoMoreFood/putty-cac/releases.
Исходный код и двоичные файлы PuTTY CAC можно использовать бесплатно для любых целей. Лицензию можно найти здесь: https://github.com/NoMoreFood/putty-cac/blob/master/code/LICENCE.
Базовый набор инструкций по использованию веб-сайта управления идентификаторами правительства США можно найти в разделе «SSH с использованием PuTTY-CAC»:
https://playbooks.idmanagement.gov/piv/engineer/ssh/
PuTTY CAC поддерживает те же параметры командной строки, что и PuTTY, с некоторыми дополнительными, специализированными параметрами, специально для PuTTY CAC.
Вместо пути к ключевому файлу PuTTY для любой утилиты PuTTY вы можете указать отпечаток сертификата или идентификатор приложения. Например:
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
Исполняемые файлы PuTTY (putty.exe, pageant.exe, psftp.exe) поддерживают следующие дополнительные параметры командной строки. Большинство этих параметров ориентированы на работу Pageant, а также настраиваются из его пользовательского интерфейса. После установки эти параметры будут автоматически применяться к последующим выполнениям, если они не отключены специально. Настройки, фильтрующие диалоговые окна выбора сертификата Pageant, также будут влиять на диалоговые окна выбора сертификата фильтра в стандартном приложении PuTTY:
-autoload
, -autoloadoff
-savecertlist
, -savecertlistoff
-forcepincache
, -forcepincacheoff
-certauthprompting
, -certauthpromptingoff
-trustedcertsonly
, -trustedcertsonlyoff
-ignoreexpiredcerts
, -ignoreexpiredcertsoff
-allowanycert
, -allowanycertoff
Для целей PuTTY CAC сертификат — это просто удобный способ ссылки на пару частного/открытого ключей. Если вы хотите использовать PuTTY CAC для безопасного входа в систему и не имеете доступа к центру сертификации (CA), сертификат может быть самоподписанным. И наоборот, PuTTY CAC можно использовать в сочетании с управляемыми серверами SSH для обеспечения многофакторной аутентификации. Это можно сделать, гарантируя, что файл авторизованных_ключей OpenSSH содержит только открытые ключи, связанные с аппаратными токенами, либо процедурно, либо путем создания индекса всех выданных сертификатов и поиска их с помощью директив OpenSSH, таких как AuthorizedKeysCommand.
Конкретный код, используемый для взаимодействия с аппаратным токеном, использует криптографические библиотеки Microsoft, которые, в свою очередь, управляются настройками FIPS системного уровня (см. веб-сайт Microsoft). Аналогичным образом, аппаратный токен, используемый для подписи запросов аутентификации, гарантированно использует алгоритмы, совместимые с FIPS, если аппаратный ключ сертифицирован FIPS; дополнительную информацию см. на веб-сайте производителя аппаратного токена. Сам PuTTY использует собственное шифрование и хеширование после установления сеанса SSH, который не прошел оценку на соответствие или сертификацию FIPS.