我正在阅读有关WCF安全实现的内容,并发现有两种类型的安全性:
Transport Mode and Message Mode (or both)
如果我使用HTTPS进行传输模式,如果我还使用了Message安全性,它会更安全吗?我问这个是因为我理解的内容如下:
https使用加密邮件的SSL协议......那么我为什么要添加Message Security并加密SSL加密邮件?或者我误解了什么?
答案 0 :(得分:86)
WCF中的安全性实际上是consists of several features。这两者之间的区别在于如何对消息进行签名和加密。
传输安全性仅提供点对点通道安全性。这意味着HTTPS仅在客户端和服务器之间建立安全通道。但是,如果此服务器只是负载均衡器或反向代理服务器,则它可以直接访问消息内容。
消息安全性提供端到端通道安全性。这意味着安全性是传输数据的一部分,只有预期的目标才能解密数据(负载均衡器或代理只能看到加密的消息)。在大多数情况下,消息安全性也使用证书来提供加密和签名,但它通常较慢,因为传输安全性可以使用硬件加速。
在高级方案中,可以组合这些方法。例如,您可以通过HTTPS保护与负载均衡器的通信,因为您在负载均衡器之后信任您的内部网络,但同时您可以对消息进行签名(消息安全性),以便您可以证明它未被更改。
这两者之间的另一个区别是传输安全性与单个传输协议有关,而消息安全性与传输协议无关。
消息安全性基于可互操作的协议(但请注意,并非WCF中的每个配置都可以互操作)。 WCF至少部分支持这些协议:
WCF还支持WS-I Basic Security Profile 1.0,它只是具有规定配置的旧协议的子集。
对于不可互操作的功能,WCF提供的功能包括Windows安全性或TLSNego和SPNego(两者都应该是可互操作的,但它们在许多SOAP堆栈中不可用)以进行服务凭证交换。
答案 1 :(得分:5)
此link概述了使用或不使用Message安全性的原因。
基本上,除非无法使用,否则首选传输安全性。
链接的摘录:
运输级别的优点和缺点 安全
运输安全有以下几点 优点:
不要求 沟通各方了解 XML级安全性概念。这个可以 改善互操作性 例如,使用HTTPS进行保护时 沟通。
一般性能提升。
可以使用硬件加速器。
可以进行流式传输。
运输安全有以下几点 缺点:
仅限跳到跳。
有限且不可扩展的一套 证书。
运输依赖性。
消息级别的缺点 安全
邮件安全性如下 缺点:
性能
无法使用消息流。
需要实现XML级别 安全机制和支持 WS-Security规范。这有可能 影响互操作性。
答案 2 :(得分:0)
在某些情况下,您可能无法进行传输级加密,从而“回退”到消息级加密,这比传输级安全性稍微安全一些。
两者都会更加安全,当然。但是,如果您具有良好的传输级安全性,那就有点过分了。
答案 3 :(得分:0)
我想说在大多数情况下它应该足以满足其中一种。如果您可以使用优先考虑的传输级别安全性,因为它会加密整个通信,而不仅仅是消息内容。