Nitrokey Pro 2

27 July 2019 DebXWoody

Ich verwende den Nitrokey Pro 2 primär als OpenPGP / SSH Token. Details findet man im Infoblatt auf der des Herstellers.

nitrokey

Note
Aktuell habe ich noch ein Purism Librem Key im Einsatz, welcher jedoch auf dem Nitrokey basiert [1].

Für was braucht man so ein Ding?

Der Token erhöht die Sicherheit, da der private Schlüssel nicht mehr auf der Festplatte der Computer (PC, Notebook, Handy,…​) gespeichert ist, sondern auf dem Token. Um die Funktionen von OpenPGP nutzen zu können, muss man den Token anschließen und mit einer PIN den Token freischalten.

OpenPGP (GnuPG) kann für folgende Funktionen verwendet werden:

  • Signieren von Daten und E-Mails

  • Verschlüsseln und entschlüsseln von Daten und E-Mail

  • Authentifizierung bei Anmeldungen auf entfernten Systemen (ssh)

  • Zertifizierung

Des Weiteren bietet der Nitrokey noch einen Password Manager und One Time Passwörter an.

Vor der Konfiguration

Bevor man sich an die Konfiguration des Nitrokey macht, sollte man sich überlegen welche Schlüssel man wie und wo verwenden möchte. Es gibt hier wesentliche und wichtige Unterschiede, welche man sich vorher überlegen sollte.

Eine sehr einfache und "schnell" Möglichkeit ist den Schlüssel direkt auf dem Nitrokey erzeugen zu lassen. Vom Sicherheitsaspekt bestimmt auch der bessere Ansatz. Der Nachteil hierbei ist jedoch, dass man den Schlüssel nicht auf andere Karte kopieren kann und auch die Datensicherung ist nicht möglich. Es gibt die Möglichkeit den Schlüssel auf einem PC zu generieren. Eine Sicherheitskopie auf einem externen Speichermedium zu erstellen und den Schlüssel danach auf den Token zu verschieben. Dieser Ansatz ist jedoch sicherlich etwas kritischer vom Sicherheitsaspekt.

Welchen Ansatz du jetzt nimmst, darfst du dir selber überlegen. Abhängig von deinem Sicherheitsbedürfnisse, solltest du dir überlegen was sichererer ist oder eben praktischer.

Note
Ich nutzt die Varianten abhängig vom Schlüssel. Meine "CA" Schlüssel wurden direkt auf der Karte ohne Sicherheitskopie erstellt. Die Schlüssel werden nur für die Zertifizierung verwendet. Mein Schlüssel für E-Mail und SSH / gitlab habe ich auf einem PC generiert und nutze diese über einen Nitrokey sowie bei einer Workstation via OpenPGP Smartcard. Aus diesem Grund werde ich beide Varianten beschreiben.

OpenPGP Smartcard Konfiguration

Wir beginnen mit der Konfiguration des Nitrokeys unter Verwendung von GnuPG 2.2.12 auf einem Debian 10 System. Dies ist ein sehr allgemeiner Teil der Beschreibung, da nach meinen Erfahrungen das Setup für OpenPGP SmartCards, Yubikey 4 und 5 und Nitrokey Pro 2 vom Ablauf gleich sind.

Token / Smartcard einrichten

Wir beginnen mit dem einrichten der persönlichen Daten. Hierzu werden auf dem Token / Smartcard (ich werde jetzt immer Karte dazu sagen) die folgenden Daten gesetzt:

  • Name des Besitzers

  • Bevorzugte Sprache

  • URL des öffentlichen Schlüssels

  • Geschlecht

  • PIN für den Benutzer

  • PIN für den Administrator

Ob die Karte erkannt wurde, kann mit dem Befehl gpg --card-status geprüft werden.

$ gpg --card-status
Reader ...........: Nitrokey Nitrokey Pro (000000000000000000008728) 00 00
Application ID ...: D2760001240103030005000087280000
Version ..........: 3.3
Manufacturer .....: ZeitControl
Serial number ....: 00008728
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]

