Internet: Le Chiffrement du Courriel
3- Méthode de chiffrement du courrier électronique
- Certificats personnels
- Gnu Privacy Guard
- Thunderbird + enigmail vs Evolution + SeaHorse

Dans les articles précédents nous avons vu quel est le niveau normal de confidentialité sur Internet, celui-ci ayant été qualifié de «niveau carte-postale» puis nous avons eu un aperçu des méthodes de chiffrement habituelles offertes aux internautes et dépendant de l’offre de service des sites web.
Dans ce troisième article nous verrons des méthodes de confidentialité par chiffrement décidées par l’utilisateur en utilisant les moyens Open Source mis à sa disposition. Cet article porte sur les méthodes pratiques de chiffrement du courrier électronique pour passer par la suite, dans les articles suivants de cette série, à d’autres applications et enfin à des méthode de chiffrement de l’ensemble des connexions Internet.
a) Les Certificats personnels
- Les certificats: ce qu’ils sont.
Un certificat est une fichier d’identité numérique permettant d’identifier une entité.
Le certificat numérique est un lien entre une entité physique et une entité numérique. Pour être valide ce certificat doit être généré par une autorité de certification ou «tiers de confiance» qui atteste du lien entre l’identité physique et l’entité numérique. La norme utilisée est en général la X.509.
- Obtenir un certificat personnel:
………..![]()
Il est possible d’obtenir gratuitement un certificat personnel pour le courrier électronique chez Thawte et StartSSL , ce certificat est valable pour une année et est importé d’abord dans le navigateur et doit être exporté depuis les options de sécurité du navigateur pour son utilisation dans votre application de courriel.
- Les certificats: utilisations pratiques et limites
Les certificats personnels de courriel peuvent être utilisés pour signer ou chiffrer / déchiffrer vos courriers. La signature numérique attachée à ceux-ci est en quelque sorte un authentification minimale de votre identité numérique… Il est possible de bonifier le degré de confiance de ce certificat au moyen de signatures obtenues de vos correspondants qui reconnaissent la validité de votre authentification en créant un Réseau de Confiance (Web of Trust)…
L’avantage principal d’un tel certificat numérique est d’être issu d’une autorité de certification reconnue. Cependant ces certificats numériques personnels sont limités à l’utilisation du courrier électronique et, éventuellement, du navigateur, ont une durée qui ne dépend pas de vous, ne permettent pas de choisir l’algorithme de chiffrement ni la longueur de la clé générée. Nous verrons plus loin une méthode de chiffrement reposant sur l’utilisation d’un logiciel à source ouverte qui offre plus de flexibilité d’utilisation: GnuPG.
b) Le chiffrement asymétrique ou “à clé publique”…
- Paire de clefs: clé privée et clé publique
Les détails des procédés de chiffrement et l’histoire de ceux-ci dépassent le cadre de cet article et ne seront pas abordés ici. Cependant je vous propose une présentation élémentaire de ce que l’on nomme «chiffrement asymétrique».
Exemple simple. Alice veut envoyer à Bob un message secret que seul Bob pourra lire. Alice met le message dans un coffre et le verrouille avec la clé spécifique à la serrure de ce coffre.

