Geckozone est un Club Unesco

Chiffrer son courriel avec Mozilla Thunderbird & Enigmail

Profil(s) : Confirmé
Date : 14 juillet 2004
Auteur : Bouiaw, Frédéric Chateaux, Nucleos

Cet article est une adaptation de Email Encryption with Thunderbird and Enigmail écrit par Jay Sheth.

1. Un rapide aperçu du chiffrement des messages et de Mozilla Thunderbird

Présentation de Mozilla Thunderbird

Comme vous le savez sûrement, la fondation Mozilla a récemment sorti la version finale de son client de messagerie Mozilla Thunderbird (qui sera appelé simplement Thunderbird dans la suite de l’article.)

Bien que Thunderbird n’en soit qu’à la version 1.0, ses fonctionnalités et sa qualité dépassent de loin ce qu’on peut attendre d’un logiciel avec ce numéro de version. Cela s’explique par le fait que Thunderbird soit basé sur le client de messagerie de la Suite Mozilla, qui est développé depuis 1998.

Pourquoi chiffrer les messages ?

Le courriel est un moyen efficace de communiquer avec ses amis, ses collègues, ou encore sa famille, mais il ne permet pas d’authentifier l’identité de l’expéditeur, ou de s’assurer qu’il n’est déchiffrable que par le destinataire. Une solution courante à ce problème est le chiffrement des messages, qui encode un courrier électronique, ce qui le rend lisible uniquement par la personne possédant la clef permettant de le déchiffrer.

Exemple du problème posé par le chiffrement symétrique

Cryptographie symétrique sur Wikipedia

Supposons par exemple que Bob veuille envoyer un message secret à Alice. Il peut saisir son message dans un traitement de texte, le chiffrer, l’attacher comme pièce jointe et enfin l’envoyer à Alice.

Cela a l’air assez simple, où est le problème ? Afin qu’Alice puisse lire le message secret que lui a envoyé Bob, elle doit connaître la clef qu’il a utilisé pour le chiffrer. S’il l’avait envoyée par courriel et si quelqu’un avait accès à ce message, cette personne aurait alors la possibilité de déchiffrer et de lire tous les courriels provenant de Bob qui utilisent la même clef.

Ainsi, la principale faille potentielle dans les systèmes de chiffrement symétrique est la communication sécurisée de la clef.

Le chiffrement asymétrique

Cryptographie asymétrique sur Wikipedia

Pour pallier ce problème, le chiffrement asymétrique est très utilisé sur Internet. En effet, celui-ci utilise deux clefs liées mathématiquement :

  • Une clef privée : Elle est utilisée pour déchiffrer un message que vous avez reçu. La vôtre ne devra jamais être révélée, même si elle est elle-même chiffrée par un mot de passe que vous détenez.
  • Une clef publique : n’importe qui peut utiliser votre clef publique pour chiffrer un message avant de vous l’envoyer. Elle peut être communiquée à n’importe qui.

Le meilleur logiciel adapté à Thunderbird et à ce type de chiffrement est GnuPG, un logiciel libre. (Je prononce Gnou-Pé-Gé.) Vous avez peut-être déjà entendu parler d’un logiciel qui s’appelle PGP. GnuPG est l’équivalent non-commercial de ce dernier. Voici un exemple d’utilisation de ce logiciel :

Bob et Alice veulent s’échanger des messages chiffrés avec GnuPG. Si Bob veut envoyer un message chiffré à Alice, il doit connaître la clef publique de cette dernière. Etant donné qu’elle est autorisée à communiquer sa clef publique à d’autres personnes, Alice l’envoie par courriel à Bob. Ce dernier va pouvoir l’utiliser pour chiffrer son message avant de l’envoyer à Alice. Maintenant (c’est là que ça devient intéressant), imaginons qu’une troisième personne, Robert, veuille intercepter et lire les messages de Bob et d’Alice.

Bob a donc chiffré son courriel avec la clef publique d’Alice. Robert ouvre le logiciel de messagerie d’Alice quand elle n’est pas devant son ordinateur, et découvre que Bob lui a envoyé un message chiffré. « Aucun problème ! » pense Robert qui a vérifié en regardant dans le répertoire « Courriels envoyés » d’Alice que celle-ci avait transmis à Bob sa clef... publique. « Je vais simplement utiliser la clef publique d’Alice pour déchiffrer le message de Bob (protégé par cette même clef) » Cela ne fonctionne pas ! Que s’est-il passé ?

En fait, tout s’est bien passé. C’est ainsi que tout doit fonctionner. Seule la clef privée d’Alice et le mot de passe associé permet de déchiffrer le message que Bob a envoyé !

