Page suivante Page précédente Table des matières

3. Gestion de votre trousseau de clefs

Une fois GnuPG installé, vous pouvez commencer à l'utiliser pour protéger le contenu de vos messages des regards indiscrets. L'envoi d'un message fait appel à votre clef privée pour l'opération de signature et à la clef publique du destinataire pour l'opération de chiffrement. Le nombre de clefs en votre possession est donc directement lié au nombre de vos interlocuteurs, sans compter que vous pouvez choisir d'avoir plusieurs paires clef privée/clef publique. L'ensemble de ces clefs est appelé un trousseau de clefs et GnuPG fournit des commandes pour vous aider à le gérer.

3.1 Comment générer votre paire clef privée/clef publique ?

La première opération à réaliser est la génération d'une paire clef privée/clef publique avec la commande --gen-key :

gpg --gen-key
Cette commande génère une nouvelle paire de clefs, une privée et une publique en se basant sur vos réponses à quelques questions. La première concerne l'algorithme de chiffrement et de signature que vous voulez utiliser. Vous trouverez des informations sur les algorithmes proposés dans PGP DH vs. RSA FAQ et surtout dans l'excellent ouvrage de Bruce Schneier : Cryptographie appliquée. Le choix DSA and ElGamal est à privilégier étant donné leur utilisation très courante sur le réseau Internet. Si vous choisissez de n'utiliser que l'algorithme ElGamal, il vous sera demandé de confirmer ce choix (implications à préciser).

La seconde question concerne la longueur de votre clef de chiffrement ou de signature si vous avez choisi de générer une clef de signature seulement. La réponse à cette question dépend pour beaucoup de l'usage que vous comptez en faire. Pour l'algorithme DSA, la longueur de la clef est généralement de 1024 bits. Pour ElGamal, vous pourrez choisir une longueur entre 768 bits et 2048 bits. Dans l'absolu, plus une clef est longue, mieux c'est. Cependant, le temps de chiffrement augmente avec la longueur de votre clef. Si vous n'avez pas d'idée précise quand à la longueur nécessaire, le mieux est de choisir la taille proposée par défaut. Si à l'usage cette taille s'avère inadaptée, vous pourrez toujours générer une nouvelle paire de clef plus adaptée à vos besoins.

Les questions suivantes servent à collecter de l'information qui servira plus tard à distinguer sans ambiguïté cette nouvelle paire de clefs parmi toutes les paires de clefs en votre possession. C'est grâce à ces informations, par exemple, que vous pourrez choisir la paire de clefs à utiliser pour signer un message. Vous devez donc entrer un nom, une adresse email et un commentaire. Le commentaire étant un champs libre est très pratique pour distinguer vos paires de clefs les unes des autres. Toutes ces informations et un générateur de nombres pseudo-aléatoires seront ensuite utilisés pour générer une nouvelle paire de clefs. Vous pourrez, si vous le souhaitez, modifier ultérieurement les informations contenues dans une paire de clefs.

Il ne vous reste plus qu'à choisir une phrase clef qui servira à chiffrer votre clef privée pour pouvoir la stocker sans risques sur votre disque dur. Cette phrase vous sera demandée à chaque fois que vous voudrez utilisez votre clef privée. Autrement dit, si vous oubliez la phrase clef d'une paire de clefs, vous ne pourrez plus utiliser cette paire de clefs ! Veillez donc à vous prémunir contre ce genre de risques sans mettre en péril la confidentialité de votre phrase clef. En effet, la sécurité de vos messages repose sur la confidentialité de votre clef privée et la confidentialité de votre clef privée sur celle de votre phrase clef. La première mesure à prendre est donc de choisir une phrase clef robuste. Le problème ici est qu'il n'existe pas de définition rigoureuse de robuste. Nous pouvons seulement donner quelques conseils :

Le choix d'une bonne phrase clef est difficile, mais n'oubliez pas qu'une chaine n'est jamais plus solide que son maillon le plus faible. VoUs pOUvEz AmélIOReR lA SécUrité dE vOtRe pHRaSE CLEF en utiLISaNT DEs mAjUsCUles eT dEs MInUscUlEs (mais pas uniquement !) dE FAçOn IRrégUlièRE.

La seconde mesure consiste à générer un certificat de révocation pour toute une nouvelle paire de clefs. La raison de procéder ainsi est qu'il vous faut disposer de la clef privée, et donc de la phrase clef, pour générer le certificat de révocation d'une paire de clef. Générer le certificat de révocation le plus tôt possible vous mets à l'abri de l'oubli de votre clef. Vous devrez bien sûr conserver ce certificat à l'abri.

Une fois toutes les informations entrées, le calcul de votre paire de clef commence. Le générateur de nombres pseudo-aléatoires a besoin d'un très grand nombre de données aléatoires, ce qui est difficile sur un ordinateur. Vous pouvez améliorer la qualité des résultats du générateur de nombres pseudo-aléatoires en générant vous même un peu de hasard, par exemple en bougeant votre souris, en tapant sur votre clavier, en exécutant des applications, etc. L'utilisation de pseudo-hasard est nécessaire pour s'assurer qu'il n'est pas possible d'obtenir votre clef privée en effectuant le même calcul que vous. En fait, les chances de succès d'une telle attaque sont directement liées à la qualité du pseudo-hasard généré par le générateur de nombres pseudo-aléatoires.

3.2 Comment rendre publique votre clef publique ?

