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