2012-04-13 3 views
3

Ich habe eine Webanwendung, die es ermöglicht, Outlook-Mails (* .msg) mit Datei-Upload hochzuladen. Der Kunde möchte das Geschäft digital signierte oder verschlüsselte Mails verbieten. Also nach dem Hochladen der Mail sollte ich etwas überprüfen die Mail, wenn es signiert oder verschlüsselt ist.Überprüfen, ob eine Outlook-Mail (* .msg) digital signiert oder verschlüsselt ist

Wenn es eine Möglichkeit gibt, das zu überprüfen? Wie ein Muster im Stream der Datei?

+0

Sie müssen wirklich angeben, was Sie mit "digitally signed" meinen. Wenn Sie "Rights Managed Email Message" (definiert von Microsoft) meinen, folgen Sie auf jeden Fall dem Beitrag von @ Michael.J.Gray. – GalacticJello

+0

Wenn Sie "Secure/Multipurpose Internet Mail Extensions" (SMIME) meinen, das ist das Format, das der Rest der Welt am meisten benutzt, dann müssen Sie meinem Beitrag folgen. – GalacticJello

+0

Könnten Sie klären? – GalacticJello

Antwort

0

This blog post beschreibt das Format ziemlich gut und another post vom gleichen Autor beschreibt genau, was Sie wollen, die Informationen zu Rights Managed Mail-Nachrichten ist.

Im Wesentlichen, solange die Nachricht the file format entspricht, sollten diese Beiträge und Spezifikationen Ihnen alles geben, was Sie brauchen, um auf Signaturen und Verschlüsselung zu prüfen.

Die Suche nach englischen Wörtern ist keine gute Idee. Was ist, wenn Benutzer nicht auf Englisch schreiben und was passiert, wenn ein pseudozufälliger Strom verschlüsselter Daten Wörter wie "oder" oder "und" in einer Codierung erzeugt, die sie verwenden? Es ist einfach nicht zuverlässig.

EDIT:

Um zu klären, was ich meine, wenn ich sage, das ist eine schlechte Idee für englische Wörter überprüft, habe ich einfach zu sagen, bedeutet, dass die Datei Scannen über und überprüfen, ob ein bestimmter Satz von Wörtern vorhanden ist ist die schlechte Idee. Da jemand diese Lösung abgelehnt hat, habe ich das Gefühl, dass sie aufgrund dieser Mehrdeutigkeit möglicherweise missverstanden haben, was ich gesagt habe.

Wie ein anderer Benutzer in ihrer Antwort angegeben hat, ist das Analysieren des Objekts und das Behandeln von Bedingungen in den Daten in Ordnung. Sie können von ihrem Beitrag sehen, dass es die dokumentierte Methode ist und gut funktioniert, weil es auf den Standards basiert. Dies ist vergleichbar mit den Informationen, die ich hier mit den beiden Posts und der Formatangabe gegeben habe.

+0

@ MichaelJ.Gray Vielen Dank für Ihre Antwort. Ich denke, es ist ein guter und ich bin auch mit Ihnen über die englischen Wörter Parsing. Allerdings werde ich ein wenig mehr warten mit der Annahme der Antwort, um zu sehen, ob etwas mehr kommt. – gsharp

0

Um die Nachricht zu öffnen und zu prüfen, empfehle ich Ihnen, zu verwenden. Dies ist, was ich benutze und es funktioniert ohne Outlook auf dem Server installiert. Wenn die GetMessageFromMsgFile-Methode eine RDOEncryptedMessage zurückgibt, bedeutet dies, dass Ihre E-Mail verschlüsselt oder signiert ist.

1

Die Überprüfung auf die englischen Wörter ist nicht nur gültig, aber es ist der tatsächlich dokumentierte Weg.

Siehe die Behörde:

2.1.3.1.3 Recognizing a Message Object that Represents a Clear-Signed Message

