Verarbeitung von E-Mail-Nachrichten-Dateien mit dem File-SDK

Das MIP SDK unterstützt die Entschlüsselung und Verschlüsselung von E-Mail-Nachrichten. Das SDK unterstützt sowohl .msg Dateien, die von Outlook oder Exchange generiert werden, als auch .rpmsg-Dateien durch geringfügig unterschiedliche Methoden.

Hinweis

Ab MIP SDK 1.17 werden .eml Dateien unterstützt. Die Verarbeitung erfolgt je nach Containerformat ähnlich wie bei .msg in Szenarien für Bezeichnung und Schutz und wie bei .rpmsg in Prüfszenarien.

Häufige Anwendungsfälle für .msg Dateien sind:

  • Wenden Sie Bezeichnungen auf E-Mails von DLP- oder Mail-Gateway-Diensten an.
  • Entschlüsseln Sie vertrauliche Dokumente, die mit eDiscovery gescannt werden sollen.
  • Entschlüsselung, Änderung und erneuter Schutz von Nachrichten während der Übertragung.
  • Veröffentlichen Sie geschützte Nachrichten direkt aus Branchenanwendungen.

Wenn eine .msg Datei als Eingabe angegeben wird, gibt MIP SDK eine beschriftete, geschützte oder nicht geschützte .msg Datei aus.

Häufige Anwendungsfälle für RPMSG-Dateien sind:

  • Entschlüsseln Sie E-Mails und Anhänge für die Inspektion zur Verhinderung von Datenverlusten (Data Loss Prevention, DLP).

Wenn eine RPMSG-Datei als Eingabe angegeben wird, prüft MIP SDK Textbytes und Anlagen. Beim Entschlüsseln einer RPMSG-Datei wird keine RPMSG-Datei als Ausgabe erzeugt.

Hinweis zur Unterstützung von MSG-Dateien

MIP SDK unterstützt die Anwendung und Entfernung von Schutzmaßnahmen für MSG-Dateien. Angesichts der Vielzahl von Codierungstypen und Variablen im Format im Laufe der Jahre ist es nicht möglich, zu garantieren, dass MIP SDK den Schutz von allen .msg-Dateien entfernen kann. Im folgenden Abschnitt wird die Unterstützung von .msg-Dateien aus verschiedenen Quellen beschrieben.

  • Das Entfernen des Schutzes von .msg-Dateien, die mit MIP SDK geschützt wurden, wird vollständig unterstützt.
  • Das Entfernen des Schutzes von .msg-Dateien, die von den aktuell unterstützten Versionen des Outlook-Clients erstellt wurden, wird vollständig unterstützt.
  • Das Entfernen des Schutzes von .msg-Dateien, die von nicht mehr unterstützten Versionen des Outlook-Clients erstellt wurden, wird so gut es geht unterstützt.
  • MIP SDK unterstützt keinen erneuten Schutz von MSG-Dateien mit geschützten Bezeichnungen. Benutzer müssen den Schutz aufheben und die geschützte Bezeichnung explizit entfernen, bevor Sie die Datei erneut mit einer anderen Bezeichnung schützen.

Bezeichnung von MSG-Dateien

MIP SDK unterstützt das Lesen und Schreiben von Bezeichnungen für .msg-Dateien. Untergeordnete Anhänge erben die Bezeichnung nicht, wohl aber die Schutzeinstellungen. Weitere Informationen finden Sie unter Bezeichnungs- und Schutzvorgänge im File SDK für .msg Dateien.

Bezeichnungs- und Schutzvorgänge im File SDK für .msg Dateien

Das Datei-SDK unterstützt Bezeichnungs- und Schutzvorgänge für .msg Dateien auf eine Weise, die mit jedem anderen Dateityp identisch ist, außer dass das SDK die Anwendung benötigt, um das MSG-Featureflagge zu aktivieren.

Wie bereits erwähnt, ist für die Instanziierung von FileEngine ein Einstellungsobjekt erforderlich: FileEngineSettings. FileEngineSettings übergibt Parameter für benutzerdefinierte Einstellungen, um bestimmte Anwendungsanforderungen zu erfüllen. Damit das MIP SDK MSG-Dateien verarbeiten kann, wird mit der CustomSettings-Eigenschaft des FileEngineSettings-Objekts das Flag für enable_msg_file_type gesetzt.

Wenn Sie ein FileEngineSettings Objekt namens engineSettings erstellen, legen Sie diese Eigenschaft in .NET wie folgt fest:

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

