Generování klíčů OpenPGP v zařízení

The following instructions explain the generation of OpenPGP keys directly on the Nitrokey. This is done by using the command line interface of GnuPG. Thus, you need to have GnuPG installed on your system. The newest GnuPG version for Windows can be found here and the newest version for MacOS can be found here. Users of Linux systems please install GnuPG with help of the package manager.

Poznámka

These instructions are based on GnuPG version 2.2.6 or higher. Some Linux Distributions have an older version installed. In this case please choose a different method as listed here or install a newer version if possible.

Generování klíčů

Následující popisy vysvětlují základní generování klíčů v zařízení prostřednictvím rozhraní příkazového řádku GnuPG. Výchozí chování je generování klíčů RSA o velikosti 2048 bitů. Pokud chcete změnit algoritmus a délku klíče, podívejte se nejprve do další části.

Otevřete příkazový řádek a zadejte gpg2 --card-edit.

To open the Windows command line please push the Windows-key and R-key. Now type ‘cmd.exe’ in the text field and hit enter. To open a Terminal on macOS or GNU/Linux please use the application search (e.g. spotlight on macOS).

> gpg2 --card-edit

Reader ...........: 20A0:4108:0000320E0000000000000000:0
Application ID ...: D27600012401020100050000320E0000
Version ..........: 2.1
Manufacturer .....: ZeitControl
Serial number ....: 0000320E
Name of cardholder: [not set]
Language prefs ...: de
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
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>

Nyní se nacházíte v interaktivním rozhraní GnuPG. Aktivujte příkazy správce pomocí admin a poté pomocí generate spusťte generování klíčů.

gpg/card> admin
Admin commands are allowed

gpg/card> generate
Make off-card backup of encryption key? (Y/n) n

Please note that the factory settings of the PINs are
   PIN = '123456'     Admin PIN = '12345678'
You should change them using the command --change-pin

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: Jane Doe
Email address: jane@example.com
Comment:
You selected this USER-ID:
"Jane Doe <jane@doecom>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
gpg: key 817E149CA002B92F marked as ultimately trusted
gpg: revocation certificate stored as '/home/nitrokey//.gnupg/openpgp-revocs.d/E62F445E8BB4B5085C031F5381
7E149CA002B92F.rev'
public and secret key created and signed.


gpg/card>
</jane@doe.com></n></n></n></n>

Navrženou zálohu mimo kartu nevytvářejte. Tato „záloha“ ukládá pouze šifrovací klíč, ale ne podpisový a ověřovací klíč. V případě ztráty zařízení nebude možné obnovit celou sadu klíčů. Jednak tedy nejde o žádnou úplnou zálohu (pokud ji potřebujete, použijte místo ní tento návod) a jednak riskujete, že se k vašemu šifrovacímu klíči může dostat někdo jiný. Výhodou generování klíčů v zařízení je zajištění bezpečného uložení klíčů. Proto doporučujeme tuto poloviční zálohu vynechat.

Nyní máte v zařízení kompletní sadu klíčů, kterou můžete použít pro různé aplikace uvedené na našich stránkách. Zadejte quit a stiskněte enter pro ukončení.

Změna klíčových atributů

Tato část se zabývá změnou klíčových atributů. Pokud chcete použít výchozí hodnoty, můžete pokračovat další částí.

Otevřete příkazový řádek a zadejte gpg2 --card-edit --expert.

> gpg2 --card-edit --expert

Reader ...........: 20A0:4108:0000320E0000000000000000:0
Application ID ...: D27600012401020100050000320E0000
Version ..........: 2.1
Manufacturer .....: ZeitControl
Serial number ....: 0000320E
Name of cardholder: [not set]
Language prefs ...: de
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
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]

Nyní se nacházíte v interaktivním rozhraní GnuPG. Jak vidíte v poli „Key attributes“ výše, je nastavena výchozí hodnota rsa2048. Chcete-li je změnit, aktivujte příkazy pro správu pomocí admin a poté použijte key-attr pro změnu atributů klíčů.

