- Dave McKay
@TheGurkha
- 12 juillet 2019, 8 :00am EDT
Protégez votre vie privée avec la commande Linux gpg
. Utilisez un chiffrement de classe mondiale pour garder vos secrets en toute sécurité. Nous vous montrerons 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 en toute sécurité afin que seul le destinataire prévu puisse les décrypter. Plus précisément, GPG est conforme à la norme OpenPGP. Il s’inspire d’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 de manière sécurisée, vous le chiffrez 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 ainsi que les clés publiques doivent être partagées. Vous devez disposer de la clé publique du destinataire pour chiffrer le fichier, et le destinataire a besoin de votre clé publique pour le déchiffrer. Il n’y a aucun danger à rendre vos clés publiques uniquement publiques. En fait, il existe des serveurs de clés publiques à cette fin, comme nous allons le voir. Les clés privées doivent rester privées. Si votre clé publique est dans le domaine public, alors votre clé privée doit rester secrète et sécurisée.
La configuration de GPG comporte plus d’étapes que son utilisation. Heureusement, vous n’avez généralement besoin de le configurer qu’une seule fois.
Générer vos clés
La gpg
commande était installée sur toutes les distributions Linux vérifiées, notamment Ubuntu, Fedora et Manjaro.
Vous n’êtes pas obligé d’utiliser GPG avec le courrier électronique. Vous pouvez chiffrer les fichiers et les rendre disponibles au téléchargement, ou les transmettre physiquement au destinataire. Vous devez cependant associer une adresse électronique aux clés que vous générez, alors choisissez l’adresse électronique 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 au sein de votre fenêtre de terminal. Vous serez également invité à saisir une phrase de passe. Assurez-vous de vous souvenir de la phrase de passe. Trois ou quatre mots simples joints par de la ponctuation est un bon modèle robuste pour les mots de passe et les phrases de passe.
gpg --full-generate-key
Il vous sera demandé de choisir un type de chiffrement dans un menu. À moins que vous ayez une bonne raison de ne pas le faire, tapez 1
et appuyez sur Entrée.
Vous devez choisir une longueur de bit pour les clés de chiffrement. Appuyez sur Entrée pour accepter la valeur par défaut.
Vous devez préciser 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 1y pour un an. La clé durera 12 mois et devra donc être renouvelée après un an. Confirmez votre choix avec un Y
.
Vous devez saisir votre nom et votre adresse électronique. Vous pouvez ajouter un commentaire si vous le souhaitez.
Vous serez invité à saisir votre phrase de passe. Vous aurez besoin de cette phrase de passe chaque fois que vous travaillerez avec vos clés, alors assurez-vous de la connaître.
Cliquez sur le bouton OK
lorsque vous avez saisi votre phrase de passe. Vous verrez cette fenêtre au fur et à mesure que vous travaillerez avec gpg
, alors assurez-vous de vous souvenir de votre phrase de passe.
La génération de la clé aura lieu, et vous serez renvoyé à l’invite de commande.
Génération d’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
entraîne la génération par gpg
d’un certificat de révocation. Vous devez fournir l’adresse électronique que vous avez utilisée lors de la génération des clés.
gpg --output ~/revocation.crt --gen-revoke [email protected]
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 n’en sommes pas sûrs. Appuyez sur 1
comme une supposition plausible et appuyez sur Entrée.
Vous pouvez entrer 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.
Le certificat sera généré. Vous verrez un message renforçant la nécessité de garder ce certificat en sécurité.
Il mentionne une personne appelée Mallory. Les discussions sur la cryptographie ont longtemps utilisé Bob et Alice comme les deux personnes qui communiquent. Il existe d’autres personnages secondaires. Eve est une oreille indiscrète, 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 permissions à part les nôtres du certificat.
chmod 600 ~/revocation.crt
Vérifions avec ls
quelles sont les autorisations maintenant :
ls -l
C’est parfait. Personne, à part le propriétaire du fichier – nous – ne peut faire quoi que ce soit avec le certificat.
Importer la clé publique de quelqu’un d’autre
Pour chiffrer un message qu’une autre personne peut déchiffrer, nous devons avoir sa clé publique.
Si on vous a fourni sa 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
La clé est importée, et le nom et l’adresse électronique associés à cette clé vous sont indiqués. Évidemment, cela devrait correspondre à la personne de qui vous l’avez reçue.
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és publiques. Ces serveurs stockent les clés publiques des personnes du monde entier. Les serveurs de clés se synchronisent les uns avec les autres périodiquement 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 y aboutir. Si quelqu’un n’a téléchargé une clé que récemment, elle peut mettre quelques jours à 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 électronique. Nous utiliserons l’adresse électronique :
gpg --keyserver pgp.mit.edu --search-keys [email protected]
Les correspondances sont listées pour vous et numérotées. Pour en importer une, tapez le numéro et appuyez sur Entrée. Dans ce cas, il y a une seule correspondance, donc nous tapons 1
et appuyons sur Entrée.
La clé est importée, et on nous montre le nom et l’adresse électronique associés à cette clé.
Vérification et signature d’une clé
Si un fichier de clé publique vous a été remis par une personne connue de vous, vous pouvez affirmer sans risque qu’il appartient à cette personne. Si vous l’avez téléchargé à partir d’un serveur de clés publiques, vous pouvez ressentir le besoin de vérifier que la clé appartient à la personne à qui elle est destinée.
--fingerprint
fait en sorte que gpg
crée 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’empreinte digitale de caractères hexadécimaux et les comparer. Si elles correspondent, vous savez que la clé appartient à cette personne.
gpg --fingerprint [email protected]
L’empreinte digitale est générée.
Quand vous êtes convaincu que la clé est authentique et qu’elle 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 chiffrer et déchiffrer des messages en provenance et à destination de cette personne. Mais gpg
vous demandera à chaque fois si vous souhaitez poursuivre car la clé n’est pas signée. Nous utiliserons la bien nommée --sign-key
option et fournirons l’adresse e-mail de la personne, afin que gpg
sache quelle clé signer.
gpg --sign-key [email protected]
Vous verrez des informations sur la clé et la personne, et il vous sera demandé de vérifier que vous voulez vraiment signer la clé. Appuyez sur Y
et appuyez sur Entrée pour signer la clé.
Comment partager votre clé publique
Pour partager votre clé sous forme de fichier, nous devons l’exporter depuis le gpg
magasin de clés local. Pour ce faire, nous utiliserons l’option --export
, qui doit être suivie de l’adresse électronique 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 que la clé soit exportée. L’option --armor
indique à gpg
de générer une sortie armure ASCII au lieu d’un fichier binaire.
gpg --output ~/dave-geek.key --armor --export [email protected]
Nous pouvons jeter un coup d’œil à l’intérieur du fichier clé avec less
.
less dave-geek.key
La clé est montrée dans toute sa gloire :
Vous pouvez également partager votre clé publique sur un serveur de clés publiques. 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és publiques. 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’espace entre les ensembles de quatre caractères.
(Vous pouvez voir l’empreinte digitale de votre clé en utilisant l’option --fingerprint
.)
gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4
Vous aurez la confirmation que la clé a été envoyée.
Cryptage de 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 chiffrer le fichier, et l’option --sign
lui indique de signer le fichier avec vos coordonnées. L’option --armor
indique à gpg de créer un fichier ASCII. L’option -r
(destinataire) doit être suivie de l’adresse électronique de la personne à qui vous envoyez le fichier.
gpg --encrypt --sign --armor -r [email protected]
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
Le fichier est complètement illisible, et ne peut être décrypté que par quelqu’un qui possède votre clé publique et la clé privée de Mary. La seule personne à disposer de ces deux éléments devrait être Mary.
Nous pouvons maintenant envoyer le fichier à Mary en étant sûrs que personne d’autre ne peut le déchiffrer.
Déchiffrer des fichiers
Mary a envoyé une réponse. Elle se trouve dans un fichier crypté appelé coded.asc. Nous pouvons le décrypter 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 besoin de dire à gpg
de qui provient le fichier. Il peut le découvrir à partir du contenu chiffré du fichier.
gpg --decrypt coded.asc > plain.txt
Regardons le fichier plain.txt:
less plain.txt
Le fichier a été décrypté avec succès pour nous.
Rafraîchissement de vos clés
Périodiquement, vous pouvez demander à gpg
de vérifier les clés qu’il possède par rapport à un serveur de clés publiques et de rafraîchir celles qui ont changé. Vous pourriez le faire tous les quelques mois ou lorsque vous recevez une clé d’un nouveau contact.
L’option --refresh-keys
fait en sorte que gpg
effectue 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, le choix de l’un d’entre eux ne devrait pas avoir d’importance.
gpg --keyserver pgp.mit.edu --refresh-keys
gpg
répond en listant les clés qu’il vérifie et en vous faisant savoir si certaines ont changé et ont été mises à jour.
La vie privée 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 voulez garder vos informations sécurisées et privées, gpg
fournit un moyen simple d’appliquer un cryptage incroyablement fort à vos fichiers et communications.
Il existe d’autres façons d’utiliser gpg
. Vous pouvez obtenir un plugin pour Thunderbird appelé Enigmail. Il s’accroche directement à votre configuration gpg
pour vous permettre de crypter les messages électroniques depuis l’intérieur de Thunderbird.
Dave McKay a commencé à utiliser des ordinateurs lorsque le ruban de papier perforé était en vogue, et il n’a jamais cessé de programmer depuis. Après plus de 30 ans dans l’industrie informatique, il est maintenant un journaliste technologique à plein temps. Au cours de sa carrière, il a travaillé comme programmeur indépendant, responsable d’une équipe internationale de développement de logiciels, chef de projet de services informatiques et, plus récemment, comme responsable de la protection des données. Dave est un évangéliste Linux et un défenseur de l’open source.Lire la bio complète »