PuTTY CAC は、人気のある Secure Shell (SSH) 端末である PuTTY のフォークです。 PuTTY CAC は、Windows Certificate API (CAPI)、Public Key Cryptography Standards (PKCS) ライブラリ、または Fast Identity Online (FIDO) キーを使用して、に保存されている証明書に関連付けられた秘密キーを使用して SSH 公開キー認証を実行する機能を追加します。ハードウェアトークン。
PuTTY CAC は、Yubikey や一般的なスマート カード モデルなど、さまざまな種類の暗号トークンで使用できます。 「PuTTY CAC」の「CAC」は Common Access Card を指します。Common Access Card は、PuTTY CAC 開発の最初の原動力の 1 つであり、米国政府施設で使用されるスマート カード トークンです。
PuTTY CAC は、オープンソース コミュニティによって米国政府から独立して維持されています。
PuTTY CAC の最新リリースはここからダウンロードできます: https://github.com/NoMoreFood/putty-cac/releases
PuTTY CAC のソース コードとバイナリは、あらゆる目的に自由に使用できます。ライセンスはここで見つけることができます: https://github.com/NoMoreFood/putty-cac/blob/master/code/LICENCE
米国政府の ID 管理 Web サイトの使用に関する基本的な手順は、「PuTTY-CAC を使用した SSH」セクションにあります。
https://playbooks.idmanagement.gov/piv/engineer/ssh/
PuTTY CAC は、PuTTY と同じコマンド ライン オプションをサポートしており、特に PuTTY CAC に特化した追加オプションもいくつかサポートしています。
PuTTY ユーティリティの PuTTY キー ファイル パスの代わりに、特定の証明書の拇印またはアプリケーション ID を使用できます。例えば:
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 サーバーと組み合わせて使用して、多要素認証を強制することもできます。これは、手順的に、または発行されたすべての証明書のインデックスを作成し、AuthorizedKeysCommand などの OpenSSH ディレクティブを通じてそれらを検索することによって、OpenSSH のauthorized_keys ファイルにハードウェア トークンに関連付けられた公開キーのみが含まれていることを確認することで実行できます。
ハードウェア トークンとのインターフェースに使用される特定のコードは、Microsoft 暗号化ライブラリを利用しており、これはシステム レベルの FIPS 設定によって管理されます (Microsoft の Web サイトを参照)。同様に、ハードウェア キーが FIPS 認定されている場合、認証チャレンジの署名に使用されるハードウェア トークンは FIPS 準拠のアルゴリズムを使用することが保証されます。詳細については、ハードウェア トークンの製造元の Web サイトを参照してください。 PuTTY 自体は、FIPS 準拠または認証の評価を受けていない SSH セッションが確立されると、独自の暗号化とハッシュを利用します。