Vos paires de clefs sont stockées sur votre système et la commande --export vous permet d'extraire la clef publique d'une paire de clefs et de l'écrire sur la sortie standard :

gpg --export [info-clef]
[info-clef] est une information permettant de distinguer sans ambiguïté la paire de clefs dont vous voulez extraire la clef publique. Si cette information n'est pas fournie alors ce sont les clefs publiques de toutes les paires de clefs en votre possession qui seront affichées. Bien sûr, si vous ne possedez qu'une paire de clef, aucune information n'est nécessaire pour en extraire la clef publique.

La commande --export écrit la clef publique en caractères codés sur 8 bits, ce qui peut poser quelques problèmes pour l'envoyer par email ou pour l'afficher. L'option --armor ou -a permet d'obtenir une clef publique en caractères codés sur 7 bits.

Par défaut, la clef publique est écrite sur la sortie standard. L'option --output ou -o permet d'écrire cette clef dans un fichier plutôt que sur la sortie standard.

Une fois votre clef publique dans un fichier, vous devez la mettre à disposition de vos éventuels interlocuteurs pour qu'ils puissent s'en servir pour vous envoyer des messages chiffrés avec. Vous pouvez le faire, par exemple, en plaçant cette clef sur une de vos pages web, dans votre fichier ~/.plan, en l'envoyant par mail ou en la déposant sur un serveur de clefs.

3.3 Comment ajouter une clef publique à votre trousseau ?

Pour pouvoir utiliser la clef publique d'un de vos interlocuteurs, vous devez l'ajouter à votre trousseau grâce à la commande --import :

gpg --import [fichier]
Si aucun nom de fichier n'est passé en paramètre, la clef publique est lue depuis l'entrée standard.

3.4 Comment afficher le contenu de votre trousseau de clefs ?

La commande --list-keys affiche toutes les clefs publiques en votre possession et toutes les informations attachées à vos clefs publique sur la sortie standard :

gpg --list-keys
Vous pouvez aussi obtenir les signatures des clefs publiques en votre possession avec la commande --list-sigs :
 gpg --list-sigs 
et les clefs privées de votre trousseau avec la commande --list-secret-keys :
gpg --list-secret-keys

3.5 Comment retirer des clefs de votre trousseau de clefs ?

La commande --delete-key vous permet d'effacer une clef publique de votre trousseau :

gpg --delete-key info-clef 
et la commande --delete-secret-key vous permet d'effacer une clef privée de votre trousseau :
 gpg --delete-secret-key 

3.6 Comment afficher l'empreinte d'une clef publique de votre trousseau de clefs ?

La commande --fingerprint affiche les empreintes des clefs publiques de votre trousseau :
gpg --fingerprint 

3.7 Comment signer une clef publique de votre trousseau de clefs ?

Comme nous l'avons vu dans l'introduction, l'authenticité des clefs publiques de votre trousseau est essentielle à la sécurité de vos échanges chiffrés. Pour vous assurer de l'authenticité de nouvelles clefs publiques, vous pouvez utilisez les signatures de ces clefs. Vous pouvez également vous porter garant de l'authenticité de certaines clefs publiques en les signant avec une de vos clefs privées grâce à la commande --edit-key :
gpg --edit-key info-clef
Cette commande vous donne accès à un menu textuel qui vous permet, entre autres, de signer la clef désignée par info-clef en tapant sign. Une fois la clef publique signée, vous pouvez la rendre publique de la même façon que pour une de vos clefs publiques. Une fois de plus, rappelons que vous pouvez totalement compromettre la sécurité de vos échanges et de ceux de ceux qui vous font confiance, en accordant votre confiance à la légère. Vous ne donc signer une clef publique que lorsque vous êtes ABSOLUMENT SUR de l'authenticité de la clef que vous signez.

Ce menu textuel vous permet aussi de modifier le niveau de confiance avec la commande trust. Les niveaux de confiance sont :

Ces niveaux de confiance sont utilisés lors de la vérification de la signature d'un message. En effet, si vous n'avez pas ou peu confiance en une clef publique, la validité d'une signature basée sur cette clef publique ne peut garantir l'authenticité du message.

3.8 Comment générer un certificat de révocation pour une de vos paires de clefs ?

Vous pouvez générer un certificat de révocation pour une paire de clefs en votre possession à tout moment avec la commande --gen-revoke :

gpg --gen-revoke info-clef
Attention, la génération d'un certificat de révocation d'une paire de clef nécessite de connaitre la clef privée de la paire à révoquer. Si vous oubliez la phrase clef d'une paire de clefs, vous ne pourrez plus révoquer cette paire. Vous avez donc intêret de ce point de vue à générer ce certificat dès que vous créer une paire. D'un autre coté, si quelqu'un réussi à obtenir ce certificat, il peut faire croire que vous avez révoquer la paire de clefs décrite par ce certificat. Vous devrez donc mettre ce certificat en sécurité tant que vous voudrez vous servir de la paire de clefs révocable par ce certificat.

3.9 Comment modifier des informations associées à une clef publique de votre trousseau de clefs ?

La commande --edit-key vous donne accès à un menu textuel vous permettant de modifier certaines informations associées à une clef publique de votre trousseau de clefs :

gpg --edit-key info-clef
Vous pouvez connaitre les commandes accessibles sous ce menu textuel avec la commande help.


Page suivante Page précédente Table des matières