PuTTY CAC ist ein Fork von PuTTY, einem beliebten Secure Shell (SSH)-Terminal. PuTTY CAC bietet die Möglichkeit, die Windows Certificate API (CAPI), PKCS-Bibliotheken (Public Key Cryptography Standards) oder FIDO-Schlüssel (Fast Identity Online) zu verwenden, um eine SSH-Authentifizierung mit öffentlichen Schlüsseln mithilfe eines privaten Schlüssels durchzuführen, der einem gespeicherten Zertifikat zugeordnet ist ein Hardware-Token.
PuTTY CAC kann mit vielen Arten kryptografischer Token wie Yubikeys und beliebten Smartcard-Modellen verwendet werden. Das „CAC“ in „PuTTY CAC“ bezieht sich auf die Common Access Card, einen Smartcard-Token, der für Einrichtungen der US-Regierung verwendet wird und einer der ersten Treiber für die Entwicklung von PuTTY CAC war.
PuTTY CAC wird unabhängig von der US-Regierung von der Open-Source-Community verwaltet.
Sie können die neueste Version von PuTTY CAC hier herunterladen: https://github.com/NoMoreFood/putty-cac/releases
Der Quellcode und die Binärdateien von PuTTY CAC können für jeden Zweck kostenlos verwendet werden. Die Lizenz finden Sie hier: https://github.com/NoMoreFood/putty-cac/blob/master/code/LICENCE
Eine grundlegende Anleitung zur Nutzung der ID-Management-Website der US-Regierung finden Sie im Abschnitt „SSH mit PuTTY-CAC“:
https://playbooks.idmanagement.gov/piv/engineer/ssh/
PuTTY CAC unterstützt die gleichen Befehlszeilenoptionen wie PuTTY mit einigen zusätzlichen, speziellen Optionen speziell für PuTTY CAC.
Anstelle eines PuTTY-Schlüsseldateipfads für jedes PuTTY-Dienstprogramm können Sie einen spezifischen Zertifikatsfingerabdruck oder eine Anwendungskennung angeben. Zum Beispiel:
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
Ausführbare PuTTY-Dateien (putty.exe, pageant.exe, psftp.exe) unterstützen die folgenden zusätzlichen Befehlszeilenoptionen. Die meisten dieser Optionen konzentrieren sich auf die Bedienung von Pageant und können auch über die Benutzeroberfläche eingestellt werden. Sobald diese Optionen festgelegt sind, gelten sie automatisch für nachfolgende Ausführungen, sofern sie nicht ausdrücklich deaktiviert werden. Einstellungen, die die Auswahldialoge für Pageant-Zertifikate filtern, wirken sich auch auf die Auswahldialoge für Filterzertifikate in der Standard-PuTTY-Anwendung aus:
-autoload
, -autoloadoff
-savecertlist
, -savecertlistoff
-forcepincache
, -forcepincacheoff
-certauthprompting
, -certauthpromptingoff
-trustedcertsonly
, -trustedcertsonlyoff
-ignoreexpiredcerts
, -ignoreexpiredcertsoff
-allowanycert
, -allowanycertoff
Für die Zwecke von PuTTY CAC ist das Zertifikat lediglich eine praktische Möglichkeit, auf ein privates/öffentliches Schlüsselpaar zu verweisen. Wenn Sie PuTTY CAC zur sicheren Anmeldung an Ihrem System verwenden möchten und keinen Zugriff auf eine Zertifizierungsstelle (CA) haben, kann das Zertifikat selbstsigniert werden. Umgekehrt kann PuTTY CAC in Verbindung mit verwalteten SSH-Servern verwendet werden, um die Multifaktor-Authentifizierung zu erzwingen. Dies kann erreicht werden, indem sichergestellt wird, dass die OpenSSH-Datei „authorized_keys“ nur öffentliche Schlüssel enthält, die mit Hardware-Tokens verknüpft sind, entweder prozedural oder durch die Erstellung eines Index aller ausgestellten Zertifikate und deren Suche über OpenSSH-Anweisungen wie „AuthorizedKeysCommand“.
Der spezifische Code, der für die Schnittstelle mit dem Hardware-Token verwendet wird, nutzt die kryptografischen Bibliotheken von Microsoft, die wiederum durch FIPS-Einstellungen auf Systemebene gesteuert werden (siehe Website von Microsoft). Ebenso wird garantiert, dass das Hardware-Token, das für Signaturauthentifizierungsherausforderungen verwendet wird, FIPS-kompatible Algorithmen verwendet, wenn der Hardwareschlüssel FIPS-zertifiziert ist; Weitere Informationen finden Sie auf der Website des Herstellers des Hardware-Tokens. PuTTY selbst nutzt proprietäre Verschlüsselung und Hashing, sobald die SSH-Sitzung eingerichtet ist, die keiner Evaluierung auf FIPS-Konformität oder Zertifizierung unterzogen wurde.