Procesamiento de archivos de mensajes de correo electrónico del SDK de archivos

El SDK de MIP admite el descifrado y el cifrado de mensajes de correo electrónico. El SDK admite tanto archivos .msg generados por Outlook o Exchange como archivos .rpmsg, aunque a través de métodos ligeramente diferentes.

Los casos de uso comunes para este escenario son:

  • Descifrar el correo electrónico y los datos adjuntos para la inspección de prevención de pérdida de datos (DLP).
  • Publicar mensajes protegidos directamente desde aplicaciones de línea de negocio.
  • Descifrar, modificar y volver a proteger los mensajes en tránsito.
  • Aplicar etiquetas a los correos electrónicos de servicios DLP o de puerta de enlace de correo.

Declaración de compatibilidad con archivos MSG

El SDK de MIP admite la aplicación de protección y la eliminación de archivos MSG. Dada la variedad de tipos de cifrado y variables en el formato a lo largo de los años, no es posible garantizar que el SDK de MIP pueda quitar la protección de todos los archivos MSG. En la sección siguiente se describe la compatibilidad con archivos MSG de varios orígenes.

  • La eliminación de la protección de los archivos MSG protegidos con el SDK de MIP es un proceso totalmente compatible.
  • La eliminación de la protección de los archivos MSG creados por las versiones compatibles del cliente de Outlook también es proceso totalmente compatible.
  • La eliminación de la protección de los archivos MSG creados por versiones no compatibles del cliente de Outlook se trata de procesar siempre dentro de lo posible.
  • La reprotección de archivos MSG no está disponible con etiquetas protegidas. Los usuarios deben desproteger y quitar la etiqueta protegida explícitamente antes de volver a proteger el archivo con otra etiqueta.

Etiquetado de archivos MSG

El SDK de MIP admite la lectura y escritura de etiquetas en archivos MSG. Los datos adjuntos secundarios no heredan las etiquetas, pero sí la configuración de protección. Consulte Operaciones de etiquetado y protección en el SDK de archivos para archivos .msg para obtener más detalles.

Operaciones de etiquetado y protección en el SDK de archivos para archivos .msg

El SDK de archivos admite las operaciones de etiquetado y protección de los archivos .msg de una manera idéntica a cualquier otro tipo de archivo, excepto que el SDK necesita la aplicación para habilitar la marca de características MSG.

Como se ha comentado anteriormente, la creación de instancias de FileEngine requiere un objeto de configuración, FileEngineSettings. Se puede usar FileEngineSettings para admitir parámetros de una configuración personalizada para satisfacer necesidades específicas de la aplicación. Para permitir que el SDK de MIP procese archivos MSG, se usa la propiedad CustomSettings del objeto FileEngineSettings para establecer la marca para enable_msg_file_type a fin de habilitar el procesamiento de archivos .msg.

Si ha creado un objeto FileEngineSettings denominado engineSettings, debe establecer esta propiedad en .NET de la siguiente manera:

engineSettings.CustomSettings = new List<KeyValuePair<string, string>>();
engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("enable_msg_file_type", "true"));

El pseudocódigo de las operaciones de protección de archivos .msg puede tener el siguiente aspecto:

  • Establezca la marca enable_msg_file_type en mip::FileEngineSettings y agregue mip::FileEngine a mip::FileProfile.
  • Use FileEngine para capturar la lista de etiquetas del usuario.
  • Genere mip::FileHandler de manera que apunte al archivo que se va a etiquetar.
  • Seleccione una etiqueta y use el método SetLabel de mip::FileHandler para aplicar la etiqueta.

Consulte Inicio rápido: Enumeración de etiquetas para obtener información sobre cómo enumerar etiquetas.

Cambio de los comportamientos de control de datos adjuntos predeterminados

De forma predeterminada, al usar las API de inspección, el SDK de archivos intenta procesar todos los datos adjuntos que forman parte de un archivo MSG o un archivo message.rpmsg. No descifra de forma recursiva los datos adjuntos que forman parte de los archivos MSG vinculados al archivo MSG raíz. No se admite la modificación del comportamiento de control predeterminado en este momento.

Operaciones del SDK de archivos para archivos .rpmsg

El SDK de MIP incluye una función de inspección que puede descifrar el archivo message.rpmsg integrado y presentar un conjunto de secuencias de bytes como salida. El consumidor del SDK debe extraer el archivo message.rpmsg y pasarlo a la API de inspección. Existen variaciones de este nombre de archivo para escenarios de cifrado de mensajes de Office, y la API también acepta archivos de tipo mensaje_v2, v3 o v4.

Importante

La API de inspección no proporciona una salida que da como resultado un archivo utilizable ni le permite volver a proteger el archivo de entrada. En su lugar, genera secuencias de bytes que la aplicación puede seguir procesando. El SDK de MIP no admite volver a crear archivos MSG a partir de archivos message.rpmsg.

Normalmente, los servicios de prevención de pérdida de datos (DLP) y puerta de enlace de correo controlan los mensajes conformes con MIME mientras el correo electrónico está en tránsito. Cuando el correo está protegido, el contenido cifrado del mensaje se almacena en datos adjuntos, message.rpmsg. Estos datos adjuntos contienen el cuerpo del correo electrónico y los datos adjuntos cifrados que formaban parte del mensaje original. A continuación, se adjunta el archivo rpmsg a un correo electrónico contenedor de texto no cifrado y se envía al servicio de correo. Una vez que ese mensaje se ajusta al límite de Exchange o Exchange Online, se encuentra en el formato conforme con MIME y se puede enviar a su destino.

En la mayoría de los casos, el servicio DLP debe obtener los datos adjuntos y bytes de texto no cifrado del mensaje para inspeccionarlos y evaluarlos en comparación con las directivas DLP. La API de inspección toma message.rpmsg como entrada y devuelve secuencias de bytes como salida. Estas secuencias de bytes contienen los bytes de texto no cifrado del mensaje y los datos adjuntos. Es tarea del desarrollador de aplicaciones controlar estas secuencias y hacer algo útil con ellas (inspeccionar, descifrar de forma recursiva, etc.).

La API Inspect se implementa a través de una clase, mip::FileInspector, que expone las operaciones de inspección de los tipos de archivo admitidos. mip::MsgInspector, que amplía las capacidades de mip::FileInspector, expone operaciones de descifrado específicas del formato de archivo rpmsg. El SDK de MIP no admite ningún escenario de publicación para archivos message.rpmsg. Además, la API FileHandler::RemoveProtection() no admite archivos message.rpmsg. Los archivos message.rpmsg solo se pueden descifrar para tareas de inspección y no generarán un archivo válido y utilizable. Si la aplicación requiere la generación de un archivo, debe introducir un archivo MSG y quitar la protección de ese objeto.

La clase mip::MsgInspector expone los miembros siguientes:

public const std::vector<uint8_t>& GetBody()
public BodyType GetBodyType() const
public BodyType GetBodyType() const
public InspectorType GetInspectorType() const
public std::shared_ptr<Stream> GetFileStream() const

Para más información, consulte la referencia de API.

Pasos siguientes