Comment crypter et décrypter des fichiers avec GPG sous Linux

Protégez votre vie privée avec la commande Linux gpg. Utilisez un cryptage de classe mondiale pour protéger vos secrets. Nous allons vous montrer comment utiliser gpg pour travailler avec des clés, crypter des fichiers et les décrypter.

GnuPrivacy Guard (GPG) vous permet de crypter des fichiers de manière sécurisée afin que seul le destinataire prévu puisse les décrypter. Plus précisément, GPG est conforme à la OpenPGP la norme. Il est calqué sur un programme appelé Pretty Good Privacy (PGP). PGP a été écrit en 1991 par Phil Zimmerman.

GPG repose sur l’idée de deux clés de chiffrement par personne. Chaque personne possède une clé privée et une clé publique. La clé publique peut déchiffrer quelque chose qui a été chiffré à l’aide de la clé privée.

Pour envoyer un fichier en toute sécurité, vous le cryptez avec votre clé privée et la clé publique du destinataire. Pour déchiffrer le fichier, ils ont besoin de leur clé privée et de votre clé publique.

Vous verrez à partir de cela que les clés publiques doivent être partagées. Vous devez avoir la clé publique du destinataire pour crypter le fichier, et le destinataire a besoin de votre clé publique pour le décrypter. Il n’y a aucun danger à rendre vos clés publiques juste cela – publiques. En fait, il existe des serveurs de clés publiques dans ce but précis, comme nous le verrons. Les clés privées doivent rester privées. Si votre clé publique appartient au domaine public, votre clé privée doit être gardée secrète et sécurisée.

Il y a plus d’étapes impliquées dans la configuration de GPG que dans son utilisation. Heureusement, vous n’avez généralement besoin de le configurer qu’une seule fois.

Générer vos clés

La commande gpg a été installée sur toutes les distributions Linux qui ont été vérifiées, y compris Ubuntu, Fedora et Manjaro.

Vous n’êtes pas obligé d’utiliser GPG avec le courrier électronique. Vous pouvez crypter les fichiers et les rendre disponibles pour téléchargement, ou les transmettre physiquement au destinataire. Cependant, vous devez associer une adresse e-mail aux clés que vous générez, alors choisissez l’adresse e-mail que vous allez utiliser.

Voici la commande pour générer vos clés. L’option –full-generate-key génère vos clés dans une session interactive dans la fenêtre de votre terminal. Vous serez également invité à entrer une phrase secrète. Assurez-vous de vous souvenir de la phrase secrète. Trois ou quatre mots simples associés à la ponctuation sont un bon modèle robuste pour les mots de passe et les phrases de passe.

gpg --full-generate-key

gpg --full-generate-key dans une fenêtre de terminal

Il vous sera demandé de choisir un type de cryptage dans un menu. Sauf si vous avez une bonne raison de ne pas le faire, tapez 1 et appuyez sur Entrée.

Vous devez choisir une longueur en bits pour les clés de chiffrement. Appuyez sur Entrée pour accepter la valeur par défaut.

questions de génération de clé dans une fenêtre de terminal

Vous devez spécifier la durée de vie de la clé. Si vous testez le système, entrez une courte durée comme 5 pour cinq jours. Si vous comptez conserver cette clé, entrez une durée plus longue comme 1 an pendant un an. La clé durera 12 mois et devra donc être renouvelée après un an. Confirmez votre choix avec un Y.

  Comment surveiller la progression des commandes Linux (avec pv et progression)

Vous devez entrer votre nom et votre adresse e-mail. Vous pouvez ajouter un commentaire si vous le souhaitez.

questions de génération de clé dans une fenêtre de terminal

Vous serez invité à entrer votre mot de passe. Vous aurez besoin de la phrase secrète chaque fois que vous travaillez avec vos clés, alors assurez-vous de savoir de quoi il s’agit.

fenêtre de phrase de passe gpg

