Présentation du protocole S/MIME

 

Dernière rubrique modifiée : 2006-08-16

Avant le protocole S/MIME, les administrateurs faisaient appel à SMTP (Simple Mail Transfer Protocol), un protocole de messagerie électronique utilisé dans le monde entier mais qui intrinsèquement n'était pas sécurisé, ou bien ils faisaient appel à des solutions plus sûres mais propriétaires. Ils avaient le choix entre une solution offrant plus de sécurité et une solution garantissant une meilleure connectivité. Avec l'arrivée du protocole S/MIME, les administrateurs disposent désormais d'une option de messagerie électronique à la fois plus sûre et largement acceptée. Le protocole S/MIME est une norme aussi importante que le protocole SMTP car il permet d'amener ce dernier au niveau supérieur, permettant une connectivité étendue des messageries électroniques sans en compromettre la sécurité.

Histoire du protocole S/MIME

Pour comprendre le protocole S/MIME, il est souhaitable d'en connaître l'histoire. La première version de S/MIME a été développée en 1995 par plusieurs fournisseurs de solution de sécurité. Il s'agissait alors d'une spécification de sécurité de messages parmi plusieurs autres dont Pretty Good Privacy (PGP). Lors de la parution de la première version de S/MIME, il n'existait pas de norme unique reconnue pour la sécurité des messages mais plutôt plusieurs normes en concurrence.

