← RFC Reference

RFC 5751 : Spécification des messages S/MIME 3.2

Piste de normalisation Sécurité du contenu Published March 2026
ELI5: TLS chiffre les emails en transit — comme un fourgon blindé transportant votre lettre entre les postes. Mais à chaque poste, la lettre est déchargée et lisible. S/MIME chiffre la lettre elle-même. Seul le destinataire prévu, détenant la bonne clé, peut l'ouvrir et la lire. Même les serveurs de courrier intermédiaires ne peuvent pas regarder à l'intérieur. Cela vous permet aussi de « sceller à la cire » numériquement votre lettre afin que le destinataire puisse prouver qu'elle provient de vous et qu'elle n'a pas été altérée.

Pourquoi cela existe

La sécurité au niveau transport (TLS, STARTTLS) protège les emails entre les sauts, mais elle a des limites :

S/MIME fournit le chiffrement de bout en bout (seul le destinataire peut déchiffrer) et les signatures numériques (le destinataire peut vérifier l'identité de l'expéditeur et que le contenu n'a pas été altéré). Il utilise des certificats X.509 de la même PKI qui sécurise HTTPS.

Comment cela fonctionne

Les deux opérations

S/MIME enveloppe les messages MIME standard dans des enveloppes cryptographiques utilisant CMS (Cryptographic Message Syntax) :

Opération Ce qu'elle fait Type MIME
Signature Prouve l'identité de l'expéditeur et l'intégrité du message multipart/signed ou application/pkcs7-mime (opaque)
Chiffrement Chiffre le contenu pour que seul le destinataire puisse le lire application/pkcs7-mime (enveloped-data)

Vous pouvez signer uniquement, chiffrer uniquement, ou signer puis chiffrer (la combinaison la plus courante).

Signature d'un message

L'expéditeur utilise sa clé privée pour créer une signature numérique sur le contenu du message. Deux formats existent :

-- Structure du message signé en clair --
Content-Type: multipart/signed;
  protocol="application/pkcs7-signature";
  micalg=sha-256; boundary="----sig"

------sig
Content-Type: text/plain

This is the original message content.
It is readable by any email client.

------sig
Content-Type: application/pkcs7-signature
Content-Transfer-Encoding: base64

MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBgl...
(CMS SignedData encodé en base64)
------sig--

Chiffrement d'un message

L'expéditeur chiffre en utilisant la clé publique du destinataire (de son certificat X.509). Seule la clé privée correspondante du destinataire peut déchiffrer :

-- Structure du message chiffré --
Content-Type: application/pkcs7-mime;
  smime-type=enveloped-data;
  name=smime.p7m
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m

MIAGCSqGSIb3DQEHA6CAMIA...
(CMS EnvelopedData encodé en base64)

En pratique, S/MIME utilise le chiffrement hybride : une clé symétrique aléatoire (par exemple, AES-128-CBC) chiffre le message, et la clé publique RSA/EC du destinataire chiffre cette clé symétrique.

Détails techniques clés

Exigences de certificat

S/MIME s'appuie sur des certificats X.509 émis par une autorité de certification (CA). Le certificat doit :

C'est la plus grande barrière pratique à l'adoption de S/MIME : chaque expéditeur a besoin d'un certificat, et chaque destinataire a besoin du certificat public de l'expéditeur pour vérifier les signatures ou envoyer des réponses chiffrées.

Exigences algorithmiques (S/MIME 3.2)

Objectif DOIT prendre en charge DEVRAIT prendre en charge
Signature (résumé) SHA-256 SHA-384, SHA-512
Signature (clé) RSA DSA, ECDSA
Chiffrement (contenu) AES-128-CBC AES-192-CBC, AES-256-CBC
Transport de clé RSA ECDH

SHA-1 et 3DES sont encore référencés pour la compatibilité rétroactive mais sont considérés comme faibles. S/MIME 4.0 met à jour ces exigences de façon importante.

Découverte de certificat

Pour le chiffrement, l'expéditeur a besoin du certificat du destinataire. Méthodes courantes de découverte :

Erreurs courantes

Impact sur la livraison

Related RFCs