En utilisant la commande GnuPG gpg, vous pouvez générer des clés publiques et privées. Dans ce didacticiel, nous utiliserons les clés générées par la commande gpg pour envoyer et recevoir des fichiers chiffrés et signer numériquement un fichier.
Crypter un fichier et l'envoyer à votre ami
1. Importez la clé publique de votre ami
Lorsque vous souhaitez envoyer un fichier secret à votre ami, la première chose à faire est d'importer la clé publique de votre ami. Vous pouvez importer la clé publique de votre ami depuis un "serveur de clés" s'il a exporté sa clé publique vers un serveur de clés.
Reportez-vous à la section « Exporter vos clés publiques » de notre article sur les bases de GnuPG pour comprendre comment exporter votre clé publique vers un serveur de clés.
Pour importer une clé publique à partir d'un serveur de clés, procédez comme suit. Vous pouvez importer en utilisant l'une des méthodes ci-dessus. Fournissez l'identifiant de clé ou l'identifiant e-mail ou le nom réel de votre ami pour importer les clés correctement.
$ gpg --search-keys --keyserver keyserver.ubuntu.com 'KEY-ID' or $ gpg --search-keys --keyserver keyserver.ubuntu.com 'E-Mail ID' or $ gpg --search-keys --keyserver keyserver.ubuntu.com 'Real Name'
Pour importer une clé publique à partir d'un fichier, procédez comme suit. Si votre ami vous a envoyé sa clé publique par e-mail, vous pouvez importer ces clés en utilisant la commande suivante
$ gpg --import myfriends_pub_key.gpg
2. Vérifiez le serveur de clés importé
Vous pouvez vérifier si vous avez importé avec succès la clé publique de votre ami en utilisant l'option –list-keys
$ gpg --list-keys /home/lakshmanan/.gnupg/pubring.gpg ----------------------------------- pub 2048R/A7344E7D 2012-10-12 uid lakshmanan (My test GPG keys) sub 2048R/96F8EF9B 2012-10-12 pub 2048R/FB2744A8 2012-12-03 uid raman (Ram's test ID) sub 2048R/88EF55EE 2012-12-03
Maintenant, j'ai importé la clé publique de mon ami Raman.
3. Crypter un fichier secret en utilisant la clé publique de votre ami
Maintenant que vous avez la clé publique de votre ami, vous pouvez lui envoyer un fichier crypté à l'aide de la "clé publique de votre ami", afin que seul votre ami (qui possède la clé privée) puisse le décrypter.
$ gpg --encrypt --recipient raman a.txt gpg: 88EF55EE: There is no assurance this key belongs to the named user pub 2048R/88EF55EE 2012-12-03 raman (Ram's test ID) Primary key fingerprint: FF32 7764 A0AE 1E85 AC4B CF17 8AED B292 FB27 44A8 Subkey fingerprint: D6A5 7107 77C8 6845 2F86 765C EEED DD85 88EF 55EE It is NOT certain that the key belongs to the person named in the user ID. If you *really* know what you are doing, you may answer the next question with yes. Use this key anyway? (y/N) y
Notez qu'il y a un avertissement, qui dit qu'il n'y a aucune garantie que la "clé publique" appartienne à votre ami. Nous y reviendrons quand le temps le permettra. À partir de maintenant, comme je fais confiance à mon frit, j'ai donné "Oui" pour utiliser la clé.
Il créera un fichier nommé "a.txt.pgp", lorsqu'il sera ouvert à l'aide de l'éditeur, il contiendra des données binaires. Envoyez ce fichier à votre ami par n'importe quel moyen.
Si vous ne souhaitez pas envoyer de contenu binaire, ou s'il y a des problèmes d'envoi de binaire, vous pouvez utiliser l'option –armor qui crée un fichier ASCII comme indiqué ci-dessous.
$ gpg --encrypt --armor --recipient raman a.txt
Décrypter un fichier
Maintenant, votre ami aurait reçu votre fichier crypté. Afin de visualiser le contenu du fichier, il doit déchiffrer le fichier. Étant donné que l'opération de décryptage sera effectuée à l'aide de la clé privée de votre ami, il vous demandera la phrase de passe fournie par votre ami lors de la création des clés.
$ gpg --decrypt a.txt.gpg > secret.txt
Maintenant, le fichier secret.txt contiendra le texte réel écrit.
Envoyer un fichier chiffré à plusieurs destinataires
Vous pouvez également envoyer un fichier à plusieurs destinataires en utilisant le –recipient ou -r
$ gpg -r raman -r steve -r gopi --encrypt a.txt
Une fois la commande ci-dessus donnée, gpg utilisera la clé publique de tous les destinataires pour chiffrer les données de manière à ce que n'importe laquelle de leurs clés privées puisse déchiffrer les données.
Dans notre prochain article de cette série, nous expliquerons comment signer le message avec des données et un horodatage dessus.