Question : Si Marie veut envoyer à Alice un courriel chiffré, quel clef doit-elle utiliser ?

Réponse : Marie doit aussi utiliser la clef publique d’Alice pour chiffrer les courriels qu’elle lui envoie.

Question : Mais pourquoi Marie et Bob n’utiliseraient pas leurs clefs privées pour envoyer des courriels chiffrés à Alice ?

Réponse : Une clef privée est seulement utilisée pour déchiffrer les courriels qui vous sont envoyés et pour signer ceux que vous envoyez. Vos clefs publique et privée sont bien différentes. Lorsque vous envoyez un courriel chiffré, vous avez besoin d’utiliser la clef publique du destinataire pour chiffrer le courriel.

Question : Qu’est-ce que « signer » un message ?

Réponse : C’est le fait d’utiliser la clef privée pour signer un fichier dont on est le créateur. Si vous signez avec cette technique vos courriels, votre destinataire saura que c’est obligatoirement le possesseur de la paire de clefs qui a signé ce message.

2. Logiciels nécessaires au chiffrement des courriels avec Mozilla Thunderbird

Comme mentionné dans la section précédente, l’extension Enigmail pour Thunderbird fonctionne avec GnuPG pour permettre l’envoi de messages chiffrés. GnuPG effectue le chiffrement en arrière-plan, tandis que Thunderbird (grâce à l’extension Enigmail) permet de lire et d’envoyer des courriels chiffrés.

Considérez le de la façon suivante : Comme vous avez besoin d’un système d’exploitation (Linux, Unix, MS-Windows, etc.) pour lancer un programme, vous avez besoin de GnuPG afin d’envoyer et de recevoir des messages chiffrés.

Voici une liste des fichiers que vous devrez télécharger :

  • GnuPG, le programme de chiffrement
  • Enigmail, l’extension nécessaire au chiffrement de courriels avec Thunderbird (clic droit sur les fichiers *.xpi correspondants, puis enregistrer sous)

Attention, la version du Pack français doit être compatible avec celle de l’extension Enigmail (à vérifier grâce au champ « Enigmail version » !

  • GPGshell, une interface graphique Windows pour GnuPG qui permet par exemple d’envoyer des emails chiffrés avec un webmail (GPGshell est un gratuiciel). Si GPGshell ne vous convient pas, essayez WinPT, également gratuit ...

3. Installer les logiciels nécessaires

Les procédures décrites dans cette article ne concernent que les versions Windows des différents logiciels.

- Téléchargez tous les fichiers indiqués ci-dessus dans un répertoire de votre ordinateur, par exemple : c:\temp\thunderbird.

- Exécutez le programme d’installation Thunderbird Setup 1.0.exe.

- Décompressez le contenu de gnupg-w32cli-1.4.0a.zip vers c:\Gnupg.

- Lancez Thunderbird en utilisant le raccourci créé par le programme d’installation.

- Configurez un compte de façon à pouvoir envoyer et recevoir des courriels. Pour de plus amples informations concernant la configuration de nouveaux comptes dans Thunderbird, lisez l’introduction à Thunderbird, qui vous guideras pas à pas.

- Ouvrez le menu « Outils » de Thunderbird, puis sélectionnez « Extensions » :

- Cliquez sur « Installer » :

- Installez les fichiers de l’extension Enigmail :

Choisissez le premier fichier xpi (enigmail) et installez-le, puis répétez l’opération avec le second fichier (enigmail-fr). Acceptez les avertissements lors de l’installation.

- Redémarrez Thunderbird.

Si suite à l’installation de la traduction française d’Enigmail vous observez des problèmes dans l’interface utilisateur de Thunderbird, fermez le, supprimez le fichier XUL.mfl qui se trouve dans votre profile ( c:\Documents and Settings\votre login\Application Data\Thunderbird\Profiles\default\xxxxxxx.slt\ ) et enfin relancez le.

Ouvrez le menu « Enigmail », puis sélectionnez « Préférences ».

Dans l’onglet « Général », assurez-vous que « le chemin d’accès au fichier exécutable GPG » est bien c:\Gnupg\gpg.exe.

- Ouvrez le menu « Outils » puis sélectionnez « Paramètres des comptes » et trouvez la section correspondant au compte de messagerie électronique que vous avez configuré. Cliquez sur la sous-catégorie « Rédaction et envoi » et décochez « Rédiger les messages en HTML ».

Allez dans la sous-catégorie « Sécurité OpenPGP » et choisissez « Activer la support OpenPGP (Enigmail) pour ce compte ».

- Il est maintenant temps de générer vos clefs publique et privée pour votre compte courriel.

Ouvrez le menu « Enigmail » puis sélectionnez « Gestion de clefs OpenPGP » :

Dans la fenêtre qui vient de s’ouvrir, ouvrez le menu « Générer » puis sélectionnez « Nouvelle paire de clefs » :

Effectuez alors les opérations suivantes :

- Sélectionnez le compte courriel pour lequel vous souhaitez générer les clefs privée et publique.

- Saisissez un mot de passe pour protéger la clef privée générée.

- Répétez le mot de passe que vous venez de rentrer.

- Saisissez une description correspondant à vos clefs (par exemple : « Clef pour b****@free.fr »).

- Cliquez sur le bouton « Générer la clef ».

- Si la génération des clefs s’effectue correctement, vous devriez obtenir l’écran de confirmation suivant :

- Il est maintenant temps d’exporter votre clef publique vers un fichier texte, de façon à ce que vous puissiez l’envoyer à d’autres personnes. N’importe quelle personne qui a votre clef publique peut chiffrer et vous envoyer du courrier que vous seul pourrez lire en utilisant votre clef privée.

Ouvrez le menu « Démarrer » dans la barre de tâche, et cliquez sur « Exécuter ». Saisissez command puis cliquez sur « OK ».

L’invite de commande DOS devrait apparaître.

Suivez les instructions suivantes pour exporter votre clef publique :

- Vous devriez être dans un sous-répertoire. Saisissez cd .. et appuyez sur « Entrée ». Répétez l’opération jusqu’à ce que le répertoire courant soit c:\.

- Allez dans le répertoire de GnuPG en rentrant cd Gnupg et appuyez sur « Entrée ».

- Afin de vous assurer que la clef que vous avez généré existe, saisissez : gpg --list-keys et appuyez sur « Entrée ».

- Afin d’exporter votre clef publique dans un fichier texte, saisissez gpg --export -a > ma_clef_publique.asc et appuyez sur « Entrée ».

Vous pouvez également l’exporter vers un fichiers d’extension .txt : gpg --export -a > ma_clef_publique.txt.

- Lancez Notepad ou tout autre éditeur de texte, puis ouvrez la clef publique que vous venez d’exporter. Voila à quoi la mienne ressemble :

Félicitations ! Vous avez terminé l’installation !

4. Envoyer des messages chiffrés depuis un webmail

J’ai un compte sur Gmail, à partir duquel je voudrais envoyer des messages chiffrés à mon compte de messagerie free.fr.

Si vous comptez utiliser GnuPG avec votre compte webmail, vous allez devoir générer une clef publique et une clef privée pour ce compte en utilisant l’invite de commandes DOS. Pour chiffrer et déchiffrer vos messages, vous pouvez utiliser les outils GPGshell qui sont mentionnés un peu plus haut dans cet article.

Remarque importante : Quand vous installez les outils GPGshell, assurez vous de choisir c:\Gnupg comme répertoire où seront stockées les clefs. Si ce n’est pas le cas, certaines valeurs contenues dans la base de registre seront modifiées, et Enigmail ne fonctionnera plus. Pour corriger cela, il vous faudra éditer manuellement la base de registre.

Créer les clefs publique et privée pour votre compte webmail

- Saisissez : gpg --gen-key et appuyez sur « Entrée ».

La commande ci-dessus génère intéractivement une paire de clefs, en vous posant toute sorte de questions telles que le type de clef, etc.

Vous devriez voir ce qui suit après avoir rentré la commande précédente :

gpg (GnuPG) 1.2.4; Copyright (C) 2003 Free Software Foundation, Inc.

This program comes with ABSOLUTELY NO WARRANTY.

This is free software, and you are welcome to redistribute it

under certain conditions. See the file COPYING for details.



Please select what kind of key you want:

  (1) DSA and ElGamal (default)

  (2) DSA (sign only)

  (5) RSA (sign only)

- Choisissez l’option (1)

Your selection? 1

DSA keypair will have 1024 bits.

About to generate a new ELG-E keypair.

minimum keysize is  768 bits

default keysize is 1024 bits

highest suggested keysize is 2048 bits

What keysize do you want? (1024)

- Choisissez 2048 bits comme taille de clef.

Requested keysize is 2048 bits

Please specify how long the key should be valid.

0 = key does not expire

 = key expires in n days

w = key expires in n weeks

m = key expires in n months

y = key expires in n years

Key is valid for? (0)

- Choisissez 0 pour générer des clefs valides pour une durée illimitée. Si vous avez peur de perdre votre paire de clef, ou si vous ne voulez pas l’utiliser, vous devriez mettre une limite de temps raisonnable.

Key is valid for? (0) 0

Key does not expire at all

Is this correct (y/n)?

- Rentrez « y » (pour « yes ») et pressez la touche « Entrée ».

You need a User-ID to identify your key; the software constructs the user id

from Real Name, Comment and Email Address in this form:

   "Heinrich Heine (Der Dichter)"

- Il vous est alors demandé de saisir votre nom, puis de presser la touche « Entrée » :

< Votre nom >

Real name: Sébastien Deleuze

- Rentrez maintenant votre adresse électronique (celle de votre webmail) puis de presser la touche « Entrée » :

Email address: b*****@gmail.com

- Saisissez maintenant une description correspondant aux clefs générées puis validez avec « Entrée » :

Comment: Clef pour mon adresse gmail

You selected this USER-ID:

   "Sébastien Deleuze (Clef pour mon adresse gmail)"



Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?

- Appuyez sur la lettre « O » pour confirmer.

- Vous devez saisir une phrase secrète afin de sécuriser cette clef secrète :

Enter Passphrase : enter a password

Repeat Passphrase : repeat this password

We need to generate a lot of random bytes. It is a good idea to perform

some other action (type on the keyboard, move the mouse, utilize the

disks) during the prime generation; this gives the random number

generator a better chance to gain enough entropy.



public and secret key created and signed.

key marked as ultimately trusted.

Traduction :

Nous avons besoin de générer beaucoup d'octets aléatoires. Il

serait intéressant que vous utilisiez votre ordinateur (le clavier,

la souris, écrire sur le disque dur) pendant la première génération ;

le générateur de nombre aléatoire aura une meilleure entropie.



clefs publique et secrète créées et signées.

clef marqué d'une confiance absolue.

Vos clefs sont maintenant créées, il reste à exporter la clef publique. Pour cela saisissez la commande suivante :

gpg --export -a > ma clef_gmail.txt

Si aucun message d’erreur ne s’affiche, l’exportation de votre clef publique a réussi.

Vérifiez que le fichier a effectivement été créé en saisissant la commande :

dir *.txt.

Le fichier ma clef_gmail.txt devrait apparaitre dans la liste des fichiers.

Chiffrer un message pour l’envoyer à partir du webmail

Je vais maintenant utiliser GPGShell pour chiffrer le message que je veux envoyer de mon compte Gmail vers mon compte free.fr.

Pour se faire, il faut ouvrir le menu « Démarrer », trouver le menu « GPGshell », et choisir le programme « GPGtray » :

Cliquez avec le bouton droit sur le cadenas vert (dans la barre des tâches) et sélectionnez « Voir/Editer Presse-Papiers ».

Une fois la fenêtre GPG affichée, je commence à écrire mon message. Une fois que le message est rédigé, je le chiffre et je le signe. Pour cela, j’ouvre le menu « GnuPG » et je sélectionne « Chiffrer et signer ».

Comme on peut signer un chèque avant de le donner à quelqu’un, vous pouvez signer un courriel avant de l’envoyer. Afin de le signer, vous devez utiliser votre clef privée.

La fenêtre ci-dessous peut paraître complexe au premier abord, mais voici comment la comprendre : Les clefs du dessus sont les clefs publiques, et celles du dessous sont les clefs privées. Je sélectionne d’abord la clef publique de la personne à qui je souhaite envoyer le message :

Je sélectionne ensuite la clef privée de mon compte Gmail, car j’envoie le message à partir de ce compte, et parce que j’ai besoin de ma clef privée pour signer le message :

Quand j’appuie sur « OK », le texte chiffré ressemble à ça :

Je fais ensuite un copier/coller de ce message dans l’interface Web Gmail :

Je clique ensuite sur le bouton « Envoyer », et je récupère ensuite le courrier sur mon compte free.fr avec Thunderbird.

Je saisis le mot de passe qui protège ma clef privée, utilisée pour déchiffrer le message :

Voila à quoi ressemble le message dans Thunderbird une fois qu’il est déchiffré :

5. Envoyer des messages chiffrés avec Thunderbird

Vous pouvez également envoyer un message chiffré avec Thunderbird.

Rédigez normalement votre message dans Thunderbird :

Une fois que c’est fait, cliquez sur le bouton OpenPGP de la barre d’outils et cochez les cases « Signer le message » et « Chiffrer le message » :

Si le destinataire utilise un webmail, il pourra déchiffrer le message à l’aide GPGtray par exemple.

Conclusion

J’espère que cet article vous a donné une bonne vue d’ensemble sur l’utilisation de Mozilla Thunderbird, GnuPG et GPGtray pour envoyer et recevoir des messages chiffrés.

Articles dans la même rubrique