Envoyer des courriers chiffrés avec S/MIME (théorie) - [Le calepin du geek]
Le calepin du geek
Geek : Personne s’intéressant à des domaines pointus, avec une once de créativité.

Ceci est un site perso, dans le pur esprit web 1.0, compilant des notes diverses sur des thèmes d’intérêt. (Informatique, programmation, voyage à vélo, réflexions)

Envoyer des courriers chiffrés avec S/MIME (théorie)

Ce long article expliquer l’intérêt de se protéger son courriel des regard indiscrets, et quelques mots théoriques sur le fonctionnement de S/MIME. On peut aussi juste lire l’article pratique sur S/MIME.

Article mis en ligne le 21 août 2013
par aldoniel
Imprimer cet article logo imprimer

Voir aussi Envoyer des courriers chiffrés avec S/MIME en pratique

 Pourquoi

 Big brother is watching you !

  • Nul n’ignore plus depuis l’affaire PRISM/Snowden [1] que tous nos courriels sont lus par le gouvernement américain, qu’il existe des logiciels capables de synthétiser ± toutes les informations saisies par une personne sur internet (correspondance, mots saisis dans les moteurs de recherche, etc.) [2] [3]
  • Les contrats de google, yahoo, etc. (que personne ne lit), expliquent clairement que tous les courriels sont par ailleurs lus par des machines afin de déduire les profils des utilisateurs. Ces profils et ces informations lues sont ensuite revendus à des compagnies publicitaires par exemple (ou, depuis les révélations récentes aussi aux agences gouvernementales...).
    • (J’espère que personne ne croyait que les webmails gratuits étaient gratuits par philanthropie)

 Et le mec qui boit à café à côté aussi

Non, le vol d’information n’est pas limité au gouvernement, ou aux hackers magiciens de la matrice.

Votre petit frère qui a 10 et pas toutes ses dents a peut être les connaissances techniques (parfois quasi nulles) pour faire de même.

Genre, en 2013, mon webmail n’utilise pas de chiffrage... ce qui signifie que sur un hotspot public (qui ne sont jamais chiffrés), n’importe qui peut lire tout ce qui passe par la connexion, avec un PC normal.

En 2010, avec un plugin dans firefox (Firesheep), on prenait le contrôle automatiquement des sessions ouvertes sur Amazon, Google, Windows Live, Facebook, Twitter... Accessible à monsieur tout le monde, ça affichait la liste des sessions sur les PC autour, et il n’y avait qu’à cliquer dessus pour les contrôler pleinement.

 Les standards d’internet n’ont pas été conçu pour la sécurité, mais le partage

Un mail est une carte postale

  • En France, le secret de la correspondance est garanti par la loi [4].
    • Malheureusement, les standards d’internet ont été conçus par une bande de chercheurs idéalistes et sans doute trop bons, croyant au libre partage coopératif des informations et travaux.
    • Ceux-ci ne se doutaient donc sans doute pas qu’internet serait rapidement transformé en vaste réseau de surveillance des individus à des fins politiques et commerciales.
  • Le système de courriel standard (MIME) n’offre aucun système de sécurité. Les informations transitent en clair. Comme une carte postale.

 Ah oui, mais je n’ai rien a cacher moi !

  • Tant mieux pour vous... mais en êtes vous vraiment sûr ?
  • Même le gouvernement américain se fait régulièrement pirater, et il est loin d’être le seul à collecter des données.
  • Mettons qu’un groupe de hackers vole les bases de données sur vous et demande une rançon pour ne pas les publier (avec tous vos mots clés, votre correspondance, les anciens échanges avec vos maîtresses envoyés à votre femme, humm ?)
  • Improbable ? Il existe déjà des groupes dont le "business" est le piratage de masse de codes de cartes de crédits ou de comptes mail. Ils ne s’en servent pas et sont difficilement arrêtés. Ils les revendent ensuite à des groupuscules qui les exploitent (et sont plus souvent arrêtés...).

 Pourquoi S/MIME et non pas PGP/OpenPGP/Enigmail

  • Déjà, en vrai, le mail chiffré c’est un truc de geek et de mecs du gouvernement et des sociétés/universités (qui ont par nature des soucis d’espionnage industriel)
  • Donc, si en plus c’est le bagne à déployer, même les geeks laisseront tomber.
  • S/MIME, chez moi ça s’installe en 2 clics (plus rapide qu’un achat amazon) et c’est d’usage transparent avec des logiciels standard déjà en place voir installés par défaut. C’est pareil sur mac et linux.
  • PGP/OpenPGP/Enigmail c’est long long à installer. Les interfaces sont ± nulles. C’est l’horreur en intercompatibilité entre les version, les OS, les clients mails, les plugins de clients mails. J’ai pas que ça à faire que d’attendre qu’enigmail soit mis à jour parce que par hasard, la mise à jour automatique de mon navigateur à cassé le plugin.
    • Je parle même pas de déployer ce fatras sur plusieurs PC sous différents OS chez soi.
  • S/MIME, ça se copie d’un PC à un Mac ou un autre PC/OS en 1mn montre en main.
  • S/MIME est complétement mature en terme d’implémentation logicielle (sauf sur les webmails courants parce que ça nuit à leur modèle de business)

 Comment (théorie)

 À quoi sert S/MIME en bref

  • À signer un courriel.
  • À chiffrer un courriel

