2012-08-14 78 views
0

我有一个WCF服务,需要与客户交换的机密信息。客户将通过互联网连接到服务。如果我的绑定配置如下,客户端和服务器容易被窃听或中间人攻击之间的沟通?WCF绑定传输安全使用Windows凭据

<bindings> 
    <netTcpBinding> 
     <binding name="myBinding"> 
      <security mode="Transport"> 
       <transport clientCredentialType="Windows" /> 
      </security> 
     </binding> 
    </netTcpBinding> 
</bindings> 

我已阅读,在下列情况下的MSDN article

使用传输安全以下:

您直接从您的应用程序发送一条消息,WCF 服务和消息将不会通过中间的 系统进行路由。服务和客户端都位于Intranet中。

使用传输安全有以下缺点:

安全被施加上的点至点的基础上,与没有规定多跳或通过中间应用节点

路由

如果我直接连接到WCF服务和服务器没有其他地方转发邮件,将运输安全是SECUR足够了吗?

我已经使用数字证书试过消息安全性,但表现得也不好。对服务器的最快呼叫需要3秒,而在传输安全中,相同的呼叫需要1.5秒。

回答

0

我强烈反对通过互联网使用NetTcpBinding的(以及因此它你张贴的文章),交通运输安全当然是最高效的选项,但不足之处是,它只能保证点对点的互联网连接和你无法知道客户和服务之间的方式和中介。在Intranet应用程序中,您通常拥有一个受控制的环境,您可以确信。

通过互联网,你应该使用HTTP传输和信息安全性,意味着你必须付出一些有关的开销,因此性能。

至于说你不能比较两个不同的绑定的延迟,你应该使用的WSHttpBinding和像你已经尝试过用一个证书的消息加密,这是迄今为止与WCF上发送数据的最安全的方式互联网场景,我认为如果真的很重要,你应该接受性能下降的交换。

这可能是一种有用的链接 http://wcfsecurityguide.codeplex.com/

+0

为什么NetTcpBinding的鼓励在互联网上?可以使用具有消息安全性的TCP绑定(使用服务器证书)。 – Omtara 2012-08-15 08:40:01

+0

NetTcpBinding的有,你不能承载它在IIS6的dissadvantages,你需要使用WCF客户端,有些防火墙可能会阻止未知端口的TCP连接,WSDualHttpBinding用于non-.NET兼容性,它运行在HTTP(S) ,Microsoft为两种不同的场景设计了两种不同的绑定。无论如何,如果你确定要管理所有的问题,netTcpBinding完全可以通过互联网使用。 – MaRuf 2012-08-15 16:56:04