OpenPGP Schlüsse auf Nitrokey Pro 2 erzeugen

Security

In diesem Tutorial erkläre ich euch, wie Ihr auf dem Nitrokey Pro 2 einen OpenPGP Schlüssel mit GnuPG (Version 2.3.8) erzeugt. Voraussetzung für dieses Tutorial ist, dass Ihr schon die Nitrokey App installiert habt.

Eine Anleitung, wie Ihr das unter Gentoo macht findet Ihr hier.

Vorbereitung

Der Nitrokey Pro 2 funktioniert in Verbindung mit GnuPG wie eine Samrtcard, er ist quasi eine. Um zu überprüfen ob der Zugriff auf diese gegeben ist geben wir als Normaler Nutzer (Besitzer Nitrokey) in der Konsole folgendes ein:

gpg2 --card-status

Ist der Nitrokey verfügbar sollte eine Ausgabe wie folgt erfolgen:

Reader ...........: 20A0:4108:000000000000000000001234:0
Application ID ...: D1234567890123456789012345678901
Version ..........: 3.3
Manufacturer .....: ZeitControl
Serial number ....: 00001234
Name of cardholder: [nicht gesetzt]
Language prefs ...: de
Sex ..............: unbestimmt
URL of public key : [nicht gesetzt]
Login data .......: [nicht gesetzt]
Signature PIN ....: zwingend
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 64 64 64
PIN retry counter : 3 0 3
Signature counter : 0
KDF setting ......: on
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

Wenn kein Gerät gefunden wird, kontrolliert ob der Nitrokey überhaupt eingesteckt ist oder ob die UDEV Rules richtig eingerichtet sind.

Nitrokey personalieren

Als nächstes personalisieren wir den Nitrokey. Wie wir bereits im Karten Status gesehen haben ist z.B. der “Kartenhalter” nicht eingetragen. Um die Daten zu ändern geben wir folgendes in der Konsole ein:

gpg2 --card-edit

Nun sollten wieder die Karteninformationen auftauchen die wir zuvor gesehen haben und es ist ein neuer Command Prompt verfügbar (gpg/card>). Um jetzt ein Parameter wie den Namen des Kartenhalters gibt man nun folgende Befehle ein:

admin
name

Danach sollte man nach den notwendigen Daten gefragt werden, die man dann einfach eintippt. Beim ersten Editieren wird man nach dem Admin PIN gefragt. Mit den Befehl “admin -> help” bekommt man eine Liste aller möglichen Befehle. Ich habe noch zusätzlich das Geschlecht angegeben. Hier sollten man darüber hinwegsehen, dass es zumindest für Deutschland keine komplett politisch korrekte Auswahlmöglichkeit gibt.

Meine Daten sehen nun wie folgt aus:

...
Name of cardholder: Max Mustermann
Language prefs ...: de
Sex ..............: männlich
...

OpenPGP Schlüssel erzeugen

Nun geht es daran die OpenPGP Schlüssel auf dem Nitrokey zu erzeugen. In diesem Tutorial benutze ich die Standardeinstellungen die von GnuPG vorgeschlagen werden. Diese kann man natürlich anpassen, das sollte aber kein Teil dieses Tutorials sein.

Wir starten die Schlüsselgenerierung in der GPG Konsole (gpg2 –card-edit):

admin
generate

Nun werden wir Schritt für Schritt durch den Prozess geleitet. Während der Erzeugung der Schlüssel stürzt zumindest bei mir die Nitrokey App ab. Also nicht wundern wenn das passiert, auf jeden Fall funktioniert danach wieder alles.

  • Sicherung des Schlüssels auf dem Rechner ablegen (J/n) / Das ist nicht zwingend notwendig in meinem Fall habe ich das aber getan.

  • Wie lange bleibt der Schlüssel gültig? / Hier legt man die Gültigkeit des Schlüssels fest. Mit z.B. “1y” ist der Schlüssel ein Jahr ab dem heutigen Tag gültig. Mit “0” ist dieser unbegrenzt gültig.

  • Name eingeben

  • Email Adresse eingeben

  • Kommentar eingeben / Hier kann man ein Kommentar zur Identität eingeben. Das ist aber optional.

  • Identitätsdaten bestätigen / Mit “F” bestätigt man alle Daten.

  • Schlüssel werden generiert / Das keine einige Zeit dauern!

  • Passwort für Sicherung vergeben (optional) / Hat man sich zuvor für die Sicherung des Schlüssels entschieden wird man nun nach einem Passwort gefragt, um diesen zu sichern.

Danach sollten die Kartendaten in etwa wie folgt aussehen:

...
Signature key ....: B05E 7E73 CD40 19D2 A067  2F4E 2CFC 1FDF E1A9 EC37
      created ....: 2019-05-19 09:29:12
Encryption key....: 0821 7AB9 0C7C 7780 1DC9  C2F4 1EFE 31FB B5D9 47EF
      created ....: 2019-05-19 09:29:12
Authentication key: 0C9E 2AA2 F397 8FD9 9C1F  8BE8 6F3E A2B4 7B5C 9005
      created ....: 2019-05-19 09:29:12
General key info..: 
pub  rsa2048/2FFC1CCFE1A9EC37 2019-05-19 Max Mustermann <max.mustermann@example.org>
sec>  rsa2048/2EEC1FDFE1A9EC37  erzeugt: 2019-05-19  verfällt: niemals   
                                Kartennummer:0001 00001234
ssb>  rsa2048/6F3EA2B4FF5C9005  erzeugt: 2019-05-19  verfällt: niemals   
                                Kartennummer:0001 00001234
ssb>  rsa2048/1EFEABFBB5D947EF  erzeugt: 2019-05-19  verfällt: niemals   
                                Kartennummer:0001 00001234
...

Damit haben wurde der OpenPGP Schlüssel auf dem Nitrokey Pro 2 erzeugt.