S/MIME (Secure / Multipurpose Internet Mail Extensions, del inglés, Extensiones de Correo de Internet de Propósitos Múltiples / Seguro) es un estándar para criptografía de clave pública y firmado de correo electrónico encapsulado en MIME.
Es utilizado para el intercambio de correo electrónico que hace posible garantizar la confidencialidad y el reconocimiento de autoría de los mensajes electrónicos.
S/MIME está basado en el estándar MIME, cuyo objetivo es permitir a los usuarios adjuntar a sus mensajes electrónicos archivos diferentes a los archivos de texto ASCII (American National Standard Code for Information Interchange). Por lo tanto, el estándar MIME hace posible que podamos adjuntar todo tipo de archivos a nuestros correos electrónicos.
S/MIME fue desarrollado originalmente por la compañía RSA Data Security. Ratificado en julio de 1999 por el IETF (Internet Engineering Task Force), S-MIME se convirtió en un estándar cuyas especificaciones se incluyen en las RFC (Request for Comments, Solicitudes de Comentarios), desde la 2630 a la 2633.
RFC 822
Define un formato para los mensajes de texto que se envían por medio de correo electrónico. Considera que los mensajes se componen de un sobre(envelope) y unos contenidos(content).
El sobre contiene la información necesaria para llevar a cabo la transmisión y la distribución. Los contenidos constituyen el objeto que se va a enviar al receptor.
Este estándar aplica solo a los contenidos
Un mensaje está formado por cabecera y el cuerpo arbitrario.
La cabecera se separa por una línea en blanco, contiene: palabra clave seguida de dos puntos,seguidos, argumento de palabra clave.
MIME
Es una extensión del marco de trabajo de RFC 822.
MIME define 5 nuevos campos de cabecera:
- Versión MIME: con valor de parámetro 1.0
- Tipo de contenido
- Codificación de Transferencia de Contenido
- Identificación de Contenido
- Descripción del Contenido
- Texto
- Multiparte (Mezclado, Paralelo, Alternativo,Resumen)
- Mensaje
- Imagen
- Video
- Audio
- Aplicación (PostScript, Flujo de Octetos)
Características de S/MIME
Provee seguridad criptográfica como:
- Autenticación, integridad del mensaje, no repudio(usando firmas digitales)
- Privacidad y seguridad de los datos (usando cifrado)
Puede ser usado en:
- Usuarios agentes de correo tradicional (MUAs)
- Mensajes autónomos de transferencia de mensajes
Funciones
S/MIME proporciona las siguientes funciones:
- Datos empaquetados: contenido cifrado de cualquier tipo y clave de cifrado de contenido cifrado para uno o más receptores
- Datos firmados: Una firma digital se forma con el resumen del mensaje del contenido y se cifra con la clave privada del firmante en base64. Solo puede verlo un receptor.
- Datos firmados en claro: Solo se codifica la firma digital usando base64. Cualquier receptor puede verlo sin poder verificar la firma
- Datos firmados y empaquetados: Se pueden anidar entidades solo firmadas y solo cifradas, para que los datos firmados puedan ser cifrados.
Algoritmos criptográficos
S/MIME incorpora tres algoritmos de clave pública.
- DSS (Digital Signature Standard)
- SHA-1 (160 bits)
- triple DES
ESPECIFICACIONES S/MIME
Incluye una discusión del procedimiento para decidir qué algoritmo de cifrado de contenido utilizar. Un emisor tiene para elegir entre:
- Determinar si el receptor es capaz de descifrar usando un algoritmo de cifrado determinado.
- Si el receptor solo es capaz de aceptar contenido que se ha cifrado mediante un algoritmo débil.
El emisor debería seguir las siguientes reglas:
- Si el emisor tiene una lista de descifrado preferente de un receptor, DEBERÍA elegir la primera.
- Si el emisor ha recibido algún mensaje con anterioridad del receptor, DEBERÍA usar el mismo algoritmo que se usó en el último mensaje recibido.
- Si el emisor no sabe de las capacidades de descifrado del receptor y está dispuesto a arriesgar que no pueda ser descifrado el mensaje, DEBERÍA usar tripleDES.
- Si el emisor no sabe de las capacidades de descifrado del receptor y no está dispuesto a arriesgar que no pueda ser descifrado el mensaje, DEBE usar RC2/40.
MENSAJES S/MIME
Agrega nuevos tipos de contenido MIME:
- Multiparte
- Firmado: un mensaje firmado en claro en 2 partes: mensaje y firma.
- Aplicación
- Pkcs7-mime: entidades S/MIME firmada, cifrada y una entidad que contiene solo certificados de clave pública
- Pkcs7-firma: El tipo de contenido de la subparte de firma de un mensaje multiparte firmado.
- Pkcs10-mime: Un mensaje de solicitud de registro de certificado.
Pkcs: hace referencia a un grupo de especificaciones de clave pública emitidas por los laboratorios de RSA para mejora de S/MIME
ENTIDAD MIME
S/MIME asegura una entidad MIME con una firma, con cifrado o con ambos. Una entidad MIME puede ser un mensaje completo a excepción de las cabeceras, o si el tipo de contenido MIME es multiparte, entonces la entidad MIME es una de las subpartes del mensaje.
DATOS EMPAQUETADOS
- Generar una clave de sesión pseudoaleatoria para un algoritmo de cifrado simétrico particular (triple DES o RC2/40)
- Para cada receptor, cifrar la clave de sesión con la clave pública RSA del receptor.
- Para cada receptor, preparar un bloque (RecipientInfo) que contiene un identificador del certificado clave pública del receptor, un identificador de algoritmo utilizado para cifrar la clave de sesión y la clave de sesión cifrada.
- Cifrar el contenido de mensaje con la clave de sesión.
- Después se codifica en base64.
- Para recuperar el mensaje cifrado, el receptor en primer lugar, elimina la codificación base64. Luego, se usa la clave privada del receptor para recuperar la clave de sesión. Por último, el contenido de mensaje se cifra con la clave de sesión.
DATOS FIRMADOS
- Seleccionar un algoritmo de resumen de mensaje (SHA o MD5)
- Calcular el resumen del mensaje, o función hash, del contenido que se va a firmar.
- Cifrar el resumen de mensaje con la clave privada del firmante.
- Preparar un bloque (SignerInfo) que contenga el certificado de clave pública del firmante, un identificador del algoritmo de resumen del mensaje, un identificador del algoritmo usado para cifrar el mensaje y el resumen de mensaje cifrado.
- Se codifica en base64.
- Para recuperar el mensaje firmado y verificar la firma, el receptor elimina la codificación base64. Luego, la clave pública del firmante se usa para descifrar el resumen del mensaje. El receptor computa independientemente el resumen del mensaje y lo compara con el resumen del mensaje descifrado para verificar la firma.
FIRMA EN CLARO
Se consigue usando el tipo de contenido multiparte con subtipo firmado.
Contiene 2 partes:
- La 1° puede ser cualquier tipo MIME pero debe prepararse para no ser modificado durante la transferencia (Si no 7 bits, entonces codificada en base64 o imprimible textualmente). Se procesa igual que Datos firmados, pero con campo de mensaje vacío (esto es firma separada). La transferencia se codifica en base64 para convertirse en la 2° parte.
- La 2° parte tiene tipo de contenido MIME de aplicación y subtipo de firma pkcs7.
- El receptor puede verificar la firma tomando el resumen de mensaje de la primera parte y comparándolo con el resumen de mensaje recuperado de la firma en la segunda parte.
PROCESO
Pasos del proceso
- Alice utiliza su clave privada para crear una firma digital para el mensaje.
- Alice utiliza una clave de cifrado masiva (clave de sesión) simétrica para cifrar el mensaje.
- Para crear un canal seguro que puede proteger la confidencialidad de la clave de cifrado mientras se transmite a través de un canal de comunicación pública, Alice utiliza la clave pública de Bob (que se encuentra en el certificado de Bob) para cifrar la clave de cifrado. Este paso produce un lockbox que contiene una copia encriptada de la clave de cifrado.
- Bob usa su clave privada para descifrar la caja fuerte. Este proceso de descifrado produce la clave de sesión.
- Utilizando la clave de sesión, Bob descifra el mensaje. Ahora Bob puede leer el mensaje.
- Bob utiliza la clave pública de Alice para verificar la autenticidad y la integridad del mensaje mediante la verificación de la firma digital, que se encuentra en el certificado de Alice.
SOLICITUD DE REGISTRO
Una aplicación o usuario solicitan certificado de clave pública a una autoridad de certificación.
La entidad S/MIME aplicación/pkcs10 se usa para transferir una solicitud de certificación.
Dicha solicitud incluye un bloque de información de solicitd de certificación (certificationRequestInfo), seguido de un identificador de algoritmo cifrado de clave pública, firma del bloque de información de solicitud de certificación(se hace con clave privada del emisor).
Este bloque incluye nombre del sujeto del certificado y representación de ristra de bits de la clave pública del usuario.
PROCESAMIENTO DE CERTIFICADOS S/MIME
- S/MIME usa certificados de clave pública.
- Los administradores y/o usuarios de S/MIME deben mantener los certificados necesarios para la verificación de firmas entrantes y para cifrar mensajes salientes.
PAPEL DEL AGENTE USUARIO
Funciones a realizar de un usuario S/MIME para la gestión de claves:
- Generación de claves: el usuario de alguna herramienta administrativa DEBE poder generar parejas separadas de claves Deffie-Hellman y DSS y DEBERÍA poder generar parejas de claves RSA.
- Registro: Una clave pública de usuario debe registrarse con una autoridad de certificación para recibir un certificado de clave pública X.509.
- Almacenamiento y recuperación de certificado: un usuario requiere acceso a una lista local de certificados para verificar las firmas entrantes y para cifrar los mensajes salientes.
CERTIFICADOS VERISIGN
Es una de las compañías que proporcionan servicios de autoridad de certificación (CA).
El servicio que ofrece está diseñado para ser compatible con S/MIME y otras aplicaciones.
Emite certificados X.509 con el nombre VeriSign Digital ID.
La información que contiene un identificador digital depende del tipo de identificador digital y su uso. Como mínimo cada identificador contiene:
- Clave pública del dueño
- Nombre o alias del dueño
- Fecha de caducidad del identificador digital
- Número de serie del identificador digital
- Nombre de la autoridad de certificación que emitió el identificador digital
- Firma digital de la autoridad de certificación que emitió el identificador digital
Los identificadores digitales pueden también contener información suministrada por el usuario como:
- Dirección
- Dirección de correo electrónico
- Información básica de registro (país, código postal, edad y género)
SERVICIOS DE SEGURIDAD AVANZADA
Se han propuesto:
- Recibos firmados: Devolver un recibo firmado proporciona una prueba de la entrega al creador de un mensaje y le permite demostrar a una tercera parte que el receptor recibió el mensaje.
- Etiquetas de seguridad: Es información sobre seguridad con respecto a la confidencialidad del contenido protegido por el encapsulado de S/MIME.
- Pueden usarse para el control de acceso, indicando qué usuarios tienen permiso para acceder a un objeto.
- Listas de correo seguras: cuando un usuario envía un mensaje a varios receptores, es necesaria una cantidad de procesamiento por cada receptor, incluyendo el uso de la clave pública de cada uno de ellos.
Fuentes Consultadas:
- Fundamentos de Seguridad en Redes Aplicaciones y Estándares, Stallings, Pearson,2° edición.