Cliquez sur le bouton OK lorsque vous avez saisi votre phrase secrète. Vous verrez cette fenêtre pendant que vous travaillez avec gpg, alors assurez-vous de vous souvenir de votre phrase secrète.

La génération de clé aura lieu et vous serez renvoyé à l’invite de commande.

génération de clé gpg terminée dans une fenêtre de terminal

Générer un certificat de révocation

Si votre clé privée devient connue des autres, vous devrez dissocier les anciennes clés de votre identité, afin de pouvoir en générer de nouvelles. Pour ce faire, vous aurez besoin d’un certificat de révocation. Nous allons le faire maintenant et le stocker dans un endroit sûr.

L’option –output doit être suivie du nom de fichier du certificat que vous souhaitez créer. L’option –gen-revoke amène gpg à générer un certificat de révocation. Vous devez fournir l’adresse e-mail que vous avez utilisée lors de la génération des clés.

gpg --output ~/revocation.crt --gen-revoke [email protected]

gpg --output ~ / revocation.crt --gen-revoke dave-geek@protonmail.com dans une fenêtre de terminal

Il vous sera demandé de confirmer que vous souhaitez générer un certificat. Appuyez sur Y et appuyez sur Entrée. Il vous sera demandé la raison pour laquelle vous générez le certificat. Comme nous le faisons à l’avance, nous ne le savons pas avec certitude. Appuyez sur 1 comme supposition plausible et appuyez sur Entrée.

Vous pouvez saisir une description si vous le souhaitez. Appuyez deux fois sur Entrée pour terminer votre description.

Il vous sera demandé de confirmer vos paramètres, appuyez sur Y et appuyez sur Entrée.

questions de certificat gpg dans une fenêtre de terminal

Le certificat sera généré. Vous verrez un message renforçant la nécessité de conserver ce certificat en toute sécurité.

Il mentionne quelqu’un appelé Mallory. Les discussions sur la cryptographie sont utilisées depuis longtemps Bob et Alice comme les deux personnes communiquant. Il existe d’autres personnages de soutien. Eve est une espionne, Mallory est un attaquant malveillant. Tout ce que nous devons savoir, c’est que nous devons garder le certificat en sécurité.

Au minimum, supprimons toutes les autorisations en dehors des nôtres du certificat.

chmod 600 ~/revocation.crt

chmod 600 ~ / revocation.crt dans une fenêtre de terminal

Vérifions avec ls pour voir quelle est la permission maintenant:

ls -l

http://cryptocouple.com/ dans une fenêtre de terminal

C’est parfait. Personne en dehors du propriétaire du fichier – nous – ne peut rien faire avec le certificat.

Importer la clé publique de quelqu’un d’autre

Pour crypter un message qu’une autre personne peut décrypter, nous devons avoir sa clé publique.

Si vous avez reçu leur clé dans un fichier, vous pouvez l’importer avec la commande suivante. Dans cet exemple, le fichier de clé s’appelle «mary-geek.key».

gpg --import mary-geek.key

gpg --import mary-geek.key dans une fenêtre de terminal

La clé est importée et le nom et l’adresse e-mail associés à cette clé s’affichent. Évidemment, cela devrait correspondre à la personne dont vous l’avez reçu.

  La bulle de lien pour Android ouvre les liens dans l'application en arrière-plan

clé importée avec succès dans une fenêtre de terminal

Il est également possible que la personne dont vous avez besoin d’une clé ait téléchargé sa clé sur un serveur de clé publique. Ces serveurs stockent les clés publiques des utilisateurs du monde entier. Les serveurs de clés se synchronisent régulièrement les uns avec les autres afin que les clés soient universellement disponibles.

Le serveur de clés publiques du MIT est un serveur de clés populaire et régulièrement synchronisé, la recherche devrait donc aboutir. Si quelqu’un a récemment téléchargé une clé, cela peut prendre quelques jours pour apparaître.

