Comment utiliser la commande docker trust key generate pour créer des clés de signature

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à générer des paires de clés de signature à l'aide de la commande gpg, une étape fondamentale pour la communication sécurisée et la distribution de logiciels. Vous allez générer une nouvelle paire de clés RSA avec une taille de clé et une période de validité spécifiées, en fournissant les informations d'identité utilisateur essentielles au cours du processus.

Après la génération des clés, vous apprendrez à saisir et confirmer le mot de passe de votre nouvelle clé, une mesure de sécurité cruciale. Vous vérifierez ensuite le fichier de clé publique généré pour vous assurer de sa justesse. Enfin, vous explorerez comment générer une paire de clés dans un répertoire spécifique, démontrant ainsi la flexibilité dans la gestion de vos clés.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/exec -.-> lab-555252{{"Comment utiliser la commande docker trust key generate pour créer des clés de signature"}} docker/create -.-> lab-555252{{"Comment utiliser la commande docker trust key generate pour créer des clés de signature"}} end

Générer une nouvelle paire de clés de signature

Dans cette étape, vous apprendrez à générer une nouvelle paire de clés de signature à l'aide de la commande gpg. Une paire de clés de signature se compose d'une clé privée et d'une clé publique. La clé privée est utilisée pour signer des données, tandis que la clé publique est utilisée pour vérifier la signature. C'est un concept fondamental en communication sécurisée et en distribution de logiciels.

Tout d'abord, ouvrez votre terminal. Vous êtes déjà dans le répertoire ~/project.

Pour générer une nouvelle paire de clés, utilisez la commande suivante :

gpg --full-generate-key

Après avoir exécuté la commande, vous serez invité à sélectionner le type de clé que vous souhaitez. Pour ce laboratoire (lab), nous utiliserons l'option par défaut, qui est RSA and RSA. Appuyez sur Entrée pour accepter la valeur par défaut.

gpg (GnuPG) 2.2.27; Copyright (C) 2021 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)
Your selection? 1

Ensuite, vous serez invité à indiquer la taille de la clé. Une taille de clé plus grande offre plus de sécurité, mais prend plus de temps à générer et à utiliser. Pour ce laboratoire, nous utiliserons la taille de clé par défaut de 3072 bits. Appuyez sur Entrée pour accepter la valeur par défaut.

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072)

Vous serez ensuite invité à indiquer la durée de validité de la clé. Pour ce laboratoire, nous allons rendre la clé valide pendant un an. Tapez 1y puis appuyez sur Entrée.

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) 1y

Confirmez que la clé expirera à la date indiquée en tapant y puis en appuyant sur Entrée.

Key expires at ...
Is this correct? (y/N) y

Maintenant, vous devez fournir des informations d'identité utilisateur. Ces informations sont associées à votre clé publique et aident les autres à vous identifier.

Tout d'abord, entrez votre nom réel. Pour ce laboratoire, vous pouvez utiliser LabEx User. Tapez LabEx User puis appuyez sur Entrée.

Real name: LabEx User

Ensuite, entrez votre adresse e-mail. Pour ce laboratoire, vous pouvez utiliser [email protected]. Tapez [email protected] puis appuyez sur Entrée.

Email address: [email protected]

Vous pouvez éventuellement ajouter un commentaire. Pour ce laboratoire, vous laisserez le champ de commentaire vide. Appuyez sur Entrée pour sauter le commentaire.

Comment:

Vérifiez les informations que vous avez saisies. Si elles sont correctes, tapez O pour Okay puis appuyez sur Entrée. Si vous avez besoin de faire des modifications, tapez C pour Change ou Q pour Quit.

You selected this USER-ID:
    "LabEx User <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

Enfin, vous serez invité à entrer un mot de passe pour protéger votre clé privée. C'est une étape de sécurité cruciale. Choisissez un mot de passe fort que vous pourrez retenir. Vous devrez entrer ce mot de passe à nouveau à l'étape suivante.

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 more entropy.

Le système générera ensuite la paire de clés. Cela peut prendre un moment.

Entrer et confirmer le mot de passe de la nouvelle clé

Dans l'étape précédente, vous avez lancé le processus de génération d'une nouvelle paire de clés GPG. La dernière étape de ce processus consiste à entrer et confirmer un mot de passe pour votre clé privée. Ce mot de passe est essentiel pour protéger votre clé privée contre une utilisation non autorisée.

