0

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

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

我在MSDN 文章中阅读了以下内容

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

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

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

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

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

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

4

1 回答 1

0

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

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

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

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

于 2012-08-15T07:03:35.247 回答