Wenn ein Message-Objekt hat eine Nachrichtenklasse (PidTagMessageClass Eigenschaft ([MS-OXCMSG] Abschnitt 2.2.1.3)) Wert von „IPM. Note.SMIME.MultipartSigned "und enthält genau ein Attachment Objekt, es sollte als eine klar signierte Nachricht behandelt werden. Zusätzliche Verifikationsschritte können durchgeführt werden, um zu überprüfen, ob das Objekt Anlage mit dem entsprechenden Medientyp markiert ist (z. B. die PidTagAttachMimeTag-Eigenschaft ([MS-OXPROPS] Abschnitt 2.680) hat einen Wert von "multipart/signed") und stellt eine gültige multipart/signed MIME Einheit wie in [RFC1847] angegeben. Wenn der Nachrichtenklassenwert nicht "IPM.Note.SMIME.MultipartSigned" ist, aber mit dem Suffix ".SMIME.MultipartSigned" endet, wird das Nachrichtenobjekt MAY < 7> < 8> als eindeutig signierte Nachricht behandelt .

Wenn ein Message-Objekt mit einer Nachrichtenklasse Wert von „IPM.Note.SMIME.MultipartSigned“ nicht die Struktur in 2.1.3.1 Abschnitt angegeben hat, ist das Verhalten nicht definiert.

2.1.3.2.3 Recognizing a Message Object that Represents an Opaque-Signed or Encrypted S/MIME

Wenn ein Message-Objekt hat die Nachrichtenklasse (PidTagMessageClass Eigenschaft ([MS-OXCMSG] Abschnitt 2.2.1.3)) Wert von "IPM.NOTE.SMIME" und enthält genau ein Attachment-Objekt, sollte es als opaque-signed Nachricht oder eine verschlüsselte Nachricht behandelt werden. Weitere Verifizierungen Schritte können durchgeführt werden, um zu überprüfen, ob das Anlagenobjekt mit dem entsprechenden Medientyp als markiert ist (z. B. die Eigenschaft PidTagAttachMimeTag ([MS-OXPROPS] Abschnitt 2.680) ist entweder "application/pkcs7-mime" oder " application/x-pkcs7-mime ", oder es ist " application/octet-stream "und Dateiname, wie von der PidTagAttachFilename Eigenschaft ([MS-OXPROPS] Abschnitt 2.671) angegeben, und hat eine Dateierweiterung" .p7m ") und stellt eine gültige verschlüsselte oder opaque-signed-Nachricht, wie in [RFC3852] angegeben. Wenn der Wert der Nachrichtenklasse nicht "IPM.Note.SMIME" ist, aber mit dem Suffix ".SMIME" endet, wird das Nachrichtenobjekt MAY < 11> als opaque-signed message oder als verschlüsselte Nachricht behandelt .

Der Nachrichtenklassenwert "IPM.Note.SMIME" kann mehrdeutig sein. < 12>

Wenn ein Message-Objekt eine Nachrichtenklasse Wert von „IPM.NOTE.SMIME“ hat sich nicht die geeignete Struktur oder Inhalt hat, wie in Abschnitt 2.1.3.2 , dann ist das Verhalten nicht definiert.

EDIT:

Um genauer zu sein, ja, sollten Sie für ein „Muster im Strom der Datei“ aussehen.

Insbesondere, wenn die MSG Unicode ist, würden Sie den Stream "__substg1.0_001A001F" scannen und nach den oben genannten Mustern suchen.

Die MSG-Datei ist eine OLE-strukturierte Speicherdatei, die Streams und Speicher enthält. Verwenden Sie eine OLE-Speicherbibliothek wie OpenMCDF, wenn Sie in der C# -Welt sind, um die Streams zu erhalten. Es gibt ähnliche für Java, Python, etc.

+0

+1 für nette Antwort – MByD

+1

Das heißt nicht nur nach englischen Wörtern zu überprüfen, wie in meinem ursprünglichen Beitrag beschrieben ... was ist was Ich nehme an, Sie beziehen sich auf. Selbst wenn es dokumentiert wäre, wie ich es beschrieben habe, wäre es keine gute Idee; egal wie autoritativ der war, der die Praxis empfahl. –