Signer un courriel ?
Ce n’est intuitif pour personne, mais lorsqu’on reçoit un courriel de madame.michu@orange.fr, ou de president.hollande@france.gouv, rien ne prouve que :

  1. Le courriel reçu vienne réellement de president.hollande@france.gouv
  2. Le courriel ait été écrit sur le PC du président.

En fait, n’importe qui peut envoyer un courriel semblant provenir de ces adresses... Impossible pensez-vous, une sécurité doit empêcher ça, ou bien il faut être un grand pirate.

Non. Il n’y a presque aucune sécurité, et c’est intellectuellement accessible à un gamin de 12 ans pas trop attardé. Je le sais, je l’ai fait vers cet âge.

En gros, il suffit de se connecter à un serveur, de lui dire, HELO je veux envoyer un mail de mon adresse president.hollande@france.gouv à madame.michu@orange.fr, et le serveur envoie, sans trop vérifier...

C’est expliqué là How to Forge Email. Y’a même une vidéo...

Toujours pas convaincu ? Il y a des démos en ligne : deadfake - free, easy and anonymous fake email service. En 2 s., envoyez un courriel semblant émaner du président pour épater vos amis...

 La signature S/MIME

Sémantique : Signer, ce n’est pas écrire son nom à la fin du texte. C’est un procédé mathématique qui garantit que

  • le message n’a pas été modifié depuis sa rédaction
  • que vous en êtes bien l’auteur (ou tout du moins que le mail vient de quelqu’un qui a le contrôle de votre PC...)

Elle repose sur des technique de chiffrage [5] qui offrent la garantie que le message a été écrit par quelqu’un possédant le certificat S/MIME à votre nom (vous), et que le message n’a pas été modifié entre temps.

