logo article

Comment signer ou chiffrer son courrier électronique,
c'est facile et gratuit.

Publié le 22/07/2005 - Mis à jour le 27/10/2013 par

Archive

Cet article n'est plus mis à jour et est conservé comme archive

Internet permet à des centaines de millions d'ordinateurs de communiquer facilement presque gratuitement. C'est une grande force, mais c'est aussi une grande faiblesse. Des utilisateurs toujours plus nombreux profitent de cette "gratuité" pour inonder le monde de Spams. D'autres utilisent cette facilité pour intercepter les messages et utiliser leur contenu. Il faut savoir qu'un message n'est rien d'autre qu'un simple fichier texte que vous pouvez lire par NotePad. Avec un outil gratuit comme Wireshark, vous visualisez en clair tout ce qui circule sur le réseau, par exemple messages et login/mot de passe de votre boite aux lettres POP. En attendant que des solutions plus sûres se mettent en place, il est facile d'introduire une sécurité maximum dans ses échanges sur Internet. Une seule famille de technologies s'est imposée dans ce domaine. Elle est utilisée par toutes les banques pour sécuriser les transactions ou par le Ministère des Finances pour sécuriser votre déclaration d'impôts en ligne. Ceux qui sont intéressés par les principes de fonctionnement peuvent lire ce que j'avais écrit en 1999 sur la sécurité et la vie privée sur Internet. La technologie est restée la même mais elle est devenue plus simple d'emploi.

Petit bréviaire de la sécurité

La sécurité des échanges de données doit fournir 4 garanties:

  • être sûr de son interlocuteur. C'est l'authentification réciproque des correspondants.
  • être sûr que les données transmises n'ont pas été modifiées accidentellement ou intentionnellement. C'est l'intégrité des données.
  • éviter que les données soient lues par des systèmes ou des personnes non autorisées. C'est la confidentialité.
  • éviter la contestation par l'émetteur de l'envoi des données. C'est la signature, appelée aussi non-répudiation.

Il est indispensable de protéger physiquement l'accès au matériel pour assurer la sécurité des données. C'est possible dans une pièce ou un immeuble. C'est impossible dès que le réseau est physiquement étendu. Il faut donc être capable de protéger des données qui transitent sur des réseaux publics avec ou sans fil. Un seul système s'est imposé sur l'Internet : c'est la PKI (Public Key Infrastructure) ou Infrastructure à clés publiques. Chaque utilisateur ou machine du réseau Internet est identifié par un certificat numérique X509 . Ce certificat comporte 2 clés, une clé "privée" ou secrète et une clé "publique". La clé privée est détenue par l'utilisateur. Elle est habituellement protégée par un mot de passe, quelquefois par une carte à puce ou par un système biométrique. La clé publique est accessible à tous. On peut la publier sur Internet ou l'envoyer avec les messages. Le fait de connaître cette clé n'aide pas à trouver l'autre.

Pour comprendre le fonctionnement sans entrer dans des théories mathématiques compliquées, il suffit de se souvenir que ce qui est chiffré par une clé ne peut être déchiffré que par l'autre et inversement.

La sécurité du système est fondée sur le temps de calcul considérable nécessaire aux machines les plus puissantes pour "casser" les clés. Les clés habituellement utilisées comportent 1024 ou 2048 bits ce qui en principe en garantit l'inviolabilité, tout au moins dans l'état actuel des connaissances mathématiques.

Guide pratique pour signer ses messages

A noter que la carte nationale d'identité belge contient un cerficat numérique X509 que vous pouvez utiliser pour signer vos messages en utilisant un petit lecteur de carte USB 

  • Il faut un logiciel sur sa machine comme Thunderbird configuré en POP ou en IMAP. Tous les serveurs standard Internet acceptent les messages signés ou chiffrés. Pour ceux qui utilisent Gmail, il existe une extension sous Firefox, Penango qui permet de signer et de chiffrer avec quelques restrictions. Je vous suggère cependant de vous familiariser avec un logiciel sur votre poste avnat d'utiliser cette extension.
  • Il faut un certificat qui atteste de votre identité. Il existe au moins trois solutions gratuites pour obtenir un certificat : StartSSL, CAcert ou Comodo.
    1. Les solutions StartSSL et Comodo présentent l'avantage d'avoir une autorité de certification (celle qui garantit la validité de votre certificat) qui existe déjà dans tous les navigateurs. Vos correspondants n'ont donc pas de manipulation particulière à effectuer. En revanche, il faut l'installer celle de Cacert dans le navigateur. Ce n'est pas compliqué, c'est simplement une manipulation supplémentaire.
    2. L'avantage de la solution CAcert est de fournir aussi des certificats pour les serveurs. Il ne faut pas oublier de télécharger le certificat racine [root certificate].

    Un certificat peut contenir de nombreuses informations. Avec les 3 systèmes gratuits ci-dessus, le certificat garantira uniquement votre adresse de messagerie. Il faut donc impérativement choisir l'adresse sous laquelle vous enverrez des messages signés ou chiffrés. Si vous utilisez plusieurs adresses de messagerie il faut un certificat par adresse.

    Après avoir obtenu votre certificat, je vous suggère d'aller dans le navigateur qui a servi à obtenir le certificat, soit Internet Explorer (Outils, Options Internet..., Contenu, Certificats), soit Firefox (outils, options..., avancé, gérer les certificats) ou Chrome. Exportez votre certificat avec sa clé privée pour le sauvegarder dans un lieu sûr, votre clé USB par exemple. En effet, vous aurez sans doute besoin de le réinstaller dans un autre navigateur ou sur une autre machine.

  • Dernière étape, installer le certificat dans le logiciel de messagerie. Pour Thunderbird, vérifier que le certificat est dans Firefox, puis aller à Outils, paramètres des comptes.., choisir sécurité dans le compte qui correspond à l'adresse du certificat, choisir  sélectionner un certificat pour signature et chiffrement. Pour signer un message, aller dans Options, sécurité, signer numériquement. Vous trouverez une procédure très détaillée ici (en anglais).

