VeraCrypt: Schlüsseldatei (Keyfile) mit TPM absichern
Vor einiger Zeit hatte ich hier im Blog schon mal beschrieben, wie man VeraCrypt-Volumes mit auf einem YubiKey gespeichterten Schlüsseldatei absichern kann. Das Ganze funktioniert unter Verwendung der PKCS#11-Schnittstelle. Aus Interesse habe ich mal ausprobiert, ob und wie sich das mittels TPM (Trusted Platform Module) umsetzen lässt. Verwendet habe ich hierzu, wie schon beim verschlüsselten Speichern von SSH-Keys per TPM, die Bibliothek tpm2-tools.
PKCS#11-Bibliothek in VeraCrypt einrichten
Für die Einrichtung der PKCS#11-Bibliothek in VeraCrypt verweise ich mal auf meinen Beitrag VeraCrypt: Schlüsseldatei (Keyfile) mit YubiKey verwenden. Folgt einfach den Schritten im entsprechenden Abschnitt. Abweichend ist der Pfad zur PKCS#11-Bibliothek bei mir unter Arch Linux wie folgt:
/usr/lib/pkcs11/libtpm2_pkcs11.so
Schlüsseldatei ereugen
Auch hier folgt einfach dem entsprechenden Abschnitt im o.g. Beitrag.
TPM-Store & Token erzeugen
Als erstes erstellen wir einen TPM-Store/Slot:
tpm2_ptool init
action: Created
id: 1
Für diesen Slot erzeugen wir nun noch einen Token, in dem später die VeraCrypt-Schlüsseldatei gespeichert wird.
tpm2_ptool addtoken --pid 1 --label veracrypt --sopin mysuperpin --userpin mypin
VeraCrypt-Volume mit TPM-Schlüsseldatei erstellen
Startet den "Wizard" zum Erstellen eines neuen VeraCrypt-Volumes. Im Dialog, in dem ihr euer Passwort vergeben müsst, wählt die Option Use keyfiles
und klickt auf Keyfiles
.

In dem sich öffnenden Dialog klickt auf Add Token Files
:

Ihr werden nun nach der PIN eures TPM-Tokens gefragt, die ihr nun eingeben müsst:

Anschließend öffnet sich ein Dialog in dem ihr auf Import Keyfile to Token
:

Daraufhin öffnet sich der Datei-Auswahl-Dialog eures Dateimanagers. Wählt die zuvor von euch erzeugte Schlüsseldatei aus. Klickt dann auf OK
, um die ausgewählte Schlüsseldatei dem ausgewählten TPM-Token hinzuzufügen.

Jetzt könnt ihr die dem TPM-Token hinzugefügte Schlüsseldatei per OK
auswählen.

Abschließend wählt nun erneut die Schlüsseldatei aus und klickt auf OK
:

Fahrt nun ganz normal mit dem Erstellen des VeraCrypt-Volumes fort.
VeraCrypt mit TPM-Schlüsseldatei entschlüsseln & mounten
Zum Entschlüsseln und Mounten eures VeraCrypt-Volumes müsst ihr nun immer die TPM-Schlüsseldatei auswählen. VeraCrypt wird euch dann nach der PIN für euren TPM-Token fragen, um auf die Schlüsseldatei zugreifen zu können.
Fazit
VeraCrypt-Schlüsseldateien lassen sich über die universelle PKCS#11-Schnittstelle auch per TPM verschlüsselt speichern. Aus Portabilitätsgründen ist die YubiKey- bzw. Security-Token-Variante sicherlich vorzuziehen bzw. nützlicher.