PGP & GPG

Généralités

En 1991 et en s’appuyant sur des recherches mathématiques, Phil Zimmermann a mis au point un système de cryptage dit « asymétrique » et nommé PGP (Pretty Good Privacy). Ce faisant, PGP ayant été publié sur Internet comme logiciel libre, Phil Zimmermann a fait l’objet de poursuites par le gouvernement américain pour « exportation de logiciels cryptographiques ». La procédure judiciaire le concernant à été classée sans suite en 1996.

Phil Zimmermann compare l’envoi de mails non cryptés à l’envoi de cartes postales que tout le monde peut lire et l’envoi de mails cryptés à la correspondance sous enveloppe. Sa phrase clef était : « Si l'intimité est mise hors la loi, seuls les hors-la-loi auront une intimité ».

Le système de cryptage PGP est dit « asymétrique » car la clef ayant servi au cryptage n'est pas celle utilisée pour le déchiffrage. En effet, PGP génère deux clefs : une clef dite « publique » et une clef dite « privée ».

La clef publique

La clef publique n’a pas besoin d’un canal sécurisé (« secure channel ») pour être échangée. Elle peut être envoyée par mail, par courrier postal sur un support informatique quelconque (disquette, clef USB, CD) ou par le biais d’un intermédiaire. Elle n’a pas besoin de canal sécurisé car le détenteur de cette clef ne peut quasiment rien en faire. La seule chose que l’on puisse faire avec une clef publique c’est l’utiliser pour crypter une information à son destinataire. Considérez une clef publique comme un coffre-fort ouvert. Vous pouvez y ranger des documents puis fermer la porte et brouiller la combinaison. Seul le détenteur de la clef (privée) pourra ouvrir ce coffre, même pas vous.

Lorsque l'on possède la clef publique de quelqu’un, on ne peut l’utiliser que, et uniquement que, pour crypter un message ou un fichier qui lui sera destiné et à rien d’autre. Cela veut dire aussi que si l'on se sert de sa clef publique pour crypter un message à son intention, on ne pourra même pas utiliser celle-ci pour décrypter ce même message qui lui aura été envoyé. Une fois crypté, il n’y a ni pour vous ni pour personne d’autre, la possibilité de le déchiffrer. Seul, le destinataire pourra le faire avec sa clef privée. C’est la raison pour laquelle on parle de « clef publique » car elle peut être librement distribuée sans crainte ou proposée en téléchargement sur son site web comme ceci.

Il existe même des « serveurs de clefs ». Tout le monde peut déposer sa clef publique sur ce type de serveur. Si quelqu’un souhaite expédier un message privé à une autre personne, il peut très bien aller chercher sur un serveur de clefs la clef publique du destinataire et s’il la trouve l’utiliser pour crypter le dit message à son intention.

La clef privée

La clef privée en revanche doit être très sérieusement protégée et ne doit en aucun cas être divulguée. Il est prudent de l'imprimer, d'en faire une copie sur un support numérique et de l'entreposer dans un coffre. Elle sert à deux choses : le déchiffrage et la signature.

Lorsque l'on reçoit un mail qui a été crypté avec sa clef publique, seule sa clef privée pourra le déchiffrer. C’est la raison pour laquelle elle est appelée « clef privée » et qu’il est important de la conserver précieusement ainsi que sa « passphrase ».

Par ailleurs, elle sert aussi à signer un message, c’est à dire à apposer en fin de message (qui pourra rester en clair ou être crypté, selon les besoins) une empreinte numérique permettant d’authentifier l’adresse mail expéditrice. En effet, lorsque l'on envoie un mail à quelqu’un en souhaitant que son destinataire puisse vérifier qu’il n’y a pas eu usurpation d’identité, que l'on est bien l’expéditeur du message et que celui-ci n'a pas été altéré, on doit utiliser sa clef privée pour « signer » ce message.