Alice doit donc envoyer à Bob le coffre contenant le message secret et la clé ou une copie exacte de celle-ci. Comme toutes les clés (du “monde physique”) celle-ci permet deux choses: verrouiller et déverrouiller ce coffre…
Alice peut envoyer à Bob le coffre et la clé en même temps ou à deux moment différent. Une fois que Bon a reçu le coffre et la clé, il peut déverrouiller le coffre et lire le message secret qui lui est destiné.
Dans le cas du chiffrement, l’utilisation d’une clé ou de sa copie pour chiffrer et déchiffrer se nomme «chiffrement symétrique». Vous avez sans doute relevé quelques inconvénients de la méthode présentée ici:
Quelque soit la méthode et le moment utilisé par Alice pour envoyer à Bob la clé ou le coffre, au moins l’un de ceux-ci peut être interceptée par un tiers, mettons Oscar, Eve ou Robert. Si la clé ou le coffre est interceptée alors Bob ne pourra pas ouvrir le coffre, si le coffre et la clé sont interceptés par un tiers alors Bob ne reçoit pas le message qui lui est destiné et Alice perd le secret de son message et au moins un tiers a accès à ce message…
Cette histoire pitoyable est celle de toutes les méthodes de chiffrement jusqu’à l’invention récente du «chiffrement asymétrique» par les cryptologues contemporains.
Le «chiffrement asymétrique» permet de séparer – pour les “clefs numériques” – les deux fonctions des clés “physiques” : une clé ou sa copie exacte ne servant qu’à “verrouiller le coffre” et l’autre ne servant qu’à “déverrouiller le coffre”.
La clé ne servant qu’à verrouiller se nomme «clé publique» tandis que la clé ne servant qu’à déverrouiller se nomme «clé privée».

Reprenons l’exemple d’Alice qui veut transmettre un message secret à Bob mais cette fois-ci en utilisant un trousseau ou paire de clefs “asymétrique” (privée + publique):
Alice place le message secret dans un coffre ne pouvant être verrouillé que par la «clé publique» de Bob ou sa copie exacte.
Alice envoie à Bob le message ainsi verrouillé avec la clé publique du destinataire: celle de Bob.
Bob reçoit le message d’Alice et utilise sa «clé privée» pour déverrouiller le coffre et lire le message d’Alice.
Alice et Bob n’ont plus besoin de tout cacher pour empêcher une interception du message secret par un tiers.
Par exemple Bob ne cache que sa clé privée et ne la transmet jamais si bien qu’elle a peu de chance d’être interceptée par un tiers.
Par contre il annonce partout sa «clé publique» (celle qui ne fait que verrouiller) si bien que quiconque veut lui faire parvenir un message secret peut utiliser cette clé publique ou sa copie exacte.
Bob veut-il répondre au message secret d’Alice par un autre message tout aussi secret?
Tout ce que Bob doit faire c’est d’utiliser une de copies de la clé publique de sa destinataire: Alice, de verrouiller ou chiffrer son message avec la clé publique d’Alice et de lui faire parvenir. Et à son tour Alice utilise sa clé privée pour lire (déverrouiller, déchiffre) son message secret.
C’est ce qui se nomme le «chiffrement asymétrique» ou le «chiffrement à clé publique».

Gpg ou GnuPG (Gnu Privacy Guard) est le logiciel à source ouverte permettant l’utilisation de chiffrement/déchiffrement (fonction de confidentialité) et de signature numérique (fonction d’authentification) au moyen du chiffrement asymétrique.
- Aperçu de l’utilisation des commandes de gpg (GnuPG) version 1.4.9
Algorithmes supportés:
Clé publique: RSA, RSA-E, RSA-S, ELG-E, DSA
Chiffrement: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hachage: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Non-compressé, ZIP, ZLIB, BZIP2
Syntaxe: gpg {espace}[{-- double tiret}options]{espace}[données]
Exemples:
Version de Gpg: gpg –version
Création d’une nouvelle paire de clefs: gpg –gen-key
Informations sur la paire de clefs: gpg –list-keys
Générer un certificat de révocation: gpg –gen-revoke
Exporter les clefs publiques: gpg –send-keys –keyserver hkp_server_URI key_ID
Importer une clé publique: gpg –recv-keys –keyserver hkp_server_URI key_ID
où: hkp_server_URI= l’URI du serveur de clés et key_ID= l’identifiant de la clé
tels que: http://pgp.mit.edu/ et 0xD771CF94
Le format du nom de serveur est du type schéma_URN:[//]Nom du serveur:port]
où schéma_URN peut être http, hkp, ldap, mailto …
Voir URI, URL, URN: précisions in Le chiffrement sur Internet 1
Pour des détails supplémentaires: gpg –help ou man gpg
- Interfaces graphiques de GnuPG
Des interfaces graphiques permettent l’utilisation des principales commandes de GnuPG mais dans certains cas particuliers vous devrez passer par un terminal pour exécuter une commande du shell, Bash sous Linux et Mac os.
……
………………………….
c) Thunderbird + enigmail vs Evolution + SeaHorse (Ubuntu)
- Thunderbird et l’extension enigmail
Dans Thunderbird l’accès au générateur de paire de clefs d’enigmail se fait ainsi:
OpenPGP / gestion des clefs / générer

