OpenPGP võtme genereerimine koos varundamisega

Järgnevad juhised selgitavad OpenPGP-võtmete genereerimist ja nende kopeerimist Nitrokey’sse. Selle meetodi eeliseks on võtmete varukoopia olemasolu juhul, kui Nitrokey peaks kaduma või purunema. Juhised põhinevad GnuPG käsurea liidesel. Seega peab teie süsteemi olema installeeritud GnuPG. Uuema GnuPG versiooni Windowsile leiab tema ja uuema versiooni MacOSile leiab tema. Linuxi süsteemide kasutajatel palume GnuPG paigaldada paketihalduri abil.

Võtme genereerimine

Kõigepealt tuleb teil luua võti kohapeal. Saate otsustada, milliseid võtme atribuute kasutada ja - mis kõige tähtsam - saate võtme eksportida ja hoida seda kuskil salvestatud kujul, juhul kui teil on vaja võtit taastada.

Peavõti ja krüpteerimise alamvõti

Me võime kasutada käsku gpg --full-generate-key --expert, et alustada juhendatud võtme genereerimist kõigi võimalike valikutega. Saate valida võtme tüübi (tavaliselt RSA (1) või ECC (9)), võtme pikkuse ja muud atribuudid. Järgnev väljund on vaid lihtne näide, võite valida ka muid väärtusi.

> 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]

Märkus

Teavet toetatavate algoritmide kohta leiate veebilehelt faq.

Autentimise alamvõti

Teil on nüüd peavõti, mis võimaldab allkirjastada ja sertifitseerida (tähistatud [SC]), ja alamvõti krüpteerimiseks (tähistatud [E]). Teine alamvõti on vajalik selliste kasutusjuhtumite jaoks, mille puhul on vaja autentimist. See alamvõti genereeritakse järgmises etapis. Protsessi alustamiseks sisestage gpg --edit-key --expert keyID, kusjuures „keyID“ on kas võtme id või võtme genereerimisel kasutatav e-posti aadress.

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

Nüüd olete GnuPG interaktiivses režiimis ja saate lisada võtme, kirjutades lihtsalt addkey. Sa pead valima võtme, mida soovid kasutada. Oluline on valida „set your own capabilities“, sest me tahame, et meil oleks „authenticate“ võime, mida muidu ei ole võimalik kasutada. Me lülitame sign ja encrypt sisse, kirjutades s ja e ja aktiveerime autentimise, kirjutades a.

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

Lõpetame q. Seejärel peame vastama samadele küsimustele nagu varemgi. Lõpuks on meil valmis võtmekomplekt, mille saame oma seadmesse importida.

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

Nüüd on hea aeg oma võtme varundamiseks. Hoidke see varukoopia väga turvaliselt. Parim tava on, et see võti ei oleks kunagi tavalises arvutis, millel on ühendus internetiga, et võti ei satuks kunagi ohtu. Saate luua varukoopia näiteks järgmiselt:

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

Key Import

Teil on üks põhivõti ja kaks alamvõtit, mida saab importida oma Nitrokey’sse. Enne jätkamist veenduge, et teil on tõesti varukoopia võtmest, kui teil on seda vaja. Järgmistes sammudes kasutatav käsk keytocard kustutab kustutab teie võtme teie kettalt!

Alustame protsessi, sisenedes taas GnuPG interaktiivsesse kasutajaliidesesse gpg --edit-key --expert keyID, kusjuures keyID on kas võtme id või võtme genereerimisel kasutatav e-posti aadress.

> 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

Me lihtsalt impordime kaardile põhivõti. Nüüd jätkame kahe alamvõtmega. Kirjutame key 1, et valida krüpteerimise alamvõti ja kirjutame uuesti keytocard ja valime kasutatava pesa.

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

Nüüd tühistame esimese võtme valiku key 1 ja valime teise alamvõtme key 2 ja liigutame selle samuti keytocard. Seejärel lõpetame ja salvestame muudatused.

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

Teie võtmed on nüüd Nitrokey’sse viidud ja seega riistvaraliselt kindlustatud. Palju õnne!

Avaliku võtme eksportimine ja võtmeserveri kasutamine

Kuigi võite alustada Nitrokey kasutamist kohe pärast võtmete genereerimist oma süsteemis, peate importima oma avaliku võtme igasse süsteemi, kus soovite Nitrokey’t kasutada. Seega on teil valmisolekuks kaks võimalust: Te kas salvestate avaliku võtme kuhugi ja kasutate seda mõnes teises süsteemis või salvestate avaliku võtme veebiportaali/võtmeserverisse.

Avaliku võtme faili genereerimine

Oma avaliku võtme lihtsa faili saamiseks võite lihtsalt kasutada gpg --armor --export keyID > pubkey.asc. Kasutage kas sõrmejälge kui „keyID“ (vaadake selle saamiseks gpg -K) või kasutage lihtsalt oma e-posti aadressi identifikaatorina.

Võite seda faili endaga kaasas kanda või saata selle kellelegi, kellele soovite. See fail ei ole üldse salajane. Kui sa tahad Nitrokey’t kasutada teises süsteemis, siis impordid selle avaliku võtme kõigepealt gpg --import pubkey.asc kaudu ja seejärel sisestad gpg --card-status, et süsteem teaks, kust seda võtit otsida. See on kõik.

Avaliku võtme üleslaadimine

If you don’t want to carry a public key file, you can upload it to keyserver. For the common SKS federated keyservers, for example, keyserver.ubuntu.com. Type gpg --keyserver keyserver.ubuntu.com --send-key keyID. If you are using another machine, you can just import it by using gpg --keyserver keyserver.ubuntu.com --recv-key keyID.

Võite kasutada ka openpgp.keys.org. Soovitatav on seda teha aadressil gpg --export your_address@example.net. Kui te kasutate teist masinat, võite seda lihtsalt importida, kasutades gpg --auto-key-locate hkps://keys.openpgp.org.

Teine võimalus on muuta oma kaardi URL-i seadistust. Käivitage uuesti gpg --card-edit ja määrake kõigepealt URL, kus võti asub (nt võtmeserveril või teie veebilehel jne), käsuga url. Nüüdsest saate võtme importida teise süsteemi, kasutades lihtsalt fetch käsku gpg --card-edit environment sees.