
S/MIME es un método consolidado de envío de correos electrónicos cifrados y firmados, basado en estándares públicos de Internet. Nos encontramos regularmente con requisitos para S/MIME, especialmente de industrias reguladas como la banca, la salud y las finanzas.
S/MIME es un método establecido desde hace tiempo para enviar correos electrónicos cifrados y firmados, basado en estándares públicos de Internet. Regularmente nos encontramos con requisitos para S/MIME, especialmente de industrias reguladas como la banca, la salud y las finanzas. S/MIME a menudo es requerido al comunicarse entre negocios y agencias gubernamentales, por ejemplo.
Otro estándar de correo seguro, PGP (divertidamente llamado "Pretty Good Privacy"), se utiliza más para comunicaciones seguras de persona a persona. Es menos popular ahora porque las versiones para consumidores de clientes de correo web populares como Gmail y Outlook/Hotmail no pueden mostrar correo cifrado. Esa es una razón por la cual mucha comunicación de persona a persona que requiere privacidad se ha trasladado a plataformas como WhatsApp (y muchas otras) que ofrecen cifrado nativo de extremo a extremo.
Tanto PGP como S/MIME requieren un cliente de correo que pueda usar claves y certificados. Muchos clientes de escritorio y móviles, incluidos Apple Mail, Microsoft Outlook y Mozilla Thunderbird, cumplen con los requisitos, al igual que las versiones empresariales de algunos clientes web como Microsoft Office 365. Configurar las claves requiere trabajo, pero muchas organizaciones aún lo consideran valioso, a pesar de las recientes revelaciones de vulnerabilidades que requieren soluciones para bloquear la carga de contenido remoto.
S/MIME ha existido desde 1995 y ha pasado por varias revisiones; la versión actual está cubierta por RFC 5751. Requiere intercambio de claves públicas, una tarea no trivial que a menudo requiere el apoyo de un equipo de TI o recurso similar. Para las organizaciones que ejecutan infraestructura de correo electrónico en las instalaciones, la implementación de S/MIME requiere consideraciones adicionales para plataformas como PowerMTA y Momentum, que cubrimos en nuestra guía sobre S/MIME para correo seguro en las instalaciones. Sin embargo, hay enfoques automatizados para simplificar este proceso, como recoger claves públicas de los destinatarios a través de sistemas basados en correo electrónico que pueden simplificar la gestión de claves para flujos de correo electrónico generados por aplicaciones. Aquí es donde entran en juego soluciones comerciales de empresas como los socios de SparkPost Virtru y Echoworkx, haciendo la seguridad más fácil para el correo empresarial de persona a persona (vea nuestro manual de SparkPost/Echoworkx para más información).
Dicho esto, profundicemos un poco más en el viejo y sencillo S/MIME y veamos qué podemos hacer con él.
¿Por qué debería I preocuparme?
La versión corta:
La encriptación te ofrece privacidad de mensajes.
La firma te ofrece autenticación (del remitente), no repudio de origen y verificaciones de integridad del mensaje.
S/MIME funciona de manera diferente a DKIM y DMARC y puede coexistir con ellos.
Privacidad
Si tus mensajes no contienen nada personal, privado o legalmente importante, probablemente no necesitarás pensar en S/MIME. Los sistemas modernos de entrega de correo electrónico como SparkPost ya utilizan "TLS oportunista" para asegurar el transporte del mensaje desde el servidor de envío al servidor del destinatario.
La parte "oportunista" significa, sin embargo, que si el servidor de envío no puede negociar una conexión segura, enviaremos el correo en texto plano. Esto no es adecuado si deseas asegurar que el mensaje sea seguro en todo momento. Puedes echar un vistazo a qué proveedores de buzón aseguran soporte TLS y cuáles realmente lo hacen. Suponiendo que el servidor del destinatario sí soporte TLS, tu mensaje estará asegurado de esta manera:

TLS asegura las conversaciones entre servidores de correo (por eso se llama Seguridad de la Capa de Transporte). MIME (incluyendo S/MIME) se ocupa del contenido del mensaje y su tratamiento, y puede considerarse como parte de la "capa de presentación".
S/MIME asegura el contenido del mensaje hasta el final ("de extremo a extremo") desde el origen del mensaje hasta el cliente de correo del destinatario, encapsulando el cuerpo del mensaje.

S/MIME encripta el cuerpo del mensaje con la clave pública del destinatario. El cuerpo no puede ser decodificado sin la clave privada del destinatario; no puede ser decodificado por ningún "intermediario", como tu ISP, SparkPost o el servidor de correo del destinatario.
La clave privada nunca se revela; se mantiene en posesión exclusiva del destinatario. El mensaje encriptado viaja por Internet hasta el servidor de correo receptor. Cuando llega a la bandeja de entrada del destinatario, es (normalmente de forma automática) descifrado con su clave privada y se vuelve legible.
Algunos aspectos de S/MIME a tener en cuenta:
S/MIME tiene el efecto secundario de impedir el escaneo de mensajes entrantes en el servidor en busca de malware porque la carga útil del mensaje está en forma encriptada y por lo tanto es inidentificable.
Nota que los encabezados del mensaje (De:, Para:, Asunto: etc.) no están encriptados, por lo que el contenido de la línea del asunto debe ser creado teniendo eso en mente.
Firma – autenticación
S/MIME también proporciona al destinatario la capacidad de verificar que la identidad del remitente del mensaje es quien dicen ser.
El correo electrónico del remitente tiene un certificado adjunto que, de forma similar al certificado en un sitio web seguro, puede rastrearse hasta una autoridad emisora. Hay una descripción completa del proceso de firma aquí.
Tomaremos el enfoque de firmar el correo primero, y luego encriptarlo, así que el proceso se ve así.