gpg/card> admin
Admin commands are allowed

gpg/card> key-attr
Changing card key attribute for: Signature key
Please select what kind of key you want:
&nbsp;&nbsp; (1) RSA
&nbsp;&nbsp; (2) ECC
Your selection? 1
What keysize do you want? (2048) 4096
The card will now be re-configured to generate a key of 4096 bits
Changing card key attribute for: Encryption key
Please select what kind of key you want:
&nbsp;&nbsp; (1) RSA
&nbsp;&nbsp; (2) ECC
Your selection? 1
What keysize do you want? (2048) 4096
The card will now be re-configured to generate a key of 4096 bits
Changing card key attribute for: Authentication key
Please select what kind of key you want:
&nbsp;&nbsp; (1) RSA
&nbsp;&nbsp; (2) ECC
Your selection? 1
What keysize do you want? (2048) 4096
The card will now be re-configured to generate a key of 4096 bits

Pro každý klíč (tj. podpisový, šifrovací a ověřovací klíč) můžete zvolit atribut. Většina lidí bude pro každý klíč používat stejné atributy. Zadejte list a podívejte se na výsledek (podívejte se do pole „Atributy klíče“, které nyní zní rsa4096).

gpg/card> list

Reader ...........: 20A0:4108:0000320E0000000000000000:0
Application ID ...: D27600012401020100050000320E0000
Version ..........: 2.1
Manufacturer .....: ZeitControl
Serial number ....: 0000320E
Name of cardholder: [not set]
Language prefs ...: de
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa4096 rsa4096 rsa4096
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]

Zadejte quit a stiskněte enter pro ukončení nebo pokračujte přímo v předchozí části, abyste skutečně vygenerovali klíče s právě nastavenými atributy.

Následující tabulka ukazuje, který algoritmus lze použít na kterém zařízení.

Start

Pro + úložiště

Pro 2 + úložiště 2

rsa1024

rsa2048

rsa3072

rsa4096

curve25519 (ECC)

NIST (ECC)

Brainpool (ECC)

secp256k1

Exportování veřejného klíče a používání serveru Keyserver

Přestože můžete začít používat klíč Nitrokey ihned po vygenerování klíčů ve svém systému, je třeba importovat veřejný klíč do každého systému, ve kterém chcete klíč Nitrokey používat. Chcete-li být připraveni, máte tedy dvě možnosti: Buď si veřejný klíč uložíte kamkoli a použijete ho v jiném systému, nebo si veřejný klíč uložíte na webovou stránku/keyserver.

Generování souboru veřejného klíče

Chcete-li získat jednoduchý soubor svého veřejného klíče, stačí použít gpg2 --armor --export keyID > pubkey.asc. Jako „keyID“ použijte buď otisk prstu (podívejte se na gpg -K a získejte jej), nebo jako identifikátor použijte pouze svou e-mailovou adresu.

Tento soubor můžete nosit s sebou nebo ho poslat komukoli, komu se vám líbí. Tento soubor není vůbec tajný. Pokud chcete použít klíč Nitrokey v jiném systému, nejprve tento veřejný klíč importujte pomocí gpg2 --import pubkey.asc a poté zadejte gpg2 --card-status, aby systém věděl, kde má tento klíč hledat. To je vše.

Nahrání veřejného klíče

Pokud nechcete mít veřejný soubor s klíčem u sebe, můžete jej nahrát na server keyserver. Můžete to provést zadáním gpg --keyserver search.keyserver.net --send-key keyID. Pokud používáte jiný počítač, můžete jej jednoduše importovat pomocí gpg --keyserver search.keyserver.net --recv-key keyID.

Another possibility is to change the URL setting on your card. Start gpg –card-edit again and first set the URL where the key is situated (e.g. on the keyserver or on your webpage etc.) via the url command. From now on you can import the key on another system by just using the fetch command within the gpg --card-edit environment.