Der Pseudocode für die Dateischutzvorgänge von .msg-Dateien lautet wie folgt:

  • Setzen Sie das enable_msg_file_type-Flag in mip::FileEngineSettings und fügen Sie das mip::FileEngine zu mip::FileProfile hinzu.
  • Verwenden Sie das FileEngine, um die Liste der Labels für den Benutzer abzurufen.
  • Erstellen Sie den mip::FileHandler, der auf die zu bezeichnende Datei zeigt.
  • Wählen Sie eine Bezeichnung aus und verwenden Sie die mip::FileHandler-Methode des SetLabels, um die Bezeichnung anzuwenden.

Lesen Sie den Abschnitt Schnellstart: Bezeichnungen auflisten, um zu erfahren, wie man Bezeichnungen auflistet.

Ändern des Standardverhaltens für Anhänge

Standardmäßig versucht das File SDK, alle Anlagen zu verarbeiten, die Teil einer MSG-Datei sind, oder eine message.rpmsg-Datei bei Verwendung der Inspektions-APIs. Standardmäßig werden nur das Element auf Stammebene und Anlagen der ersten Ebene entschlüsselt.

Verwenden Sie die benutzerdefinierte Einstellung container_decryption_option, um dieses Verhalten zu ändern. In C++ macht das SDK diese Einstellung über eine Enumeration mip::ContainerDecryptionOptionverfügbar.

Optionsname Beschreibung
All Entschlüsselt die MSG-Datei und Anhänge. Wenn es sich bei der Anlage um eine MSG-Datei handelt, werden die MSG und ihre Anlagen rekursiv entschlüsselt. Es durchläuft maximal zehn Rekursionsebenen, bevor mip::BadInputError("Max depth reached on nested msg attachments") ausgelöst wird.
Default Identisch mit Msg.
Msg Entschlüsselt die Anlagen der MSG und der ersten Ebene. Entschlüsselt nicht rekursiv angefügte MSG-Dateien.
Top Entschlüsseln Sie nur die MSG-Datei, und entschlüsseln Sie keine Anlagen.

Das folgende Beispiel zeigt, wie Sie eine Anwendung in .NET so konfigurieren, dass nur die MSG-Stammdatei entschlüsselt wird.

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

Und in C++:

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

File SDK-Vorgänge für .rpmsg-Dateien

MIP SDK stellt eine Inspektionsfunktion bereit, die die eingebettete Datei message.rpmsg entschlüsseln und eine Reihe von Byteströmen als Ausgabe präsentieren kann. Der SDK-Consumer muss die Datei message.rpmsg extrahieren und an die Inspektions-API übergeben. Variationen dieses Dateinamens sind für Purview-Nachrichtenverschlüsselungsszenarien vorhanden, und die API akzeptiert auch message_v2-, v3- oder v4-Dateien.

Wichtig

Die Inspektions-API stellt keine Ausgabe bereit, die zu einer verwendbaren Datei führt, oder ermöglicht es Ihnen nicht, die Eingabedatei erneut zu schützen. Sie gibt Byteströme aus, die Ihre Anwendung dann weiterverarbeiten kann. MIP SDK unterstützt das Erneute Erstellen von MSG-Dateien aus Message.rpmsg-Dateien nicht.

In den meisten Fällen muss der DLP-Dienst die Anhänge und Nur-Text-Bytes der Nachricht abrufen, um sie zu prüfen und anhand der DLP-Richtlinien zu bewerten. Die Inspect-API verwendet "message.rpmsg" als Eingabe und gibt Bytedatenströme als Ausgabe zurück. Diese Byteströme enthalten die Nur-Text-Bytes der Nachricht und der Anhänge. Der Anwendungsentwickler verarbeitet diese Datenströme und verarbeitet sie weiter (prüfen, rekursiv entschlüsseln usw.).

Die Inspect API verwendet die mip::FileInspector Klasse, die Vorgänge zum Untersuchen unterstützter Dateitypen bereitstellt. mip::MsgInspector, das mip::FileInspector erweitert, stellt Entschlüsselungsvorgänge speziell für das rpmsg-Dateiformat bereit. Das MIP SDK unterstützt keine Veröffentlichungsszenarien für message.rpmsg -Dateien. Außerdem unterstützt auch die FileHandler::RemoveProtection()-API keine message.rpmsg-Dateien. Sie können message.rpmsg-Dateien nur zur Überprüfung entschlüsseln, und die API gibt keine gültige, verwendbare Datei aus. Wenn Ihre Anwendung eine Dateiausgabe erfordert, übergeben Sie eine MSG-Datei, und entfernen Sie den Schutz vor diesem Objekt.

Die mip::MsgInspector-Klasse macht die folgenden Member verfügbar:

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

Weitere Informationen finden Sie im Microsoft Information Protection (MIP)-SDK für C++: Referenz.

Nächste Schritte