Generowanie klucza OpenPGP na urządzeniu#
Poniższa instrukcja wyjaśnia generowanie kluczy OpenPGP bezpośrednio na Nitrokey. Odbywa się to za pomocą interfejsu wiersza poleceń GnuPG. W związku z tym, musisz mieć zainstalowany GnuPG w swoim systemie. Najnowszą wersję GnuPG dla Windows można znaleźć tutaj, a najnowszą wersję dla MacOS można znaleźć tutaj. Użytkowników systemów linuksowych prosimy o zainstalowanie GnuPG za pomocą menedżera pakietów.
Informacja
Instrukcje te opierają się na GnuPG w wersji 2.2.6 lub wyższej. Niektóre dystrybucje Linuksa mają zainstalowaną starszą wersję. W takim przypadku należy wybrać inną metodę, jak wymieniona ` tutaj <openpgp.html>`_ lub zainstalować nowszą wersję, jeśli to możliwe.
Generowanie kluczy#
Poniższe opisy wyjaśniają podstawowe generowanie kluczy na urządzeniu poprzez interfejs wiersza poleceń GnuPG. Domyślnym zachowaniem jest generowanie kluczy RSA o rozmiarze 2048 bitów. Jeśli chcesz zmienić algorytm i długość klucza, zajrzyj najpierw do następnej sekcji.
Otwórz wiersz poleceń i wpisz gpg2 --card-edit
.
Aby otworzyć wiersz poleceń systemu Windows należy wcisnąć klawisz Windows i klawisz R. W polu tekstowym proszę wpisać „cmd.exe” i nacisnąć enter. Aby otworzyć Terminal na macOS lub GNU/Linux proszę użyć wyszukiwania aplikacji (np. spotlight na 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>
Teraz jesteś w interaktywnym interfejsie GnuPG. Aktywuj polecenia administratora za pomocą admin
i użyj generate
, aby rozpocząć generowanie kluczy.
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>
Nie należy tworzyć sugerowanej kopii zapasowej poza kartą pamięci. Ta „kopia zapasowa” zapisuje tylko klucz szyfrowania, ale nie podpis i klucze uwierzytelniania. W przypadku utraty urządzenia nie będzie można przywrócić całego zestawu kluczy. Z jednej strony nie jest to więc pełna kopia zapasowa (w razie potrzeby użyj tych instrukcji), a z drugiej strony ryzykujesz, że ktoś inny może wejść w posiadanie Twojego klucza szyfrowania. Zaletą generowania kluczy na urządzeniu jest pewność, że klucze są przechowywane w bezpieczny sposób. Dlatego zalecamy pominięcie tej części kopii zapasowej.
Teraz masz kompletny zestaw kluczy na swoim urządzeniu, który może być używany do różnych aplikacji wymienionych na naszej stronie. Wpisz quit
i naciśnij enter, aby wyjść.
Zmiana Kluczowe atrybuty#
Ta sekcja dotyczy zmiany atrybutów kluczy. Jeśli chcesz użyć wartości domyślnych, możesz przejść do następnej sekcji.
Otwórz wiersz poleceń i wpisz 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]
Teraz znajdujesz się w interaktywnym interfejsie GnuPG. Jak widać w polu „Atrybuty klucza” powyżej, domyślnie ustawiona jest wartość rsa2048. Aby je zmienić, aktywuj polecenia administratora za pomocą admin
i użyj key-attr
, aby zmienić atrybuty kluczy.
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:
(1) RSA
(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:
(1) RSA
(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:
(1) RSA
(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
Możesz wybrać atrybut dla każdego klucza (czyli podpisu, klucza szyfrowania i uwierzytelniania). Większość ludzi będzie używać tych samych atrybutów dla każdego klucza. Wpisz list
, aby zobaczyć wyniki (spójrz na pole „Atrybuty klucza”, które teraz brzmi 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]
Wpisz quit
i naciśnij enter, aby wyjść lub przejdź bezpośrednio do poprzedniej sekcji, aby faktycznie wygenerować klucze z atrybutami kluczy, które właśnie ustawiłeś.
Poniższa tabela ilustruje, który algorytm może być zastosowany na którym urządzeniu.
Start |
Pro + Magazynowanie |
Pro 2 + Magazyn 2 |
|
---|---|---|---|
rsa1024 |
✓ |
✓ |
|
rsa2048 |
✓ |
✓ |
✓ |
rsa3072 |
✓ |
✓ |
|
rsa4096 |
✓ |
✓ |
|
krzywa25519 (ECC) |
✓ |
||
NIST (ECC) |
✓ |
✓ |
|
Brainpool (ECC) |
✓ |
||
secp256k1 |
✓ |
Eksportowanie klucza publicznego i użycie Keyservera#
Chociaż możesz zacząć używać Nitrokey od razu po wygenerowaniu kluczy w Twoim systemie, musisz zaimportować swój klucz publiczny na każdym systemie, na którym chcesz używać Nitrokey. Aby być przygotowanym masz dwie opcje: albo zapisujesz klucz publiczny gdziekolwiek chcesz i używasz go na innym systemie, albo zapisujesz klucz publiczny na stronie internetowej/serwerze kluczy.
Generowanie pliku klucza publicznego#
Aby uzyskać prosty plik swojego klucza publicznego, możesz po prostu użyć gpg2 --armor --export keyID > pubkey.asc
. Użyj albo odcisku palca jako „keyID” (spójrz na gpg -K
, aby go uzyskać) lub po prostu użyj swojego adresu e-mail jako identyfikatora.
Możesz nosić ten plik przy sobie lub wysłać go do kogokolwiek chcesz. Ten plik nie jest w ogóle tajny. Jeśli chcesz użyć Nitrokey w innym systemie, najpierw importujesz ten klucz publiczny przez gpg2 --import pubkey.asc
, a następnie wpisujesz gpg2 --card-status
, aby system wiedział, gdzie szukać tego klucza. To wszystko.
Przesyłanie klucza publicznego#
Jeśli nie chcesz nosić ze sobą pliku klucza publicznego, możesz przesłać go do keyservera. Możesz to zrobić wpisując gpg --keyserver search.keyserver.net --send-key keyID
. Jeśli używasz innej maszyny, możesz po prostu zaimportować go używając gpg --keyserver search.keyserver.net --recv-key keyID
.
Inną możliwością jest zmiana ustawienia URL na karcie. Uruchom ponownie gpg -card-edit i najpierw ustaw adres URL, pod którym znajduje się klucz (np. na serwerze kluczy lub na swojej stronie internetowej itp.) za pomocą polecenia url
. Od tej pory możesz importować klucz na inny system używając tylko polecenia fetch
w środowisku gpg --card-edit
.