【问题标题】:What's the difference between Transport security & Message security in WCFWCF 中的传输安全性和消息安全性有什么区别
【发布时间】:2013-02-05 03:45:39
【问题描述】:

我正在研究 WCF 和安全性。 有多种安全模式,但总体而言,您可以保护 2 个主要“层”:传输或消息

有人可以更深入地解释一下吗? 当我保护 Transport 时,我必须想象什么,它是如何工作的,等等。

【问题讨论】:

    标签: wcf soap soa


    【解决方案1】:

    传输安全性,例如安全套接字层 (SSL) 仅保护 通信是点对点时的消息。如果消息是 路由到一个或多个 SOAP 中介(例如路由器) 在到达最终接收者之前,消息本身不是 一旦中间人从网络中读取它,就会受到保护。

    误导。如果使用传输层安全性(服务器端 SSL 证书)加密,网络路由器或交换机(OSI 第 2 层和第 3 层)将无法访问消息内容,因为解密消息需要服务端 SSL 证书。传输层安全保护客户端和预期目标 IP 地址之间的消息,因为假设只有目标服务提供商具有解密消息所需的 SSL 私有证书。只有当 SOAP 中介(即 ESB)实际上是与客户端建立加密传输通道的预期消息目的地时,SOAP 中介才能读取内容,从而确保从客户端到服务器的安全通道,无论数量多少网络跃点、路由器和交换机等(OSI 第 2 层和第 3 层)。

    如果中间件 ESB(预期的 SOAP 中介)需要读取消息的一部分以做出路由决策(基于内容的路由)但不应该能够,则消息级安全性将增加消息的安全性并加密消息的一部分读取只能由下游系统访问的消息的其他部分。

    【讨论】:

      【解决方案2】:

      正如您所期望的那样,传输安全保护了传输 - 例如。 SSL over HTTP,而消息安全保护消息。下面是使用消息安全的原因的 msdn 概述: http://msdn.microsoft.com/en-us/library/ms733137.aspx

      以及运输概述: http://msdn.microsoft.com/en-us/library/ms729700.aspx

      (来自消息安全链接): Windows Communication Foundation (WCF) 有两种主要的安全模式(传输和消息)和第三种模式(TransportWithMessageCredential),它结合了两者。本主题讨论消息安全性以及使用它的原因。

      什么是邮件安全?

      消息安全性使用 WS-Security 规范来保护消息。 WS-Security 规范描述了 SOAP 消息传递的增强,以确保 SOAP 消息级别(而不是传输级别)的机密性、完整性和身份验证。

      简而言之,消息安全与传输安全的不同之处在于,将安全凭证和声明与每条消息一起封装,以及任何消息保护(签名或加密)。通过修改其内容将安全性直接应用于消息允许受保护的消息在安全方面是自包含的。这实现了一些在使用传输安全性时无法实现的场景。

      使用邮件安全的原因

      在消息级安全中,所有的安全信息都封装在消息中。使用消息级安全性而不是传输级安全性来保护消息具有以下优点: • 端到端的安全性。传输安全性,例如安全套接字层 (SSL),仅在点对点通信时保护消息。如果消息在到达最终接收者之前被路由到一个或多个 SOAP 中介(例如路由器),则一旦中介从线路中读取消息,消息本身就不受保护。此外,客户端身份验证信息仅对第一个中介可用,并且必须在必要时以带外方式重新传输到最终接收器。即使整个路由在各个跃点之间使用 SSL 安全性,这也适用。因为消息安全性直接与消息一起工作并保护其中的 XML,所以无论在到达最终接收者之前涉及多少中介,安全性都与消息保持一致。这实现了真正的端到端安全方案。

      • 增加灵活性。可以对消息的一部分而不是整个消息进行签名或加密。这意味着中间人可以查看消息中为他们准备的部分。如果发件人需要使消息中的部分信息对中间人可见,但又想确保它不被篡改,它可以只签名而不加密。由于签名是消息的一部分,最终接收者可以验证消息中的信息是否完好无损。一种情况可能有一个 SOAP 中介服务,它根据 Action 标头值路由消息。默认情况下,如果使用消息安全性,WCF 不会加密 Action 值,但会对其进行签名。因此,这一信息对所有中介机构都是可用的,但没有人可以改变它。

      • 支持多种传输。您可以通过许多不同的传输方式(例如命名管道和 TCP)发送安全消息,而不必依赖协议的安全性。使用传输级安全性,所有安全信息都被限定为单个特定的传输连接,并且不能从消息内容本身获得。无论您使用何种传输方式传输消息,消息安全性都使消息安全,并且安全上下文直接嵌入在消息中。

      • 支持广泛的凭据和声明。消息安全性基于 WS-Security 规范,该规范提供了一个可扩展的框架,能够在 SOAP 消息中传输任何类型的声明。与传输安全不同,您可以使用的一组身份验证机制或声明不受传输功能的限制。 WCF 消息安全性包括多种类型的身份验证和声明传输,并且可以根据需要进行扩展以支持其他类型。由于这些原因,例如,如果没有消息安全性,就不可能实现联合凭据方案。有关 WCF 支持的联合方案的更多信息,请参阅联合和颁发的令牌。

      【讨论】:

      • 所以如果你想通过 HTTP 使用 SSL,至少如果我没记错的话,你至少需要 Transport-security?
      • 根据定义,通过 http 的 ssl 保护的是传输,而不是消息。这是一个很好的使用指南:wcfsecurityguide.codeplex.com
      • 感谢您的宝贵时间和帮助!
      【解决方案3】:

      使用传输保护您正在使用的通道,使用消息保护您发送的消息(内容)。

      【讨论】:

        猜你喜欢
        • 2014-05-22
        • 2011-08-27
        • 1970-01-01
        • 2010-10-04
        • 1970-01-01
        • 1970-01-01
        • 2011-06-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多