Поделиться через


Обработка файла сообщения электронной почты SDK

Пакет SDK MIP поддерживает расшифровку и шифрование сообщений электронной почты. Оба файла .msg, созданные в Outlook или Exchange, и файлы .rpmsg поддерживаются пакетом SDK, хотя через немного разные методы.

Распространенные варианты использования для этого сценария:

  • Расшифровка почты и вложений для проверки защиты от потери данных (DLP).
  • Публикация защищенных сообщений непосредственно из бизнес-приложений
  • Расшифровка, изменение и повторное защита сообщений при передаче.
  • Примените метки к сообщениям электронной почты из служб DLP или почтовых шлюзов.

Заявление о поддержке файлов MSG

Пакет SDK MIP поддерживает защиту приложений и удаление файлов MSG. Учитывая различные типы кодирования и переменные в формате в течение многих лет, невозможно гарантировать, что пакет SDK MIP может удалить защиту от всех ФАЙЛОВ MSG. В следующем разделе описывается поддержка файлов MSG из различных источников.

  • Удаление защиты от MSG-файлов, защищенных с помощью пакета SDK MIP, полностью поддерживается.
  • Удаление защиты от файлов MSG, созданных в настоящее время поддерживаемыми версиями клиента Outlook, полностью поддерживается.
  • Удаление защиты из файлов MSG, созданных версиями клиента Outlook, которые больше не поддерживаются, осуществляется в рамках лучших усилий.
  • Повторная защита файлов MSG недоступна для защищенных меток. Пользователи должны отменить защиту и удалить защищенную метку явным образом, прежде чем снова защитить файл с другой меткой.

Маркировка MSG-файлов

Пакет SDK MIP поддерживает чтение и запись меток в MSG-файлах. Дочерние вложения не наследуют метку, но наследуют настройки защиты. Дополнительные сведения см. в разделе "Операции с метками и защитой в SDK для файлов .msg".

Операции пометки и защиты в файловом SDK для .msg файлов

Пакет SDK файлов поддерживает операции маркировки и защиты для файлов .msg таким образом, как и любой другой тип файла, за исключением того, что пакет SDK должен включить флаг функции MSG.

Как упоминалось ранее, создание экземпляра FileEngine требует объекта настроек FileEngineSettings. FileEngineSettings можно использовать для передачи параметров для настройки в соответствии с конкретными требованиями приложения. Чтобы пакет SDK MIP обрабатывал файлы MSG, свойство объекта CustomSettings используется для установки флага FileEngineSettings, чтобы включить обработку .msg файлов.

Если вы создали FileEngineSettings объект с именем engineSettings, вы задали это свойство в .NET следующим образом:

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

Псевдокод операций защиты файлов .msg может выглядеть следующим образом:

  • Установите enable_msg_file_type флаг в mip::FileEngineSettings и добавьте mip::FileEngine в mip::FileProfile.
  • Используйте FileEngine для получения списка меток для пользователя.
  • Создайте mip::FileHandler, указывающий на файл, который нужно пометить.
  • Выберите метку и используйте mip::FileHandlerSetLabel метод для применения метки.

Обратитесь к Краткому руководству: Список меток, чтобы узнать, как вывести список меток.

Изменение поведения обработки вложений по умолчанию

По умолчанию пакет SDK файлов пытается обработать все вложения, которые являются частью MSG-файла, или файла message.rpmsg при использовании API проверки. По умолчанию расшифровываются только элемент на уровне корня и первый уровень вложений.

Чтобы изменить это поведение, можно использовать настраиваемый параметр container_decryption_option. В C++ эта возможность предоставляется с помощью перечисления mip::ContainerDecryptionOption.

Имя параметра Описание
All Расшифровывает MSG-файл и вложения. Если вложение является MSG, он рекурсивно расшифровывает MSG и его вложения. Он будет рекурсировать не более десяти уровней, прежде чем бросать mip::BadInputError("Max depth reached on nested msg attachments")
Default То же, что и Msg.
Msg Расшифровывает MSG и вложения первого уровня. Не рекурсивно расшифровывает вложенные MSG-файлы.
Top Расшифровывать только MSG-файл и не расшифровывать вложения.

В следующем примере показано, как настроить приложение в .NET для расшифровки только корневого MSG-файла.

engineSettings.CustomSettings.Add(new KeyValuePair<string, string>("container_decryption_option", "Top"));

И в C++:

vector<pair<string, string>> customSettings;
customSettings.emplace_back(mip::GetCustomSettingContainerDecryptionOption(),
        mip::ContainerDecryptionOptionString(mip::ContainerDecryptionOption::Top));
engineSettings.SetCustomSettings(customSettings);

Операции пакета SDK для файлов .rpmsg

Пакет SDK MIP предоставляет функцию проверки, которая может расшифровать внедренный файл message.rpmsg и представить набор потоков байтов в качестве выходных данных. Пользователь SDK должен извлечь файл message.rpmsg и передать его в интерфейс проверки API. Варианты этого имени файла существуют для сценариев шифрования сообщений Purview, а API также принимает message_v2, версии 3 или v4-файлы.

Внимание

API проверки не предоставляет выходные данные, которые привели бы к пригодному для использования файлу, также не позволяет повторно защитить входной файл. Он выводит потоки байтов, которые приложение может затем обрабатывать дальше. Повторное восстановление MSG-файлов из файлов message.rpmsg не поддерживается пакетом SDK MIP.

Как правило, почтовый шлюз и службы защиты от потери данных (DLP) обрабатывают сообщения, соответствующие MIME, во время передачи электронной почты. При защите почты зашифрованное содержимое сообщения хранится в вложении message.rpmsg. Это вложение содержит зашифрованный текст электронной почты и все вложения, которые были частью исходного сообщения. Затем файл rpmsg присоединяется к электронной почте с текстовой обёрткой и отправляется в почтовую службу. Когда сообщение покидает границу Exchange или Exchange Online, оно находится в формате, совместимом с MIME, чтобы его можно было отправить в место назначения.

В большинстве случаев служба защиты от потери данных должна получить вложения и байты обычного текста из сообщения для проверки и оценки политик защиты от потери данных. API проверки принимает message.rpmsg в качестве входных данных и возвращает потоки байтов в качестве выходных данных. Эти потоки байтов содержат байты обычного текста сообщения и вложений. Разработчику приложений нужно обрабатывать эти потоки и делать с ними что-то полезное (проверять, рекурсивно расшифровывать и т. д.).

Inspect API реализуется через класс, mip::FileInspectorкоторый предоставляет операции для проверки поддерживаемых типов файлов. mip::MsgInspector который расширяет mip::FileInspectorвозможности, предоставляет операции расшифровки, относящиеся к формату файла rpmsg. Пакет SDK MIP не поддерживает сценарии публикации файлов message.rpmsg . Кроме того, FileHandler::RemoveProtection() API не поддерживает файлы message.rpmsg. Файлы Message.rpmsg можно расшифровывать только для проверки и не выводить допустимый, доступный для использования файл. Если приложению требуется вывод файла, необходимо передать MSG-файл и удалить защиту от этого объекта.

mip::MsgInspector класс предоставляет следующие члены:

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

Дополнительные сведения см. в разделе Microsoft Information Protection (MIP) SDK для C++: Справочник.

Следующие шаги