Nitrokey und Veracrypt

Hallo,

ich habe eine Frage zur Nutzung eines Nitrokey bzw. OpenPGP-Karten in Verbindung mit Veracrypt und hoffe, dass mir jemand weitere Informationen geben kann.

Ich habe einen Nitrokey 3A mini gekauft und entsprechend der Anleitung auf der Nitrokey-Webseite zur Entsperrung eines Veracrypt-Containers eingerichtet (https://docs.nitrokey.com/de/pro/linux/hard-disk-encryption.html#veracrypt-formerly-truecrypt). Also OpenSC installiert, 64-Byte-Schlüsseldatei in Veracrypt generiert und diese auf den Nitrokey als „Private Data Object 1“ importiert.

Laut Anleitung von Nitrokey besteht Zugriff auf die Schlüsseldatei erst „nachdem der Benutzer die PIN eingegeben hat“ und diese kann „als Alternative zum Passwort“ genutzt werden. Auf den ersten Blick funktioniert das auch gut. Veracrypt fragt nach der Smartcard-Pin und nach Eingabe wird der Container mit der Schlüsseldatei entsperrt.

Jetzt bin ich jedoch auf einen Github-Beitrag gestoßen, in dem angegeben wird, dass für einen Zugriff auf das „Private Data Object 1“ keine PIN-Eingabe erforderlich ist (https://github.com/veracrypt/VeraCrypt/issues/689). Diese Aussage wird, soweit ich das verstehe, auch in der Spezifikation für OpenPGP-Karten bestätigt (https://gnupg.org/ftp/specs/OpenPGP-smart-card-application-3.4.1.pdf Seite 41, erste Zeile der zweiten Tabelle).

Ein Test im Terminal mit dem Befehl „openpgp-tool --do 1“ gibt mir, ohne dass eine PIN abgefragt würde, folgenden Output:

Using reader with a card: Nitrokey Nitrokey 3 [CCID/ICCD Interface] 01 00
C5 CF D8 A1 09 46 A7 90 07 7A C6 D0 95 4F 5B AF …F…z…O[.
6F F4 DB E3 23 2B 86 22 85 F7 9A 0F 00 89 C4 3C o…#+."…<
2F CF F3 0B 92 F6 CE 3A CE FB 67 17 2B 90 94 7B /…:…g.+…{
B1 44 11 93 D3 6D BA 00 D4 D6 92 11 E5 0F 62 45 .D…m…bE

Jetzt zu meinen konkreten Fragen:

  1. Ist es tatsächlich der Fall, dass der Zugriff auf die Schlüsseldatei nicht durch die Smartcard-PIN geschützt wird? Mithin jeder, der den Nitrokey in die Finger bekommt, ohne Weiteres auf die Schlüsseldatei zugreifen kann?

  2. Ist der vorgenannte Output tatsächlich der Inhalt der Schlüsseldatei und lässt sich dieser verwenden, um den Veracrypt-Container zu entsperren? Ich kann mit dem Buchstaben-Salat leider wenig anfangen…

Sollten sich meine Recherchen bestätigen, dann wäre das wirklich ein grober Schnitzer von Nitrokey, wenn sie eine derart falsche und unsichere Nutzungsanleitung für ihr Produkt veröffentlichen.

Vielen Dank für Eure Rückmeldungen!

1 „Gefällt mir“

Meiner Ansicht nach ist die Integration mit Veracrypt ähnlich wie bei einem Keyfile, nur dass es als Data Object gespeichert wird.

Also ähnlich sicher wie FIDO2 HMAC Keys zuammen mit LUKS. Zwar wird der Verschlüsselungskey vom privaten Key auf dem Token abgeleitet, ist aber mehr oder weniger im Klartext auf dem OS exponiert.

Eine asymmetrische Verschlüsselung, die an den privaten Schlüssel auf der Smartcard (beim Nitrokey 3: opcard-rs App) gebunden ist, würde ich als sicherer betrachten.

Leider kenne ich nur eine Open Source, aber keine Libre Software namens Aloah Crypt Disk, die eine solche Smartcard Integration bietet. Ich selbst habe sie noch nicht ausprobiert.

  1. Ja, aber man kann PIN erzwingen.
  2. Ja, das ist der Verschlüsselungskey.

Ist aber kein grober Schnitzer von Nitrokey. Die Software bietet hier nur ein Keyfile an, was hier auf dem Nitrokey gespeichert wird. In der Dokumentation erwähnen sie auch Aloah Crypt Disk als sicherere Alternative.