Um die Karte einzurichten verwenden wir den Befehl gpg --card-edit, welches uns in ein Modus zum editieren der Karte bring. Dies wird mit gpg/card> als Promt angezeigt. Im Promt kann man jederzeit den Befehl help für die Liste der möglichen Befehle anzeigen lassen. Da wir für das Setup der Karte Administrationsrechte brauchen und einige Befehle welche nicht vom Benutzer ausgeführt werden, springen wir als erstes schon mal in der Administrationsmodus mit dem Befehl admin.

$ gpg --card-edit

Reader ...........: Nitrokey Nitrokey Pro (000000000000000000008728) 00 00
Application ID ...: D2760001240103030005000087280000
Version ..........: 3.3
Manufacturer .....: ZeitControl
Serial number ....: 00008728
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]

gpg/card> admin
Admin-Befehle sind erlaubt

gpg/card>

Ich empfehle als erstes die PINs zu ändern. Sollte man hierbei einen Fehler machen, muss man wieder bei Null anfangen. Ich spreche aus Erfahrung. D.h. als erstes den Admin und User PIN ändern. Den Admin PIN braucht man i.d.R. beim täglichen Gebrauch nicht mehr. Die User PIN benötigt man jedoch immer.

Die Änderung der PINs macht man über das passwd Menü. Man gibt erst die aktuelle PIN ein und bestätigt die Änderung durch zweimaliges eingeben der neuen PIN. Diesen Vorgang macht man 1x für die User PIN und 1x für den Admin PIN.

Mit dem Eintrag 1 lässt sich die User PIN ändern.

gpg/card> passwd
gpg: OpenPGP Karte Nr. D2760001240103030005000087280000 erkannt

1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit

Ihre Auswahl? 1
PIN changed.

Mit dem Eintrag 3 lässt sich die Admin PIN ändern.

1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit

Ihre Auswahl? 3

Danach folgen die persönlichen Angaben, Name, Geschlecht, URL.

gpg/card> list

Reader ...........: Nitrokey Nitrokey Pro (000000000000000000008728) 00 00
Application ID ...: D2760001240103030005000087280000
Version ..........: 3.3
Manufacturer .....: ZeitControl
Serial number ....: 00008728
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]

gpg/card> name
Familienname des Kartenbesitzers:Nachname
Vorname des Kartenbesitzers:Vorname

gpg/card> sex
Geschlecht: (Männlich (M), Weiblich (F) oder Leerzeichen): M

gpg/card> url
URL um den öffentlichen Schlüssel zu holen: https://domain.tld/meinkey.asc

gpg/card> list

Reader ...........: Nitrokey Nitrokey Pro (000000000000000000008728) 00 00
Application ID ...: D2760001240103030005000087280000
Version ..........: 3.3
Manufacturer .....: ZeitControl
Serial number ....: 00008728
Name of cardholder: Vorname Nachname
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://domain.tld/meinkey.asc
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]

Wir werden jetzt auf dem Computer einen OpenPGP mit GnuPG erstellt. Man kann dies auch über GUI Programme machen. Ich verwende jedoch immer die Shell. Mit dem Befehl gpg --full-generate-key lassen sich die ersten zwei Schlüssel erzeugen.

$ gpg --full-generate-key
gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (1) RSA und RSA (voreingestellt)
   (2) DSA und Elgamal
   (3) DSA (nur signieren/beglaubigen)
   (4) RSA (nur signieren/beglaubigen)
Ihre Auswahl? 1
RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüssellänge wünschen Sie? (3072) 4096
Die verlangte Schlüssellänge beträgt 4096 Bit
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
         0 = Schlüssel verfällt nie
      <n>  = Schlüssel verfällt nach n Tagen
      <n>w = Schlüssel verfällt nach n Wochen
      <n>m = Schlüssel verfällt nach n Monaten
      <n>y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 2y
Key verfällt am So 25 Jul 2021 19:34:13 CEST
Ist dies richtig? (j/N) j

