【问题标题】:Which transport security or message security?哪种传输安全或消息安全?
【发布时间】:2013-03-22 16:05:14
【问题描述】:

我有一个使用 net.TCP 绑定的 WCF 服务,该服务可以在 LAN 内或通过 Internet 使用。

我读过 net.TCP 默认使用传输级安全性,但这种安全性是点对点的,我认为如果我在 LAN 外使用客户端,通过互联网和通信使用很多点,也许其中一些点不传输没有安全性的消息。这是正确的吗?

所以如果我也需要消息安全?我可以使用 ssl 证书 x509 来加密每条消息,并且只能由拥有私钥的服务解密?

是否有一些文档解释了如何将证书与 net.TCP 绑定一起使用?我可以使用 open ssl 创建我的证书并将其与 WCF 一起使用吗?

谢谢。

【问题讨论】:

    标签: wcf openssl certificate nettcpbinding


    【解决方案1】:

    首先,这两种方法都是安全的,可以满足 90% 的情况。传输安全保护您的通信渠道,但不会加密您的实际消息。消息安全对您的实际消息进行加密,因此消息通过的服务器无法看到消息内容,并且需要私钥来解密您的消息。所以有人可能会说消息安全更安全,至少它更适合互联网通信。关于 WCF 安全性的一些很好的链接: Message Security in WCFpatterns & practices Improving Web Services Security Guide

    netTcpBinding 默认使用传输安全性,但这并不意味着您不能使用消息安全性。传输安全比消息安全(每条消息都被加密)具有更少的计算开销,因此它具有更好的性能。在互联网上使用netTcpBinding 的一个警告是,它可能无法保证始终工作(过去我在互联网上设置了successfully netTcpBinding),因为它使用一些端口进行消息传输,网络路由器和防火墙并不总是保证保持打开状态(通过 Internet,您的消息将通过许多路由器和防火墙。)对于 Internet 通信,请考虑 HTTP 绑定之一,例如 basicHttpBindingwsHttpBinding还支持消息安全。

    您可以像在其他绑定中一样使用消息安全性:

    <netTcpBinding>
        <binding name="securedBinding">
          <security mode="Message">
          </security>
        </binding>
    </netTcpBinding>
    

    然后将端点上的bindingConfiguration 设置为securedBinding

    在托管您的服务的机器(服务器)上:

    <behavoirs>
      <serviceBehavior>
        <behavior name="securityBehaviour">
          <serviceCredentials>
            <serviceCertificate
               findValue="serviceCert"
               storeLocation="LocalMachine"
               storeName="My"
               x509FindType="FindBySubjectName" />
          </serviceCredentials>
        </behavoir>
      </serviceBehavior>
    </behavoirs>
    <services>
      <service name="Service1"  behaviorConfiguration="securityBehaviour">
            <endpoint address="" binding="netTcpBinding" contract="IService1" bindingConfiguration="securedBinding">
            </endpoint>
      </service>
    </services>
    

    如果您的客户数量有限并且您知道他们是谁,则可以使用自签名证书。但是,如果您希望在许多未知客户端使用您的服务时获得最佳安全性,您最好从已知 CA 购买一个。然后,您需要在服务器机器上安装服务器证书。 Here 是一篇关于如何使用证书保护您的服务的文章,该博客还有一些您可能想阅读的其他有用的 WCF 安全文章。

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 2012-07-15
      • 2011-05-15
      • 2011-08-03
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      相关资源
      最近更新 更多