Chiffrement et signature numérique avec GPG

Actualité

De récentes révélations sur la surveillance gouvernementale ont de nouveau mis sous les feux de la rampe le programme PGP car, malgré ses vingt ans, il reste un système robuste et sécurisé pour nos communications. Néanmoins, les progrès réalisés dans l’industrie informatique requièrent l’utilisation de clés plus longues afin d’éviter les attaques ciblant les paires de clés. C’est pourquoi, j’ai l’intention de vous fournir les informations nécessaires pour créer une nouvelle paire de clés RSA d’une longueur de plus de 4096 bits. Plus vos données sont importantes, plus la clé devrait être longue. Néanmoins, rien n’est gratuit, et chaque fois que vous doublez la longueur de votre clé, le déchiffrement devient 6 ou 7 fois plus lent. Pour cette article, nous avons choisi une longueur de clé de 8192 bits.

pgp

Actuellement sur le marché, peu d’outils supportent cette longueur de clé par défaut, c’est pourquoi dans le but de créer notre nouvelle clé, nous allons télécharger et modifier la dernière version de GnuPG (actuellement 1.4.15). Nous utiliserons Ubuntu Linux pour cet exemple car il est relativement populaire de nos jours et cela vous permettra de suivre ces étapes facilement et rapidement. Vous pourriez également utiliser Cygwin, qui est une bonne manière d’avoir un environnement similaire à Linux sur votre système d’exploitation Windows.

pgp-screenshot-01

Une fois que vous aurez créé votre clé à l’aide de ce guide, vous pourrez utiliser un des nombreux outils disponibles pour le système d’exploitation de votre choix. Par exemple, sous Mac OSX, vous pourrez utiliser GPG Suite et sous Windows, vous pourrez télécharger GP4Win : tous deux permettent la création de clé et toutes les options basiques que vous utiliserez quotidiennement avec PGP.

Vous pouvez également utilisé Gpg4win (GNU Privacy Guard Windows) qui est géré par les développeurs de GnuPG et qui fournit un logiciel de chiffrement et de signature numérique pour vos fichiers et e-mails protégeant ainsi vos informations et vos communications de valeur. Il s’agit d’un logiciel gratuit et très recommandé pour tous les utilisateurs Windows.

En outre, si vous disposez de GPG Suite pour Mac OSX, celui-ci s’intègre très bien à votre système d’exploitation en fournissant un plug-in à source ouverte pour Mail et en vous permettant de signer facilement vos messages. Vous trouverez également une application pour gérer votre trousseau et une ligne de commande GPG pour explorer davantage les alternatives offertes par cet outil.

pgp-screenshot-02

Nous commencerons par obtenir les sources GnuPG et par les décompresser dans un fichier sur notre disque dur. Il est d’abord recommandé de vérifier la signature SHA1 de ce fichier afin de s’assurer que tout est correcte et que nous avons téléchargé la version vérifiée du logiciel. Pour cela, nous pouvons utiliser l’utilitaire intégré « sha1sum » et si le hash calculé correspond à celui disponible sur le site Web de GnuPG, nous pouvons poursuivre.

pgp-screenshot-03

Pour ce guide, nous allons modifier quelques fichiers source mais je vous assure que ce n’est pas très compliqué et cela en vaut vraiment la peine.

Je vais télécharger le fichier source compressé de GnuPG 1.4.15 et avec l’aide de la commande « tar xvzf [filename] », j’obtiendrai un fichier décompressé avec les contenus originaux du fichier. Vous devez remplacer [filename] par le nom du fichier téléchargé. Vous n’avez pas besoin d’utiliser les crochets dans la ligne de commande.

pgp-screenshot-04

Ensuite, nous avons besoin de parcourir le répertoire qui vient d’être extrait avec la commande « cd [gnupg-folder] ». Ici, nous trouverons les contenus dont nous avons besoin pour construire notre GnuPG binaire. La première étape consiste à modifier le fichier « keygen.c » situé dans le « g10 directory ».

pgp-screenshot-05

Vous pouvez éditer le fichier « keygen.c » en utilisant par exemple, « gedit », et quand le contenu apparait, vous pouvez alors rechercher la chaîne « 4096 », qui est la taille de clé maximale par défaut de GnuPG. Nous changerons cette valeur pour « 8192 » dans la ligne 1572. N’oubliez pas de sauvegarder vos changements. Assurez-vous de ne pas avoir effectué d’autres changements !

pgp-screenshot-06

Après avoir réaliser cette simple modification, nous sommes prêts à compiler notre nouvelle version de GnupG. Pour cela, les traditionnelles commandes « ./configure » et « make » devraient être suffisantes. De plus, si nous voulons remplacer la version GPG avec laquelle Ubuntu fonctionne par défaut, nous exécuterons « sudo make install ». Pour le moment, nous utiliserons notre nouveau binaire localement dans le but de créer notre paire de clés RSA de 8192 bits.

pgp-screenshot-07