Vous devriez maintenant voir une boîte de dialogue ou une invite dans votre terminal vous demandant d'entrer un mot de passe.

┌─────────┤ Please enter the passphrase to protect your new key ├─────────┐
│                                                                         │
│ Passphrase: _________________________________________                   │
│                                                                         │
│        <OK>                                          <Cancel>           │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

Entrez un mot de passe fort dans le champ "Passphrase". N'oubliez pas ce mot de passe, car vous en aurez besoin chaque fois que vous utiliserez votre clé privée (par exemple, pour signer). Pour ce laboratoire (lab), vous pouvez utiliser un mot de passe simple comme mypassphrase123. Tapez mypassphrase123 puis appuyez sur Entrée ou cliquez sur <OK>.

Vous serez ensuite invité à confirmer votre mot de passe en le saisissant à nouveau. Cela permet de vous assurer que vous avez tapé le mot de passe correctement.

┌─────────┤ Please re-enter the passphrase to protect your new key ├─────────┐
│                                                                          │
│ Repeat passphrase: _________________________________________             │
│                                                                          │
│        <OK>                                           <Cancel>            │
│                                                                          │
└──────────────────────────────────────────────────────────────────────────┘

Entrez le même mot de passe (mypassphrase123) à nouveau dans le champ "Repeat passphrase" puis appuyez sur Entrée ou cliquez sur <OK>.

Après avoir confirmé le mot de passe, GPG terminera la génération de votre paire de clés. Vous devriez voir une sortie similaire à celle-ci, indiquant que la génération de la clé est terminée :

gpg: key ... marked as ultimately trusted
gpg: revocation certificate stored as '/home/labex/.gnupg/openpgp-revocs.d/....rev'
public and secret key created and signed.

pub   rsa3072 2023-10-27 [SC]
      ...
uid           [ultimate] LabEx User <[email protected]>
sub   rsa3072 2023-10-27 [E]

La sortie affiche des informations sur votre nouvelle clé générée, y compris le type de clé (rsa3072), la date de création, l'identifiant de la clé (...) et l'identifiant utilisateur que vous avez fourni (LabEx User <[email protected]>). La ligne pub fait référence à la clé publique, et la ligne sub fait référence à la sous-clé (utilisée pour le chiffrement).

Vous avez maintenant généré avec succès une paire de clés GPG et protégé votre clé privée avec un mot de passe.

Vérifier le fichier de clé publique généré

Dans les étapes précédentes, vous avez généré avec succès une paire de clés GPG. Maintenant, vérifions que la clé publique a été générée correctement et est disponible. La clé publique est ce que vous partagerez avec les autres afin qu'ils puissent vérifier vos signatures ou chiffrer des messages pour vous.

Pour lister les clés publiques de votre trousseau de clés (keyring), utilisez la commande gpg --list-keys. Étant donné que vous avez spécifié "LabEx User" comme nom lors de la génération de la clé, vous pouvez filtrer la sortie pour n'afficher que votre clé.

gpg --list-keys "LabEx User"

Vous devriez voir une sortie similaire à celle-ci, confirmant la présence de votre clé publique :

pub   rsa3072 2023-10-27 [SC]
      ...
uid           [ultimate] LabEx User <[email protected]>
sub   rsa3072 2023-10-27 [E]

Cette sortie montre les détails de votre clé publique, y compris le type de clé (pub), l'algorithme (rsa3072), la date de création (2023-10-27), les capacités ([SC] pour Signer et Certifier), l'identifiant de la clé (...), l'identifiant utilisateur (LabEx User <[email protected]>) et des informations sur la sous-clé de chiffrement (sub).

Pour exporter votre clé publique dans un fichier, vous pouvez utiliser la commande gpg --output <filename> --armor --export <user ID>. L'option --armor permet de sortir la clé au format ASCII armuré, qui est un format de texte lisible par l'homme. Expor tons la clé publique de "LabEx User" dans un fichier nommé labex_user_public.key dans votre répertoire actuel (~/project).

gpg --output labex_user_public.key --armor --export "LabEx User"

Cette commande créera un fichier nommé labex_user_public.key dans votre répertoire ~/project contenant votre clé publique.

Vous pouvez afficher le contenu de ce fichier en utilisant la commande cat :

cat labex_user_public.key

La sortie affichera le bloc de clé publique ASCII armuré, commençant par -----BEGIN PGP PUBLIC KEY BLOCK----- et se terminant par -----END PGP PUBLIC KEY BLOCK-----.

