OpenPGP et GnuPG : 25 ans de chiffrement pour tous, ce qu'il faut savoir avant de s'y mettre

Il n'est jamais trop tard
Logiciel 9 min
OpenPGP et GnuPG : 25 ans de chiffrement pour tous, ce qu'il faut savoir avant de s'y mettre

Phil Zimmerman a créé PGP il y a 25 ans et le standard OpenPGP fêtera ses 20 ans l'année prochaine. L'occasion de faire le point sur ce qui a donné naissance à GnuPG, avant de nous attarder sur son utilisation pratique.

Après vous avoir expliqué les concepts de base de la cryptologie et du chiffrement, nous avons décidé de revenir en détail sur un premier outil qui a l'avantage d'être open source, multiplateforme et d'exister depuis près de 20 ans : Gnu Privacy Guard, aka GnuPG ou GPG.

Nous publierons dans le cadre de ce dossier une série de guides pratiques qui permettront de l'exploiter, de la simple création d'une paire de clefs au chiffrement de vos fichiers et de vos emails.

De PGP 1.0 à GnuPG 2.1 : 25 ans de chiffrement

Pour rappel, Phil Zimmerman a créé Pretty Good Privacy (PGP) en 1991, un projet qui s'était exporté hors des États-Unis (malgré les lois en vigueur à l'époque) à travers une solution ingénieuse : le code source avait été distribué sous la forme d'un livre, édité par MIT Press et qui nécessitait ensuite d'utiliser un outil d'OCR. Un épisode qu'il avait raconté en 2013 dans le cadre du reportage Une contre-histoire des internets :

À l'occasion du lancement de sa troisième version, le projet a été pris en charge par la société PGP Inc, rachetée plusieurs fois puis intégrée à Symantec en 2010. Mais c'est dès 1997 que le besoin de la création d'un standard qui n'était soumis à aucune licence ni aucun brevet s'est fait sentir. OpenPGP était alors né à travers la RFC2240 de l'Internet Engineering Task Force (IETF). Désormais, il s'agit de la RFC4880.

GnuPG est donc une implémentation open source de ce standard, dont la première version stable a vu le jour deux ans plus tard, en 1999. Un outil de référence, tant pour le chiffrement de documents que des emails dans de nombreuses applications. Fin 2013, peu après les révélations d'Edward Snowden, l'équipe faisait appel au financement participatif pour donner un nouvel élan au projet et mettre sur pieds la version 2.1. Sur 24 000 euros demandés, 36 732 euros ont été obtenus.

Aujourd'hui, OpenPGP et GnuPG sont contestés par certains (comme Moxie Marlinspike, co-auteur du protocole Signal) pour leur complexité, notamment lorsqu'il s'agit de messagerie instantanée ou de gestion depuis un appareil mobile. L'histoire retiendra en effet que lorsqu'Edward Snowden a cherché à contacter le journaliste Glenn Greenwald pour la première fois, celui-ci ne savait pas utiliser ces outils. Il a ensuite contacté Laura Poitras, plus habituée à ce genre de pratiques.

signalSignal Desktop
Signal, une messagerie électronique qui mise sur un chiffrement efficace, mais simple et transparent

Mais GnuPG reste un outil flexible, autorisant de nombreux usages dans le domaine du chiffrement. Si beaucoup voient en des applications comme Signal des remplaçants, il s'agit plutôt de bons compléments pour des besoins spécifiques, comme le rappelait récemment Neal H. Walfield, qui travaille sur GnuPG.

Bien qu'imparfait et sans doute pas assez « clef en main », il reste néanmoins important à connaître et à maîtriser dès lors que l'on s'intéresse à cette problématique, avec l'espoir de comprendre un minimum ce que l'on fait. Après tout, ce n'est pas parce que les voitures autonomes existent qu'il ne faut plus apprendre à conduire.

Trois branches et de nombreux outils

GnuPG est distribué seul, via deux branches principales : stable et moderne. La première est conservatrice dans ses fonctionnalités et intègre en général surtout des correctifs. La seconde implémente de nombreuses nouveautés. Il existe aussi une branche classique (1.4) pour ceux qui veulent assurer une compatibilité avec d'anciens systèmes.

Actuellement vous avez le choix entre la 2.0.30 – qui sera considérée comme en fin de vie le 31 décembre 2017 – et la 2.1.17. Cette dernière ne supporte plus les clef PGP-2 mais propose le support des algorithmes de cryptographie sur les courbes elliptiques (ECC), une procédure de création de clefs par défaut plus simple, des procédures d'ajout et de signature de clef rapides, des correctifs et autres améliorations diverses.

Notez que l'équipe de GnuPG distribue plusieurs outils, notamment des bibliothèques pour les développeurs. Gnu Privacy Assistant (GPA) est aussi disponible pour la gestion de vos clefs et smartcards, ainsi que pour le chiffrement de textes. Le site d'OpenPGP, lui, présente avant tout le standard et son histoire, ainsi que des outils qui l'exploitent pour différents usages.

Clef publique, clef privée, WOT et TOFU

Comme nous l'avons évoqué dans notre article sur le chiffrement, GPG propose un fonctionnement dit asymétrique. Ainsi, vous disposez d'une paire de clefs, l'une publique et l'autre privée (voir notre guide de création).

