Neue Firmware: Mehrere Identitäten und PGP-Schlüssel mit einem Nitrokey Start

Ab sofort können Sie ein lang ersehntes Feature mit Ihrem Nitrokey Start nutzen: Mit dem neuen Multi-ID-Support der Firmware RTM.10 für den Nitrokey Start haben Sie erstmals die Möglichkeit, mehrere Identitäten mit unterschiedlichen PGP-Schlüsseln sicher zu speichern und zu verwenden. Dies ist praktisch, wenn Sie Schlüssel aus unterschiedlichen Kontexten, z.B. privat, beruflich, projektbezogen, regelmäßig verwenden. Somit ist die Verwendung mehrerer Nitrokeys oder anderer Speicherorte nicht mehr nötig.
Damit ist der Nitrokey Start das einzige Geräte auf dem Markt, mit dem Sie mehrere Identitäten verwenden können. Es handelt sich um drei virtuelle, unabhängige Chipkarten in einem Nitrokey Start und somit werden drei Identitäten mit jeweils drei Schlüsselpaaren und unterschiedlichen PINs unterstützt. Dieser Multi-ID-Support ist weiterhin mit GnuPG kompatibel und benötigt keine Softwareanpassung.
Mit einem einzelnen Befehl wechseln Sie zu einer von drei IDs (0,1 und 2):
nitropy start set-identity <ID>
Wie Sie das Feature Multi-ID-Support nutzen, zeigen wir Ihnen im Folgenden.
Vorbereitung
Um zwischen den verschiedenen Identitäten auf dem Nitrokey Start wechseln zu können, installieren wir zunächst unser Hilfstool nitropy. Die Installation unter Windows ist hier beschrieben. Unter Linux erfolgt die Installation mittels:
sudo apt install python3-pip pip3 install --user pynitrokey
Zudem muss der Nitrokey Start über die neue Firmware Version RTM.10 verfügen und ggf. aktualisiert werden.
Beispiel
- Nun prüfen wir zuerst den aktuellen Status des Nitrokey Start und des darauf bereits vor gewisser Zeit von uns erstellen PGP-Schlüssels ([email protected]):
gpg --card-status Reader ...........: 20A0:4211:FSIJ-1.2.15-48479234:0 Application ID ...: D276000124010200FFFE484792340000 Application type .: OpenPGP Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 48479234 Name of cardholder: [not set] Language prefs ...: [not set] Salutation .......: URL of public key : [not set] Login data .......: [not set] Signature PIN ....: forced Key attributes ...: rsa2048 rsa2048 rsa2048 Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 4 KDF setting ......: off Signature key ....: 0765 27AF F2FC 32CA 1E76 B968 8089 A281 3611 5B29 created ....: 2020-07-02 14:03:02 Encryption key....: 12C4 0590 7FC3 9D96 0CB0 3955 81EC 8A55 B7B0 6333 created ....: 2020-07-02 14:03:02 Authentication key: 40F4 6EC1 4DEB 9AA0 98F5 69DF 9D5A A879 1BD3 13EB created ....: 2020-07-02 14:03:02 General key info..: pub rsa2048/8089A28136115B29 2020-07-02 Alice (Office) <office@example.com> sec> rsa2048/8089A28136115B29 created: 2020-07-02 expires: 2021-07-02 card-no: FFFE 48479234 ssb> rsa2048/9D5AA8791BD313EB created: 2020-07-02 expires: 2021-07-02 card-no: FFFE 48479234 ssb> rsa2048/81EC8A55B7B06333 created: 2020-07-02 expires: 2021-07-02 card-no: FFFE 48479234
- Wir wechseln jetzt die ID auf dem Nitrokey Start mittels unseres Hilfstools nitropy. Da die ID 0 bereits mit unserem vorhandenen PGP-Schlüssel belegt ist, wechseln wir zur ID 1:
nitropy start set-identity 1
- Wir erstellen ein neues PGP-Schlüsselpaar (privater und öffentlicher Schlüssel) mittels GnuPG. Dazu geben wir im Terminal ein:
gpg --card-edit
- Nun erscheint `gpg/card`. Hier geben wir den folgenden Befehl ein:
admin
Das Terminal gibt aus:
Admin commands are allowed
- Danach geben wir den Befehl ein:
generate
- Wir folgen den weiteren Anweisungen zu Schlüsselbackup, Schlüsselbezeichnung, Schlüssellänge, Gültigkeitsdauer, etc., die GnuPG im Terminal ausgibt, um unser neues PGP-Schlüsselpaar zu erstellen.
- Nachdem wir unseren neuen PGP-Schlüssel erstellt haben, schauen wir uns den Status der aktuell gewählten ID 1 mit dem zusätzlich erstellten PGP-Schlüssel ([email protected]) an:
gpg --card-status Reader ...........: 20A0:4211:FSIJ-1.2.15-48479234:0 Application ID ...: D276000124010200FF01484792340000 Application type .: OpenPGP Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 48479234 Name of cardholder: [not set] Language prefs ...: [not set] Salutation .......: URL of public key : [not set] Login data .......: [not set] Signature PIN ....: forced Key attributes ...: rsa2048 rsa2048 rsa2048 Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 4 KDF setting ......: off Signature key ....: 37DB 86EA 9F0D 1A2B CE76 DBDB C746 E60A 541B 899E created ....: 2020-07-02 14:59:05 Encryption key....: 886C 82FE EC53 AFA7 9117 A13D 5178 5F88 DD7C EC4C created ....: 2020-07-02 14:59:05 Authentication key: 9C33 6A76 4ED4 8798 6CB8 80D4 0973 389D FDB1 EAB7 created ....: 2020-07-02 14:59:05 General key info..: pub rsa2048/C746E60A541B899E 2020-07-02 Alice (Home) <home@example.com> sec> rsa2048/C746E60A541B899E created: 2020-07-02 expires: 2021-07-02 card-no: FF01 48479234 ssb> rsa2048/0973389DFDB1EAB7 created: 2020-07-02 expires: 2021-07-02 card-no: FF01 48479234 ssb> rsa2048/51785F88DD7CEC4C created: 2020-07-02 expires: 2021-07-02 card-no: FF01 48479234
- Nun wechseln wir zurück zu ID 0:
nitropy start set-identity 0
- Der Status von ID 0 ist weiterhin unverändert:
gpg --card-status Reader ...........: 20A0:4211:FSIJ-1.2.15-48479234:0 Application ID ...: D276000124010200FFFE484792340000 Application type .: OpenPGP Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 48479234 Name of cardholder: [not set] Language prefs ...: [not set] Salutation .......: URL of public key : [not set] Login data .......: [not set] Signature PIN ....: forced Key attributes ...: rsa2048 rsa2048 rsa2048 Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 4 KDF setting ......: off Signature key ....: 0765 27AF F2FC 32CA 1E76 B968 8089 A281 3611 5B29 created ....: 2020-07-02 14:03:02 Encryption key....: 12C4 0590 7FC3 9D96 0CB0 3955 81EC 8A55 B7B0 6333 created ....: 2020-07-02 14:03:02 Authentication key: 40F4 6EC1 4DEB 9AA0 98F5 69DF 9D5A A879 1BD3 13EB created ....: 2020-07-02 14:03:02 General key info..: pub rsa2048/8089A28136115B29 2020-07-02 Alice (Office) <office@example.com> sec> rsa2048/8089A28136115B29 created: 2020-07-02 expires: 2021-07-02 card-no: FFFE 48479234 ssb> rsa2048/9D5AA8791BD313EB created: 2020-07-02 expires: 2021-07-02 card-no: FFFE 48479234 ssb> rsa2048/81EC8A55B7B06333 created: 2020-07-02 expires: 2021-07-02 card-no: FFFE 48479234
Analog wie oben beschrieben, können wir auch unter ID 2 ein weiteres, neues PGP-Schlüsselpaar erstellen. Natürlich ist es auch möglich existierendes Schlüsselpaare zu importieren. Nämlich jede ID verhält sich wie eine unabhängige Chipkarte, die individuell konfiguriert und genutzt werden kann. Entsprechend sind auch die PINs für jede ID individuell, es können aber natürlich auch die gleichen PINs konfiguriert werden. Ebenfalls setzt ein Factory Reset nur die jeweils gewählte ID zurück.
Comments
Add new comment