S/MIME est une méthode bien établie pour l'envoi d'e-mails chiffrés et signés, basée sur des normes Internet publiques. Nous rencontrons régulièrement des exigences pour S/MIME, en particulier de la part d'industries réglementées telles que la banque, la santé et la finance. S/MIME est souvent requis lors des communications entre entreprises et agences gouvernementales, par exemple.
Un autre standard de courrier sécurisé, PGP (nommé de manière amusante "Pretty Good Privacy"), est utilisé davantage pour les communications sécurisées de personne à personne. Il est moins populaire maintenant car les versions grand public des clients de messagerie basés sur le web tels que Gmail et Outlook/Hotmail ne peuvent pas afficher les e-mails chiffrés. C'est une des raisons pour lesquelles de nombreuses communications de personne à personne nécessitant de la confidentialité ont été déplacées vers des plateformes telles que WhatsApp (et bien d'autres) qui offrent un chiffrement de bout en bout natif.
PGP et S/MIME nécessitent tous deux un client de messagerie capable d'utiliser des clés et des certificats. De nombreux clients de bureau et mobiles, y compris Apple Mail, Microsoft Outlook et Mozilla Thunderbird, répondent à cette exigence, tout comme certaines versions d'entreprises de clients web tels que Microsoft Office 365. La configuration des clés demande du travail, mais de nombreuses organisations estiment que cela en vaut la peine, malgré les récentes divulgations de vulnérabilités exigeant des remèdes pour bloquer le chargement de contenus distants.
S/MIME existe depuis 1995 et a connu plusieurs révisions ; la version actuelle est couverte par RFC 5751. Elle nécessite l'échange de clés publiques, une tâche non triviale qui nécessite souvent le soutien d'une équipe informatique ou d'une ressource similaire. C'est là que les solutions commerciales de sociétés telles que les partenaires de SparkPost Virtru et Echoworkx entrent en jeu, rendant la sécurité plus facile pour les échanges commerciaux de personne à personne (voir notre guide SparkPost/Echoworkx pour plus d'informations).
Ceci dit, examinons S/MIME de manière un peu plus approfondie et voyons ce que nous pouvons en faire.
Pourquoi devrais-je m'en soucier ?
La version courte :
Le chiffrement vous donne la confidentialité des messages.
La signature vous offre une authentification (de l'expéditeur), une non-repudiation d'origine, et des vérifications d'intégrité des messages.
S/MIME fonctionne différemment de DKIM et DMARC et peut coexister avec eux.
Confidentialité
Si vos messages ne contiennent rien de personnel, privé ou légalement important, vous n'aurez probablement pas besoin de penser à S/MIME. Les systèmes de livraison d'e-mails modernes comme SparkPost utilisent déjà "TLS opportuniste" pour sécuriser le transport des messages du serveur d'envoi au serveur de réception.
La partie "opportuniste" signifie toutefois que si le serveur d'envoi ne peut pas négocier une connexion sécurisée, nous enverrons le mail en texte clair. Cela n'est pas approprié si vous souhaitez forcer la sécurité du message sur l'ensemble du parcours. Vous pouvez jeter un œil aux fournisseurs de boîtes aux lettres qui prétendent supporter TLS et lesquels le font réellement. En supposant que le serveur du destinataire supporte TLS, votre message est sécurisé de cette manière :
TLS sécurise les conversations entre les serveurs de messagerie (c'est pourquoi on l'appelle Transport Layer Security). MIME (y compris S/MIME) concerne le contenu du message et son traitement, et peut être considéré comme faisant partie de la "couche de présentation".
S/MIME sécurise le contenu du message tout au long du parcours ("de bout en bout") depuis l'origine du message jusqu'au client de messagerie du destinataire, encapsulant le corps du message.
S/MIME chiffre le corps du message avec la clé publique du destinataire. Le corps ne peut pas être décodé sans la clé privée du destinataire - pas par une "personne au milieu" telle que votre FAI, SparkPost ou le serveur de messagerie du destinataire.
La clé privée n'est jamais divulguée ; elle est conservée sous la seule possession du destinataire. Le message chiffré voyage sur Internet jusqu'au serveur de messagerie récepteur. Lorsqu'il arrive dans la boîte de réception du destinataire, il est (généralement automatiquement) déchiffré avec sa clé privée et devient lisible.
Quelques pièges S/MIME dont il faut être conscient :
S/MIME a un effet secondaire qui empêche le balayage des messages entrants par le serveur pour détecter des logiciels malveillants, car la charge utile du message est sous forme chiffrée et donc non identifiable.
Notez que les en-têtes du message (De:, À:, Objet: etc.) ne sont pas chiffrés, donc le contenu de la ligne d'objet doit être créé en tenant compte de cela.
Signature - authentification
S/MIME fournit également au destinataire la possibilité de vérifier que l'identité de l'expéditeur du message est bien celle qu'il prétend être.
L'e-mail de l'expéditeur a un certificat joint, qui, de manière similaire à un certificat sur un site web sécurisé, peut être tracé jusqu'à une autorité émettrice. Une description complète du processus de signature se trouve ici.
Nous adopterons l'approche consistant à signer le mail en premier, puis à le chiffrer, donc le processus ressemble à ceci.
Non-répudiation
Un autre avantage utile de la signature pour le destinataire est la non-répudiation d'origine. Considérez une situation où un message e-mail est utilisé pour approuver un contrat. Le destinataire reçoit le contrat dans un message de l'expéditeur. Si l'expéditeur essaie plus tard de dire : "Non, je n'ai jamais envoyé ce message", alors le message reçu montre que le certificat de l'expéditeur a été effectivement utilisé.
Intégrité du message
Le processus de signature crée une empreinte du message source en clair (appelée un résumé de message), chiffre le résumé à l'aide de la clé privée de l'expéditeur, et l'inclut dans le message délivré. Le client de messagerie du destinataire peut dire si le corps du message a été altéré.
Peut-être que vous pourriez dire : "Je pensais que DKIM me donnait des vérifications d'intégrité des messages !" Eh bien oui, DKIM fournit des vérifications d'intégrité du corps du message et des en-têtes de message - des garanties anti-altération. Cependant, un échec DKIM (ou son absence) ne marquera généralement pas le message entrant comme complètement invalide,... sauf si une politique DMARC de `p=reject` est en jeu (plus sur DMARC ici). DKIM est un facteur parmi de nombreux autres utilisés par le FAI pour attribuer de manière fiable de la réputation à un domaine et fait bien sûr partie intégrante de votre pile de messagerie.
Votre client de messagerie vous montrera de manière proéminente si un message S/MIME échoue les vérifications de signature :
Résumé : de bout en bout (S/MIME) vs serveur à serveur (DKIM, DMARC, TLS)
S/MIME est une capacité de couche de présentation qui peut fonctionner entre deux utilisateurs d'e-mail (avec des certificats/clés valides) sans aucune action de l'administrateur e-mail. S/MIME fournit un chiffrement et une signature et est personnel à chaque utilisateur.
S/MIME est lié à l'adresse complète d'envoi (partie locale et partie domaine), donc, par exemple, alice@bigcorp.com et bob@bigcorp.com auraient besoin d'avoir des certificats différents. En revanche, DKIM valide que l'e-mail provient du domaine de signature. DKIM est un sujet à part entière ; cet article est un bon point de départ.
La configuration de DKIM et DMARC est effectuée par votre administrateur e-mail (travaillant sur le serveur de messagerie et les enregistrements DNS). Une fois configurés, ils sont actifs pour les domaines, plutôt que pour des utilisateurs individuels.
Comment cela se rapporte-t-il à SparkPost ?
Les systèmes de messagerie pour la messagerie de personne à personne, tels que Microsoft Exchange Server, ont longtemps supporté S/MIME.
Si vous utilisez SparkPost pour envoyer à des destinataires spécifiques avec des clients de messagerie pouvant lire S/MIME, il pourrait avoir du sens de signer vos messages avec S/MIME. La signature S/MIME ajoute une assurance supplémentaire que le message provient réellement de vous (ou de votre système) et n'a pas été modifié, ce qui peut être précieux dans certains cas d'utilisation. Tout ce dont vous avez besoin pour cela est votre propre clé et un logiciel gratuit que nous démontrerons dans la seconde partie de cet article.
Utiliser le chiffrement S/MIME est un choix séparé à faire. Vous aurez besoin de la clé publique de chacun de vos destinataires. L'obtention de cela pourrait être aussi simple que de leur demander d'envoyer un e-mail signé (à vous ou à votre application). Nous explorerons un outil pratique pour envoyer des e-mails signés et chiffrés S/MIME via SparkPost dans un post de suivi.
Quels clients supportent S/MIME ?
Gmail Consommateur
Le client web Gmail ordinaire affiche les signatures des mails entrants (voir ci-dessous), mais il n'est pas configuré pour conserver votre clé privée afin de lire les messages chiffrés. Même si cela était possible via des plugins tiers, télécharger votre clé privée n'est pas une bonne idée du point de vue de la sécurité.
Je n'ai pas pu faire en sorte que Yahoo! Mail décode les signatures dans les messages du tout.
La version grand public des comptes Microsoft Outlook/Hotmail vous alerte de la présence d'une signature S/MIME, mais ne vous donne pas un accès complet pour visualiser ou vérifier le certificat.
Messagerie d'affaires hébergée
Pour les organisations avec une messagerie hébergée, Microsoft Office 365 et G Suite Enterprise ont le support S/MIME.
Clients de messagerie Outlook
Le Microsoft Outlook basé sur client (par exemple 2010 pour Windows) fonctionne :
Cliquez sur les icônes pour obtenir plus d'informations :
Sur Outlook 2010 / Windows, le magasin de certificats est accessible via Fichier / Options / Centre de confiance / Paramètres du Centre de confiance / Sécurité des e-mails / Importer / Exporter.
Thunderbird – multiplateforme et gratuit
Si vous cherchez un client gratuit, Mozilla Thunderbird convient. Il est disponible sur PC, Mac et Linux, et prend en charge S/MIME sur toutes ces plateformes. Voici à quoi ressemble un message sur Mac. L'icône "enveloppe scellée" indique que le message est signé, et le cadenas indique qu'il a été chiffré.
Cliquez sur l'enveloppe/le cadenas pour afficher des informations sur le message :
Thunderbird a son propre magasin de clés, accessible de manières similaires sur chaque plateforme :
Mac via Préférences / Avancé / Certificats / Gérer les Certificats
PC : menu ("hamburger" en haut à droite), Avancé / Certificats / Gérer les Certificats
Linux : menu ("hamburger" en haut à droite), Préférences / Avancé / Gérer les Certificats
Mac Mail
Mac Mail prend également en charge S/MIME. Il s'appuie sur votre trousseau de clés Mac pour conserver vos clés.
iOS Mail
Tout d'abord, importez le certificat de votre compte e-mail comme ceci, puis vous pouvez visualiser des e-mails signés et chiffrés S/MIME. Ils n'ont pas vraiment l'air différents sur l'écran de visualisation.
Android
Certains appareils et applications prennent en charge S/MIME ; il y a beaucoup de variété disponible. Samsung a un guide.
Enfin…
Ceci est notre rapide aperçu des utilisations pratiques de S/MIME. Si vous souhaitez obtenir vos propres certificats de messagerie, il existe une liste de fournisseurs ici. J'ai découvert que Comodo fonctionne bien (gratuit pour un usage non commercial – ouvrez-le dans Firefox, pas Chrome).
Dans la deuxième partie, nous explorerons comment appliquer la signature et le chiffrement S/MIME aux messages que vous livrez via SparkPost.
Lectures complémentaires
Microsoft a un bon article d'introduction sur S/MIME ici.
Pour plus d'informations sur la vulnérabilité EFAIL et comment elle a été traitée, ceci est le site définitif. D'autres explications faciles à suivre sont ici et ici.