La première est à diffuser largement, elle permettra à des tiers de chiffrer des documents de manière à ce que vous seul puissiez les lire. De manière générale, il est recommandé de la mettre en avant dans des espaces qui vous appartiennent et où vous êtes clairement identifié : votre biographie sur Facebook ou Twitter, un service dédié comme Keybase, votre blog, etc.

Chiffrement asymétrique
Crédits : Roumanet/Wikipédia

Cette identification est nécessaire car n'importe qui peut créer une paire de clefs pour n'importe quel nom/email. C'est pour cela que le concept de « web of trust » a été mis en place, permettant à tout utilisateur d'indiquer qu'il certifie qu'une clef donnée correspond bien à une personne précise. Une action favorisée par les « key signing party ».

Pour ceux qui veulent aller plus loin, notez qu'un nouveau modèle de confiance dévoilé l'année dernière commence à être mis en place : Trust On First Use (TOFU). Il a notamment été détaillé dans ce journal de LinuxFR et vise à faciliter les échanges lors d'un premier contact.

La clef privée doit rester secrète. Elle vous permettra de signer des éléments pour prouver que vous en êtes à l'origine et qu'ils n'ont pas été modifiés, ou de déchiffrer ceux qui vous sont envoyés. Attention, si vous la perdez, elle sera impossible à remplacer. De plus, si vous changez de clef, la nouvelle ne permettra pas de déchiffrer les documents et emails chiffrés pour la précédente.

Une clef privée est toujours protégée par une phrase de passe qui permettra de la déverrouiller. Ainsi, si quelqu'un venait à la découvrir, tout ne sera pas perdu (mais il faudra éviter d'oublier cette phrase ou qu'elle soit trop facile à deviner). Une clef privée prend la forme d'une longue suite de caractères, vous pouvez donc la « sauvegarder » sous la forme papier (certains outils permettant de générer un PDF spécifique).

Identités, photos, commentaires et empreintes

Chaque paire de clefs peut être liée à une ou plusieurs identités. Celles-ci se composent de trois éléments : un nom, un email et un commentaire. Vous pouvez aussi ajouter des photos permettant de vous identifier. Bien entendu, cela ne doit pas forcément se faire sous votre vrai nom, et vous pouvez décider d'avoir un fonctionnement plus discret, avec une identité sous pseudonyme.

Chaque clef est identifiée par une empreinte de 40 caractères ou un ID qui se compose des huit derniers caractères de cette dernière. Lorsque vous voulez permettre d'identifier votre clef, veillez à bien communiquer l'empreinte complète pour éviter tout problème.

En effet, des cas de collisions sur l'ID ont été rencontrés ces derniers mois, il ne peut donc être considéré comme suffisant. L'idéal est d'ailleurs de proposer un lien vers le contenu complet de votre clef.

Détail clef GnuPG macOS GPG Keychain 

Quelle taille de clef choisir ?

Passons à la taille de la clef. Avec RSA – l'algorithme recommandé (ECC n'est proposé qu'en mode expert) – on considère que celle-ci est sécurisée à partir de 2048 bits, mais il est souvent conseillé d'utiliser une valeur supérieur. Le maximum est actuellement fixé à 4096 bits.

Utiliser cette valeur est donc le choix le plus « sécuritaire », qui devrait permettre de protéger votre contenu même si une solution venait à être trouvée pour casser le RSA 2048 bits (ce qui est encore loin d'être le cas). Attention néanmoins, certains outils sont limités à un fonctionnement sur 2048 bits et des appareils peu performants (smartphones par exemple) peuvent ne pas apprécier de devoir fournir une puissance de calcul importante pour une clef de 4096 bits. 

Des éléments à prendre en compte au moment de faire votre choix.

Date d'expiration et révocation

Le dernier point à prendre en compte est la date d'expiration. Celle-ci ne concerne que votre clef publique. Une clef privée ne peut, par essence, pas expirer.

Il s'agit là d'une protection utile, notamment si vous veniez à perdre l'accès à votre clef privée. Dans ce cas, vous ne pourrez plus modifier la date d'expiration de la clef publique, et celle-ci finira par apparaître comme invalide. Dans ses dernières versions, GPG utilise une durée de deux ans par défaut. N'hésitez pas à raccourcir cette limite, vous pourrez de toutes façons la rallonger à tout moment.

Il peut aussi être intéressant de changer régulièrement de clef. En effet, si vous chiffrez cinq ans d'échanges avec une même clef privée et que celle-ci vient à être découverte, c'est l'ensemble des messages qui pourra être déchiffré. Alors qu'en changeant régulièrement de clef, le risque sera plus limité.

Une notion notamment développée dans le concept de Perfect Forward Secrecy, comme nous l'évoquions dans notre précédent article, dont il peut être intéressant de s'inspirer. Tout dépend de votre besoin et du niveau de protection que vous voulez assurer à vos documents et emails.

Notez enfin que lorsque vous créez une paire de clefs, il vous sera conseillé de créer une clef de révocation. Cela permet, lorsque vous publiez vos informations sur un serveur de clefs, d'indiquer que votre clef privée a été compromise. Les personnes avec qui vous échangez sauront alors qu'ils ne doivent plus l'utiliser (nous reviendrons sur ce point plus en détails dans un prochain article).

Retrouvez notre dossier Chiffrement, clefs de sécurité et cryptobidules :

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !