我有一个WCF服务,需要与客户交换机密信息。客户端将通过Internet连接到该服务。如果我的绑定配置如下,客户端和服务器之间的通信是否容易被窃听或MITM攻击?
<bindings>
<netTcpBinding>
<binding name="myBinding">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
中阅读了以下内容
在以下情况下使用传输安全性:
您正在从应用程序直接向WCF发送消息 服务和消息不会通过中间路由 系统。服务和客户端都位于Intranet中。
和
使用传输安全性具有以下缺点:
安全性是在点对点的基础上应用的,没有提供多跳或通过中间应用程序节点进行路由
如果我直接连接到WCF服务并且服务器没有在其他地方转发消息,那么传输安全性是否足够安全?
我使用数字证书尝试了邮件安全性,但性能并不好。对服务器的最快呼叫花费3秒,而在传输安全性中,相同的呼叫花费1.5秒。
答案 0 :(得分:0)
我强烈反对在互联网上使用netTcpBinding(所以它发布了你发布的文章),传输安全性当然是最高性能的选项,但缺点是它只能保证点对点连接和互联网上你可以我不知道你在客户和服务之间有多少中介。在Intranet应用程序中,您通常具有受控环境,您可以确定这一点。
通过互联网,你应该使用http传输和消息安全,这意味着你必须支付一些开销和性能。
如上所述,您无法比较两种不同绑定的延迟,您应该使用WsHttpBinding,就像您已经尝试使用证书加密消息一样,这是迄今为止在Internet上使用WCF发送数据的最安全方式方案,我认为如果真的很重要,那么你应该接受性能的下降来换取它。
这可能是一个有用的链接 http://wcfsecurityguide.codeplex.com/