Une bonne pratique consiste à signer par défaut tous les messages émis. Vos interlocuteurs pourront vérifier automatiquement si le message a été modifé ou si la signature est absente.

Comment chiffrer les messages

Cette opération est un peu plus complexe que la signature car il faut la clé publique du destinataire.

Un message est signé avec la clé privée du signataire. Sa clé publique est transmise avec le message. Les destinataires peuvent vérifier facilement que la signature est valide. En revanche, pour chiffrer un message, il faut utiliser la clé publique du ou des destinataires. Seul le destinataire avec sa clé privée saura le déchiffrer. Ce destinataire doit avoir un certificat et doit vous envoyer au préalable sa clé publique par un message signé par exemple. Si la clé publique du destinataire ne s'est pas installée automatiquement dans votre annuaire local, il faut le faire manuellement. Ensuite, il suffit de choisir l'option chiffrement pour le message: tout est automatique au départ et à l'arrivée. Attention, n'importe qui peut envoyer des messages chiffrés avec la clé publique du destinataire. Pour être sûr de l'émetteur, il faut chiffrer ET signer. Avec des clés de 1024 ou 2048 bits, personne d'autre que les destinataires, même pas la C.I.A. ne sauront déchiffrer ces messages.

Moyens complémentaires pour améliorer la sécurité de votre messagerie

J'ai indiqué au début que tout circulait en clair sur le réseau, y compris le login/mot de passe de votre boite aux lettres. Si votre serveur de messagerie l'accepte (il suffit d'essayer), utilisez dans les paramètres de connexion à votre serveur POP ou IMAP, l'option connexion sécurisée SSL. Le trafic entre votre PC et le serveur sera chiffré avec le certificat du serveur. C'est indispensable si vous lisez vos messages en Wi-Fi  Vos messages resteront en clair sur le serveur mais votre login/password ou le contenu des messages ne pourra pas être intercepté.

Si vous lisez vos messages par un navigateur, connectez vous en https au lieu de http. Le trafic entre votre PC et le serveur sera chiffré avec le certificat du serveur.

Gmail permet à la fois d'utiliser https pour la lecture par le web  et la connexion SSL sécurisée pour la lecture en POP.

Conclusion

Ce système fournit bien les 4 garanties de sécurité que j'indiquais au début de cet article.

  • L'authentification de l'adresse de messagerie des correspondants grâce au certificat. En effet, la délivrance d'un certificat implique le contrôle de l'adresse de messagerie.
  • L'intégrité des données obtenue par la signature. La signature est appliquée sur un "hash code" du message. Toute modification du message invalide la signature.
  • La confidentialité obtenue en chiffrant le message avec la clé publique du destinataire. Seul le possesseur de la clé privée correspondante pourra décoder le message.
  • La non répudiation garantie par la signature. Seul le possesseur de la clé privée peut fabriquer une signature valide.

J'ai volontairement simplifié la description de ce système en me limitant à ce qui est utile pour une utilisation normale. Ce système très simple dans son principe, se complique rapidement pour traiter la durée de validité des clés, les destinataires multiples, pour être sûr que les clés ne sont pas modifiées, etc... Cependant un exposé sur le sujet sortirait du cadre de ces articles.

Un dernier conseil. Ce système permet d'invalider une clé si on pense que sa clé privée a été compromise ou a été perdue. Il faut aller sur le site web qui a délivré la clé, la "révoquer" puis en demander une autre.

Le certificat X509

certificat

Le certificat X509 est un petit bloc de données (de l'ordre de 2Ko) qui comporte la clé publique, des informations sur le détenteur du certificat telles que son nom, son adresse électronique, son titre, son numéro de téléphone, le nom de l'entité qui a délivrée ce certificat, etc. et enfin la signature numérique des données ci-dessus par la personne ou l'entité prenant en charge la création de ce certificat. Tout le monde peut créer des certificats. Il existe un logiciel gratuit pour le faire OpenSSL. La valeur d'un certificat est proportionnelle à la confiance que l'on accorde à  l'autorité qui a autorisé ce certificat. La signature de l'autorité de certification garantit que les informations du certificat comme la clé publique ou l'adresse de messagerie n'ont pas été modifiées. Pour effectuer cette vérification, il faut la clé publique de l'autorité de certification (clé racine ou root key) que l'on peut télécharger sur le site web si elle ne se trouve pas déjà dans les certificats intégrés en standard dans les navigateurs. Ce site web comporte souvent la liste des certificats signé et non expirés dite liste de révocation ou CRL qui est automatiquement consultée lors de la vérification de la validité d'un certificat. Vous pouvez télécharger celle de CAcert.org ici. Pour sauvegarder un certificat, il faut ne pas oublier d'exporter aussi la clé privée qui n'est habituellement pas transmise avec le certificat. Cette clé privée doit être protégée par un mot de passe pour éviter un emploi frauduleux.

Ajoutez vos commentaires ci-après ou les envoyer à Jean-Paul Figer
Mots clés


Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.