【问题标题】:WCF Binding Transport Security With Windows CredentialsWCF 使用 Windows 凭据绑定传输安全性
【发布时间】:2012-08-14 22:32:29
【问题描述】:

我有 WCF 服务,需要与客户交换机密信息。客户端将通过 Internet 连接到服务。如果我的绑定配置如下,客户端和服务器之间的通信是否容易被窃听或 MITM 攻击?

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

我在MSDN article 中阅读了以下内容

在以下场景中使用传输安全性:

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

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

安全性是在点对点的基础上应用的,不提供多跳或通过中间应用程序节点的路由

如果我直接连接到 WCF 服务并且服务器没有将消息转发到其他任何地方,那么传输安全性是否足够安全?

我尝试过使用数字证书的消息安全性,但性能并不好。对服务器的最快调用需要 3 秒,而在传输安全方面,相同的调用需要 1.5 秒。

【问题讨论】:

    标签: wcf encryption


    【解决方案1】:

    我强烈反对在互联网上使用 netTcpBinding(你发布的文章也是如此),传输安全当然是性能最高的选项,但缺点是它只能保证点对点连接,你可以通过互联网'不知道您在客户和服务之间如何以及可能有中介。在 Intranet 应用程序中,您通常有一个受控环境,您可以确定这一点。

    在互联网上,您应该使用 http 传输和消息安全,这意味着您必须为开销和性能付出一些代价。

    如前所述,您无法比较两种不同绑定的延迟,您应该使用 WsHttpBinding 并且就像您已经尝试使用证书加密消息一样,这是迄今为止在互联网上使用 WCF 发送数据的最安全方式在这种情况下,我认为如果它真的很重要,你应该接受性能下降作为交换。

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

    【讨论】:

    • 为什么不鼓励在 Internet 上使用 netTcpBinding?可以使用具有消息安全性的 TCP 绑定(使用服务器证书)。
    • netTcpBinding 的缺点是不能在 IIS6 中托管,需要使用 WCF 客户端,并且某些防火墙可能会阻止未知端口上的 TCP 连接,WSDualHttpBinding 用于非.NET 兼容性和它运行在 HTTP(S) 上,微软为两种不同的场景设计了两种不同的绑定。无论如何,如果你确定能解决所有你能找到的问题,netTcpBinding 完全可以在互联网上使用。
    猜你喜欢
    • 2011-05-12
    • 2011-07-30
    • 1970-01-01
    • 2013-06-25
    • 2010-11-28
    • 2020-07-20
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多