Das TPM2 Modul kann unter Windows auch als virtuelle Smartcard genutzt werden. Das funktioniert inzwischen auch mit dem virtuellen tpm2 unter Linux/qemu/libvirt.

Vor- und Nachteile

Die Lösung hat folgende Vorteile:

  • Gegenüber Username/Passwort ist eine Bindung an den PC vorhanden.
  • Smartcard kann nicht verloren gehen
  • Keine weiteren Smartcard Treiber erforderlich, sofern die Virtual Smartcard Funktion des TPM2 Modules von Windows unterstützt wird.

Nachteile gibt es aber auch:

  • Der Vorteil, dass die Smartcard "nicht verloren gehen kann" wird ganz schnell zum Nachteil, wenn der Notebook verloren geht, weil damit zwangsläufig auch die virtuelle Smartcard weg ist.
  • Bei einem Defekt des TPM2 wird als Backup ggf. eine konventionelle Smartcard benötigt.
  • Bei einem virtuellen tpm2 hat man keine Vorteile, denn das virtuelle tpm2 kann ebenso einfach kopiert werden, wie eine normale Datei, denn das ist ja letztlich nichts als eine normale Datei im Linux Filesystem.

Letzlich muss je nach Anwendungsfall entschieden werden, ob eine virtuelle Smartcard genutzt werden sollte, oder nicht.

Altes Zertifikat löschen

Sofern auf dem TPM Modul noch ein altes Zertifikat vorhanden ist, dann sollte dieses gelöscht werden. Dazu wird die Instance-ID benötigt. Die Instance-ID wird bei der Initialisierung des TPMs angezeigt, an dieser Stelle muss die ID dokumentiert werden. Mit

tpmvscmgr.exe destroy /instance root\smartcardreader\0000

wird ein altes Zertifikat gelöscht, wobei 0000 durch die richtige Instance-ID ersetzt werden.

TPM initialisieren

Mit

C:\>tpmvscmgr.exe create /name VSC_cf /pin default /adminkey random /generate
Standard-PIN verwenden: 12345678
TPM-Smartcard wird erstellt...
Komponente für virtuelle Smartcards wird initialisiert...
Komponente für virtuelle Smartcards wird erstellt...
Simulator für virtuelle Smartcards wird initialisiert...
Simulator für virtuelle Smartcards wird erstellt...
Leser für virtuelle Smartcards wird initialisiert...
Leser für virtuelle Smartcards wird erstellt...
Auf TPM-Smartcardgerät wird gewartet...
TPM-Smartcard wird authentifiziert...
Dateisystem auf der TPM-Smartcard wird generiert...
Die TPM-Smartcard wurde erstellt.
Geräteinstanz-ID des Smartcardlesers: ROOT\SMARTCARDREADER\0000

wird das TPM initialisiert, in diesem Fall wurde die Instance-ID 0000 erzeugt.

Zertifikat importieren

Mit

C:\>certutil -csp "Microsoft Base Smart Card Crypto Provider" -importpfx my-cert.p12

wird ein PKCS#12 Zertifikat importiert. Dabei wird nach dem PKCS#12 Passwort des Datei und der PIN des TPMs gefragt. Im Erfolgsfall erscheint folgende Ausgabe:

Geben Sie das PFX-Kennwort ein:
Das Zertifikat "my-cert" wurde zum Speicher hinzugefügt.

CertUtil: -importPFX-Befehl wurde erfolgreich ausgeführt.

Jetzt kann das TPM für das Windows Login verwendet werden.

PIN ändern

Die PIN wird mit Ctrl-Alt-Del → "Kennwort ändern" geändert, also wie bei Windows auch sonst eine Änderung eines Passworts erfolgt.

Prüfung

Mit

C:\>certutil -scinfo

können die auf dem TPM installierten Zertifikate überprüft werden.

Troubleshooting

Falls der Import des PKCS#12 Zertifikats nicht funktioniert, dann muss evtl. in der Registry eine Anpassung vorgenommen werden. In "\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider\Microsoft Base Smart Card Crypto Provider" sind folgende Anpassung vorzunehmen:

Registry

Ein Einträge AllowPrivateExchangeKeyImport und AllowPrivateSignatureKeyImport müssen auf "1" (DWORD) stehen, sonst funktioniert der Import nicht.

 

Zurück