GnuPG – Chiffrer ses documents ou ses mails. Pourquoi ? Comment ?

GnuPG (GNU Privacy Guard) est l’un des logiciels libres incontournables qui aident à protéger sa vie privée. Il applique le standard OpenPGP (Open Pretty Good Privacy). Une clé PGP sert à chiffrer (crypter) et signer électroniquement ses documents ou ses mails.

GnuPG répond aux critères GNU d’un logiciel libre.
GnuPG répond aux critères GNU d’un logiciel libre.

Beaucoup de personnes pensent encore aujourd’hui que chiffrer ses mails est inutile, parce qu’elles n’ont “rien à cacher”. La culture libre ne consiste évidemment pas à cacher les informations, mais bien au contraire à les diffuser le plus largement possible. Toutefois, il est des circonstances – sociales, commerciales, politiques… – où l’on a des raisons de ne pas souhaiter que des personnes tierces prennent connaissance de certaines informations personnelles (quand bien même celles-ci n’ont rien d’illicite !), et où l’on ressent le besoin de protéger sa vie privée. Le chiffrement PGP permet justement à chacun d’entre-nous de faire respecter son droit à la vie privée.

GnuPG peut s’utiliser en combinaison de divers autres logiciels. Les détails de sa mise en œuvre, dans une messagerie électronique par exemple, peuvent paraître complexes au premier abord, à moins de commencer par en comprendre les quelques principes de base. Ce billet se limite donc à expliquer ces principes de base et fournit aux plus curieux quelques pistes pour aller plus loin.

L’utilisateur doit commencer par créer une clé PGP (voir note)  personnelle. Lors de la création de cette clé,  le logiciel GnuPG génère en fait une paire de clés, l’une publique (partageable avec tout le monde), l’autre privée (à conserver précieusement sur son ordinateur, sans jamais la partager avec quiconque).

Premier usage : la paire de clés PGP permet de chiffrer / déchiffrer certains documents ou mails. Plus précisément, la clé publique sert au chiffrement et la clé privée au déchiffrement.

Deuxième usage : cette même paire de clés PGP peut aussi servir à signer électroniquement un mail (et à vérifier l’authenticité de la signature). Dans ce cas, la clé privée sert à signer et la clé publique à vérifier la signature.

Usage de GnuPG dans l'envoi d'un mail

Pourquoi ?Qui ?Comment ?
ChiffrementExpéditeurClé publique du destinataire
DéchiffrementDestinataireClé privée du destinataire
SignatureExpéditeurClé privée de l'expéditeur
Vérification de la signatureDestinataireClé publique de l'expéditeur

Supposons que j’ai créé ma paire de clés PGP. Je diffuse ma clé publique à tous ceux qui souhaitent m’envoyer des documents ou des messages chiffrés. En exportant cette clé PGP publique sur une clé USB, je peux la transmettre en mains propres à mes correspondants, qui seront ainsi certains que c’est bien ma clé publique. Mais je peux aussi la diffuser sur des serveurs internet dédiés au stockage de clés publiques, accessibles à tous (méthode la plus pratique). Dans ce cas, les personnes qui récupèrent ma clé publique via ces serveurs ne peuvent néanmoins pas être absolument certaines qu’il s’agit bien de la mienne (le risque, même s’il est faible, étant que cette clé publique ait été générée par une tierce personne cherchant à usurper mon identité).

Une fois en leur possession, tous mes correspondants peuvent utiliser ma clé publique pour m’envoyer des messages chiffrés. Et je suis le seul à pouvoir les déchiffrer grâce à ma clé privée (que je garde précieusement sur mon/mes ordinateur/s dans un trousseau de clés logiciel, protégé par mot de passe).

Ce système de chiffrement est particulièrement sûr, mais certains aspects de son fonctionnement sont difficiles à appréhender au premier abord. Par exemple :

  • Pour envoyer un message chiffré à un ami, je n’utilise pas ma propre paire de clés, mais la clé publique de mon ami.
  • Plus étonnant (et pourtant logique) : je ne peux pas moi-même déchiffrer le message que j’ai envoyé à mon ami, car lui seul peut le déchiffrer grâce à sa propre clé privée. Pour pallier cette limitation, le logiciel de messagerie chiffre deux fois le message : une fois avec la clé publique de mon ami – pour son usage – et une seconde fois avec ma propre clé publique – pour mon usage. Ainsi, je peux quand même relire le message chiffré que je lui ai envoyé.

Je peux par ailleurs signer électroniquement un message (avec ma clé privée cette fois), et mon correspondant pourra vérifier la validité de ma signature (au moyen de ma clé publique). Mon correspondant sera alors certain de l’identité de l’expéditeur (moi), ainsi que de l’intégrité du message reçu (l’assurance que personne n’a modifié le contenu de mon message au cours de son acheminement).

Vous l’aurez compris, GnuPG concerne principalement les échanges de mails. Avec le client de messagerie Thunderbird par exemple, on peut installer l’extension Enigmail qui simplifie grandement l’utilisation du chiffrement PGP (quelques clics de souris suffisent à chiffrer et/ou signer un mail avant son envoi). Il conviendra juste d’installer au préalable un gestionnaire de clés PGP, afin de pouvoir générer sa propre paire de clés, grâce à une interface graphique intuitive. Sous Ubuntu, Mint ou Debian, le gestionnaire de clés PGP est GnuPG, son interface graphique s’appelle Seahorse et ce dernier s’affiche dans le menu en français sous le nom “Mots de passe et clés”. Il existe également des gestionnaires de clés PGP pour Windows et Android.

Pour conclure, sachez que le chiffrement des documents et des mails avec GnuPG n’est qu’un élément de toutes les solutions existant pour protéger sa vie privée en ligne. D’autres logiciels y contribuent aussi, par exemple https qui chiffre les données échangées entre votre ordinateur et un site web, ou VPN qui crée un canal de communication intégralement chiffré entre deux ordinateurs (par exemple pour un salarié souhaitant se connecter à l’intranet de son entreprise).

Note – Le billet utilise systématiquement le terme générique de “clé PGP” en référence au standard OpenPGP. On utilise parfois aussi le terme plus spécifique de “clé GPG” en référence aux clés de chiffrement générées par GnuPG. Concrètement il s’agit de la même chose.