MIP SDK 支援電子郵件訊息的解密和加密。 SDK 支援由 Outlook 或 Exchange 產生的 .msg 檔案,以及透過略有不同方法產生的 .rpmsg 檔案。
備註
從 MIP SDK 1.17 開始,支援.eml檔案。 根據容器格式,處理類似於應用於標籤/保護場景的 .msg 和檢查場景的 .rpmsg。
.msg 檔案的常見使用情境包括:
- 將標籤套用至 DLP 或郵件閘道服務的電子郵件。
- 透過電子發現解密待掃描的敏感文件。
- 解密、修改及重新保護傳輸中的訊息。
- 直接從業務線應用程式發布受保護訊息。
當輸入為 .msg 檔案時,MIP SDK 輸出一個有標籤、受保護或未受保護的 .msg 檔案。
.rpmsg 檔案的常見使用情境包括:
- 為了資料外洩防護(DLP)檢查,解密郵件和附件。
當輸入為 .rpmsg 檔案時,MIP SDK 會檢查正文位元組與附件。 解密 .rpmsg 檔案不會產生 .rpmsg 檔案作為輸出。
MSG 檔案支援聲明
MIP SDK 支援 MSG 檔案的保護應用程式和移除。 由於多年來格式中存在多種編碼類型和變數,所以無法保證 MIP SDK 可以移除所有 MSG 檔案的保護。 下一節說明各種來源 MSG 檔案的支援性。
- 完全支援從受 MIP SDK 保護的 MSG 檔案移除保護。
- 完全支援從目前支援的 Outlook 用戶端版本所建立的 MSG 檔案移除保護。
- 對於由不再支援的 Outlook 用戶端版本所建立的 MSG 檔案,其移除保護僅在盡力而為的基礎上提供支援。
- MIP SDK 不支援對帶有受保護標籤的 MSG 檔案進行重新保護。 用戶必須先取消保護並明確移除受保護的標籤,再使用另一個標籤再次保護檔案。
MSG 檔案的標註
MIP SDK 支援在 MSG 檔案上讀取和寫入標籤。 子附件不會繼承標籤,但會繼承保護設定。 如需更多詳細資訊,請參閱 File SDK 中針對 .msg 檔案的標籤和保護作業。
檔案 SDK 中 .msg 檔案的標籤與保護操作
File SDK 支援.msg檔案的標籤與保護操作,方式與其他檔案類型相同,但 SDK 需要應用程式啟用 MSG 功能標誌。
如先前所述,FileEngine的具現化需要設定物件FileEngineSettings。
FileEngineSettings 傳遞自訂設定參數以滿足特定應用需求。 若要讓 MIP SDK 處理 MSG 檔案,CustomSettings 物件的 FileEngineSettings 屬性會設定 enable_msg_file_type 的旗標。
如果您建立一個名為 engineSettings 的 FileEngineSettings 物件,請在 .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::FileHandler的SetLabel方法來套用標籤。
變更預設附件處理行為
根據預設,檔案 SDK 會在使用檢查 API 時,嘗試處理屬於 MSG 檔案的所有附件,或 message.rpmsg 檔案。 預設只會解密根層級專案和第一層附件。
若要修改此行為,請使用自訂設定 container_decryption_option。 在 C++ 中,SDK 透過一個列舉(enum) 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);
.rpmsg 檔案的檔案 SDK 作業
MIP SDK 公開可解密內嵌 message.rpmsg 檔案的檢查函式,並將一組位元組數據流呈現為輸出。 SDK 使用者必須解壓 message.rpmsg 檔案並將其傳給檢查 API。 此檔案名稱有多種變體用於 Purview 訊息加密情境,且 API 也接受 message_v2、v3 或 v4 檔案。
重要
檢查 API 不會 提供輸出產生可用的檔案,也不允許你重新保護輸入檔案。 它會輸出應用程式接著可以進一步處理的位元組數據流。 MIP SDK 不支援從 message.rpmsg 檔案重建 MSG 檔案。
在大部分情況下,DLP 服務必須從訊息取得附件和純文本位元組,以檢查和評估 DLP 原則。 檢查 API 會將 message.rpmsg 作為輸入,並傳回位元組串流作為輸出。 這些位元組數據流包含訊息和附件的純文本位元組。 應用程式開發者會處理這些串流並進一步處理(檢查、遞迴解密等)。
API Inspect 使用 該 mip::FileInspector 類別,該類別可公開檢查支援檔案類型的操作。
mip::MsgInspector,擴展 mip::FileInspector,會揭露特定於 rpmsg 檔案格式的解密操作。 MIP SDK 不支援 message.rpmsg 檔案的任何發佈案例。 此外, FileHandler::RemoveProtection() API 不支援 message.rpmsg 檔案。 你只能解密 message.rpmsg 檔案以便檢查,API 不會輸出有效且可用的檔案。 如果你的應用程式需要檔案輸出,請傳送一個 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 資訊保護 SDK for C++:參考。