GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation de GPG pour chiffrer et déchiffrer des fichiers sous Linux [Hands-on for Beginners]

GnuPG, populairement connu sous le nom de GPG, est un outil extrêmement polyvalent, largement utilisé comme norme de l'industrie pour le chiffrement d'éléments tels que les e-mails, les messages, les fichiers ou tout ce que vous devez envoyer à quelqu'un en toute sécurité.

Il est facile de démarrer avec GPG et vous pouvez commencer à l'utiliser en quelques minutes.

Dans ce tutoriel, je vais vous montrer comment chiffrer et déchiffrer des fichiers avec GPG. Ceci est un didacticiel simple et vous pouvez également tout essayer pour vous entraîner sur votre système Linux. Cela vous aidera à pratiquer les commandes GPG et à les comprendre lorsque vous serez totalement novice.

Lisez d'abord l'intégralité du didacticiel, puis commencez à le faire par vous-même.

Comment fonctionne GPG pour le chiffrement ?

Pour commencer à utiliser GPG, vous devez d'abord disposer d'une clé GPG.

Une clé GPG est ce que vous utiliserez pour chiffrer (ou déchiffrer) les fichiers plus tard dans le didacticiel. C'est aussi ce qui est utilisé pour vous identifier, des éléments comme votre nom et votre adresse e-mail étant également liés à la clé.

Les clés GPG fonctionnent en utilisant deux fichiers, une clé privée et une clé publique. Ces deux clés sont liées l'une à l'autre et sont toutes deux nécessaires pour utiliser toutes les fonctionnalités de GPG, notamment le chiffrement et le déchiffrement des fichiers.

Lorsque vous cryptez un fichier avec GPG, il utilise la clé privée. Le nouveau fichier crypté ne peut alors que être déchiffré avec la clé publique couplée.

La clé privée est destinée à être stockée d'une manière indiquée directement dans son nom - en privé, et non divulguée à qui que ce soit.

La clé publique, quant à elle, est destinée à être donnée à d'autres personnes ou à toute personne que vous souhaitez pouvoir décrypter vos fichiers.

C'est là que l'approche principale de GPG pour le cryptage entre en jeu. Il vous permet de crypter des fichiers localement, puis de garantir aux autres que les fichiers qu'ils ont reçus ont bien été envoyés par vous. Comme seul moyen pour eux de déchiffrer le fichier est avec votre clé publique, qui ne fonctionnerait que si le fichier était chiffré en utilisant votre clé privée en premier lieu.

Cela fonctionne aussi dans le sens opposé ! D'autres personnes peuvent chiffrer des fichiers à l'aide de votre clé publique, et la seule façon de les déchiffrer est avec votre clé privée. Permettant ainsi aux autres de publier publiquement des fichiers sans se soucier que des personnes autres que vous puissent les lire.

En d'autres termes, si un fichier a été chiffré avec une clé privée, il ne peut être déchiffré qu'avec la clé publique correspondante. Et si un fichier a été chiffré avec une clé publique, il ne peut être déchiffré qu'avec la clé privée correspondante.

Vous utilisez déjà GPG sans vous en rendre compte

L'un des exemples les plus courants d'utilisation de GPG est le gestionnaire de packages Linux, en particulier les référentiels externes. Vous ajoutez la clé publique du développeur dans les clés de confiance de votre système. Le développeur signe les packages (génère une signature) avec sa clé privée. Étant donné que votre système Linux possède le fichier public, il comprend que le package provient en fait du développeur de confiance.

Un certain nombre de services cryptés utilisent une sorte d'implémentation GPG en dessous sans que vous vous en rendiez compte. Mais il vaut mieux ne pas entrer dans ces détails pour le moment.

Maintenant que vous êtes un peu familiarisé avec le concept, voyons comment vous pouvez utiliser GPG pour chiffrer un fichier, puis l'utiliser pour le déchiffrer.

Chiffrer et déchiffrer des fichiers avec GPG

