Echange de documents avec un minimum de confidentialité

Introduction

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.

Générer ses clés

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 vous envoie un document

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 recevez mon document

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.

Vous m'envoyez un document

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.

Je reçois votre document

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.

Signature d'un document

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

Outil graphique

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.

Alternatives

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.

Références

  1. GPG Quick Start.
  2. The GNU Privacy Guard.