GNU/Linux >> Tutoriels Linux >  >> Linux

Comment chiffrer et déchiffrer un fichier à l'aide de GnuPG sous Linux

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.


Linux
  1. Comment décompresser le format de fichier .xz sous Linux à l'aide des utilitaires tar et xz ?

  2. Comment convertir un fichier PPK en clés OpenSSH et se connecter en utilisant SSH sous Linux ?

  3. Comment signer numériquement un fichier sous Linux à l'aide de GnuPg (signatures numériques)

  4. Comment générer des clés PGP à l'aide de GPG sous Linux

  5. Comment chiffrer un gros fichier dans openssl en utilisant la clé publique

Principes de base de Linux :comment masquer, verrouiller, chiffrer et sécuriser vos fichiers sous Linux

Tout sur les fichiers tar et comment tar, décompresser des fichiers sous Linux à l'aide du terminal

Un moyen simple de chiffrer et de déchiffrer des fichiers à partir de la ligne de commande sous Linux

RPM et GPG :comment vérifier les packages Linux avant de les installer

Comment effacer en toute sécurité un disque et un fichier à l'aide de la commande Linux shred

Comment chiffrer un fichier sous Linux