Par les temps qui courent et même les temps futurs, il peut être nécessaire de s'échanger des documents avec un minimum de confidentialité.
Ce document est un aide mémoire pour créer les fichiers à transmettre et décoder les fichiers reçus.
Pour être à l'aise, il me semble nécessaire d'avoir lu le document Utilisation des commandes de cryptographie avec GnuPG et pour l'utiliser, avoir installé un logiciel compatible avec GnuPG.
Ceci n'est à faire qu'une fois. Sur mon système, la commande s'appelle gpg2. Il faut commencer par générer une paire de clés :
gpg2 --full-generate-key
La commande est interactive et demande :
La commande se termine en indiquant : public and secret key created and signed. Un certificat de révocation est stocké dans le répertpoire ~/.gnupg/openpgp-revocs.d/
Il n'est pas utile d'enrichir les bases de données des spammers en donnant une adresse mail réelle. Les informations données sont publiques.
Les commandes suivantes utilisent un serveur de clés par défaut et qui est défini dans le fichier ~/.gnupg/gpg.conf. Ce serveur a aussi un alias hkp://hkps.pool.sks-keyservers.net.
keyserver hkp://keys.gnupg.net
Pour exporter la clé publique, j'utilise et vous utilisez la commande suivante en remplaçant F722EEFB04CFFF4F par votre keyId :
gpg2 --send-keys F722EEFB04CFFF4F
La keyID est F722EEFB04CFFF4F, soit les 16 derniers caractères de la clé ou les 8 derniers en local.
A15B5AA79BAC0CEE3372E859 F722 EEFB 04CF FF4F F722 EEFB 04CF FF4F 04CF FF4F
On peut aussi la sortir dans un fichier key.pub pour l'envoyer par mail, le mettre sur un serveur:
gpg2 --export --armor --output key.pub 04CFFF4F
Vous avez reçu ma clé publique, il faut alors l'insérer dans la base gpg:
gpg2 --import key.pub
Vous avez reçu, par mail, le nom donné à ma clé ou l'adresse email inséré dans la clé ou le keyID 04CFFF4F, il faut insérer la clé par son keyId dans la base gpg en utilisant une des commandes suivantes, attention à la syntaxe :
gpg2 --search-keys "mon nom" gpg2 --search-keys 04CFFF4F gpg2 --search-keys "<hq@olix.home>" gpg2 --recv-keys F722EEFB04CFFF4F
Je dois disposer de votre clé publique ou de votre keyID. La comande suivante génére un fichier crypté monDoc.gpg à partir du fichier monDoc:
gpg2 --recipient 'votre_keyID' --encrypt monDoc
Je vous envoie monDoc.gpg.
Vous avez reçu monDoc.gpg. Vous pouvez décrypter le document avec la commande suivante, gpg2 va trouver votre clé privée sur votre système et fournir le fichier monDoc:
gpg2 -o monDoc --decrypt monDoc.gpg
La phrase de passe vous est demandée pour accéder à la clé privée.
C'est la même chose en inversant les correspondants.
Vous devez disposer de ma clé publique ou de ma keyID et vous codez, ce qui génére le fichier votreDoc.gpg à partir de votreDoc:
gpg2 --recipient 'ma_keyID' --encrypt votreDoc
Vous m'envoyez votreDoc.gpg.
J'ai reçu votreDoc.gpg par mail. Je peux décrypter le document et fournir le fichier votreDoc, avec la commande suivante, gpg2 va trouver la clé ma privée sur mon système :
gpg2 -o votreDoc --decrypt votreDoc.gpg
Ma phrase de passe m'est demandée pour accéder à la clé privée.
Pour signer un document, on exécute la commande suivante qui utilise la clé privée et qui fournit un fichier de signature .sig
gpg2 --default-key 3C4AAC69 --armor --detach-sign --output monDoc.sig monDoc
Le fichier signature est stocké ou envoyé par mail avec le fichier original. Pour vérifier la signature, le destinataire utilise la commande suivante :
gpg2 -verify monDoc.sig
En utilisant un outil graphique, vous effectuez les opérations décrites ci-dessus, d'une manière, peut être, plus transparente et le résultat est le même.
La fonctionnalité enigmail réalise le cryptage et décrytage dans Thunderbird. Mais qu'en est il avec les autres mailers propriétaires? Il semble difficile d'imposer des outils à un correspondant.