Generering av OpenPGP-nycklar på enheten#

(Nitrokey HSM 2 - Windows)

The following instructions explain the generation of OpenPGP keys directly on the Nitrokey. This is done by using 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.

Observera

Dessa instruktioner är baserade på GnuPG version 2.2.6 eller högre. Vissa Linuxdistributioner har en äldre version installerad. Välj i så fall en annan metod enligt listan här eller installera en nyare version om möjligt.

Nyckelgenerering#

Följande beskrivningar förklarar den grundläggande nyckelgenereringen på enheten via GnuPG:s kommandoradsgränssnitt. Standardbeteendet är att generera RSA-nycklar med en storlek på 2048 bitar. Om du vill ändra nyckelalgoritmen och nyckellängden ska du först titta på nästa avsnitt.

Öppna en kommandorad och skriv gpg2 --card-edit.

För att öppna Windows kommandorad trycker du på Windows-tangenten och R-tangenten. Skriv nu ”cmd.exe” i textfältet och tryck på enter. För att öppna en terminal på macOS eller GNU/Linux använder du sökprogrammet (t.ex. spotlight på 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>

Nu befinner du dig i det interaktiva gränssnittet för GnuPG. Aktivera adminkommandona med admin och använd generate efteråt för att starta genereringen av nycklar.

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>

Skapa inte den föreslagna säkerhetskopian utanför kortet. Denna ”säkerhetskopia” sparar endast krypteringsnyckeln, men inte signatur- och autentiseringsnycklarna. Om enheten går förlorad kan du inte återställa hela nyckeluppsättningen. Så å ena sidan är det ingen fullständig säkerhetskopia (använd denna instruktioner i stället, om du behöver en sådan) och å andra sidan riskerar du att någon annan kan komma i besittning av din krypteringsnyckel. Fördelen med att generera nycklar på enheten är att se till att nycklarna lagras säkert. Därför rekommenderar vi att du hoppar över denna halvbackup.

Nu har du en komplett nyckeluppsättning på din enhet som kan användas för ` olika applikationer <https://www.nitrokey.com/documentation/applications>`_ som listas på vår webbplats. Skriv quit och tryck på enter för att avsluta.

Ändra viktiga egenskaper#

Det här avsnittet handlar om att ändra de viktigaste attributen. Om du vill använda standardvärdena kan du fortsätta med nästa avsnitt.

Öppna en kommandorad och skriv 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]

Nu befinner du dig i det interaktiva gränssnittet för GnuPG. Som du kan se i fältet ”Key attributes” ovan är standardvärdet rsa2048 inställt. För att ändra dem aktiverar du adminkommandona med admin och använder key-attr efteråt för att ändra nycklarnas attribut.

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

Du kan välja attribut för varje nyckel (dvs. signatur-, krypterings- och autentiseringsnyckel). De flesta använder samma attribut för varje nyckel. Skriv list för att se resultatet (titta på fältet ”Key attributes” som nu lyder 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]

Skriv quit och tryck på enter för att avsluta eller fortsätt direkt med föregående avsnitt för att generera nycklarna med de nyckelattribut som du just ställde in.

Följande tabell visar vilken algoritm som kan användas på vilken enhet.

Starta

Pro + lagring

Pro 2 + lagring 2

rsa1024

rsa2048

rsa3072

rsa4096

kurva25519

NIST (ECC)

Brainpool 192

secp256

Exportera offentlig nyckel och användning av Keyserver#

Även om du kan börja använda din Nitrokey direkt efter att du har genererat nycklarna på ditt system måste du importera din offentliga nyckel till alla system som du vill använda Nitrokey på. För att vara förberedd har du två alternativ: Antingen sparar du den offentliga nyckeln var som helst och använder den på ett annat system eller så sparar du den offentliga nyckeln på en webbsida/nyckelserver.

Generera en fil med offentlig nyckel#

För att få en enkel fil med din offentliga nyckel kan du bara använda gpg2 --armor --export keyID > pubkey.asc. Använd antingen fingeravtrycket som ”keyID” (titta på gpg -K för att få fram det) eller använd bara din e-postadress som identifierare.

Du kan ha den här filen med dig eller skicka den till vem du vill. Den här filen är inte alls hemlig. Om du vill använda Nitrokey på ett annat system importerar du först denna offentliga nyckel via gpg2 --import pubkey.asc och skriver sedan gpg2 --card-status så att systemet vet var det ska leta efter denna nyckel. Det var allt.

Ladda upp den offentliga nyckeln#

Om du inte vill bära med dig en offentlig nyckelfil kan du ladda upp den till keyserver. Du kan göra detta genom att skriva gpg --keyserver search.keyserver.net --send-key keyID. Om du använder en annan maskin kan du bara importera den genom att använda gpg --keyserver search.keyserver.net --recv-key keyID.

En annan möjlighet är att ändra URL-inställningen på kortet. Starta gpg -card-edit igen och ställ först in URL:en där nyckeln finns (t.ex. på keyservern eller på din webbsida osv.) via kommandot url. Från och med nu kan du importera nyckeln på ett annat system genom att bara använda kommandot fetch inom gpg --card-edit-miljön.