(D’un point de vue technique, il n’existe aucune protection empêchant un courriel d’être modifié entre l’émetteur et le destinataire (ça arrive d’ailleurs sans cesse : cf ces lignes de bas de page du type : "Analysé par l’antivirus X...").

 Le chiffrage

Une technique qui garantit que seul le destinataire peut lire le message.

 Fiabilité

À priori, S/MIME est fiable et ne semble pas avoir été cassé actuellement.

 Théorie de S/MIME

Prérequis : comprendre clé privée et publique, chiffrage symétrique et asymétrique

Cryptographie asymétrique - Wikipédia

Cryptographie symétrique - Wikipédia

Cryptographie hybride - Wikipédia

http://www.cgi.com/files/white-pape... Ce pdf sur le système clé publique et privée est assez bien fait.

Quelques mots de S/MIME

http://fr.wikipedia.org/wiki/S/MIME. Je suis ennuyé, peu de textes expliquent le fonctionnement de S/MIME.

Il y a ces articles de Microsoft (Understanding S/MIME) qui sont corrects.

En bref :

  • Vous récupérez un certificat d’une compagnie de certification.
    • Elle garantit qu’elle l’a délivré à vous, une fois et à personne d’autre. Selon l’argent qu’on est prêt à mettre, elle garantit différents niveaux de sécurité. Un certificat gratuit (S/MIME class 1) garantit qu’il a été délivré au propriétaire de telle adresse mail. Un payant peut garantir la réalité d’une identité réelle.
    • Cette garantie repose sur la confiance en cette compagnie, et sur le chiffrage (Principe des connections sécurisées notamment bancaires).
  • Le certificat contient une clé publique et une privée. Le principe de ces clés est qu’un message chiffré avec la clé publique est déchiffrable avec la clé privée, et inversement, un message chiffré avec la clé privée est déchiffrable avec la clé publique.
  • La magie de la certification et des clés est là : vous envoyez un courriel en clair signé à quelqu’un .
    • Ce courriel contient le message, la signature, et votre clé publique.
    • Le PC destinataire authentifie la clé publique avec la compagnie de certification. Et authentifie le message en déchiffrant la signature avec la clé publique.
    • Le destinataire possède alors votre clé publique, qu’il peut utiliser pour vous envoyer un message chiffré.
    • Il vous répond alors en signant un message. Vous avez sa clé publique et pouvez lui envoyer des messages chiffrés.

 Vulnérabilités

  • Pour des raisons historiques de vitesse des algorithmes, le message est chiffré avec un chiffrage symétrique, dont la clé unique est inclue dans votre message et chiffrée avec votre clé privée...
  • Les algorithmes utilisés sont
    • RC2/40 (cassé depuis plus de 15 ans avec des moyens non gouvernementaux) [6]
    • DES (cassé)
    • 3DES (quelques failles, mais ça va encore sur un PC local)
    • AES (ce qui existe de mieux [7], utilisé par les agences gouvernementales)

Le problème est que tout cela est standard en théorie, mais qu’en pratique il existe des soucis d’intercompatibilité logicielle pouvant silencieusement faire utiliser RC2 (ce qui est pire que de ne pas chiffrer tellement c’est craqué).

Ce genre d’arnaque a été utilisé dans le passé : forcer un logiciel qui utilise un chiffrage "incassable" à basculer en mode "compatibilité" sur un vieil algo pourri cassé.

 État des lieux de l’implémentation de S/MIME sous seamonkey/thunderbird et comparaison

Le problème est survenu sur Thunderbird dans le passé, mais a été (partiellement) corrigé.

Pour ma part, j’utilise les logiciels de la fondation Mozilla (Firefox, Thunderbird, Seamonkey). Il n’existe toujours aucune interface permettant de savoir quel est le chiffrage utilisé. Et aucun moyen de désactiver les algo cassés (alors que RC2 a été déactivé pour les transaction SSL).

 Test élémentaire de Seamonkey

En bref : Seamonkey/Thunderbird utilise 3DES par défaut.

J’ai téléchargé le fichier smime.p7m depuis le webmail.

Le logiciel DumpASN1 permet d’en analyser le contenu.

Voici ce qu’on obtient entre autre :

SEQUENCE {
 OBJECT IDENTIFIER data (1 2 840 113549 1 7 1)
 SEQUENCE {
   OBJECT IDENTIFIER des-EDE3-CBC (1 2 840 113549 3 7)
   OCTET STRING
     C7 B6 F6 92 9F 81 59 DC

des-EDE3-CBC : c’est Three key triple DES EDE in CBC mode [8]. Ouf ! 3DES, c’est "secure"

 Kmail

Les utilisateurs de Kmail sous linux n’ont pas d’implémentation de RC2 et envoient les messages en AES.

 Outlook

D’après ce post confirmé par MS en bas (Outlook 2010 encrypts using RC2, instead of 3DES), Microsoft a réimplémenté en douce RC2 dans certaines circonstances.
À croire que c’est une backdoor implémentée exprès.

Notes :

[5Trop long à expliquer, lisez Histoire des codes secrets de Simon Singh

[6http://marc.info/?l=cryptography&am... Un mail de Bruce Schneier qui raconte avoir écrit un économiseur d’écran sous windows 95 qui casse RC2/40

[7enfin, c’est ce qu’affirme la NSA qui a tout intérêt au secret des correspondances d’autrui

A télécharger

Pas de documents à télécharger pour cet article


Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.70.61