OpenPGP kulcsgenerálás biztonsági mentéssel#

(Nitrokey Pro 2 - macOS)

A következő utasítások ismertetik az OpenPGP kulcsok létrehozását és a Nitrokey-re való másolását. Ennek a módszernek az az előnye, hogy a Nitrokey elvesztése vagy törése esetén biztonsági másolatot készít a kulcsokról. Az utasítások a GnuPG parancssori felületén alapulnak. Ezért a GnuPG-nek telepítve kell lennie a rendszerén. A GnuPG legújabb verziója Windowsra itt, MacOS-re pedig itt található. A Linux rendszerek felhasználói a GnuPG-t a csomagkezelő segítségével telepítsék.

Kulcsgenerálás#

Először helyben kell létrehoznia egy kulcsot. Eldöntheti, hogy milyen kulcsattribútumokat használjon, és - ami a legfontosabb - exportálhatja a kulcsot, és megőrizheti valahol, arra az esetre, ha vissza kell állítania a kulcsot.

Főkulcs és titkosítási alkulcs#

A gpg --full-generate-key --expert paranccsal elindíthatunk egy irányított kulcsgenerálást az összes lehetséges opcióval. Kiválaszthatjuk a kulcs típusát (általában RSA (1) vagy ECC (9)), a kulcs hosszát és egyéb attribútumokat. Az alábbi kimenet csak egy egyszerű példa, más értékeket is választhat.

> gpg --full-generate-key --expert
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
   (7) DSA (set your own capabilities)
   (8) RSA (set your own capabilities)
   (9) ECC and ECC
  (10) ECC (sign only)
  (11) ECC (set your own capabilities)
  (13) Existing key
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want for the subkey? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      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 "

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key 0EFFB0704391497C marked as ultimately trusted
gpg: revocation certificate stored as '/home/nitrokey//.gnupg/openpgp-revocs.d/9D12C91F6FC4CD6E10A1727A0EFFB0704391497C.rev'
public and secret key created and signed.

pub   rsa2048 2018-09-17 [SC]
      9D12C91F6FC4CD6E10A1727A0EFFB0704391497C
uid                      Jane Doe
sub   rsa2048 2018-09-17 [E]

Megjegyzés

A támogatott algoritmusokkal kapcsolatos információkért kérjük, olvassa el a faq oldalt.

Alkulcs a hitelesítéshez#

Most már van egy fő kulcsod, amely képes aláírni és hitelesíteni ([SC]-vel jelölve), és egy titkosításra szolgáló alkulcsod ([E]-vel jelölve). Szükség van egy másik alkulcsra olyan felhasználási esetekhez, amikor hitelesítésre van szükség. Ezt az alkulcsot a következő lépésben generáljuk. A folyamat elindításához írja be a gpg --edit-key --expert keyID, míg a „keyID” vagy a kulcs azonosítója, vagy a kulcsgenerálás során használt e-mail cím.

> gpg --edit-key --expert jane@example.com
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

sec  rsa2048/0EFFB0704391497C
     created: 2018-09-17  expires: never       usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/A9A814C210F16700
     created: 2018-09-17  expires: never       usage: E
[ultimate] (1). Jane Doe

gpg>

Most a GnuPG interaktív módjában van, és egyszerűen beírhat egy kulcsot a addkey beírásával. Ki kell választanod a használni kívánt kulcsot. Lényeges, hogy a „saját képességek beállítása” lehetőséget válasszuk, mert mi a „hitelesítés” képességet szeretnénk, ami egyébként nem áll rendelkezésre. Az aláírást és a titkosítást a s és <x beírásával kapcsoljuk át. id="330"></x> és aktiváljuk a hitelesítést a a beírásával.

gpg> addkey
Please select what kind of key you want:
   (3) DSA (sign only)
   (4) RSA (sign only)
   (5) Elgamal (encrypt only)
   (6) RSA (encrypt only)
   (7) DSA (set your own capabilities)
   (8) RSA (set your own capabilities)
  (10) ECC (sign only)
  (11) ECC (set your own capabilities)
  (12) ECC (encrypt only)
  (13) Existing key