No repudio
Otro beneficio útil de la firma para el destinatario es el no repudio del origen. Considera una situación donde un mensaje de correo electrónico se utiliza para aprobar un contrato. El destinatario recibe el contrato en un mensaje del remitente. Si el remitente intenta posteriormente decir, "No, nunca te envié ese mensaje", entonces el mensaje recibido muestra que el certificado del remitente fue de hecho utilizado.
Integridad del mensaje
El proceso de firma crea una huella digital del mensaje fuente en texto plano (conocido como resumen del mensaje), encripta el resumen usando la clave privada del remitente y lo incluye en el mensaje entregado. El cliente de correo del destinatario puede verificar si el cuerpo del mensaje ha sido manipulado.
Quizás digas, "¡Pensé que DKIM me daba verificaciones de integridad del mensaje!" Bueno, sí, DKIM proporciona verificaciones de integridad del cuerpo del mensaje y encabezado del mensaje – garantías contra manipulaciones. Sin embargo, un fallo de DKIM (o su ausencia) no suele causar que el mensaje entrante sea marcado como completamente inválido, …a menos que haya una política de DMARC de `p=reject` en juego (más sobre DMARC aquí). DKIM es un factor de muchos utilizados por el ISP para la asignación confiable de reputación a un dominio y es, por supuesto, una parte esencial de tu pila de mensajería.
Tu cliente de correo te mostrará de manera prominente si un mensaje S/MIME falla en las verificaciones de firma:

Resumen: de extremo a extremo (S/MIME) vs de servidor a servidor (DKIM, DMARC, TLS)
S/MIME es una capacidad de capa de presentación que puede funcionar entre dos usuarios finales de correo electrónico (con certificados/llaves válidos) sin ninguna acción por parte del administrador de correo electrónico. S/MIME proporciona encriptación y firma, y es personal para cada usuario.
S/MIME está vinculado a la dirección completa de envío (parte local y parte de dominio), así que, por ejemplo, alice@bigcorp.com y bob@bigcorp.com necesitarían tener diferentes certificados. En contraste, DKIM valida que el correo electrónico proviene del dominio de firma. DKIM es un tema completo en sí mismo; este artículo es un buen lugar para comenzar.
La configuración de DKIM y DMARC la realiza tu administrador de correo electrónico (trabajando en el servidor de correo y registros DNS). Una vez configurados, son activos para dominios, en lugar de usuarios individuales.
¿Cómo se relaciona esto con SparkPost?
¿Qué clientes soportan S/MIME?
Consumer Gmail
El cliente web ordinario de Gmail muestra firmas de correo entrante (ver abajo), pero no está configurado para contener tu clave privada para leer mensajes cifrados. Incluso si eso fuera posible a través de plugins de terceros, cargar tu clave privada no es una buena idea desde el punto de vista de seguridad.

No pude lograr que Yahoo! Mail descodificara firmas en mensajes en absoluto.
La versión de consumidor de Microsoft Outlook/Hotmail te alerta sobre la presencia de una firma S/MIME, pero no te da acceso completo para ver o verificar el certificado.

Correo empresarial alojado
Para organizaciones con correo alojado, Microsoft Office 365 y G Suite Enterprise tienen soporte para S/MIME.
Clientes de correo Outlook
El Outlook de Microsoft basado en cliente (como el 2010 para Windows) funciona:

Hacer clic en los íconos te da más información:


En Outlook 2010 / Windows, el almacén de certificados se accede a través de Archivo / Opciones / Centro de confianza / Configuración del centro de confianza / Seguridad de correo electrónico / Importar / Exportar.

Thunderbird – multiplataforma y gratis
Si buscas un cliente gratuito, Mozilla Thunderbird es adecuado. Está disponible en PC, Mac y Linux, y soporta S/MIME en todos ellos. Así es como se ve un mensaje en Mac. El icono de “sobre sellado” indica que el mensaje está firmado, y el candado indica que fue cifrado.

Hacer clic en el sobre/candado muestra información sobre el mensaje:

Thunderbird tiene su propio almacén de claves, accesible de manera similar en cada plataforma:
Mac a través de Preferencias / Avanzado / Certificados / Gestionar Certificados
PC: menú (“hamburguesa” arriba a la derecha), Avanzado / Certificados / Gestionar Certificados
Linux: menú (“hamburguesa” arriba a la derecha), Preferencias / Avanzado / Gestionar Certificados
Correo Mac
Correo Mac también soporta S/MIME. Depende de tu llavero de Mac para mantener tus claves.

Correo iOS
Primero, importa el certificado de tu cuenta de correo de esta manera, luego puedes ver correos electrónicos firmados y cifrados con S/MIME. No se ven realmente diferentes en la pantalla de visualización.



Android
Algunos dispositivos y aplicaciones soportan S/MIME; hay mucha variedad por ahí. Samsung tiene una guía.
Finalmente…
Esa es nuestra breve descripción general de los usos prácticos de S/MIME. Si deseas obtener tus propios certificados de correo, hay una lista de proveedores aquí. Encontré que Comodo funciona bien (gratis para uso no comercial - ábrelo en Firefox, no en Chrome).
En la parte 2, exploraremos cómo aplicar la firma y el cifrado S/MIME a los mensajes que envías a través de SparkPost.
Lectura adicional
Microsoft tiene un buen artículo introductorio sobre S/MIME aquí.
Para más información sobre la vulnerabilidad EFAIL y cómo se ha abordado, este es el sitio definitivo. Otras explicaciones fáciles de seguir están aquí y aquí.