En 1998, avec l'arrivée de la deuxième version de S/MIME, la situation a commencé à changer. Contrairement à la première version, S/MIME version 2 fut soumise à l'IETF (Internet Engineering Task Force) pour obtenir le statut de norme Internet. Avec cette démarche, le protocole S/MIME a cessé d'être une norme possible parmi tant d'autres pour devenir le candidat le plus sérieux au titre de norme de sécurité des messages. S/MIME version 2 se compose de deux RFC (Request for Comments) IETF : RFC 2311 (http://www.ietf.org/rfc/rfc2311.txt), qui établit la norme des messages et RFC 2312 (http://www.ietf.org/rfc/rfc2312.txt), qui établit la norme de traitement des certificats. Ces deux RFC constituaient le premier cadre Internet normalisé sur lequel les fournisseurs pouvaient s'appuyer pour créer des solutions de sécurité de messages capables d'interagir. Avec S/MIME version 2, le protocole S/MIME émerge comme norme de sécurité des messages.

En 1999, S/MIME version 3 fut soumis à l'IETF dans le but de renforcer les capacités du protocole S/MIME. RFC 2632 (http://www.ietf.org/rfc/rfc2632.txt) exploitait les travaux réalisés pour RFC 2311 concernant la formulation de normes pour les messages S/MIME et RFC 2633 (http://www.ietf.org/rfc/rfc2633.txt) renforçait les caractéristiques de traitement des certificats prévues dans RFC 2312. RFC 2634 (http://www.ietf.org/rfc/rfc2634.txt) venait enrichir les fonctionnalités globales du protocole en ajoutant des services supplémentaires, tels que les confirmations sécurisées, le triple traitement et les étiquettes de sécurité.

Avec S/MIME version 3, le protocole S/MIME s'est largement imposé comme norme de sécurité des messages. S/MIME version 3 est pris en charge par les produits Microsoft suivants :

  • Microsoft Outlook® 2000 (avec SR-1) et versions ultérieures
  • Microsoft Outlook Express 5.01 et versions ultérieures
  • Microsoft Exchange 5.5 et versions ultérieures

Fonctions de S/MIME

Le protocole S/MIME offre deux services de sécurité :

  • les signatures numériques ;
  • le cryptage des messages.

Ces deux services forment le noyau de la sécurité des messages basée sur S/MIME. Tous les autres concepts liés à la sécurité des messages les prennent en charge. Bien que dans ses détails la sécurité des messages paraisse complexe, ces deux services en constituent la base. Après avoir acquis une connaissance de base des concepts de signatures numériques et de cryptage des messages, vous pourrez étudier la façon dont d'autres concepts prennent en charge ces services.

Chacun d'entre eux est passé en revue individuellement. Vous trouverez ensuite des informations concernant la façon dont ils interagissent.

Signatures numériques

Les signatures numériques sont les services S/MIME le plus communément utilisés. Comme leur nom l'indique, les signatures numériques sont les équivalents numériques des signatures officielles, apposées traditionnellement sur un document papier. À l'instar d'une signature officielle, les signatures numériques offrent les fonctionnalités de sécurité suivantes :

  • Authentification   Une signature sert à valider une identité. Elle vérifie la réponse à la question « Qui êtes-vous ? » en proposant une méthode permettant de distinguer une entité de toutes les autres et d'en prouver le caractère unique. Étant donné que le protocole SMTP ne prévoit pas d'authentification, il est impossible de connaître la véritable identité de l'expéditeur d'un message. L'authentification par une signature numérique remédie à ce problème car elle permet au destinataire d'un message de savoir que ce dernier a bien été expédié par la personne ou l'entreprise qui prétend l'avoir fait.
  • Non répudiation   Le caractère unique d'une signature empêche son propriétaire de la réfuter. Cette fonctionnalité est appelée non répudiation. Ainsi, l'authentification offerte par une signature numérique permet de faire respecter le principe de non répudiation. Le concept de la non répudiation se rencontre le plus souvent dans le contexte de contrats papier : un contrat signé est un document qui oblige légalement le signataire et il est impossible de réfuter une signature authentifiée. Les signatures numériques jouent le même rôle, et dans de nombreux domaines, elles sont reconnues comme ayant force d'obligation tout comme une signature papier. La messagerie SMTP ne prévoyant aucun moyen d'authentification, elle n'offre pas non plus de service de non répudiation. Il est facile pour un expéditeur de nier être à l'origine d'un message SMTP.
  • Intégrité des données   Autre service de sécurité offert par les signatures numériques. L'intégrité des données résulte des opérations spécifiques qui rendent les signatures numériques possibles. Grâce aux services d'intégrité des données, lorsque le destinataire d'un message électronique signé numériquement valide cette signature, il a la garantie que le message électronique reçu est bien le même que celui qui a été signé et envoyé, et qu'il n'a pas été modifié en cours de route. Toute modification du message en cours de transfert après signature invalide la signature. Ainsi, les signatures numériques peuvent donner une garantie que les signatures papier ne peuvent offrir, un document papier pouvant parfaitement être modifié après signature.
importantImportant :
Bien que les signatures numériques veillent à l'intégrité des données, elles n'en assurent pas la confidentialité. Les messages comportant uniquement une signature numérique sont envoyés en clair, comme les messages SMTP, et peuvent être lus par des tiers. En cas de message à signature opaque, un niveau d'obscurcissement est appliqué car le message est codé en base 64, mais reste en texte clair. Pour protéger le contenu de messages électroniques, vous devez faire appel au cryptage.

L'authentification, la non répudiation et l'intégrité des données sont les fonctions centrales des signatures numériques. Ensemble, elles donnent la garantie aux destinataires que le message provient bien de l'expéditeur indiqué et qu'il est identique au message expédié.

Pour simplifier à l'extrême, une signature numérique consiste en une opération de signature sur le texte du message électronique lors de l'envoi du message et en une opération de vérification lors de la lecture du message, comme l'indique la figure suivante.

7eb8a3ca-35c8-4101-9dd6-421a6bc7cc79

L'opération de signature qui a lieu lors de l'envoi du message requiert des informations qui ne peuvent être fournies que par l'expéditeur (pour plus d'informations sur cette opération de signature, voir la section sur le chiffrement à clé publique et les signatures numériques dans la rubrique sur la Cryptographie à clé publique). Elles sont récupérées après capture du message électronique et permettent de procéder à une opération de signature sur le message. Cette opération produit la signature numérique à proprement parler. Celle-ci est ensuite ajoutée au message électronique et incluse avec le message lors de l'envoi de son envoi. La figure suivante illustre les étapes de signature d'un message.

b310b679-91bf-40f7-be7f-abbc24515204

  1. Le message est capturé.
  2. Des informations permettant d'identifier de manière unique l'expéditeur sont récupérées.
  3. L'opération de signature est effectuée sur le message à l'aide des informations uniques relatives à l'expéditeur. Une signature numérique est produite.
  4. La signature numérique est ajoutée au message.
  5. Le message est envoyé.

Cette opération nécessitant des informations uniques de la part de l'expéditeur, les signatures numériques assurent l'authentification et la non répudiation. Ces informations uniques permettent de prouver que le message ne peut que provenir de l'expéditeur en question.

noteRemarque :
Aucun mécanisme de sécurité n'est parfait. Des utilisateurs non autorisés peuvent se procurer les informations uniques utilisées pour les signatures numériques et chercher à se faire passer pour un expéditeur donné. Cependant, la norme S/MIME permet de parer à ces situations en faisant en sorte que les signatures non autorisées soient signalées comme non valides. Pour plus d'informations, voir la rubrique sur la Certificats numériques.

Lorsque le destinataire ouvre un message électronique signé, la signature numérique fait l'objet d'une procédure de vérification. La signature numérique incluse avec le message est récupérée. Le message d'origine est également récupéré et une opération de signature est effectuée pour produire une autre signature numérique. La signature numérique incluse avec le message est alors comparée à la signature numérique produite par le destinataire. Si les signatures correspondent, le message est vérifié comme provenant de l'expéditeur prétendu. Si les signatures ne correspondent pas, le message est marqué comme invalide. La figure suivante illustre les étapes de vérification d'un message.

1dc0bde0-fcc9-4c15-9697-a8925781649a

  1. Le message est reçu.
  2. La signature numérique est extraite du message.
  3. Le message est récupéré.
  4. Les informations d'identification de l'expéditeur sont récupérées.
  5. Une opération de signature est effectuée sur le message.
  6. La signature numérique incluse avec le message est comparée à la signature numérique produite lors de la réception.
  7. Si les signatures correspondent, le message est valide.
importantImportant :
Les informations relatives à l'expéditeur utilisées lors de la vérification de la signature ne sont pas identiques à celles fournies par l'expéditeur lors de la signature du message. Les informations utilisées par le destinataire sont reliées de telle sorte que le destinataire puisse vérifier les informations uniques de l'expéditeur sans véritablement les connaître de façon à ce qu'elles soient protégées (pour plus d'informations sur le partage de données entre l'expéditeur et le destinataire, voir la section sur le chiffrement à clé publique et les signatures numériques dans la rubrique sur la Cryptographie à clé publique).

Lorsque les deux processus de signature numérique et de vérification de la signature sont combinés, ils permettent d'authentifier l'expéditeur d'un message et de déterminer l'intégrité des données au sein du message signé. L'authentification des expéditeurs permet de disposer d'une fonctionnalité supplémentaire, la non répudiation, qui empêche des expéditeurs authentifiés de prétendre ne pas avoir expédié le message. Les signatures numériques permettent de résoudre les problèmes d'usurpation d'identité et de manipulation frauduleuse des données que l'on peut rencontrer avec les messages SMTP.

Cryptage des messages

Le cryptage des messages permet d'apporter une solution aux problèmes de confidentialité des informations. La messagerie par Internet basée sur SMTP n'assure pas la sécurité des messages. Un message électronique SMTP peut être lu par n'importe quelle personne capable de le voir en cours de transit ou de l'afficher là où il est entreposé. Le protocole S/MIME résout ces problèmes en ayant recours au cryptage.

Le cryptage permet de modifier les informations de manière à ce qu'elles ne puissent être ni lues ni comprises sans être reconverties au préalable sous une forme lisible et compréhensible.

Bien que l'utilisation du cryptage des messages ne soit pas aussi répandue que celle des signatures numériques, elle permet d'apporter une solution à ce qu'un grand nombre de personnes considèrent comme le point faible le plus grave de la messagerie par Internet. Le cryptage des messages permet de disposer de deux services de sécurité spécifiques :

  • Confidentialité   Le cryptage des messages permet de protéger le contenu d'un message électronique. Seul le destinataire indiqué peut voir le contenu du message. En outre, ce contenu reste confidentiel et ne peut être divulgué à aucune autre personne susceptible de recevoir ou d'afficher le message. Le cryptage assure la confidentialité des données pendant que le message est en transit ou en stockage.
  • Intégrité des données   À l'instar des signatures numériques, le cryptage des messages assure des services d'intégrité des données qui sont le résultat des opérations spécifiques nécessaires au cryptage.
importantImportant :
Bien que le cryptage des messages en garantisse la confidentialité, il n'authentifie en aucune manière l'expéditeur du message. Un message crypté non signé peut tout autant donner lieu à une usurpation d'identité de l'expéditeur qu'un message crypté. La non répudiation étant un résultat direct de l'authentification, le cryptage de message ne permet pas non plus de disposer de ce service. Bien que le cryptage assure l'intégrité des données, un message crypté ne peut que prouver que le message n'a pas été modifié depuis son envoi. Aucune information relative à l'identité de l'expéditeur du message n'est fournie. Pour que l'identité de l'expéditeur soit établie, il faut que le message utilise une signature numérique.

La confidentialité et l'intégrité des données sont les fonctions centrales du cryptage des messages. Elles garantissent que seul le destinataire indiqué du message puisse le visualiser et que le message reçu soit identique au message expédié.

Le cryptage rend le texte d'un message illisible en le soumettant à une opération de cryptage au moment de l'envoi du message. Lorsque le message est reçu, le texte redevient lisible grâce à une opération de décryptage effectuée lors de la lecture du message comme l'indique la figure suivante.

70d97fee-7c86-4ab9-b104-56558a5a4102

L'opération de cryptage qui est effectuée lors de l'envoi du message consiste à capturer le message et à le crypter à l'aide d'informations spécifiques au destinataire prévu. Le message crypté remplace le message d'origine et est adressé au destinataire. La figure suivante illustre les étapes de cryptage d'un message électronique.

7320c72f-dfc4-45c2-b56c-13433dc4360e

  1. Le message est capturé.
  2. Des informations identifiant de manière unique l'expéditeur sont récupérées.
  3. L'opération de cryptage est effectuée sur le message à l'aide d'informations uniques relatives au destinataire afin de produire un message crypté.
  4. Le message crypté remplace le texte dans le message.
  5. Le message est envoyé.

Cette opération nécessitant des informations uniques concernant le destinataire, le cryptage permet d'assurer la confidentialité des données. Seul le destinataire prévu du message possède les informations permettant de procéder au décryptage du message. Cela permet de faire en sorte que seul le destinataire prévu puisse voir le message car ces informations doivent impérativement être fournies pour que le message décrypté s'affiche.

importantImportant :
Les informations relatives au destinataire utilisées lors du cryptage du message ne sont pas identiques à celles fournies par l'expéditeur lors du décryptage du message. Les informations utilisées par l'expéditeur sont reliées de telle sorte que l'expéditeur puisse utiliser les informations uniques du destinataire sans véritablement les connaître de façon à ce qu'elles soient protégées (pour plus d'informations sur le partage de données entre l'expéditeur et le destinataire, voir la section sur le chiffrement à clé publique et des messages dans la rubrique sur la Cryptographie à clé publique).

Lorsque le destinataire ouvre un message crypté, une opération de décryptage a lieu. Le message crypté et les informations uniques relatives au destinataire sont récupérés. Les informations uniques du destinataire sont alors utilisées pour effectuer un décryptage. Cette opération produit un message décrypté qui est ensuite affiché au destinataire. Si le message a été modifié en cours de transit, l'opération de décryptage échoue. La figure suivante illustre les étapes de décryptage d'un message électronique.

5b1ee7e9-35fb-4c55-bd0f-63a2b52a6604

  1. Le message est reçu.
  2. Le message crypté est récupéré.
  3. Des informations identifiant de manière unique l'expéditeur sont récupérées.
  4. L'opération de décryptage est effectuée sur le message crypté à l'aide d'informations uniques relatives au destinataire afin de produire un message décrypté.
  5. Le message décrypté est renvoyé au destinataire.
noteRemarque :
Aucun mécanisme de sécurité n'est parfait. Des utilisateurs non autorisés peuvent se procurer les informations uniques d'un destinataire et les utiliser pour lire des messages cryptés. Cependant, le protocole S/MIME peut faire face à ces situations. Pour plus d'informations, voir la rubrique sur la Certificats numériques.

Le processus de cryptage et de décryptage des messages assure la confidentialité des messages électroniques. Il pallie une grave vulnérabilité de la messagerie par Internet qui permet à n'importe qui de lire n'importe quel message.

Utilisation conjointe des services de signature numérique et de cryptage des messages

Les services de signatures numériques et de cryptage des messages ne s'excluent pas mutuellement. Chacun d'entre eux répond à des questions de sécurité spécifiques. Les signatures numériques sont une solution aux problèmes d'authentification et de répudiation tandis que le cryptage des messages permet de remédier aux problèmes de confidentialité. Étant donné que chacun de ces services répond à des besoins différents, une stratégie de sécurité nécessite de disposer des deux, souvent en même temps. Ces deux services sont conçus pour être utilisés conjointement car ils portent chacun sur un côté de la relation expéditeur/destinataire. Les signatures numériques portent sur les questions de sécurité concernant les expéditeurs tandis que les services de cryptage portent sur des questions de sécurité concernant principalement les destinataires des messages.

Lorsque les services de signature numérique et de cryptage de messages sont utilisés conjointement, les utilisateurs peuvent tirer profit des deux services. L'utilisation conjointe de ces services n'a pas de conséquence sur leur traitement respectif : chacun fonctionne tel que décrit dans les sections précédentes de ce document. L'interaction entre les services de signature numérique et de cryptage des messages est décrite dans la figure suivante, qui illustre la signature et le cryptage d'un message électronique.

3d9893ab-cffa-4783-95d9-fd9d997c1533

  1. Le message est capturé.
  2. Des informations permettant d'identifier de manière unique l'expéditeur sont récupérées.
  3. Des informations identifiant de manière unique l'expéditeur sont récupérées.
  4. Une opération de signature est effectuée sur un message à l'aide d'informations uniques relatives à l'expéditeur afin de produire une signature numérique.
  5. La signature numérique est ajoutée au message.
  6. L'opération de cryptage est effectuée sur le message à l'aide d'informations uniques relatives au destinataire afin de produire un message crypté.
  7. Le message d'origine est remplacé par un message crypté.
  8. Le message est envoyé.

La figure suivante illustre les étapes de décryptage et de vérification d'une signature numérique.

deab38d5-da66-4c23-add3-a78722c41cb1

  1. Le message est reçu.
  2. Le message crypté est récupéré.
  3. Des informations identifiant de manière unique l'expéditeur sont récupérées.
  4. L'opération de décryptage est effectuée sur le message crypté à l'aide d'informations uniques relatives au destinataire afin de produire un message décrypté.
  5. Un message décrypté est renvoyé.
  6. Le message décrypté est renvoyé au destinataire.
  7. La signature numérique est extraite du message décrypté.
  8. Les informations d'identification de l'expéditeur sont récupérées.
  9. L'opération de signature est effectuée sur le message décrypté à l'aide des informations uniques relatives à l'expéditeur afin de produire une signature numérique.
  10. La signature numérique incluse avec le message est comparée à la signature numérique produite lors de la réception.
  11. Si les signatures correspondent, le message est valide.

Messages soumis au triple traitement

L'une des améliorations du protocole S/MIME version 3 les plus importantes est le « triple traitement ». Un message S/MIME soumis au triple traitement est signé, crypté, puis resigné. Ce nouveau processus de cryptage fournit une couche supplémentaire de sécurité. Lorsque les utilisateurs signent et cryptent des messages avec Outlook Web Access et le contrôle S/MIME, le message est automatiquement soumis au triple traitement. Outlook et Outlook Express ne soumettent pas les messages à un triple traitement, mais peuvent les lire.

Les signatures numériques et le cryptage de message sont des services complémentaires. Ensemble, ils constituent une solution exhaustive aux problèmes de sécurités qui accompagnent la messagerie Internet basée sur SMTP.

Les certificats numériques et le cryptage de messages sont les fonctionnalités centrales de S/MIME. Le concept sous-jacent le plus important de la sécurité des messages est la cryptographie à clé publique. Elle assure la viabilité des services de signatures numériques et de cryptage des messages au sein de S/MIME. La rubrique sur la Cryptographie à clé publique traite du chiffrement à clé publique et de ses relations avec S/MIME.