C'est un scénario très simpliste. Je suppose que vous n'avez qu'un seul système et que vous voulez voir comment fonctionne GPG. Vous n'envoyez pas les fichiers à un autre système. Vous chiffrez le fichier, puis le déchiffrez sur le même système.

Bien sûr, ce n'est pas un cas d'utilisation pratique mais ce n'est pas non plus le but de ce tutoriel. Mon objectif est de vous familiariser avec les commandes et le fonctionnement de GPG. Après cela, vous pouvez utiliser ces connaissances dans une situation réelle (si nécessaire). Et pour cela, je vais vous montrer comment vous pouvez partager votre clé publique avec d'autres.

Étape 1 :Installer GPG

GPG peut être trouvé dans la plupart des référentiels de distribution prêts à l'emploi.

Sur les systèmes basés sur Debian et Ubuntu, installez le package gpg :

sudo apt install gpg

Si vous utilisez des distributions basées sur Arch, installez le package gnupg avec la commande pacman :

sudo pacman -S gnupg

Étape 2 :Générer une clé GPG

La génération d'une clé GPG sur votre système est une procédure simple à une seule commande.

Exécutez simplement la commande suivante et votre clé sera générée (vous pouvez utiliser les valeurs par défaut pour la plupart des questions, comme indiqué dans les sections soulignées ci-dessous) :

gpg --full-generate-key

Vérification de la clé GPG

Vous pouvez alors voir que la clé privée et la clé publique sont toutes deux liées l'une à l'autre par cet ID affiché sous pub en utilisant les –list-secret-keys et –list-public-keys commandes respectivement :

Étape 3 :chiffrer un fichier avec GPG

Maintenant que vous avez configuré nos clés GPG, vous pouvez commencer à chiffrer nos fichiers !

Utilisez la commande suivante pour chiffrer les fichiers :

gpg --encrypt --output file.gpg --recipient [email protected] file

Passons en revue ce que cette commande fait très rapidement :

Vous avez d'abord spécifié le –encrypt option. Cela indique simplement à GPG que nous allons chiffrer un fichier.

Ensuite, vous avez spécifié –output file.gpg . Cela peut être n'importe quoi, bien que ce soit généralement le nom du fichier que vous cryptez plus un .gpg extension (donc message.txt deviendrait message.txt.gpg ).

Ensuite, vous tapez –recipient [email protected] . Ceci spécifie l'adresse e-mail d'une clé GPG correspondante qui n'existe pas encore sur ce système.

Toujours confus ?

La façon dont cela fonctionne est que l'e-mail que vous spécifiez ici doit être lié à une clé publique sur votre système local.

En règle générale, cela proviendra de la clé publique GPG d'une autre personne, avec laquelle vous chiffrerez votre fichier. Après cela, le fichier ne pourra être déchiffré qu'avec la clé privée de cet utilisateur.

J'utiliserai ma clé GPG précédente avec [email protected] dans cet exemple. Ainsi, la logique serait que je chiffre le fichier avec le public clé de h[email protected] , qui ne pourra alors être déchiffré qu'avec le privé clé de [email protected] .

Vous n'auriez la clé publique que si vous cryptiez un fichier pour quelqu'un d'autre, mais puisque vous cryptez le fichier pour vous-même, vous avez les deux clés sur votre système.

Enfin, il vous suffit de spécifier le fichier que vous allez chiffrer. Pour cet exemple, utilisons un fichier nommé message.txt avec le contenu suivant :

We're encrypting with GPG!

De même, si l'e-mail était [email protected] , la nouvelle commande GPG serait la suivante :

gpg --encrypt --output message.txt.gpg --recipient [email protected] message.txt

Si vous essayez ensuite de lire le fichier, vous verrez qu'il ressemble à du charabia. C'est normal car le fichier est désormais crypté :

Supprimons maintenant le fichier message.txt non crypté afin que vous puissiez voir que le fichier message.txt.gpg se décrypte très bien sans le fichier d'origine :

Étape 4 :décrypter le fichier crypté avec GPG

Enfin, décryptons réellement le message crypté. Vous pouvez le faire en utilisant la commande suivante :