D’abord il faut
[1] sélectionner le compte de courriel pour lequel la paire de clefs sera générée,
[2] entrer la phrase secrète ou phrase de passe qui doit être du même type que celles indiquées dans l’article L’art du mot de passe 1 de 3, III Méthode ccp – 1, notez que la casse des caractères et les espaces sont significatifs, vous pouvez ajouter un commentaire optionnel.
Notez que l‘option “Pas de phrase secrète” ne doit pas être utilisée sauf pour des tests.
Un des principes de la sécurité des systèmes d’information est la protection par couches (layered security) et le maillon faible d’un tel système est le comportement de l’utilisateur. N’êtes-vous pas d’accord avec moi pour dire que ce n’est pas une bonne idée de compromettre l’utilisation sécuritaire de GnuPG en négligeant la première de ces couches de protection?
[3] il faut ensuite choisir la période de validité de votre paire de clefs: sur ce point je suggère fortement de ne pas choisir l’option de «non-expiration» et de limiter la validité de la paire de clefs à une période allant d’un mois à un an au maximum.
Ceci pour vous assurer que les conséquences d’une paire de clefs compromise, d’une clé privée perdue (“crash” du disque dur de votre ordinateur personnel par exemple ) ou encore de la perte du certificat de révocation – quelques cas vous empêchant d’invalider cette paire de clefs – soient limitées dans le temps.
Une clé publique sans expiration et devenue inutilisable serait alors annoncée en permanence sur les serveurs HKP/LDAP sans possibilité de la révoquer et, utilisée par un correspondant, elle ne servirait qu’à vous transmettre des messages désormais indéchiffrables… Vaut mieux prévenir les mauvaises communications et les “prises de tête” résultantes n’est-ce pas?
Notez cependant que cela implique que les messages chiffrés reçus ne pourront être déchiffrés que durant la période de validité de ce trousseau de clefs. Si un tel message doit être conservé pour une période au-delà de le limite de validité de la paire ou trousseau de clefs alors il devra être déchiffré et conservé dans cet état ou alors chiffré localement par exemple dans un volume chiffré avec TrueCrypt/EasyCrypt (que nous verrons dans un prochain article…)

[4] Et avant de procéder vous pouvez aussi choisir la taille de la clé ainsi que l’algorithme de chiffrement. [Tailles: 1024, 2048, 4096 - Algorithmes: RSA ou DSA+El Gamal ]. Par défaut la longueur de la paire de clefs est de 1024 bits et l’algorithme RSA.
Dans l’exemple donné nous avons une clé de 4096 bits avec l’algorithme DSA & El Gamal…

[5] La génération de la paire de clefs vous sera annoncée lorsque celle-ci sera terminée:

[6] Vous aurez ensuite la possibilité de créer un certificat de révocation ce que je vous suggère fortement car il vous permet de révoquer la validité de la paire de clé au cas où celle-ci serait compromise (vol de la clé privée par exemple ou perte de cette clé).
Ai-je besoin de préciser que ce certificat de révocation doit être sauvegardé par exemple sur une clé USB et placée dans un lieu sûr. (Juste au cas…
)

Voici comment se présente ce certificat de révocation sous Ubuntu Linux dans l’environnement Gnome

Voici les paramètres de la paire de clefs générée:

[7] Il est préférable d’exporter la clé publique sur des serveurs HKP ou LDAP tel que, par exemple, celui du Massachusetts Institute of Technology car cela permet de vérifier le statut ou la validité de cette clé publique de chiffrement en évitant d’utiliser une clé invalide…