GnuPG erstellt eine User-ID, um Ihren Schlüssel identifizierbar zu machen.

Ihr Name ("Vorname Nachname"): Vorname Nachname
Email-Adresse: mailbox@domain.tld
Kommentar: Test
Sie haben diese User-ID gewählt:
    "Vorname Nachname (Test) <mailbox@domain.tld>"

Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(A)bbrechen? F
Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
gpg: Schlüssel 2D045312D2A8D512 ist als ultimativ vertrauenswürdig gekennzeichnet
gpg: Widerrufzertifikat wurde als '/home/stefan/.gnupg/openpgp-revocs.d/D7A23AA4B1E1B0E4E67E09A12D045312D2A8D512.rev' gespeichert.
Öffentlichen und geheimen Schlüssel erzeugt und signiert.

pub   rsa4096 2019-07-26 [SC] [verfällt: 2021-07-25]
      D7A23AA4B1E1B0E4E67E09A12D045312D2A8D512
uid                      Vorname Nachname (Test) <mailbox@domain.tld>
sub   rsa4096 2019-07-26 [E] [verfällt: 2021-07-25]

Es wurden nun zwei Schlüssel erstellt. Einem vom Typ [SC] und einen Subschlüssel vom Typ [E]. Wir werden noch einen 3 vom Typ [SC] erstellen. Der Fingerprint D7A23AA4B1E1B0E4E67E09A12D045312D2A8D512 im Beispiel muss auf deinen angepasst werden.

gpg --quick-add-key D7A23AA4B1E1B0E4E67E09A12D045312D2A8D512 rsa4096 auth 2y

Sicherheitskopie erstellen.

gpg --export-secret-keys D7A23AA4B1E1B0E4E67E09A12D045312D2A8D512 > sec.asc
gpg --export D7A23AA4B1E1B0E4E67E09A12D045312D2A8D512 > pub.asc

Dabei sollte man die zwei Dateien auf ein externes Medium kopieren und die Dateien auf dem PC löschen.

Jetzt kommt der etwas kompliziertere, aber letzte Schritt. Die Schlüssel müssen nach und nach ausgewählt werden und dann auf die Karte verschoben werden.

gpg --edit-key D7A23AA4B1E1B0E4E67E09A12D045312D2A8D512
gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geheimer Schlüssel ist vorhanden.

sec  rsa4096/2D045312D2A8D512
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: SC
     Vertrauen: unbekannt     Gültigkeit: unbekannt
ssb  rsa4096/0BEB8DD0146B2964
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: E
ssb  rsa4096/233D2ECAA281208F
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: A
[ unbekannt ] (1). Vorname Nachname (Test) <mailbox@domain.tld>

gpg> keytocard
Den Hauptschlüssel wirklich verschieben? (j/N) j
Wählen Sie den Speicherort für den Schlüssel:
   (1) Signatur-Schlüssel
   (3) Authentisierungs-Schlüssel
Ihre Auswahl? 1

sec  rsa4096/2D045312D2A8D512
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: SC
     Vertrauen: unbekannt     Gültigkeit: unbekannt
ssb  rsa4096/0BEB8DD0146B2964
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: E
ssb  rsa4096/233D2ECAA281208F
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: A
[ unbekannt ] (1). Vorname Nachname (Test) <mailbox@domain.tld>

gpg>

In einer zweiten Shell kann man den Vorgang mit der Ausgabe von gpg --card-status beobachten. Der erste Schlüssel ist vorhanden Signature key …​..

gpg --card-status
Reader ...........: Nitrokey Nitrokey Pro (000000000000000000008728) 00 00
Application ID ...: D2760001240103030005000087280000
Version ..........: 3.3
Manufacturer .....: ZeitControl
Serial number ....: 00008728
Name of cardholder: Vorname Nachname
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://domain.tld/meinkey.asc
Login data .......: [nicht gesetzt]
Signature PIN ....: zwingend
Key attributes ...: rsa4096 rsa2048 rsa2048
Max. PIN lengths .: 64 64 64
PIN retry counter : 3 0 3
Signature counter : 0
KDF setting ......: on
Signature key ....: D7A2 3AA4 B1E1 B0E4 E67E  09A1 2D04 5312 D2A8 D512
      created ....: 2019-07-26 17:34:35