L’option –keyserver doit être suivie du nom du serveur de clés que vous souhaitez rechercher. L’option –search-keys doit être suivie soit du nom de la personne que vous recherchez, soit de son adresse e-mail. Nous utiliserons l’adresse e-mail:

gpg --keyserver pgp.mit.edu --search-keys [email protected]

gpg --keyserver pgp.mit.edu --search-keys mary-geek@protonmail.com dans une fenêtre de terminal

Les correspondances sont répertoriées pour vous et numérotées. Pour en importer un, saisissez le numéro et appuyez sur Entrée. Dans ce cas, il n’y a qu’une seule correspondance, nous tapons donc 1 et appuyons sur Entrée.

gpg keyserver génère une fenêtre de terminal

La clé est importée et le nom et l’adresse e-mail associés à cette clé s’affichent.

Vérification et signature d’une clé

Si vous avez reçu un fichier de clé publique par quelqu’un que vous connaissez, vous pouvez dire en toute sécurité qu’il appartient à cette personne. Si vous l’avez téléchargée à partir d’un serveur de clé publique, vous pouvez ressentir le besoin de vérifier que la clé appartient à la personne à laquelle elle est destinée.

L’option –fingerprint amène gpg à créer une courte séquence de dix ensembles de quatre caractères hexadécimaux. Vous pouvez demander à la personne de vous envoyer l’empreinte digitale de sa clé.

Vous pouvez ensuite utiliser l’option –fingerprint pour générer la même séquence d’empreintes digitales de caractères hexadécimaux et les comparer. S’ils correspondent, vous savez que la clé appartient à cette personne.

gpg --fingerprint [email protected]

gpg --fingerprint mary-geek@protonmail.com dans une fenêtre de terminal

L’empreinte digitale est générée.

empreinte digitale gpg dans une fenêtre de terminal

Lorsque vous êtes convaincu que la clé est authentique et appartient à la personne à laquelle elle est censée être associée, vous pouvez signer sa clé.

Si vous ne le faites pas, vous pouvez toujours l’utiliser pour crypter et décrypter les messages de et vers cette personne. Mais gpg vous demandera à chaque fois si vous souhaitez continuer car la clé n’est pas signée. Nous utiliserons l’option –sign-key bien nommée et fournirons l’adresse e-mail de la personne, afin que gpg sache quelle clé signer.

gpg --sign-key [email protected]

gpg --sign-key mary-geek@protonmail.com dans une fenêtre de terminal

Vous verrez des informations sur la clé et la personne, et vous serez invité à vérifier que vous voulez vraiment signer la clé. Appuyez sur Y et appuyez sur Entrée pour signer la clé.

confirmation de signature de la clé gpg dans une fenêtre de terminal

Comment partager votre clé publique

Pour partager votre clé sous forme de fichier, nous devons l’exporter à partir du magasin de clés local gpg. Pour ce faire, nous utiliserons l’option –export, qui doit être suivie de l’adresse e-mail que vous avez utilisée pour générer la clé. L’option –output doit être suivie du nom du fichier dans lequel vous souhaitez exporter la clé. L’option –armor indique à gpg de générer une sortie d’armure ASCII au lieu d’un fichier binaire.

gpg --output ~/dave-geek.key --armor --export [email protected]

gpg --output ~ / dave-geek.key --armor --export dave-geek@protonmail.com dans une fenêtre de terminal

Nous pouvons jeter un œil à l’intérieur du fichier clé avec moins.

less dave-geek.key

fichier de clé publique en moins dans une fenêtre de terminal

La clé est montrée dans toute sa splendeur:

  Comment installer le thème d'icônes Delft sous Linux

fichier de clé publique en moins dans une fenêtre de terminal

Vous pouvez également partager votre clé publique sur un serveur de clé publique. L’option –send-keys envoie la clé au serveur de clés. L’option –keyserver doit être suivie de l’adresse Web du serveur de clé publique. Pour identifier la clé à envoyer, l’empreinte digitale de la clé doit être fournie sur la ligne de commande. Notez qu’il n’y a pas d’espaces entre les ensembles de quatre caractères.