Your selection? 8

Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Sign Encrypt

   (S) Toggle the sign capability
   (E) Toggle the encrypt capability
   (A) Toggle the authenticate capability
   (Q) Finished

Your selection? s

Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Encrypt

   (S) Toggle the sign capability
   (E) Toggle the encrypt capability
   (A) Toggle the authenticate capability
   (Q) Finished

Your selection? e

Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions:

   (S) Toggle the sign capability
   (E) Toggle the encrypt capability
   (A) Toggle the authenticate capability
   (Q) Finished

Your selection? a

Possible actions for a RSA key: Sign Encrypt Authenticate
Current allowed actions: Authenticate

   (S) Toggle the sign capability
   (E) Toggle the encrypt capability
   (A) Toggle the authenticate capability
   (Q) Finished

Your selection? q

A q-vel lépünk ki. Ezután ugyanazokra a kérdésekre kell válaszolnunk, mint korábban. Végül van egy kész kulcskészletünk, amelyet importálhatunk az eszközünkre.

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y
Really create? (y/N) y
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

sec  rsa2048/0EFFB0704391497C
     created: 2018-09-17  expires: never       usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/A9A814C210F16700
     created: 2018-09-17  expires: never       usage: E
ssb  rsa2048/61F186B8B0BBD5D5
     created: 2018-09-17  expires: never       usage: A
[ultimate] (1). Jane Doe

gpg> quit
Save changes? (y/N) y

Itt az ideje, hogy biztonsági másolatot készítsen a kulcsról. Kérjük, tartsa ezt a biztonsági másolatot nagyon biztonságban. A legjobb gyakorlat, hogy soha ne legyen ez a kulcs olyan számítógépen, amelyiknek internetkapcsolata van, hogy a kulcs soha ne kerüljön veszélybe. A biztonsági másolatot a következőkkel készítheti el:

> gpg --export-secret-keys jane@example.com > sec-key.asc

Kulcs Import#

Van egy főkulcsa és két alkulcsa, amelyeket be lehet importálni a Nitrokey-be. Mielőtt folytatná, kérjük, győződjön meg róla, hogy valóban van biztonsági másolata a kulcsról, ha szüksége van rá. A következő lépésekben használt keytocard parancs törli a kulcsot a lemezről!

A folyamatot a GnuPG interaktív felületének újbóli elérésével kezdjük a gpg --edit-key --expert keyID, míg a keyID<x> vagy a kulcs azonosítója, vagy a kulcsgenerálás során használt e-mail cím.

> gpg --edit-key --expert jane@example.com
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

sec  rsa2048/0EFFB0704391497C
     created: 2018-09-17  expires: never       usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/A9A814C210F16700
     created: 2018-09-17  expires: never       usage: E
ssb  rsa2048/61F186B8B0BBD5D5
     created: 2018-09-17  expires: never       usage: A
[ultimate] (1). Jane Doe

gpg> keytocard
Really move the primary key? (y/N) y
Please select where to store the key:
   (1) Signature key
   (3) Authentication key
Your selection? 1

sec  rsa2048/0EFFB0704391497C
     created: 2018-09-17  expires: never       usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/A9A814C210F16700
     created: 2018-09-17  expires: never       usage: E
ssb  rsa2048/61F186B8B0BBD5D5
     created: 2018-09-17  expires: never       usage: A
[ultimate] (1). Jane Doe

Most importáltuk a főkulcsot a kártyára. Most a két alkulccsal folytatjuk. Beírjuk a <key 1 a titkosítási alkulcs kiválasztásához, majd ismét beírjuk a keytocard és kiválasztjuk a használni kívánt slotot.

gpg> key 1

sec  rsa2048/0EFFB0704391497C
     created: 2018-09-17  expires: never       usage: SC
     trust: ultimate      validity: ultimate
ssb* rsa2048/A9A814C210F16700
     created: 2018-09-17  expires: never       usage: E
ssb  rsa2048/61F186B8B0BBD5D5
     created: 2018-09-17  expires: never       usage: A
[ultimate] (1). Jane Doe

gpg> keytocard
Please select where to store the key:
   (2) Encryption key
Your selection? 2

sec  rsa2048/0EFFB0704391497C
     created: 2018-09-17  expires: never       usage: SC
     trust: ultimate      validity: ultimate
ssb* rsa2048/A9A814C210F16700
     created: 2018-09-17  expires: never       usage: E
ssb  rsa2048/61F186B8B0BBD5D5
     created: 2018-09-17  expires: never       usage: A
[ultimate] (1). Jane Doe

Most az első kulcsot a key 1 segítségével választjuk ki, a második alkulcsot pedig a key 2 és azt is áthelyezzük a keytocard segítségével. Ezután kilépünk és elmentjük a változásokat.

gpg> key 1

sec  rsa2048/0EFFB0704391497C
     created: 2018-09-17  expires: never       usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/A9A814C210F16700
     created: 2018-09-17  expires: never       usage: E
ssb  rsa2048/61F186B8B0BBD5D5
     created: 2018-09-17  expires: never       usage: A
[ultimate] (1). Jane Doe

gpg> key 2

sec  rsa2048/0EFFB0704391497C
     created: 2018-09-17  expires: never       usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/A9A814C210F16700
     created: 2018-09-17  expires: never       usage: E
ssb* rsa2048/61F186B8B0BBD5D5
     created: 2018-09-17  expires: never       usage: A
[ultimate] (1). Jane Doe

gpg> keytocard
Please select where to store the key:
   (3) Authentication key
Your selection? 3

sec  rsa2048/0EFFB0704391497C
     created: 2018-09-17  expires: never       usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/A9A814C210F16700
     created: 2018-09-17  expires: never       usage: E
ssb* rsa2048/61F186B8B0BBD5D5
     created: 2018-09-17  expires: never       usage: A
[ultimate] (1). Jane Doe

gpg> quit
Save changes? (y/N) y

A kulcsok most átkerülnek a Nitrokey-be, és így hardveresen biztosítva vannak. Gratulálunk!

Nyilvános kulcs exportálása és kulcsszerver-használat#

Bár a Nitrokey-t a kulcsok generálása után azonnal elkezdheti használni a rendszerén, a nyilvános kulcsot minden olyan rendszerre importálnia kell, amelyen használni szeretné a Nitrokey-t. Így a felkészüléshez két lehetőséged van: Vagy elmented a nyilvános kulcsot bárhová, ahol szeretnéd, és egy másik rendszeren használod, vagy elmented a nyilvános kulcsot egy weblapon/kulcsszerverre.

Nyilvános kulcsfájl generálása#

A nyilvános kulcsod egyszerű fájljához egyszerűen használhatod a gpg --armor --export keyID > pubkey.asc parancsot. Használd az ujjlenyomatot „keyID”-ként (nézd meg a <x id=”150”><</x>`gpg -K`` címet), vagy csak az e-mail címedet használd azonosítóként.

Ezt a fájlt magával viheti, vagy elküldheti bárkinek, akinek csak szeretné. Ez a fájl egyáltalán nem titkos. Ha a Nitrokey-t egy másik rendszeren akarod használni, akkor először importáld ezt a nyilvános kulcsot a gpg --import pubkey.asc segítségével, majd írd be a gpg --card-status, hogy a rendszer tudja, hol keresse ezt a kulcsot. Ez minden.

A nyilvános kulcs feltöltése#

Ha nem szeretne nyilvános kulcsfájlt magával vinni, akkor feltöltheti azt a keyserverre. Ezt a gpg --keyserver search.keyserver.net --send-key keyID beírásával teheti meg. Ha egy másik gépet használsz, akkor egyszerűen importálhatod a <x id=”237”><</x>`gpg –keyserver search.keyserver.net –recv-key keyID`` használatával.

Egy másik lehetőség a kártya URL-beállításának módosítása. Indítsa el újra a <gpg --card-edit parancsot, és először állítsa be az URL-t, ahol a kulcs található (pl. a kulcsszerverben vagy a weboldalán stb.) a url parancs segítségével. Mostantól kezdve a kulcsot egy másik rendszerbe egyszerűen a fetch paranccsal importálhatja a gpg --card-edit environment parancson belül.