gpg --decrypt --output file file.gpg

En parcourant l'argument ici, nous spécifions d'abord –decrypt , qui indique à GPG que vous allez déchiffrer un fichier.

Ensuite, vous entrez –sortie fichier, qui indique simplement à GPG dans quel fichier vous allez enregistrer la forme chiffrée de notre fichier après l'avoir déchiffré.

Enfin, vous entrez file.gpg , qui n'est que le chemin d'accès à votre fichier chiffré.

En suivant l'exemple, la commande que j'utiliserais serait la suivante :

gpg --decrypt --output message.txt message.txt.gpg

Et voilà, vous avez terminé ! C'est tout ce qu'il y a à faire lorsque vous souhaitez chiffrer et déchiffrer des fichiers avec GPG.

La seule autre chose que vous voudrez peut-être savoir, c'est comment partager vos clés publiques avec d'autres personnes afin qu'elles puissent chiffrer les fichiers avant de vous les envoyer.

Envoi et réception de clés GPG

Pour envoyer une clé GPG à quelqu'un, vous devez d'abord l'exporter depuis votre porte-clés , qui contient toutes vos clés publiques et privées.

Pour exporter une clé, recherchez simplement l'ID de la clé dans votre trousseau, puis exécutez la commande suivante en remplaçant id avec l'ID de la clé et key.gpg avec le nom du fichier dans lequel vous souhaitez enregistrer :

gpg --output key.gpg --export id

Pour importer une clé, donnez simplement le fichier de sortie (de la commande précédente) à l'autre utilisateur, puis faites-lui exécuter la commande suivante :

gpg --import key.gpg

Cependant, pour utiliser la clé normalement, vous devrez vérifier la clé afin que GPG lui fasse confiance.

Cela peut être fait en exécutant la –edit-key commande sur le système de l'autre utilisateur, suivi de la signature de la clé :

Première exécution de gpg --edit-key id :

Ensuite, exécutez le fpr commande, qui affichera l'empreinte digitale de la clé. La sortie de cette commande doit être validée par rapport à la sortie sur votre propre machine, qui peut être trouvée en exécutant la même –edit-key commande sur votre système :

Si tout correspond, exécutez simplement le signe commande et tout sera prêt :

C'est ça! L'autre utilisateur peut maintenant commencer à chiffrer les fichiers avec votre clé publique comme vous l'avez fait précédemment, en veillant à ce qu'ils ne soient lisibles par vous que lorsque vous les déchiffrez avec votre clé privée.

Et ce sont toutes les bases de GPG !

Conclusion

Vous avez maintenant passé en revue tout ce dont vous avez besoin pour commencer à utiliser GPG, y compris le cryptage des fichiers pour vous-même et pour les autres. Comme je l'ai mentionné plus tôt, c'est juste pour comprendre comment fonctionne le processus de cryptage et de décryptage GPG. Les connaissances de base de GPG que vous venez d'acquérir peuvent passer au niveau supérieur lorsqu'elles sont appliquées dans des scénarios réels.

Besoin d'aide pour comprendre quelque chose encore, ou quelque chose qui ne fonctionne tout simplement pas ? N'hésitez pas à en laisser un dans les commentaires ci-dessous.

Article d'origine


Linux
  1. Comment chiffrer et déchiffrer des fichiers et des répertoires à l'aide de Tar et OpenSSL

  2. Utilisation de ssh-keygen et partage pour l'authentification par clé sous Linux

  3. Utilisation de sed pour rechercher et remplacer des fichiers texte sous Linux

  4. Comment chiffrer et déchiffrer des fichiers/dossiers sous Linux à l'aide de GnuPG

  5. Utilisation de Checkmk pour surveiller votre infrastructure de serveur Linux

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

Cryptr - Un utilitaire CLI simple pour chiffrer et déchiffrer des fichiers

Comment sauvegarder et restaurer des fichiers à l'aide de BorgBackup sous Linux

Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux

40 commandes git utiles pour les administrateurs et les développeurs Linux

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux