← RFC Reference

RFC 5751: Especificación de Mensajes S/MIME 3.2

Standards Track Content Security Published March 2026
ELI5: TLS encripta el correo electrónico en tránsito — como un camión blindado que lleva tu carta entre oficinas postales. Pero en cada oficina postal, la carta se descarga y es legible. S/MIME encripta la carta en sí. Solo el destinatario previsto, que tiene la clave correcta, puede abrirla y leerla. Ni siquiera los servidores de correo intermedios pueden mirar adentro. También te permite "sellar con cera" digitalmente tu carta para que el destinatario pueda probar que proviene de ti y que no fue alterada.

Por Qué Existe

La seguridad de la capa de transporte (TLS, STARTTLS) protege el correo entre saltos, pero tiene límites:

S/MIME proporciona cifrado de extremo a extremo (solo el destinatario puede descifrar) y firmas digitales (el destinatario puede verificar la identidad del remitente y que el contenido no fue alterado). Utiliza certificados X.509 de la misma infraestructura de clave pública que asegura HTTPS.

Cómo Funciona

Las Dos Operaciones

S/MIME envuelve mensajes MIME estándar en sobres criptográficos utilizando CMS (Sintaxis de Mensaje Criptográfico):

Operación Qué Hace Tipo MIME
Firma Prueba la identidad del remitente e integridad del mensaje multipart/signed o application/pkcs7-mime (opaco)
Cifrado Cifra el contenido para que solo el destinatario pueda leerlo application/pkcs7-mime (enveloped-data)

Puedes firmar solamente, cifrar solamente, o firmar-luego-cifrar (la combinación más común).

Firmar un Mensaje

El remitente usa su clave privada para crear una firma digital sobre el contenido del mensaje. Existen dos formatos:

-- Estructura de mensaje firmado en claro --
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 codificado en base64)
------sig--

Cifrar un Mensaje

El remitente cifra usando la clave pública del destinatario (del certificado X.509 del destinatario). Solo la clave privada correspondiente del destinatario puede descifrar:

-- Estructura de mensaje cifrado --
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 codificado en base64)

En la práctica, S/MIME utiliza cifrado híbrido: una clave simétrica aleatoria (p. ej., AES-128-CBC) cifra el mensaje, y la clave pública RSA/EC del destinatario cifra esa clave simétrica.

Detalles Técnicos Clave

Requisitos de Certificado

S/MIME se basa en certificados X.509 emitidos por una Autoridad Certificadora (CA). El certificado debe:

Esta es la barrera práctica más grande para la adopción de S/MIME: cada remitente necesita un certificado, y cada destinatario necesita el certificado público del remitente para verificar firmas o enviar respuestas cifradas.

Requisitos de Algoritmo (S/MIME 3.2)

Propósito DEBE Soportar DEBERÍA Soportar
Firma (resumen) SHA-256 SHA-384, SHA-512
Firma (clave) RSA DSA, ECDSA
Cifrado (contenido) AES-128-CBC AES-192-CBC, AES-256-CBC
Transporte de clave RSA ECDH

SHA-1 y 3DES aún se mencionan para compatibilidad hacia atrás, pero se consideran débiles. S/MIME 4.0 actualiza significativamente estos requisitos.

Descubrimiento de Certificado

Para cifrado, el remitente necesita el certificado del destinatario. Métodos comunes de descubrimiento:

Errores Comunes

Impacto en la Entregabilidad

Related RFCs