S/MIME es un método establecido desde hace mucho tiempo para enviar correos electrónicos encriptados y firmados, basado en estándares públicos de Internet. Nos encontramos regularmente con requisitos para S/MIME, particularmente de industrias reguladas como la banca, la salud y las finanzas. S/MIME a menudo es requerido cuando se comunica entre empresas y agencias gubernamentales, por ejemplo.
Otro estándar de correo seguro, PGP (llamado de manera divertida “Privacidad Muy Buena”), se usa más para comunicaciones seguras de persona a persona. Es menos popular ahora porque las versiones de consumidor de los clientes de correo electrónico web populares como Gmail y Outlook/Hotmail no pueden mostrar correos encriptados. 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 encriptación nativa de extremo a extremo.
Tanto PGP como S/MIME requieren un cliente de correo que pueda utilizar 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 profesionales de algunos clientes web como Microsoft Office 365. Configurar las claves requiere trabajo, pero muchas organizaciones aún lo consideran válido, a pesar de recientes divulgaciones de vulnerabilidades que requieren remedios para bloquear la carga de contenido remoto.
S/MIME ha estado presente desde 1995 y ha pasado por varias revisiones; la versión actual está cubierta por RFC 5751. Requiere el intercambio de claves públicas, una tarea no trivial que a menudo requiere el apoyo de un equipo de TI o recurso similar. Aquí es donde las soluciones comerciales de empresas como SparkPost, socios Virtru y Echoworkx, facilitan la seguridad para el envío de correos comerciales de persona a persona (vea nuestro SparkPost/Echoworkx cómo hacerlo para más información).
Dicho esto, profundicemos en el S/MIME clásico un poco más y veamos qué podemos hacer con él.
¿Por qué debería importarme?
La versión corta:
La encriptación te brinda privacidad en los mensajes.
La firma te proporciona autenticación (del remitente), no repudio de origen y controles 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, entonces probablemente no necesitarás pensar en S/MIME. Los sistemas modernos de entrega de correo como SparkPost ya utilizan “TLS oportunista” para asegurar el transporte del mensaje desde el servidor de envío al servidor de recepción.
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 forzar que el mensaje sea seguro en todo momento. Puedes echar un vistazo a qué proveedores de buzón reclaman soporte para TLS y cuáles realmente lo tienen. Asumiendo que el servidor del destinatario sí soporta TLS, tu mensaje se asegura de esta manera:
TLS asegura las conversaciones entre los servidores de correo (por eso se llama Seguridad de Capa de Transporte). MIME (incluido S/MIME) se preocupa por el contenido del mensaje y su tratamiento, y puede considerarse parte de la “capa de presentación”.
S/MIME asegura el contenido del mensaje 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 por ninguna “persona en el medio” como tu ISP, SparkPost o el servidor de correo del destinatario.
La clave privada nunca se revela; se mantiene bajo la posesión exclusiva del destinatario. El mensaje encriptado viaja por Internet al servidor de correo receptor. Cuando llega a la bandeja de entrada del destinatario, se desencripta (usualmente de manera automática) con su clave privada y se vuelve legible.
Algunas cosas a tener en cuenta sobre S/MIME:
La encriptación S/MIME tiene un efecto secundario que impide el escaneo de mensajes entrantes basados en el servidor para malware porque la carga del mensaje está en formato encriptado y, por lo tanto, no se puede identificar.
Nota que los encabezados del mensaje (De:, Para:, Asunto:, etc.) no están encriptados, por lo que el contenido de la línea de asunto debe crearse teniendo eso en cuenta.
Firma - autenticación
S/MIME también le proporciona al destinatario la capacidad de verificar que la identidad del remitente del mensaje es la que dice ser.
El correo electrónico del remitente tiene un certificado adjunto, que, al igual que el certificado en un sitio web seguro, puede ser rastreado 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, por lo que el proceso se ve así.
No repudio
Otro beneficio útil de la firma para el destinatario es el no repudio de origen. Considera una situación en la que un mensaje de correo electrónico se usa para aprobar un contrato. El destinatario recibe el contrato en un mensaje del remitente. Si el remitente intenta más tarde 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 (conocida como un resumen del mensaje), encripta el resumen usando la clave privada del remitente e incluye esto en el mensaje entregado. El cliente de correo del destinatario puede decir si el cuerpo del mensaje ha sido manipulado.
Quizás podrías decir: “¡Pensé que DKIM me proporciona controles de integridad del mensaje!” Bueno, sí, DKIM proporciona controles de integridad del cuerpo del mensaje y de los encabezados del mensaje: garantías anti-manipulación. Sin embargo, la falla (o ausencia) de DKIM no suele llevar a que el mensaje entrante se marque como completamente inválido, … a menos que una política de DMARC de `p=reject` esté en juego (más sobre DMARC aquí). DKIM es un factor de muchos que los ISP utilizan 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 los controles 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 de correo electrónico (con certificados/claves válidos) sin ninguna acción por parte del administrador de correo. 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), por lo que, por ejemplo, alice@bigcorp.com y bob@bigcorp.com necesitarían tener certificados diferentes. En contraste, DKIM valida que el correo proviene del dominio que firma. DKIM es un tema 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 (trabajando en el servidor de correo y en los registros DNS). Una vez configurados, están activos para los dominios, en lugar de para usuarios individuales.
¿Cómo se relaciona esto con SparkPost?
Los sistemas de correo para mensajes de persona a persona, como Microsoft Exchange Server, han soportado S/MIME desde hace mucho tiempo.
Si estás utilizando SparkPost para enviar a destinatarios específicos con clientes de correo que pueden leer S/MIME, entonces podría tener sentido firmar tus mensajes con S/MIME. La firma S/MIME añade una mayor seguridad de que el mensaje realmente proviene de ti (o tu sistema) y no ha sido alterado, lo que puede ser valioso en algunos casos de uso. Todo lo que necesitas para eso es tu propia clave y algún software gratuito que demostraremos en la parte 2 de este artículo.
Usar la encriptación S/MIME es una elección separada a hacer. Necesitarás la clave pública de cada uno de tus destinatarios. Obtener esto podría ser tan fácil como que te envíen (o a tu aplicación) un correo electrónico firmado. Exploraremos una herramienta práctica para enviar correos S/MIME firmados y encriptados a través de SparkPost en un seguimiento de este post.
¿Qué clientes soportan S/MIME?
Gmail de consumo
El cliente web Gmail ordinario muestra firmas de correo entrantes (ver abajo), pero no está configurado para mantener tu clave privada para leer mensajes encriptados. Incluso si eso fuera posible a través de complementos de terceros, subir tu clave privada no es una buena idea desde un punto de vista de seguridad.
No pude hacer que Yahoo! Mail decodificara firmas en los 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 comercial alojado
Para organizaciones con correo alojado, Microsoft Office 365 y G Suite Enterprise tienen soporte para S/MIME.
Clientes de correo Outlook
Microsoft Outlook basado en cliente (por ejemplo, 2010 para Windows) funciona:
Hacer clic en los íconos te brinda 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 gratuito
Si estás buscando un cliente gratuito, Mozilla Thunderbird cumple con los requisitos. Está disponible en PC, Mac y Linux, y soporta S/MIME en todas estas plataformas. Así es como se ve un mensaje en Mac. El ícono de “sobre sellado” indica que el mensaje está firmado, y el candado indica que ha sido encriptado.
Hacer clic en el sobre/candado muestra información sobre el mensaje:
Thunderbird tiene su propio almacén de claves, accesible de maneras similares en cada plataforma:
Mac a través de Preferencias / Avanzado / Certificados / Administrar Certificados
PC: menú (“hamburguesa” en la parte superior derecha), Avanzado / Certificados / Administrar Certificados
Linux: menú (“hamburguesa” en la parte superior derecha), Preferencias / Avanzado / Administrar Certificados
Mac Mail
Mac Mail también soporta S/MIME. Se basa en tu llavero de Mac para mantener tus claves.
Correo de iOS
Primero, importa el certificado de tu cuenta de correo así, entonces podrás ver correos electrónicos firmados y encriptados por S/MIME. Realmente no lucen diferentes en la pantalla de visualización.
Android
Algunos dispositivos y aplicaciones soportan S/MIME; hay mucha variedad. Samsung tiene una guía.
Finalmente…
Esta es nuestra rápida visió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 - abre esto en Firefox, no en Chrome).
En la parte 2, exploraremos cómo aplicar la firma y encriptación S/MIME a los mensajes que entregas 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 son aquí y aquí.