Pour résumer tout cela, quand on souhaite échanger de la correspondance privée avec d’autres personnes en utilisant PGP, on a besoin d’un « trousseau de clefs » qui sera constitué d’une clef privée, la sienne, et d’autant de clefs publiques qu’on aura de destinataires.

GPG

A l’issue du classement de son affaire, Phil Zimmermann a fondé une société, PGP Inc., qui a été rachetée par Network Associates puis par PGP Corporation. A cause de ces rachats et du dépôt de brevets, PGP n’est plus distribué comme logiciel libre. Les versions les plus récentes sont soumises à licence d’utilisation. C’est l’une des raisons pour lesquelles une version libre de droits a été développée par des bénévoles (Werner Koch, développeur allemand). Celle-ci s’appelle GPG (GNU Privacy Guard). GPG, qui est aussi appelé GnuPG, est parfaitement compatible avec PGP. Cela veut dire qu’un message crypté avec une clef publique contenue dans un trousseau de clefs PGP peut très bien être déchiffré par la clef privée correspondante détenue dans un trousseau de clefs GPG et vice-versa.

Vous pourrez entendre parler d'OpenPGP. OpenPGP est un format de cryptographie de l'Internet Engineering Task Force (IETF), normalisé dans la RFC 4880. Ce standard décrit le format des messages, signatures ou certificats que peuvent s'envoyer des logiciels comme GNU Privacy Guard. Ce n'est donc pas un logiciel, mais un format pour l'échange sécurisé de données, qui doit son nom au programme historique Pretty Good Privacy (PGP).

Dans la suite du texte, il faudra donc comprendre que les notions expliquées à propos de PGP seront aussi valables pour GPG.

Utilisation

Le particulier ou le professionnel souhaitant protéger sa correspondance électronique suivra les points suivants :

On peut noter plusieurs points intéressants dans un tel système cryptographique, notamment la possibilité de faire correspondre plusieurs adresses mail à une même paire de clefs, celle de fixer une durée de validité, celle d’inclure sa photographie ou une image telle un logo dans la clef publique ainsi que la possibilité de générer un certificat de révocation.

Le créateur d'une paire de clefs peut en effet, s'il le désire, associer à l'adresse mail pour laquelle les clefs ont été générées, celles des ses associés pouvant être amenés à traiter les mêmes dossiers. Il faut bien réaliser dans ce cas que la confiance doit être absolue car ces derniers devront posséder une copie de la clef privée et connaître la « passphrase ». Ce qui veut dire qu'ils seront en mesure eux aussi d'ajouter ou de supprimer des adresses à la clef, de modifier la « passphrase » et de générer aussi des certificats de révocation.

Certificat de révocation

Il est en effet important d’en produire un pour toute paire de clefs nouvellement créées. Si votre clef privée était compromise, volée ou perdue, si vous avez oublié votre « passphrase » ce certificat de révocation peut être publié sur le serveur de clef pour notifier aux autres que votre clef publique ne doit plus être utilisée. On ne pourra plus s'en servir pour chiffrer de nouveaux messages à votre attention. Ce certificat ne pouvant être créé qu’avec sa clef privée, il est important de le générer avant de l’avoir perdue.

Identité du détenteur d'une clef privée

Un autre aspect dont il est important d’avoir conscience est la nécessité de faire la distinction entre l’identité d’une personne physique et l’identité virtuelle représentée par une adresse mail.

En effet, n’importe qui peut se créer une adresse mail anonyme à Hotmail sous une fausse identité et générer avec PGP une paire de clefs correspondant à cette adresse mail puis déposer la clef publique sur un serveur de clefs. La meilleure preuve se trouve dans les tutoriels de ce site où des clefs ont été générées pour la démonstration aux noms de Judy Garland et de Louise Brooks. Les détenteurs de cette clef publique pourront crypter des mails vers cette adresse et le détenteur de la clef privée pourra les déchiffrer.

L’identité réelle d’une personne est établie à l’aide de certificats. Seules des autorités de certification sont habilitées à délivrer de tels certificats garantissant l’identité réelle du propriétaire d’une adresse mail grâce à un processus qui n’entre pas dans le cadre de ce document. On notera au passage qu’en France lorsque l’on faisait sa déclaration d’impôts en ligne, le service des impôts délivrait un certificat qui était entreposé sur son ordinateur. Certains logiciels de messagerie reconnaissaient et pouvaient utiliser ce certificat (ex : Thunderbird). Mais depuis, ce système de délivrance de certificat jugé trop compliqué par le grand public a été abandonné.

NB: La délivrance de certificats est un service payant des autorités de certification. Il existe néanmoins une autorité de certification communautaire basée en Australie mais ayant des membres dans tous les pays (pour les vérifications d'identité) et qui délivre gratuitement des certificats : CAcert.org

Toile de confiance, signatures de clef

Pour palier cette inévitable difficulté de formelle identification, PGP offre la possibilité de signer des clefs. Cela veut dire que si vous avez eu la possibilité de vérifier l’identité du propriétaire d’une clef publique, vous pouvez utiliser votre clef privée pour signer cette clef publique, témoignant ainsi de votre degré de confiance dans celle-ci. Pareillement, vous pouvez aussi signer une clef publique qui a été signée par une personne que vous connaissez et en qui vous avez une absolue confiance (les amis de mes amis…). L’enchevêtrement des différents niveaux relationnels (connaissances directes ou bien connaissances indirectes à différents niveaux -les amis des amis de mes amis…-) répondent à des schémas et formules mathématiques qui sortent du cadre de cette présentation mais qui permettent d’établir un niveau de confiance donné dans une clef publique.

A ce propos, les différents acteurs du monde des « logiciels libres » organisent de temps à autre une « key signing party ». La participation à une telle réunion suit un processus bien défini non décrit dans ce document. Les différents participants doivent s’inscrire, venir à la rencontre sans ordinateur, munis des caractéristiques de leur clef publique ainsi que d’une pièce d’identité avec photo. Le but de la rencontre étant des vérifications mutuelles d’identité afin que les participants puissent mutuellement se signer les clefs afin de créer ce qu’il est convenu d’appeler une « toile de confiance » (« web of trust »).

Pour obtenir de plus amples informations sur les « key signing parties » vous pouvez consulter Wikipédia, le HOWTO Keysigning Party ou encore le Request For Comments RFC 3552

En résumé...

Les points qu’il faut avoir en tête lorsqu’on utilise un système de cryptage asymétrique sont :

Deux derniers points utiles à cette présentation sommaire :

Après la génération d’une paire de clefs, PGP fournit une empreinte unique de la clef publique sous la forme de 40 digits hexadécimaux que l’on appellera « Fingerprint ».

Les huit derniers digits de cette empreinte forment l’identifiant de la clef (« KeyID »).

Exemple :

Fingerprint : 47C6 8236 FA60 D759 98DC FA0A 7AB9 1C35 EE92 30DF
KeyID : 0xEE9230DF (le 0x signifie que ce qui suit est en hexadécimal)

On recherchera une clef sur un serveur de clefs grâce à son KeyID. Quant au Fingerprint, il est généralement communiqué sur un document écrit tel qu’une carte de visite que l’on reçoit lors d’une rencontre et que l’on pourra vérifier sur le serveur de clefs.

Réserves

Le dernier point souligne que cette présentation est générale et a pour but la description sommaire d’un système de cryptage asymétrique. Il sera nécessaire pour l’utilisateur final de se référer au manuel du logiciel qu’il emploiera. En effet, le logiciel utilisé pourra l’être sous Windows, Macintosh, Unix, dans une interface graphique ou en ligne de commande.

Il n’est pas possible de décrire ici les fenêtres et les boutons de toutes les versions de toutes les interfaces sous tous les systèmes. Il n’y a dans cette présentation que le principe de base qui permettra de mieux comprendre et interpréter les menus de l’interface utilisée.

Exemples

Le message ci-dessous sera envoyé d'une part, crypté et d'autre part, signé.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus.
Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies
sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a,
semper congue, euismod non, mi.

Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci
vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non
tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae
ligula.

Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum
mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus.

Tous les textes produits par l'utilisation de PGP (cryptage, signature, comptes-rendus) seront de couleur bleue.

Message crypté

Date:         Sun, 07 Feb 2010 04:59:42 +0100
Reply-To:     root <root@vds-816385.amen-pro.com>
Sender:       root <root@vds-816385.amen-pro.com>
From:         root <root@vds-816385.amen-pro.com>
Subject:      Message de test crypté
Content-Type: text/plain; charset=ISO-8859-1

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.10

qANQR1DBw04DiEl5MnzYSDUQD/9Cp06vu69Gh8XC6geAvS6VVAoFgT/zyXJBhiDT
mxWXlOSSG8Fu5SbwI7oXAhZPiCifts7pyQyZ2TwfeOW4mmRwChwb1ED1qMJzGxxu
muOA6vA0RSB/01IVMmTPSNm/ukLSC6uV69CVFhrL3lIiV/1/50TR2FwuaOI5NVUY
VLHmOjESBsrBZvNPfffE76u9JxRd5wx51tv98ioAS6tDsimZBK7ZPqiNm+iZlImq
ykgws7uBSK2wK5PKDrMVteguLVQnSD58RlHkS1hU6xEN26roQRiQ/efQ3i1fYXfD
TILCslpGgO7COYcp2CiiiFayEHrkXd/8zIp/NBb0egQ9DfiPmCt9texYKlNx7nX1
rH6miunY0vPcG1KYsUDrM8CZKmOCD5J3UwXGs6GWg07s7sJ7KzXARQTYdIBo3mAx
wcmvFIrtjl/GOKyVpOZRV9gMcr3P0sEWf2l91bstJrc7NaIDMRUXFZ6cxQk/jrcV
CxmrhQ6NOp+PI/N94nYnMe3xT5rHVal7OFO/ua7vuP7ljWlvLPjY/HnULuFJar2n
gkGNvARJ3gsZmBh5j9NBdxSnNC8zk+VMyz+gKbQQaF2iEkWXRVEqKKCQSmhZi4Zf
p1waHwpDzLupS+ZlnJTYr60N3BcT4A/P1+NcZ+2fDlbQ+7zW79K6gv37PAciROi8
tv4DNw//Tu5gyqYIzGYGdyfHXZ/Ay1mLD16/sYTwn+JUgLm6+Gf3/fAMylhx+jAc
iMIKrDduWQRDfamfyoiIeVQJasxLsdbQ3Yjc5B4mRugo1RCXU+7ZBHtZuX3RYhiA
1W8vDvCrVLmfDkSVbjjvu0KbuaEFlDvZtalMNaoOQRwpGuYEnu0mCGtW5RrvfMkk
ZJlELxWoqMJKOJxZi9E0m8/0JfUWXLj77ILnGaZjrhmaTAZHtKkLhH+qoNyecoV5
ZtAvtp21Kn7lEaeS6UZSaKNaIum6turl1+ClYiDZIzFkZTB7pXrAShp709HaRLsg
rcsaKcA8P80UKROLE4TPJLI5rS4wcEkc4E4nEtAUsJndBasF8n97OiPpm9SFWsh/
l+5mAPDe2g7hTYlBTPMzojomQmDwAjCwhCE4/AV6opx3wDyK0ckchr53Yy0r3rQ9
arrWamWtVfJRB3t/AwIe0QWGZCre2w9SauBL7pfo1A4BRHBP/FtF+UZD8p4Yyfut
NJMmk6YAHLw1Tvi3ihEsI2AIMBng+s3u6JK3rXsmVCjlJD9ODGn73R9wYYYrsWHN
2jBXNkKObONmRteqDfPFmiCLsP0MelOyjtjJC2ROjEgB/m6do2FkiMH6iJuy18Za
nDxoiqHE+B5DNJMukHuU2FuDl7V36l5EblPJ8c/c19+1y0Mkj3TJwL4ls9y0m6tB
2djFSd4+Rxs/iyCYy97HkmtfSQyJwl+ELJkYusM2J8bovLCzn018Hditvlj7AAS6
IoXZKG5vQpox6+1ELuObMWi8AA+JZ5oC9dzza1w7vmFrUdNjfe/Vb+amgUMjP8XZ
uqsg31uEuV0hMpceU0TpuResAMLMSM5/0Ckt4c93z8iL4aYHIJbwVguW5T0Doec+
hNjiPfWmMZwdG+frH3LJF0x0G6/1KV73BDZkY83MmnyaPRA6zwKOu/pg31ZprUI/
I2oYBiiUKIRKLm3GSc8B/JL8My4qFZ8tuzi4PnOiPbq+DQOwR9wpJB1BqhdaCBLN
Q6CvxNPQBaJjqE1qEYCYO2hDgmNXvXgWFJliBL02phwqU6CKeoGkky1e8i/S4NLx
W7/OymOeftVGkmb7Poy1IhWHoh0l4pN77f7+5XI1V0BPo1Cn8d3ZhLreVM0zqzYI
RpUQi8vwC8eiEjK5Hgzy981qsJW1tGgPFP//2BAfTIscp4uuJCI4
=bD8U
-----END PGP MESSAGE-----

Message déchiffré

Le déchiffrement du message donne :

***[07/02/2010 05:24:58] Cipher: CAST5
***[07/02/2010 05:24:58] BEGIN PGP DECRYPTED MESSAGE ***

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus.
Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies
sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a,
semper congue, euismod non, mi.

Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci
vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non
tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae
ligula.

Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum
mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus.

***[07/02/2010 05:24:58] END PGP DECRYPTED MESSAGE ***

Message signé

Date:         Sun, 07 Feb 2010 04:59:42 +0100
Reply-To:     root <root@vds-816385.amen-pro.com>
Sender:       root <root@vds-816385.amen-pro.com>
From:         root <root@vds-816385.amen-pro.com>
Subject:      Message de test signé
Content-Type: text/plain; charset=ISO-8859-1

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus.
Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies
sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a,
semper congue, euismod non, mi.

Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci
vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non
tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae
ligula.

Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum
mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10

iEYEARECAAYFAktuOq4ACgkQerkcNe6SMN/FIQCg6ZwBY11+nRpb6xA9nLO+Eu+p
YOQAoIKDy9FIkMKaIpNQjVHMuB1ohhRz
=sbnV
-----END PGP SIGNATURE-----

Message vérifié

La vérification de la signature donne :

***[07/02/2010 06:03:39] PGP Signature Status: good
***[07/02/2010 05:18:39] Hash: SHA1
***[07/02/2010 05:18:39] Signer: root <root@vds-816385.amen-pro.com>
***[07/02/2010 05:18:39] Signer Key ID: 0xAC3E14FA
***[07/02/2010 05:18:39] Signer Key Fingerprint: 39CE F5F7 DF6D 84BA F826  FC81 164D 9945 AC3E 14FA
***[07/02/2010 05:18:39] Signed: 07/02/2010 04:59:42
***[07/02/2010 05:18:39] Verified: 07/02/2010 06:03:39
***[07/02/2010 05:18:39] BEGIN PGP VERIFIED MESSAGE ***

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus.
Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies
sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a,
semper congue, euismod non, mi.

Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci
vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non
tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae
ligula.

Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum
mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus.

***[07/02/2010 06:03:39] END PGP VERIFIED MESSAGE ***

 

Mise à jour le 15/06/2017 à 16:35:18