-----BEGIN PGP PUBLIC KEY BLOCK-----

... (your public key content) ...

-----END PGP PUBLIC KEY BLOCK-----

Cela confirme que votre clé publique a été exportée avec succès dans un fichier. Vous pouvez maintenant partager ce fichier avec les autres qui ont besoin de vérifier vos signatures ou de chiffrer des données pour vous.

Générer une paire de clés dans un répertoire spécifié

Dans les étapes précédentes, vous avez généré une paire de clés GPG qui a été stockée dans le répertoire d'accueil GPG par défaut (~/.gnupg). Parfois, vous pourriez vouloir générer des clés et les stocker dans un emplacement différent, peut - être pour des projets spécifiques ou pour les séparer de votre trousseau de clés principal.

Dans cette étape, vous allez apprendre à générer une paire de clés GPG et à spécifier un répertoire différent pour stocker les fichiers de clés.

Tout d'abord, créons un nouveau répertoire où nous allons stocker la nouvelle paire de clés. Nous allons créer un répertoire nommé mykeys à l'intérieur de votre répertoire ~/project.

mkdir ~/project/mykeys

Maintenant, pour générer une paire de clés et la stocker dans le répertoire ~/project/mykeys, vous devez utiliser l'option --homedir avec la commande gpg. Cette option indique à GPG d'utiliser le répertoire spécifié comme répertoire d'accueil au lieu du répertoire par défaut.

Utilisez la commande suivante pour démarrer le processus de génération de clés, en spécifiant le répertoire ~/project/mykeys :

gpg --homedir ~/project/mykeys --full-generate-key

Vous serez guidé à travers le même processus de génération de clés que dans l'Étape 1 et l'Étape 2.

  1. Sélectionnez le type de clé : Choisissez l'option par défaut RSA and RSA en appuyant sur Entrée.
  2. Quelle taille de clé souhaitez - vous? Choisissez la taille par défaut 3072 en appuyant sur Entrée.
  3. La clé est valide pendant combien de temps? Entrez 1y pour une année et appuyez sur Entrée.
  4. Est - ce correct? Tapez y et appuyez sur Entrée.
  5. Nom réel : Entrez Project User et appuyez sur Entrée.
  6. Adresse e - mail : Entrez [email protected] et appuyez sur Entrée.
  7. Commentaire : Laissez le champ vide en appuyant sur Entrée.
  8. Changer le (N)om, le (C)ommentaire, l'(E)mail ou confirmer (O) / quitter (Q)? Tapez O et appuyez sur Entrée.
  9. Entrez le mot de passe : Entrez un mot de passe (par exemple, projectpassphrase456) et appuyez sur Entrée.
  10. Répétez le mot de passe : Entrez le même mot de passe (projectpassphrase456) à nouveau et appuyez sur Entrée.

Après avoir terminé ces étapes, GPG générera la paire de clés et stockera les fichiers nécessaires dans le répertoire ~/project/mykeys.

Vous pouvez vérifier que la clé a été générée dans le répertoire spécifié en listant les clés de ce répertoire d'accueil :

gpg --homedir ~/project/mykeys --list-keys "Project User"

Vous devriez voir une sortie similaire à celle - ci, montrant la clé que vous venez de générer :

gpg: directory '/home/labex/project/mykeys' created
gpg: keybox '/home/labex/project/mykeys/pubring.kbx' created
pub   rsa3072 2023-10-27 [SC]
      ...
uid           [ultimate] Project User <[email protected]>
sub   rsa3072 2023-10-27 [E]

Notez les lignes indiquant que le répertoire GPG et la boîte à clés ont été créés dans ~/project/mykeys. Cela confirme que la clé a été générée à l'emplacement spécifié.

Résumé

Dans ce laboratoire (lab), vous avez appris à générer une nouvelle paire de clés de signature en utilisant la commande gpg. Ce processus consiste à sélectionner le type de clé (par défaut RSA et RSA), à spécifier la taille de la clé (par défaut 3072 bits) et à définir la période de validité de la clé (fixée à un an dans ce laboratoire). Vous avez également appris à entrer et à confirmer un mot de passe pour la nouvelle clé afin de protéger la clé privée. Enfin, vous avez vérifié le fichier de clé publique généré et exploré la génération d'une paire de clés dans un répertoire spécifié, en comprenant les concepts fondamentaux des clés privées et publiques pour une communication sécurisée et la distribution logicielle.