OpenPGP-sleutelgeneratie op apparaat#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
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.
Notitie
These instructions are based on GnuPG version 2.2.6 or higher. Some Linux Distributions have an older version installed. In this case please choose a different method as listed here or install a newer version if possible.
Sleutel generatie#
De volgende beschrijvingen verklaren de basis sleutelgeneratie op het apparaat via de commandoregelinterface van GnuPG. Het standaard gedrag is het genereren van RSA sleutels van 2048 bit grootte. Als u het sleutelalgoritme en de sleutellengte wilt veranderen, kijk dan eerst naar de volgende sectie.
Open een opdrachtregel en typ gpg2 --card-edit
.
To open the Windows command line please push the Windows-key and R-key. Now type ‘cmd.exe’ in the text field and hit enter. To open a Terminal on macOS or GNU/Linux please use the application search (e.g. spotlight on 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 bent u in de interactieve interface van GnuPG. Activeer de admin commando’s met admin
en gebruik daarna generate
om het genereren van sleutels te starten.
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>
Maak niet de voorgestelde off-card backup. Deze “backup” slaat alleen de encryptie sleutel op, maar niet de handtekening en authenticatie sleutels. In geval van verlies van het apparaat, zult u niet in staat zijn om de hele sleutelset te herstellen. Dus enerzijds is het geen volledige backup (gebruik deze instructies in plaats daarvan, als u er een nodig hebt) en anderzijds loopt u het risico dat iemand anders in het bezit van uw encryptie-sleutel kan komen. Het voordeel van het genereren van sleutels op het apparaat is dat u er zeker van bent dat de sleutels veilig worden opgeslagen. Daarom raden wij aan om deze halve back-up over te slaan.
Nu hebt u een complete sleutelset op uw toestel die kan worden gebruikt voor de verschillende toepassingen die op onze site worden vermeld. Typ quit
en druk op enter om af te sluiten.
Wijzig Hoofdkenmerken#
Deze sectie gaat over het veranderen van de sleutelattributen. Als u de standaardwaarden wilt gebruiken, kunt u verder gaan met de volgende sectie.
Open een opdrachtregel en typ 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]
U bent nu in de interactieve interface van GnuPG. Zoals u kunt zien in het “Sleutel attributen” veld hierboven, is de standaard waarde rsa2048 ingesteld. Om deze te wijzigen, activeert u de admin commando’s met admin
en gebruikt u key-attr
om daarna de attributen van de sleutels te wijzigen.
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
U kunt het attribuut voor elke sleutel kiezen (dat wil zeggen, handtekening, encryptie en authenticatie sleutel). De meeste mensen zullen dezelfde attributen gebruiken voor elke sleutel. Typ list
om de resultaten te zien (kijk naar het “Sleutelattributen” veld, dat nu rsa4096 aangeeft).
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]
Typ quit
en druk op enter om af te sluiten of ga direct verder met de vorige sectie om de sleutels daadwerkelijk te genereren met de sleutelattributen die u zojuist hebt ingesteld.
De volgende tabel illustreert welk algoritme op welk apparaat kan worden gebruikt.
Start |
Pro + Storage |
Pro 2 + Storage 2 |
|
---|---|---|---|
RSA1024 |
✓ |
✓ |
|
RSA2048 |
✓ |
✓ |
✓ |
rsa3072 |
✓ |
✓ |
|
RSA4096 |
✓ |
✓ |
|
curve25519 (ECC) |
✓ |
||
NIST (ECC) |
✓ |
✓ |
|
Brainpool (ECC) |
✓ |
||
secp256k1 |
✓ |
Exporteren van publieke sleutel en Keyserver-gebruik#
Hoewel u uw Nitrokey meteen kunt gebruiken nadat u de sleutels op uw systeem hebt gegenereerd, moet u uw publieke sleutel importeren op elk systeem waarop u de Nitrokey wilt gebruiken. Dus om voorbereid te zijn heb je twee opties: Of u slaat de publieke sleutel op waar u maar wilt en gebruikt deze op een ander systeem, of u slaat de publieke sleutel op een webpagina/sleutelserver op.
Een bestand met openbare sleutels genereren#
Om een eenvoudig bestand van uw publieke sleutel te krijgen, kunt u gewoon gpg2 --armor --export keyID > pubkey.asc
gebruiken. Gebruik ofwel de vingerafdruk als “keyID” (kijk naar gpg -K
om het te krijgen) of gebruik gewoon uw email adres als identifier.
U kunt dit bestand bij u dragen of opsturen naar wie u maar wilt. Dit bestand is helemaal niet geheim. Als je de Nitrokey op een ander systeem wilt gebruiken, importeer je eerst deze publieke sleutel via gpg2 --import pubkey.asc
en typt dan gpg2 --card-status
, zodat het systeem weet waar het deze sleutel moet zoeken. Dat is alles.
De openbare sleutel uploaden#
Als u geen publiek sleutelbestand bij u wilt dragen, kunt u het uploaden naar de keyserver. U kunt dit doen door gpg --keyserver search.keyserver.net --send-key keyID
te typen. Als u een andere machine gebruikt, kunt u het gewoon importeren door gpg --keyserver search.keyserver.net --recv-key keyID
te gebruiken.
Another possibility is to change the URL setting on your card. Start gpg
–card-edit again and first set the URL where the key is situated (e.g. on the keyserver or on your webpage etc.) via the url
command. From now on you can import the key on another system by just using the fetch
command within the gpg --card-edit
environment.