[8] Et enfin vous pouvez aussi annoncer cette clé publique dans votre signature de courriel, sur les forums, les Groupes de Discussion, ou sur votre profil public tel que le Profil Google.
Vos correspondants désirant communiquer confidentiellement avec vous n’auront qu’à utiliser votre clé publique pour chiffrer les courriels vous étant destinés et ceux-ci seront déchiffrés par enigmail lors de la réception.
Notez que la confidentialité porte dans ce cas sur le contenu de la communication et non sur le fait que A communique avec B… Il serait possible pour un tiers de connaître le fait que A a communiqué avec B tout en ignorant ce qui a été communiqué…
Nota Bene: Autrement dit si c’est confidentiel, ce n’est pas nécessairement anonyme!
Ces deux notions ne doivent en aucun cas être confondues:
La confidentialité porte sur le contenu des communications entre A et B et non sur leur identité ni sur le fait qu’il y a eu communication.
L’anonymat porte sur l’identité de A et B mais pas nécessairement sur le contenu de leurs communications. En attendant je vous invite à tenter de résoudre cette énigme amusante:
Question: Comment peut-on communiquer à la fois anonymement et confidentiellement?

L’utilisation est fort simple: pour envoyer une courriel chiffré à votre correspondant vous devez simplement sélectionner sa clé publique et le contenu sera automatiquement chiffré par enigmail en faisant appel aux fonctions de GnuPG. Votre correspondant sera alors en mesure de lire en clair le message ainsi chiffré avec sa clé publique en utilisant sa clé privée correspondante.
Cette clé publique de votre correspondant est annoncée sur les serveurs HKP/LDAP vous permettant d’importer localement cette clé pour lui envoyer un message chiffré.
L’opération inverse est tout aussi facile: un courriel reçu et chiffré avec votre clé publique sera déchiffré par enigmail avec votre clé privée. Je parle bien entendu de la clé privée faisant partie du trousseau de clefs ou si vous voulez de la clé privée correspondant à la clé publique et pour la période de validité de cette paire ou trousseau de clefs!
Notez que les courriels chiffrés doivent être en format texte seulement et non en HTML …
De plus enigmail vous permet d’utiliser votre trousseau de clefs pour ajouter une signature numérique à vos courriels même non-chiffrés – ce que je vous encourage à faire systématiquement – car cela permet d’authentifier la provenance du courriel en question. Une telle signature utilisée systématiquement assure que personne n’utilisera votre identité pour envoyer des courriels usurpant votre identité…
Exemple de vérification de signature:
![]()
Exemple de sélection de l’option de chiffrement avec la clé publique du destinataire et combinée avec l’option de signature avec la clé publique de l’expéditeur. Il suffit de posséder la clé publique du destinataire par exemple via un serveur HKP… Le chiffrement est fait avec sa clé publique et la signature est (évidemment!) faite avec votre clé publique et non la sienne…

Voici maintenant un exemple de message chiffré:

Notez que le message a été chiffré par l’expéditeur avec la clé publique du destinataire et peut être déchiffrée par le destinataire avec sa clé privée correspondant au trousseau de clefs. Si la clé privée a été perdue ou si la paire de clé est expirée ou révoquée, alors ce message ne pourra jamais plus être déchiffré…
Digression: dans un article antérieur portant sur l’effacement sécurisé des données , j’avais présenté quelques solutions permettant de détruire sécuritairement des données avec des logiciels utilisant des techniques de ré-écriture du disque dur …
Si vous avez bien suivi jusqu’ici, nous venons tout juste de découvrir une autre méthode pour interdire à tout jamais à quiconque de lire ces données vouées au néant: les chiffrer avec GnuPG, ensuite supprimer sécuritairement la clé privée selon l’une des méthodes vues dans l’article mentionné (par exemple Gutmann 35 passes de ré-écriture) puis de supprimer le contenu ainsi chiffré de façon non-sécuritaire. Même dans ce cas, les données à détruire seraient irrémédiablement illisibles à quiconque. Elles pourraient bien être récupérables mais cela serait inutile car elles seraient sous une forme chiffrée sans possibilité ni de les déchiffrer (la clé privée ayant été sécuritairement détruite) ni de les casser par cryptanalyse (à moins de croire à la science-fiction), le chiffrement en question étant, jusqu’à nouvel ordre, incassable…
Bref
- La vérification de la signature numérique d’un message reçu se fait en consultant le statut de la clé publique du destinataire sur l’un des serveurs HKP/LDAP sur lesquels la clé publique a été exportée, enigmail permettant de réaliser facilement cette vérification.
- L’utilisation de la signature d’un message à expédier se fait en vérifiant localement le statut de votre trousseau de clé.
- Le déchiffrement d’un message chiffré avec votre clé publique se fait localement avec votre clé privée correspondante par la vérification qu’enigmail fait du statut de votre trousseau ou paire de clefs.
- Le chiffrement d’un message à expédier se fait en vérifiant la validité de la clé publique de votre destinataire sur l’un des serveurs HKP/LDAP sur laquelle sa clé publique est annoncée.
En somme, l’extension enigmail de Thunderbird permet d’utiliser facilement les fonctions de chiffrement/déchiffrement de GnuPG incluant la génération du trousseau de clefs, la génération du certificat de révocation et son utilisation le cas échéant, la signature numérique des courriers ainsi que toutes la plupart des fonctions reliées à l’utilisation de GnuPG.
Truc: pour essayer et pratiquer l’utilisation d’enigmail, il vous suffit d’avoir deux comptes de courriels, de générer un trousseau de clé pour chacun de ces comptes et de vous envoyer des messages chiffrés, signés ou les deux. Quand vous vous sentirez parfaitement à l’aise avec l’utilisation des fonctions d’enigmail, il vous sera alors plus facile de les utiliser avec vos correspondants.
Passons maintenant à des applications alternatives: la messagerie Evolution et l’utilitaire SeaHorse. Notez que ces derniers, contrairement à «Tb + em» ne sont disponibles que sur Linux…
Dans le cas de la messagerie par défaut d’Ubuntu Linux, Evolution, il est possible d’utiliser un certificat numérique ou une clé Gpg mais la gestion des clés est faite via une application externe à Evolution: SeaHorse.
L’un des avantages de SeaHorse est qu’il permet la gestion des clefs de shell sécurisé, de courriel, d’applications telle que la messagerie instantanée Psi (Xmpp/Jabber) et de mots de passe pour les applications et le réseau.
Pour accéder à SeaHorse: en ligne de commande: seahorse ou via le bureau Gnome d’Ubuntu:
Applications / Accessoires / Mots de passe et clé de chiffrement :

La création d’une paire de clefs Gpg (ou “Pgp”) commence par le choix de cette option dans SeaHorse:

Puis par l’entrée d’informations analogues à celles déjà vues avec enigmail:

et enfin l’ajout de l’identifiant de la paire de clefs obtenu dans les paramètres du compte de courriel dans Evolution: Édition / Préférences / bouton «Compte de Messagerie» / sélectionnez le compte dans la liste puis «double-clic» pour l’éditer / onglet «Sécurité»:

Notez que
SeaHorse ne permet pas d’accéder à la fonction de création d’un certificat de révocation de la paire de clefs qui doit être fait via cette commande GnuPG:
gpg –gen-revoke
Les développeurs de la messagerie Evolution ne prévoient pas intégrer un équivalent d’enigmail dans Evolution ce qui est déplorable AMHA…
cf.: Evolution FAQ: «Managing GPG/PGP is beyond the scope of Evolution.»
Dans les prochains articles de cette série nous verrons comment chiffrer la messagerie instantanée Psi, un client Xmpp/Jabber, le chiffrement du clavardage avec Pidgin utilisé avec sa fonction de client SILC, le chiffrement des échanges P2P avec Vuze, un client BitTorrent, le chiffrement des données locales avec TrueCrypt et EasyCrypt, l’utilisation du réseau Tor – The onion router -, le réseau privé virtuel OpenVPN et enfin le projet Psiphon.
À bientôt.
