Генериране на ключове OpenPGP с резервно копие

Следващите инструкции обясняват генерирането на OpenPGP ключове директно в Nitrokey. Това става с помощта на интерфейса на командния ред на GnuPG. Затова е необходимо да имате инсталиран GnuPG на вашата система. Най-новата версия на GnuPG за Windows можете да намерите тук, а най-новата версия за MacOS можете да намерите тук. Потребителите на системи Linux трябва да инсталират GnuPG с помощта на мениджъра на пакети.

Note

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.

Генериране на ключове

Следващите описания обясняват основното генериране на ключове в устройството чрез интерфейса на командния ред на GnuPG. По подразбиране се генерират ключове RSA с размер 2048 бита. Ако искате да промените алгоритъма и дължината на ключа, първо погледнете следващия раздел.

Отворете командния ред и въведете 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>

Сега сте в интерактивния интерфейс на GnuPG. Активирайте администраторските команди с admin и след това използвайте generate, за да започнете генерирането на ключове.

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>

Не създавайте предложеното резервно копие извън картата. Това „резервно копие“ запазва само ключа за криптиране, но не и ключовете за подпис и удостоверяване. В случай на загуба на устройството няма да можете да възстановите целия набор от ключове. Така че, от една страна, това не е пълно резервно копие (вместо него използвайте тези инструкции, ако имате нужда от такова), а от друга страна, рискувате някой друг да се сдобие с вашия ключ за криптиране. Предимството на генерирането на ключове в устройството е да се уверите, че ключовете се съхраняват по сигурен начин. Ето защо препоръчваме да пропуснете този полурезерв.

Сега имате пълен набор от ключове на устройството си, който може да се използва за различни приложения, изброени в нашия сайт. Въведете quit и натиснете enter, за да излезете.

Промяна на основните атрибути

Този раздел е посветен на промяната на ключовите атрибути. Ако искате да използвате стойностите по подразбиране, можете да продължите със следващия раздел.

Отворете командния ред и въведете 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]

Сега сте в интерактивния интерфейс на GnuPG. Както можете да видите в полето „Ключови атрибути“ по-горе, по подразбиране е зададена стойността rsa2048. За да ги промените, активирайте командите за администриране с admin и след това използвайте key-attr, за да промените атрибутите на ключовете.

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

Можете да изберете атрибута за всеки ключ (т.е. ключ за подпис, криптиране и удостоверяване). Повечето хора ще използват едни и същи атрибути за всеки ключ. Въведете list, за да видите резултатите (погледнете полето „Ключови атрибути“, което сега гласи 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]

Въведете quit и натиснете enter, за да излезете, или продължете директно с предишния раздел, за да генерирате ключовете с току-що зададените ключови атрибути.

Следващата таблица илюстрира кой алгоритъм може да се използва на кое устройство, в случай че искате да използвате различни ключови атрибути.

Начало

Pro + съхранение

Pro 2 + съхранение 2

rsa1024

rsa2048

rsa3072

rsa4096

curve25519 (ECC)

NIST (ECC)

Brainpool (ECC)

secp256k1

Експортиране на публичен ключ и използване на Keyserver

Въпреки че можете да започнете да използвате своя Nitrokey веднага след генерирането на ключовете във вашата система, трябва да импортирате публичния си ключ във всяка система, в която искате да използвате Nitrokey. За да сте подготвени, имате две възможности: Или записвате публичния ключ, където пожелаете, и го използвате в друга система, или записвате публичния ключ в уеб страница/ключов сървър.

Генериране на файл с публичен ключ

За да получите прост файл с публичния си ключ, можете просто да използвате gpg2 --armor --export keyID > pubkey.asc. Използвайте или пръстовия отпечатък като „keyID“ (погледнете gpg -K, за да го получите), или просто използвайте имейл адреса си като идентификатор.

Можете да носите този файл със себе си или да го изпратите на когото пожелаете. Този файл изобщо не е секретен. Ако искате да използвате Nitrokey в друга система, първо импортирайте този публичен ключ чрез gpg2 --import pubkey.asc и след това въведете gpg2 --card-status, така че системата да знае къде да търси този ключ. Това е всичко.

Качване на публичния ключ

Ако не искате да носите публичен ключов файл със себе си, можете да го качите на keyserver. Можете да направите това, като въведете gpg --keyserver search.keyserver.net --send-key keyID. Ако използвате друга машина, можете просто да я импортирате, като използвате 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.