2011-05-02 98 views
0

讓我們假設我使用Telnet會話,併發送帶有地址[email protected]電子郵件至[email protected],但事實上,我[email protected] ...Exchange Web服務標識欺騙

[email protected]我有一個WCF Web服務正在運行,它使用Exchange Web服務監視特定的郵箱...

我如何判斷[email protected]發出的郵件確實來自[email protected]

我正在使用Visual Studio 2010與.NET 4.0和EWS託管API 1.1 服務器被配置爲使用SSL並且我有Exchange Server 2007 SP1。

我嘗試了兩個屬性「發件人」和「發件人」,但他們是相同的,都指向鮑勃... 沒有任何信息頭實際指向charly ...一切指向bob ...任何想法?我可能忽略的東西?

回答

1

如果您想確保使用電子郵件服務無法識別身份欺騙,則可以使用加密簽名。 PGP/GPGS/MIME是用於實現這一點的常用技術。

這需要每個從[email protected]發送的郵件由她的祕密簽名。她用來執行此操作的密鑰或證書必須由您的Web服務信任。您的web服務可以通過檢查簽名的有效性來驗證郵件是否真的由Alice發送。只有擁有Alice的祕密的人才能創建這樣的有效簽名。如果簽名錯誤或丟失,您的Web服務可能會觸發警報。

如果真正的愛麗絲忘了籤一封電子郵件,你的服務也會觸發,因爲它不能分辨是否真的是愛麗絲髮送了這封郵件。您還需要確保只有Alice可以訪問使用的祕密。如果您需要更多信息,您應該閱讀public key cryptography

+0

PGP和S/MIME在我的上下文中並不完全適用,對不起,我沒有提供關於此的全部細節。這個想法是,一個用戶只能從內部網發送郵件,但也可以從他/她的手機發送電子郵件... Outlook可以簽署這些郵件,如果它在計算機上運行,​​但從手機實際上是不可能的。可以添加一些限制,但使用PGP不是一種選擇。我需要在EWS中構建的東西來完成這個任務。 – GxG 2011-05-02 13:21:33

0

我不認爲你可以用EWS Managed API檢測這樣的做法,至少我沒有看到任何在這種情況下可能有用的東西。除非使用某些加密簽名識別出有效的發件人,或者您可以用自己的擴展屬性標記來自有效發件人的郵件,只有您(您的軟件)創建並使用您必須相信郵件是由發件人中顯示的任何人發送的或從屬性