Smartcard Authentication - Secure & Easy

SSH-Authentifizerung mittels TPM

Ein Trusted Platform Modul bietet ähnliche Funktionalitäten wie eine Smart Card, allerdings mit dem Unterschied, das der TPM-Chip fest mit dem Motherboard eines Rechners verbunden ist.

Damit ein TPM für die Authentifizierung mittels SSH verwendet werden kann, sind zwei Voraussetzungen erforderlich:

  1. Das TPM muss im BIOS des Rechners aktiviert werden.
  2. Es muss ein virtueller Smart Card Leser erzeugt werden, der das aktivierte TMP als Speicher für private Schlüssel verwendet.

Ein (oder mehrere) virtuelle Kartenleser zu TPM-Nutzung können ab Windows 10 mit Administratorrechten mit folgendem Kommando erzeugt werden:

tpmvscmgr.exe create /name TPM-Card /pin prompt /puk prompt /pinpolicy minlen 6 /adminkey random /generate

Die so erzeugte virtuelle Smart Card ist leer. Die einfachste Möglichkeit, sie mit einem privaten Schlüssel zu versehen. besteht darin, eine PKCS#12-Datei mit einem Zertifikat plus privatem Schlüssel in diese mart Card zu importieren. Windows unterstützt allerdings den Import von privaten Schlüsseln in eine (virtuelle) Smart Card nur dann, wenn die folgenden Werte in der Registry gesetzt sind:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Base Smart Card Crypto Provider]
"AllowPrivateSignatureKeyImport"=dword:1
"AllowPrivateExchangeKeyImport"=dword:1

Mit diesen Registry-Einstellungen gelingt der Import einer PKCS#12-Datei mittels:

certutil -csp "Microsoft Base Smart Card Crypto Provider" -importpfx cert-plus-key.p12
Anleitungen, wie man z.B: mittels OpenSSL einen privaten Schlüssel und ein dazu passendes selbstsigniertes Zertifikat erzeugt und diese beiden Bestandteile in einer PKCS#12-Datei speichert, findet man im Internet. Pageant.exe nutzt nur den privaten Schlüssel, welches Zertifikat importiert wird ist irrelevant.

Zu Testzwecken kann auch der Demo-Schlüssel aus dem Donwloadbereich verwendet werden.