OpenPGP-avaimen luominen varmuuskopioinnin avulla#

(Nitrokey Start - macOS)

The following instructions explain the generation of OpenPGP keys and how to copy them to the Nitrokey. This method has the advantage of providing a backup of the keys in case of losing or breaking the Nitrokey. The instructions are based on 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.

Avainten tuottaminen#

Ensin sinun on luotava avain paikallisesti. Voit päättää, mitä avainominaisuuksia haluat käyttää, ja - mikä tärkeintä - voit viedä avaimen ja säilyttää sen jossakin tallessa, jos haluat palauttaa avaimen.

Pääavain ja salausavain#

Voimme käyttää komentoa gpg --full-generate-key --expert aloittaaksemme ohjatun avainten luomisen kaikilla mahdollisilla vaihtoehdoilla. Voit valita avaintyypin (yleensä RSA (1) tai ECC (9)), avaimen pituuden ja muita ominaisuuksia. Seuraava tuloste on vain yksinkertainen esimerkki, voit valita muita arvoja.

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

Seuraavassa taulukossa esitetään, mitä algoritmia voidaan käyttää missäkin laitteessa, jos haluat käyttää eri avainattribuutteja.

Aloita

Pro + varastointi

Pro 2 + varastointi 2

rsa1024

rsa2048

rsa3072

rsa4096

curve25519 (ECC)

NIST (ECC)

Brainpool (ECC)

secp256k1

Todennuksen aliavain#

Sinulla on nyt pääavain, joka pystyy allekirjoittamaan ja varmentamaan (merkitty [SC]), ja aliavain salausta varten (merkitty [E]). Toinen aliavain on tarpeen sellaisia käyttötapauksia varten, joissa tarvitaan todentamista. Tämä aliavain luodaan seuraavassa vaiheessa. Kirjoita gpg --edit-key --expert keyID aloittaaksesi prosessin, kun taas ”keyID” on joko avaimen id tai avaimen luomisessa käytetty sähköpostiosoite.

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

Nyt olet GnuPG:n interaktiivisessa tilassa ja voit lisätä avaimen yksinkertaisesti kirjoittamalla addkey. Sinun on valittava avain, jota haluat käyttää. On ratkaisevan tärkeää valita ”set your own capabilities”, koska haluamme ”authenticate”-ominaisuuden, jota ei muuten ole saatavilla. Vaihdamme allekirjoitusta ja salausta kirjoittamalla s ja e ja aktivoimme todennuksen kirjoittamalla 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

Lopetamme q. Sen jälkeen meidän on vastattava samoihin kysymyksiin kuin ennenkin. Lopuksi meillä on valmis avainsarja, jonka voimme tuoda laitteeseemme.

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

Nyt on hyvä aika varmuuskopioida avain. Pidä tämä varmuuskopio erittäin turvassa. Paras käytäntö on, että avainta ei koskaan pidetä tavallisella tietokoneella, jolla on yhteys internetiin, jotta avain ei koskaan vaarannu. Voit luoda varmuuskopion seuraavalla tavalla:

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

Avaintuonti#

Sinulla on pääavain ja kaksi alaavainta, jotka voidaan tuoda Nitrokey-avaimeesi. Ennen kuin jatkat, varmista, että sinulla on todella varmuuskopio avaimesta, jos tarvitset sitä. Seuraavissa vaiheissa käytettävä keytocard-komento poista avaimesi levyltäsi!

Aloitamme prosessin käyttämällä GnuPG:n interaktiivista käyttöliittymää jälleen gpg --edit-key --expert keyID, kun taas ``keyID<x><x=”130”></x>` on joko avaimen id tai avaimen luomisessa käytetty sähköpostiosoite.

> 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

Olemme juuri tuoneet kortin pääavaimen. Nyt jatketaan kahden alaavaimen kanssa. Kirjoitamme <key 1 valitaksemme salauksen aliavaimen ja kirjoitamme uudelleen keytocard ja valitsemme haluamamme aukon.

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

Nyt poistamme ensimmäisen avaimen valinnan key 1 ja valitsemme toisen alaavaimen <x:llä. id=”79”></x>`key 2`` ja siirretään sekin keytocard. Sen jälkeen lopetetaan ja tallennetaan muutokset.

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

Avaimesi on nyt siirretty Nitrokey-avaimeen ja siten suojattu laitteistoon. Onnittelut!

Julkisen avaimen vienti ja avainpalvelimen käyttö#

Vaikka voit aloittaa Nitrokey-avaimesi käytön heti sen jälkeen, kun olet luonut avaimet järjestelmässäsi, sinun on tuotava julkinen avaimesi jokaiseen järjestelmään, jossa haluat käyttää Nitrokey-avainta. Sinulla on siis kaksi vaihtoehtoa: Joko tallennat julkisen avaimen mihin tahansa haluamaasi paikkaan ja käytät sitä toisessa järjestelmässä tai tallennat julkisen avaimen verkkosivulle/avainpalvelimelle.

Julkisen avaimen tiedoston luominen#

Jos haluat saada yksinkertaisen tiedoston julkisesta avaimestasi, voit käyttää gpg --armor --export keyID > pubkey.asc. Käytä joko sormenjälkeä ”keyID:nä” (katso gpg -K saadaksesi sen) tai käytä vain sähköpostiosoitettasi tunnisteena.

Voit pitää tätä tiedostoa mukanasi tai lähettää sen kenelle tahansa haluamallesi henkilölle. Tämä tiedosto ei ole lainkaan salainen. Jos haluat käyttää Nitrokeyta toisessa järjestelmässä, tuot ensin tämän julkisen avaimen gpg --import pubkey.asc kautta ja kirjoitat sitten gpg --card-status, jotta järjestelmä tietää, mistä tätä avainta pitää etsiä. Siinä kaikki.

Julkisen avaimen lataaminen#

Jos et halua kantaa julkista avaintietoa mukanasi, voit ladata sen keyserveriin. Voit tehdä tämän kirjoittamalla gpg --keyserver search.keyserver.net --send-key keyID. Jos käytät toista konetta, voit vain tuoda sen käyttämällä gpg --keyserver search.keyserver.net --recv-key keyID.

Toinen mahdollisuus on muuttaa kortin URL-asetusta. Käynnistä <gpg --card-edit uudelleen ja aseta ensin URL-osoite, jossa avain sijaitsee (esim. avainpalvelimella tai verkkosivulla jne.) komennolla url. Tästä lähtien voit tuoda avaimen toiseen järjestelmään käyttämällä vain fetch-komentoa gpg --card-edit environment sisällä.