Avant d’exécuter « gpg », nous modifierons le fichier gpg.conf situé dans votre répertoire personnel, dans mon cas, « /home/Giuliani/.gnup/gpg.conf ». Par défaut, il sera vide mais nous ajouterons nos préférences en matière d’algorithmes de chiffrement, d’empreinte, de compression et de mécanismes de hachage.

Dans mon cas, je vais ajouter le contenu suivant à la fin du fichier (vous pouvez bien sûr le modifier selon vos préférences/besoins) :

personal-cipher-preferences AES256 TWOFISH AES192 AES

personal-digest-preferences SHA512 SHA384 SHA256

personal-compress-preferences ZLIB ZIP

pgp-screenshot-08

Après ce dur labeur, nous sommes enfin prêts à créer notre clé. Nous exécuterons la commande « ./gpg-gen-key » depuis le répertoire « g10 » (où nous avons précédemment modifié le fichier « keygen.c ») et nous suivrons les instructions qui s’affichent à l’écran. Le processus est assez simple, nous choisissons la première option pour créer une paire de clés qui sera utilisée pour signer et chiffrer et nous sélectionnerons 8192 bits comme taille de clé.

pgp-screenshot-09

Afin que cet exemple soit un peu plus réaliste, je vais mettre en place une date d’expiration pour cette clé. Nous utiliserons « 5y » pour indiquer à GPG que cette clé expirera dans 5 ans.

pgp-screenshot-10

Nous ajoutons ensuite le nom, l’adresse e-mail et un commentaire (optionnel) pour ce profil. Nous pourrons ajouter d’autres profils plus tard donc ne vous en faites pas si vous souhaitez inclure plusieurs adresses e-mail dans cette paire de clés.

pgp-screenshot-11

Vous serez ensuite invité à entrer un mot de passe ou une phrase secrète (selon vos préférences). Vous trouverez de bons conseils sur comment choisir un bon mot de passe qui vous permettra de garder votre clé en sécurité et qui sera facile à retenir. Si vous souhaitez plus d’informations, vous pouvez également consulter les questions fréquentes disponibles en ligne.

Souvenez-vous que si vous souhaitez changer votre mot de passe plus tard, vous pouvez le faire sans avoir à recréer une clé ou à envoyer la clé publique de nouveau à vos contacts.

Après que toutes les informations aient été rentrées, le processus de création de la paire de clés commencera, GPG commencera à collecter des bytes dans le but d’améliorer le processus de création aléatoire du chiffre. Continuez d’utiliser votre PC jusqu’à que le processus se termine (cela peut prendre du temps selon l’ordinateur que vous utilisez, avec mon PC I5 et ses 8GB de RAM, cela m’a pris 15 minutes).

pgp-screenshot-12

Enfin, le processus de création de la clé est terminé. GPG indiquera l’empreinte de la clé, la date d’expiration et toutes les informations que vous avez rentrées précédemment. Assurez-vous que tout soit correct avant de communiquer la clé publique à vos contacts.

pgp-screenshot-13

Vous pouvez utiliser la commande « list » de GPG pour vérifier toutes les clés disponibles dans votre système et exporter celles dont vous avez besoin. Nous allons exporter la clé publique pour le profil que nous venons de créer, « Joe Doe », vous obtiendrez ainsi le fichier de clés que vous pourrez ensuite charger manuellement sur l’un des serveurs de clés PGP disponibles ou directement communiquer à vos contacts. La manière la plus simple de réaliser cela est de taper « gpg-export-a [username] > [public-key-filename] ».

pgp-screenshot-14

Si vous souhaitez charger votre clé publique depuis la ligne de commande, vous pouvez le faire en utilisant la commande « gpg-keyserver [serverurl] –send-keys [keyID] ».

pgp-screenshot-15

Vous pouvez également importer des clés publiques en utilisant « —recv-keys ». Tout cela depuis l’interface de votre propre ligne de commande.

Enfin, nous allons créer une copie de sauvegarde de notre clé privée. Faites très attention avec cette opération et souvenez-vous de ne pas partager ce fichier avec qui que ce soit. Le processus est très similaire à ce que nous avons vu précédemment et nous pouvons alors sauvegarder notre clé en utilisant « gpg export-secret-key –a [username] > [private-key-filename] ».

pgp-screenshot-16

Vous disposez désormais de votre nouvelle paire de clés PGP que vous pouvez utiliser pour profiter d’un nouveau monde de confidentialité aussi bien pour vos communications que pour vos données. Bienvenue !

« Un voyage de mille lieues commence toujours par un premier pas. » – Lao-Tseu

Maintenant que nous avons fait nos premiers pas avec PGP, j’espère que vous reviendrez pour lire nos futurs articles sur le sujet. En attendant, amusez-vous avec l’une des nombreuses fiches d’astuces de GPG, vous pourrez ainsi ajuster la fonctionnalité de chiffrement/déchiffrement, la signature des fichiers et messages et bien plus encore.