Error message

The comment you are replying to does not exist.

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

  1. 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

     
  2. 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
  3. Wir erstellen ein neues PGP-Schlüsselpaar (privater und öffentlicher Schlüssel) mittels GnuPG. Dazu geben wir im Terminal ein:
     
    gpg --card-edit
  4. Nun erscheint `gpg/card`. Hier geben wir den folgenden Befehl ein:
     
    admin

    Das Terminal gibt aus:
     
    Admin commands are allowed
  5. Danach geben wir den Befehl ein:
    generate
  6. 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.
     
  7. 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
  8. Nun wechseln wir zurück zu ID 0:
     
    nitropy start set-identity 0
  9. 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.

25.7.2024

Comments

Will OpenKeychain be able to use all three identities? Will there be an app to switch identities on a mobile phone? Or is it only possible to use the identity previously set with "nitropy start set-identity"?
Plant Ihr das Feature auch in anderen Nitrokey Modellen anzubieten?
Ja, früher oder später im Nitrokey 3. Allerdings hätten wir das zuvor gerne in der OpenPGP Card Spezifikation festgelegt. Darauf warten wir derzeit.
I was planning on buying a Nitrokey Storage soon-ish (with no prior personal experience with Nitrokeys so far) and I was asking myself given this news, whether this upgrade will come to other Nitrokeys eventually by means of a firmware updates, or if this is only possible for Nitrokey Start right now, given a difference in the used underlying hardware components. If the hardware is in fact too different that a simple firmware update cannot bring this feature to other Nitrokeys, will there be new versions of the other keys, that include multiple PGP keys anytime soon?
This will only come to Nitrokey 3 in the future.

Add new comment

Fill in the blank.