Encryption key....: [none]
Authentication key: [none]
General key info..: pub  rsa4096/2D045312D2A8D512 2019-07-26 Vorname Nachname (Test) <mailbox@domain.tld>
sec   rsa4096/2D045312D2A8D512  erzeugt: 2019-07-26  verfällt: 2021-07-25
ssb   rsa4096/0BEB8DD0146B2964  erzeugt: 2019-07-26  verfällt: 2021-07-25
ssb   rsa4096/233D2ECAA281208F  erzeugt: 2019-07-26  verfällt: 2021-07-25

Auswählen des 1 Subkey. Dies ist der Schlüssel [E] für Verschlüsselung.

gpg> key 1

sec  rsa4096/2D045312D2A8D512
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: SC
     Vertrauen: unbekannt     Gültigkeit: unbekannt
ssb* rsa4096/0BEB8DD0146B2964
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: E
ssb  rsa4096/233D2ECAA281208F
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: A
[ unbekannt ] (1). Vorname Nachname (Test) <mailbox@domain.tld>

gpg> keytocard
Wählen Sie den Speicherort für den Schlüssel:
   (2) Verschlüsselungs-Schlüssel
Ihre Auswahl? 2

sec  rsa4096/2D045312D2A8D512
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: SC
     Vertrauen: unbekannt     Gültigkeit: unbekannt
ssb* rsa4096/0BEB8DD0146B2964
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: E
ssb  rsa4096/233D2ECAA281208F
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: A
[ unbekannt ] (1). Vorname Nachname (Test) <mailbox@domain.tld>

gpg>

Der zweite Schlüssel ist auf der Karte.

gpg --card-status
Reader ...........: Nitrokey Nitrokey Pro (000000000000000000008728) 00 00
Application ID ...: D2760001240103030005000087280000
Version ..........: 3.3
Manufacturer .....: ZeitControl
Serial number ....: 00008728
Name of cardholder: Vorname Nachname
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://domain.tld/meinkey.asc
Login data .......: [nicht gesetzt]
Signature PIN ....: zwingend
Key attributes ...: rsa4096 rsa4096 rsa4096
Max. PIN lengths .: 64 64 64
PIN retry counter : 3 0 3
Signature counter : 0
KDF setting ......: on
Signature key ....: D7A2 3AA4 B1E1 B0E4 E67E  09A1 2D04 5312 D2A8 D512
      created ....: 2019-07-26 17:34:35
Encryption key....: 6ED1 1859 F7C3 0CB3 2544  D945 0BEB 8DD0 146B 2964
      created ....: 2019-07-26 17:34:35
Authentication key: [none]
General key info..: pub  rsa4096/2D045312D2A8D512 2019-07-26 Vorname Nachname (Test) <mailbox@domain.tld>
sec   rsa4096/2D045312D2A8D512  erzeugt: 2019-07-26  verfällt: 2021-07-25
ssb   rsa4096/0BEB8DD0146B2964  erzeugt: 2019-07-26  verfällt: 2021-07-25
ssb   rsa4096/233D2ECAA281208F  erzeugt: 2019-07-26  verfällt: 2021-07-25

Abwählten des 1 Subkey und auswählen des 2 Subkey als Authentisierungs-Schlüssel.

gpg> key 1

sec  rsa4096/2D045312D2A8D512
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: SC
     Vertrauen: unbekannt     Gültigkeit: unbekannt
ssb  rsa4096/0BEB8DD0146B2964
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: E
ssb  rsa4096/233D2ECAA281208F
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: A
[ unbekannt ] (1). Vorname Nachname (Test) <mailbox@domain.tld>

gpg> key 2

sec  rsa4096/2D045312D2A8D512
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: SC
     Vertrauen: unbekannt     Gültigkeit: unbekannt