(Vous pouvez voir l’empreinte digitale de votre clé à l’aide de l’option –fingerprint.)

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4 dans une fenêtre de terminal

Vous recevrez la confirmation que la clé a été envoyée.

la clé de confirmation a été envoyée au serveur de clés dans une fenêtre de terminal

Cryptage des fichiers

Nous sommes enfin prêts à crypter un fichier et à l’envoyer à Mary. Le fichier s’appelle Raven.txt.

L’option –encrypt indique à gpg de crypter le fichier et l’option –sign lui demande de signer le fichier avec vos détails. L’option –armor indique à gpg de créer un fichier ASCII. L’option -r (destinataire) doit être suivie de l’adresse e-mail de la personne à laquelle vous envoyez le fichier.

gpg --encrypt --sign --armor -r [email protected]

gpg --encrypt --sign --armor -r mary-geek@protonmail.com dans une fenêtre de terminal

Le fichier est créé avec le même nom que l’original, mais avec «.asc» ajouté au nom du fichier. Jetons un coup d’œil à l’intérieur.

less Raven.txt.asc

moins Raven.txt.asc dans une fenêtre de terminal

Le fichier est totalement illisible et ne peut être déchiffré que par quelqu’un qui possède votre clé publique et la clé privée de Mary. La seule personne à avoir les deux devrait être Mary.

Contenu chiffré de raven.txt.asc dans une fenêtre de terminal

Nous pouvons maintenant envoyer le fichier à Mary en sachant que personne d’autre ne peut le déchiffrer.

Décrypter des fichiers

Mary a envoyé une réponse. Il se trouve dans un fichier crypté appelé coded.asc. Nous pouvons le déchiffrer très facilement en utilisant l’option –decrypt. Nous allons rediriger la sortie dans un autre fichier appelé plain.txt.

Notez que nous n’avons pas à dire à gpg de qui provient le fichier. Cela peut fonctionner à partir du contenu crypté du fichier.

gpg --decrypt coded.asc > plain.txt

gpg --decrypt coded.asc> plain.txt dans une fenêtre de terminal ”width =” 646 ″ height = ”212 ″ onload =” pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this); ” onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (this);”> </p><p> Regardons le fichier plain.txt: </p><pre> less plain.txt </ pre > <p> <img loading =

Le fichier a été décrypté avec succès pour nous.

fichier décrypté en moins dans une fenêtre de terminal

Rafraîchir vos clés

Périodiquement, vous pouvez demander à gpg de vérifier les clés dont il dispose par rapport à un serveur de clés publiques et d'actualiser celles qui ont changé. Vous pouvez le faire tous les quelques mois ou lorsque vous recevez une clé d'un nouveau contact.

L'option –refresh-keys oblige gpg à effectuer la vérification. L'option –keyserver doit être suivie du serveur de clés de votre choix. Une fois que les clés ont été synchronisées entre les serveurs de clés publiques, peu importe celle que vous choisissez.

gpg --keyserver pgp.mit.edu --refresh-keys

gpg --keyserver pgp.mit.edu --refresh-keys dans une fenêtre de terminal

gpg répond en listant les clés qu'il vérifie et en vous informant si certaines ont été modifiées et mises à jour.

la clé gpg s'actualise dans une fenêtre de terminal

La confidentialité est un sujet brûlant

La vie privée n'est jamais loin de l'actualité de nos jours. Quelles que soient les raisons pour lesquelles vous souhaitez conserver vos informations sécurisées et privées, gpg fournit un moyen simple d'appliquer un cryptage incroyablement puissant à vos fichiers et communications.

Il existe d'autres façons d'utiliser gpg. Vous pouvez obtenir un plugin pour Thunderbird appelé Enigmail. Il se connecte directement à votre configuration gpg pour vous permettre de crypter les messages électroniques depuis Thunderbird.