Hallo,
ich habe seit 2 Tagen mein Nitrokey Storage und wollte selbst erstellte gpg2 Schlüssel drauf machen. Leider funktioniert der keytocard Befehl nicht. Auch ein factory-reset der OpenPGP-Karte ist nicht möglich. (Das war das Letzte was ich ausprobiert hatte. Die Karte zurückzusetzen, aber die Daten werden nicht überschrieben!)
Nitrokey wird von der Nitrokey-App und von gpg2 --card-status erkannt. Spontan erkennt gpg2 die Karte nicht mehr, dann hilft nur noch den Nitrokey zu ziehen und wieder anzustecken. Ein Firmware-Update habe ich auch gemacht und dies lief ohne Probleme durch. (konnte weder davor, noch danach Schlüssel auf die Karte schieben oder welche auf der Karte erzeugen!) Der USB-Speicher wird erkannt. Ich habe alle Programme wie in der Anleitung installiert. Habe auch testweise bei Windows 10 mit gpg4win probiert die Karte zu beschreiben, aber da stürzt gpg4win einfach ab. Hat jemand eine Lösung?
Aktuelles Betriebsysstem ist Ubuntu 16.04 LTS mit allen Updates (Stand: 30.10.2016).
Die Schlüssel hatte ich einmal auf einer aktuellen Knoppix-Live-CD erstellt und wie in dem unten genannten Beispiel direkt in Ubuntu.
Firmware vom Nitrokey ist Version 0.43.
Nitrokey-App erkennt den Stick und behauptet dieser wäre fehlerfrei. (Nitrokey-App → Info)
Initialisierung wurde mit der Nitrokey-App unter Ubuntu 16.04 LTS durchgeführt.
Habe hier ein Beispiel was für eine Fehlermeldung kommt, nachdem ich testweise 1 Hauptschlüssel und einen Subkey erstellt habe (alles was ‘x’ enthält waren persönliche Daten, welche ich durch ‘x’ ersetzt habe. Die Application-ID habe ich auch gekürzt!)
[code]
#Application ID wurde von mir gekürzt! Alles was den Buchstaben “x” enthält wurde von mir anonymisiert!
xxxx@xxx-desktop:~$ gpg2 --expert --full-gen-key
gpg (GnuPG) 2.1.11; Copyright (C) 2016 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.
gpg: enabled debug flags: memstat trust extprog
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)
(7) DSA (Leistungsfähigkeit selber einstellbar)
(8) RSA (Leistungsfähigkeit selber einstellbar)
(9) ECC und ECC
(10) ECC (nur signieren)
(11) ECC (Leistungsfähigkeit selber einstellbar)
Ihre Auswahl? 8
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Zertif. Verschl. Authentisierung
Derzeit erlaubte Vorgänge: Signieren Zertif. Verschl.
(U) Umschalten der Signaturfähigkeit
(V) Umschalten der Verschlüsselungsfähigkeit
(A) Umschalten der Authentisierungsfähigkeit
(Q) Beenden
Ihre Auswahl? v
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Zertif. Verschl. Authentisierung
Derzeit erlaubte Vorgänge: Signieren Zertif.
(U) Umschalten der Signaturfähigkeit
(V) Umschalten der Verschlüsselungsfähigkeit
(A) Umschalten der Authentisierungsfähigkeit
(Q) Beenden
Ihre Auswahl? u
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Zertif. Verschl. Authentisierung
Derzeit erlaubte Vorgänge: Zertif.
(U) Umschalten der Signaturfähigkeit
(V) Umschalten der Verschlüsselungsfähigkeit
(A) Umschalten der Authentisierungsfähigkeit
(Q) Beenden
Ihre Auswahl? q
RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüssellänge wünschen Sie? (2048)
Die verlangte Schlüssellänge beträgt 2048 Bit
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
0 = Schlüssel verfällt nie
= Schlüssel verfällt nach n Tagen
w = Schlüssel verfällt nach n Wochen
m = Schlüssel verfällt nach n Monaten
y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 1y
Key verfällt am Mo 30 Okt 2017 08:14:37 CET
Ist dies richtig? (j/N) j
GnuPG erstellt eine User-ID, um Ihren Schlüssel identifizierbar zu machen.
Ihr Name: xxxxx
Email-Adresse: xxxx@xxxxxx.de
Kommentar:
Sie haben diese User-ID gewählt:
“xxxxxx”
Ä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.
gpg: DBG: insert ownertrust 6
gpg: Schlüssel xxxxx ist als ultimativ vertrauenswürdig gekennzeichnet
gpg: DBG: update ownertrust from 6 to 6
gpg: Widerrufzertifikat wurde als ‘xxxxxx.rev’ gespeichert.
Öffentlichen und geheimen Schlüssel erzeugt und signiert.
gpg: “Trust-DB” wird überprüft
gpg: marginals needed: 3 completes needed: 1 trust model: PGP
gpg: Tiefe: 0 gültig: 1 signiert: 0 Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u
gpg: nächste “Trust-DB”-Pflichtüberprüfung am 2017-10-30
gpg: random usage: poolsize=600 mixed=6 polls=0/22 added=110/3872
outmix=0 getlvl1=0/0 getlvl2=0/0
gpg: secmem usage: 1344/65536 bytes in 2 blocks
pub rsa2048/xxxxxx 2016-10-30 ] [verfällt: 2017-10-30]
Schl.-Fingerabdruck = xxxxxxx
uid ultimativ] xxxxxx
bjoern@bjoern-desktop:~$ gpg2 --card-status
gpg: enabled debug flags: memstat trust extprog
gpg: random usage: poolsize=600 mixed=0 polls=0/0 added=0/0
outmix=0 getlvl1=0/0 getlvl2=0/0
gpg: secmem usage: 0/65536 bytes in 0 blocks
Reader …: 20A0:4109:0000000000000:0
Application ID …: D276000
Version …: 2.1
Manufacturer …: ZeitControl
Serial number …: 00003400
Name of cardholder: xxxx xxxxxx
Language prefs …: de
Sex …: männlich
URL of public key : [nicht gesetzt]
Login data …: b
Signature PIN …: zwingend
Key attributes …: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key …: [none]
Encryption key…: [none]
Authentication key: [none]
General key info…: [none]
bjoern@bjoern-desktop:~$ gpg2 --expert --edit-key 9308D7F4
gpg (GnuPG) 2.1.11; Copyright (C) 2016 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.
gpg: enabled debug flags: memstat trust extprog
Geheimer Schlüssel ist vorhanden.
sec rsa2048/xxxx
erzeugt: 2016-10-30 verfällt: 2017-10-30 Aufruf: C
Vertrauen: ultimativ Gültigkeit: ultimativ
ultimativ] (1). xxxxx
gpg> toggle
sec rsa2048/xxxx
erzeugt: 2016-10-30 verfällt: 2017-10-30 Aufruf: C
Vertrauen: ultimativ Gültigkeit: ultimativ
ultimativ] (1). xxxxxxx
gpg> quit
gpg: random usage: poolsize=600 mixed=0 polls=0/0 added=0/0
outmix=0 getlvl1=0/0 getlvl2=0/0
gpg: secmem usage: 0/65536 bytes in 0 blocks
bjoern@bjoern-desktop:~$ gpg2 --expert --edit-key 9308D7F4
gpg (GnuPG) 2.1.11; Copyright (C) 2016 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.
gpg: enabled debug flags: memstat trust extprog
Geheimer Schlüssel ist vorhanden.
sec rsa2048/xxxx
erzeugt: 2016-10-30 verfällt: 2017-10-30 Aufruf: C
Vertrauen: ultimativ Gültigkeit: ultimativ
ultimativ] (1). xxxxx
gpg> addkey
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
(3) DSA (nur signieren/beglaubigen)
(4) RSA (nur signieren/beglaubigen)
(5) Elgamal (nur verschlüsseln)
(6) RSA (nur verschlüsseln)
(7) DSA (Leistungsfähigkeit selber einstellbar)
(8) RSA (Leistungsfähigkeit selber einstellbar)
(10) ECC (nur signieren)
(11) ECC (Leistungsfähigkeit selber einstellbar)
(12) ECC (nur verschlüsseln)
(13) Vorhandener Schlüssel
Ihre Auswahl? 8
Mögliche Vorgänge eines RSA-Schlüssels: Signieren Verschl. Authentisierung
Derzeit erlaubte Vorgänge: Signieren Verschl.
(U) Umschalten der Signaturfähigkeit
(V) Umschalten der Verschlüsselungsfähigkeit
(A) Umschalten der Authentisierungsfähigkeit
(Q) Beenden
Ihre Auswahl? q
RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
Welche Schlüssellänge wünschen Sie? (2048)
Die verlangte Schlüssellänge beträgt 2048 Bit
Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
0 = Schlüssel verfällt nie
= Schlüssel verfällt nach n Tagen
w = Schlüssel verfällt nach n Wochen
m = Schlüssel verfällt nach n Monaten
y = Schlüssel verfällt nach n Jahren
Wie lange bleibt der Schlüssel gültig? (0) 1y
Key verfällt am Mo 30 Okt 2017 08:17:12 CET
Ist dies richtig? (j/N) j
Wirklich erzeugen? (j/N) j
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.
sec rsa2048/xxxxx
erzeugt: 2016-10-30 verfällt: 2017-10-30 Aufruf: C
Vertrauen: ultimativ Gültigkeit: ultimativ
ssb rsa2048/xxxx
erzeugt: 2016-10-30 verfällt: 2017-10-30 Aufruf: SE
ultimativ] (1). xxxxxx
gpg> toggle
sec rsa2048/xxx
erzeugt: 2016-10-30 verfällt: 2017-10-30 Aufruf: C
Vertrauen: ultimativ Gültigkeit: ultimativ
ssb rsa2048/xxxx
erzeugt: 2016-10-30 verfällt: 2017-10-30 Aufruf: SE
ultimativ] (1). xxxxxxx
gpg> key 1
sec rsa2048/xxxx
erzeugt: 2016-10-30 verfällt: 2017-10-30 Aufruf: C
Vertrauen: ultimativ Gültigkeit: ultimativ
ssb* rsa2048/xxxx
erzeugt: 2016-10-30 verfällt: 2017-10-30 Aufruf: SE
ultimativ] (1). xxxxxxxx
gpg> keytocard
Wählen Sie den Speicherort für den Schlüssel:
(1) Signatur-Schlüssel
(2) Verschlüsselungs-Schlüssel
(3) Authentisierungs-Schlüssel
Ihre Auswahl? 2
gpg: Das KEYTOCARD Kommando schlug fehl: Eingabe-/Ausgabefehler
gpg> [/code]
Nach erfolglosem Factory-reset:
[code]xxxx@xxxxxx:~$ gpg2 --card-edit
gpg: enabled debug flags: memstat trust extprog
Reader …: 20A0:4109:0000000000000:0
Application ID …: D276000
Version …: 2.1
Manufacturer …: ZeitControl
Serial number …: 00003400
Name of cardholder: xxxx xxxxx
Language prefs …: de
Sex …: männlich
URL of public key : [nicht gesetzt]
Login data …: xxxxxx
Signature PIN …: zwingend
Key attributes …: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key …: [none]
Encryption key…: [none]
Authentication key: [none]
General key info…: [none]
gpg/card> admin
Admin-Befehle sind erlaubt
gpg/card> factory-reset
gpg: OpenPGP Karte Nr. D276000 erkannt
gpg: Hinweis: Dieses Kommando zerstörrt alle auf der Karte gespeicherten Schlüssel!
Fortsetzen? (j/N) j
Möchten Sie die Karte wirklich komplett löschen? (“yes” eingeben) j
gpg/card> list
Reader …: 20A0:4109:0000000000000:0
Application ID …: D276000
Version …: 2.1
Manufacturer …: ZeitControl
Serial number …: 00003400
Name of cardholder: xxxx xxxxx
Language prefs …: de
Sex …: männlich
URL of public key : [nicht gesetzt]
Login data …: xxxxx
Signature PIN …: zwingend
Key attributes …: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key …: [none]
Encryption key…: [none]
Authentication key: [none]
General key info…: [none]
gpg/card> [/code]