ssb  rsa4096/0BEB8DD0146B2964
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: E
ssb* rsa4096/233D2ECAA281208F
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: A
[ unbekannt ] (1). Vorname Nachname (Test) <mailbox@domain.tld>

gpg> keytocard
Wählen Sie den Speicherort für den Schlüssel:
   (3) Authentisierungs-Schlüssel
Ihre Auswahl? 3

sec  rsa4096/2D045312D2A8D512
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: SC
     Vertrauen: unbekannt     Gültigkeit: unbekannt
ssb  rsa4096/0BEB8DD0146B2964
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: E
ssb* rsa4096/233D2ECAA281208F
     erzeugt: 2019-07-26  verfällt: 2021-07-25  Nutzung: A
[ unbekannt ] (1). Vorname Nachname (Test) <mailbox@domain.tld>
gpg --card-status
Reader ...........: Nitrokey Nitrokey Pro (000000000000000000008728) 00 00
Application ID ...: D2760001240103030005000087280000
Version ..........: 3.3
Manufacturer .....: ZeitControl
Serial number ....: 00008728
Name of cardholder: Vorname Nachname
Language prefs ...: de
Sex ..............: männlich
URL of public key : https://domain.tld/meinkey.asc
Login data .......: [nicht gesetzt]
Signature PIN ....: zwingend
Key attributes ...: rsa4096 rsa4096 rsa4096
Max. PIN lengths .: 64 64 64
PIN retry counter : 3 0 3
Signature counter : 0
KDF setting ......: on
Signature key ....: D7A2 3AA4 B1E1 B0E4 E67E  09A1 2D04 5312 D2A8 D512
      created ....: 2019-07-26 17:34:35
Encryption key....: 6ED1 1859 F7C3 0CB3 2544  D945 0BEB 8DD0 146B 2964
      created ....: 2019-07-26 17:34:35
Authentication key: B855 CC05 FA5F 2127 DD45  4476 233D 2ECA A281 208F
      created ....: 2019-07-26 18:26:11
General key info..: pub  rsa4096/2D045312D2A8D512 2019-07-26 Vorname Nachname (Test) <mailbox@domain.tld>
sec   rsa4096/2D045312D2A8D512  erzeugt: 2019-07-26  verfällt: 2021-07-25
ssb   rsa4096/0BEB8DD0146B2964  erzeugt: 2019-07-26  verfällt: 2021-07-25
ssb   rsa4096/233D2ECAA281208F  erzeugt: 2019-07-26  verfällt: 2021-07-25
gpg> save

Fertig!

gpg --keyid-format 0xlong --fingerprint -K D7A23AA4B1E1B0E4E67E09A12D045312D2A8D512
sec>  rsa4096/0x2D045312D2A8D512 2019-07-26 [SC] [verfällt: 2021-07-25]
  Schl.-Fingerabdruck = D7A2 3AA4 B1E1 B0E4 E67E  09A1 2D04 5312 D2A8 D512
      Kartenseriennr. = 0005 00008728
uid                [ unbekannt ] Vorname Nachname (Test) <mailbox@domain.tld>
ssb>  rsa4096/0x0BEB8DD0146B2964 2019-07-26 [E] [verfällt: 2021-07-25]
ssb>  rsa4096/0x233D2ECAA281208F 2019-07-26 [A] [verfällt: 2021-07-25]

Schlüssel auf der Karte generieren

Wie oben schon angesprochen, kann man die Schlüssel auch auf der Karte erstellen lassen. Dies geht über das gpg --card-edit Menü.

gpg --card-edit

Reader ...........: Nitrokey Nitrokey Pro (000000000000000000008728) 00 00
Application ID ...: D2760001240103030005000087280000
Version ..........: 3.3
Manufacturer .....: ZeitControl
Serial number ....: 00008728
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]

gpg/card> admin
Admin-Befehle sind erlaubt

