2013-02-20 42 views

回答

12

它与您所期望的几乎一样,运输安全保证运输安全 - 例如,基于HTTP的SSL,而消息安全保护消息。下面是一个MSDN概述理由使用信息安全: http://msdn.microsoft.com/en-us/library/ms733137.aspx

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

(从信息安全链接): Windows通讯基础(WCF)具有提供两种主要模式安全性(传输和消息)和第三种模式(TransportWithMessageCredential)结合在一起。本主题讨论消息安全性以及使用它的原因。

什么是信息安全?

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

简而言之,通过将安全证书和声明与任何消息一起封装以及任何消息保护(签名或加密),消息安全性与传输安全性不同。通过修改其内容直接将安全性应用于消息,可以使安全消息在安全方面自成一体。这使得一些使用传输安全性时不可能实现的方案成为可能。

理由使用邮件安全

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

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

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

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

+0

因此,如果你想通过HTTP使用SSL,你至少需要传输安全性,如果我没有错的话?根据定义, – 2013-02-20 08:10:01

+0

,http上的ssl确保传输 - 而不是消息。这里有一个很好的使用指南:http://wcfsecurityguide.codeplex.com/ – NDJ 2013-02-20 08:14:05

+1

感谢您的时间和帮助! – 2013-02-20 08:17:28

1

使用运输工具保护您正在使用的渠道并收到您正在发送的邮件(内容)。

2

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

误导性。由于需要服务端SSL证书来解密消息,因此如果使用传输层安全性(服务器端SSL证书)加密,则网络路由器或交换机(OSI第2层和第3层)将无法访问消息内容。传输层安全性保护客户端和预期目标IP地址之间的消息,因为只有目标服务提供者被假定具有解密消息所需的SSL专用证书。如果SOAP中介(即ESB)实际上是预期的消息目的地,它实际上与客户建立加密的传输信道,则SOAP中介只能够读取内容,从而确保从客户到服务器的安全信道,而不管网络中继,路由器和交换机等(OSI第2层和第3层)。

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