Security Exchange Web服务识别欺骗

Security Exchange Web服务识别欺骗,security,exchange-server,exchangewebservices,Security,Exchange Server,Exchangewebservices,假设我使用telnet会话并发送一封带有地址的电子邮件alice@domain.com到bob@domain.com但事实上我是charly@domain.com... 在alice@domain.com我有一个正在运行的WCF web服务正在使用Exchange web服务监视该特定邮箱 我怎样才能知道这条消息来自哪里bob@domain.com实际上来自charly@domain.com? 我使用的是Visual Studio 2010,带有.NET 4.0和EWS管理的API 1.1 服务

假设我使用telnet会话并发送一封带有地址的电子邮件alice@domain.com到bob@domain.com但事实上我是charly@domain.com...

在alice@domain.com我有一个正在运行的WCF web服务正在使用Exchange web服务监视该特定邮箱

我怎样才能知道这条消息来自哪里bob@domain.com实际上来自charly@domain.com?

我使用的是Visual Studio 2010,带有.NET 4.0和EWS管理的API 1.1 服务器配置为使用SSL,我有ExchangeServer2007SP1

我尝试了两个属性“Sender”和“From”,但它们是相同的,都指向bob。。。
消息头中没有任何内容实际指向charly。。。一切都指向鲍勃。。。有什么想法吗?我可能忽略的事情?

如果您想确保不可能使用电子邮件服务进行身份欺骗,您可以使用加密签名是实现这一目标的常用技术

这就要求每一封从alice@domain.com由她签署一个秘密。您的Web服务必须信任她用于执行此操作的密钥或证书。您的Web服务可以通过检查签名的有效性来验证邮件是否确实由Alice发送。只有掌握爱丽丝秘密的人才能创建这样一个有效的签名。如果签名错误或丢失,您的Web服务会触发警报


如果真的Alice忘记在电子邮件上签名,您的服务也会触发,因为它无法判断是否真的是Alice发送了该邮件。您还需要确保使用中的秘密只能由Alice访问。如果您需要进一步的信息,请仔细阅读。

我认为您无法通过EWS管理的API检测到此类做法,至少在这种情况下,我看不到任何有用的信息。除非使用某些加密签名识别有效发件人,或者您可以使用自己的扩展属性标记来自有效发件人的邮件,只有您(您的软件)才能识别创建和使用您必须相信邮件是由出现在Sender或property中的任何人发送的

PGP和S/MIME在我的上下文中不太适用,很抱歉,我没有提供有关这方面的详细信息。这个想法是,用户只能从内部网发送电子邮件,也可以从他/她的手机发送电子邮件。。。Outlook可以在计算机上运行的情况下对这些邮件进行签名,但实际上不可能通过手机进行签名。可以添加一些限制,但不能使用PGP。我需要一些内置于EWS的东西来完成这项任务。