gpg/card> help
quit           Menü verlassen
admin          Zeige Admin-Befehle
help           Diese Hilfe zeigen
list           Alle vorhandenen Daten auflisten
name           Kartenbesitzernamen ändern
url            Schlüssel-holen-URL ändern
fetch          Holen des Schlüssels mittels der URL auf der Karte
login          Ändern der Logindaten
lang           Ändern der Spracheinstellungen
sex            Ändern des Geschlechts des Kartenbesitzers
cafpr          Ändern des CA-Fingerabdrucks
forcesig       Umschalten des "Signature-force-PIN"-Schalters
generate       neue Schlüssel erzeugen
passwd         Menü für Ändern oder Entsperren der PIN
verify         überprüfe die PIN und liste alle Daten auf
unblock        die PIN mit dem Rückstellcode wieder freigeben
factory-reset  alle Schlüssel und Daten löschen
kdf-setup      Einrichten der KDF zur Authentifizierung
key-attr       Das Schlüsselattribut ändern

Per Default ist ein RSA 2048 Schlüssel eingestellt. Dies kann man mit dem Befehl key-attr ändern.

gpg/card> key-attr
Ändern des Schlüsselattributs für den: Signatur-Schlüssel
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (1) RSA
   (2) ECC
Ihre Auswahl? 1
Welche Schlüssellänge wünschen Sie? (2048) 4096
Die Karte wird nun rekonfiguriert, um einen Schlüssel von 4096 Bit zu erzeugen
Ändern des Schlüsselattributs für den: Verschlüsselungs-Schlüssel
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (1) RSA
   (2) ECC
Ihre Auswahl? 1
Welche Schlüssellänge wünschen Sie? (2048) 4096
Die Karte wird nun rekonfiguriert, um einen Schlüssel von 4096 Bit zu erzeugen
Ändern des Schlüsselattributs für den: Authentisierungs-Schlüssel
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (1) RSA
   (2) ECC
Ihre Auswahl? 1
Welche Schlüssellänge wünschen Sie? (2048) 4096
Die Karte wird nun rekonfiguriert, um einen Schlüssel von 4096 Bit zu erzeugen

Die Schlüssel können mit dem Befehl generate generiert werden.

gpg/card> generate
Sicherung des Verschlüsselungsschlüssel außerhalb der Karte erstellen? (J/n) J

Bitte beachten: Die Werkseinstellung der PINs sind
   PIN = '123456'     Admin-PIN = '12345678'
Sie sollten sie mittels des Befehls --change-pin ändern

Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
         0 = Schlüssel verfällt nie
      <n>  = Schlüssel verfällt nach n Tagen
      <n>w = Schlüssel verfällt nach n Wochen
      <n>m = Schlüssel verfällt nach n Monaten
      <n>y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 2
Key verfällt am Mo 29 Jul 2019 13:14:57 CEST
Ist dies richtig? (j/N) j

GnuPG erstellt eine User-ID, um Ihren Schlüssel identifizierbar zu machen.

Ihr Name ("Vorname Nachname"): Vorname Nachname
Email-Adresse: mailbox@domain.tld
Kommentar: Test
Sie haben diese User-ID gewählt:
    "Vorname Nachname (Test) <mailbox@domain.tld>"

Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(A)bbrechen? F

Das kann etwas dauern,…​ bei mir waren es ca. 10 Minuten.

Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
gpg: Hinweis: Sicherung des Kartenschlüssels wurde auf `/home/stefan/.gnupg/sk_8614F4608D0D1B41.gpg' gespeichert
gpg: Schlüssel 78BC281D499D3E3F ist als ultimativ vertrauenswürdig gekennzeichnet
gpg: Widerrufzertifikat wurde als '/home/stefan/.gnupg/openpgp-revocs.d/8F47BDE3436226A379D50A5578BC281D499D3E3F.rev' gespeichert.
Öffentlichen und geheimen Schlüssel erzeugt und signiert.

gpg/card>

Smartphone

Ich nutze den Key auf einem LinageOS Smartphone mit den Anwendungen OpenKeychain und K9-Mail.

nitrokey smartphone

nkapp01 nkapp02 nkapp03 nkapp04 nkapp05