问题 WCF中传输安全性和消息安全性之间的区别是什么


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

有人可以更深入地解释一下吗? 当我确保运输安全时,我有什么想象,它是如何工作的等等。


3319
2018-02-20 07:53


起源



答案:


它正如您所期望的那样,运输安全保障运输 - 例如SSL上的SSL,而邮件安全保护邮件。这是一个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-Securityspecification描述了SOAP消息传递的增强功能,以确保SOAP消息级别(而不是传输级别)的机密性,完整性和身份验证。

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

使用邮件安全的原因

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

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

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

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


12
2018-02-20 08:04



因此,如果您想通过HTTP使用SSL,至少在我没有错的情况下,您至少需要传输安全性吗? - Tom Kerkhove
根据定义,ssl over http可以保护传输 - 而不是消息。这是一个很好的使用指南: wcfsecurityguide.codeplex.com - NDJ
感谢您的时间和帮助! - Tom Kerkhove


答案:


它正如您所期望的那样,运输安全保障运输 - 例如SSL上的SSL,而邮件安全保护邮件。这是一个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-Securityspecification描述了SOAP消息传递的增强功能,以确保SOAP消息级别(而不是传输级别)的机密性,完整性和身份验证。

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

使用邮件安全的原因

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

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

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

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


12
2018-02-20 08:04



因此,如果您想通过HTTP使用SSL,至少在我没有错的情况下,您至少需要传输安全性吗? - Tom Kerkhove
根据定义,ssl over http可以保护传输 - 而不是消息。这是一个很好的使用指南: wcfsecurityguide.codeplex.com - NDJ
感谢您的时间和帮助! - Tom Kerkhove


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

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

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


2
2017-10-05 16:25





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


1
2018-02-20 07:56