Génération de clés OpenPGP sur l’appareil

Les instructions suivantes expliquent la génération de clés OpenPGP directement sur la Nitrokey. Cette opération s’effectue à l’aide de l’interface de ligne de commande de GnuPG. Ainsi, vous devez avoir GnuPG installé sur votre système. La dernière version de GnuPG pour Windows se trouve ici et la dernière version pour MacOS se trouve ici. Les utilisateurs de systèmes Linux sont invités à installer GnuPG avec l’aide du gestionnaire de paquets.

Note

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.

Génération de clés

Les descriptions suivantes expliquent la génération de clés de base sur le périphérique via l’interface de ligne de commande de GnuPG. Le comportement par défaut est de générer des clés RSA de 2048 bits. Si vous souhaitez modifier l’algorithme et la longueur de la clé, consultez d’abord la section suivante.

Ouvrez une ligne de commande et tapez 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>

Maintenant vous êtes dans l’interface interactive de GnuPG. Activez les commandes d’administration avec admin et utilisez generate ensuite pour lancer la génération des clés.

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>

Veuillez ne pas créer la sauvegarde hors carte suggérée. Cette « sauvegarde » enregistre uniquement la clé de chiffrement, mais pas les clés de signature et d’authentification. En cas de perte de l’appareil, vous ne serez pas en mesure de restaurer l’ensemble des clés. D’une part, il ne s’agit donc pas d’une sauvegarde complète (utilisez ces instructions à la place, si vous en avez besoin) et d’autre part, vous risquez que quelqu’un d’autre puisse entrer en possession de votre clé de chiffrement. L’avantage de générer des clés sur l’appareil est de s’assurer que les clés sont stockées en toute sécurité. Par conséquent, nous recommandons d’ignorer cette demi-sauvegarde.

Vous disposez maintenant d’un jeu de clés complet sur votre appareil qui peut être utilisé pour les variantes applications listées sur notre site. Tapez quit et appuyez sur la touche entrée pour sortir.

Modifier les attributs clés

Cette section porte sur la modification des attributs des clés. Si vous souhaitez utiliser les valeurs par défaut, vous pouvez passer à la section suivante.

Ouvrez une ligne de commande et tapez 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]

Vous êtes maintenant dans l’interface interactive de GnuPG. Comme vous pouvez le voir dans le champ « Key attributes » ci-dessus, la valeur par défaut rsa2048 est définie. Pour les changer, activez les commandes d’administration avec admin et utilisez key-attr ensuite pour changer les attributs des clés.

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

Vous pouvez choisir l’attribut de chaque clé (c’est-à-dire la signature, le chiffrement et la clé d’authentification). La plupart des gens utiliseront les mêmes attributs pour chaque clé. Tapez list pour voir les résultats (regardez le champ « Key attributes », qui indique maintenant 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]

Tapez quit et appuyez sur la touche entrée pour sortir ou passez directement à la section précédente pour générer réellement les clés avec les attributs de clé que vous venez de définir.

Le tableau suivant illustre quel algorithme peut être utilisé sur quel dispositif.

Début

Pro + Storage

Pro 2 + Storage 2

rsa1024

rsa2048

rsa3072

rsa4096

curve25519 (ECC)

NIST (ECC)

Brainpool (ECC)

secp256k1

Exportation de la clé publique et utilisation du serveur de clés

Bien que vous puissiez commencer à utiliser votre Nitrokey immédiatement après avoir généré les clés sur votre système, vous devez importer votre clé publique sur chaque système sur lequel vous souhaitez utiliser la Nitrokey. Pour être prêt, tu as donc deux options : Soit tu enregistres la clé publique où tu veux et tu l’utilises sur un autre système, soit tu enregistres la clé publique sur une page Web/un serveur de clés.

Génération d’un fichier de clé publique

Pour obtenir un simple fichier de votre clé publique, vous pouvez simplement utiliser gpg2 --armor --export keyID > pubkey.asc. Utilisez soit l’empreinte digitale comme « keyID » (regardez gpg -K pour l’obtenir) ou utilisez simplement votre adresse email comme identifiant.

Vous pouvez emporter ce fichier avec vous ou l’envoyer à qui vous voulez. Ce fichier n’est pas du tout secret. Si tu veux utiliser la Nitrokey sur un autre système, tu dois d’abord importer cette clé publique via gpg2 --import pubkey.asc et ensuite taper gpg2 --card-status pour que le système sache où chercher cette clé. C’est tout.

Téléchargement de la clé publique

Si vous ne voulez pas transporter un fichier de clé publique avec vous, vous pouvez le télécharger sur keyserver. Vous pouvez le faire en tapant gpg --keyserver search.keyserver.net --send-key keyID. Si vous utilisez une autre machine, vous pouvez simplement l’importer en utilisant gpg --keyserver search.keyserver.net --recv-key keyID.

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.