WCF传输与消息

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至少部分支持这些协议:

  • WS-Security 1.0和1.1 - 加密,签名,令牌传输,时间戳等的基本规则.
  • UserName令牌配置文件1.0 - 用于传输用户名和密码的令牌定义.此规范仅部分实现,因为开箱即用的WCF不支持已消化的密码,并且需要使用此令牌进行传输或消息加密.
  • X509令牌配置文件1.1 - 用于传输证书的令牌的定义.
  • Kerberos令牌配置文件1.1 - 用于传输Kerberos票证的令牌的定义.
  • SAML 1.1令牌配置文件1.0和1.1 - 用于联合安全性的令牌定义.SAML 2.0由WIF提供.
  • WS-SecurityPolicy 1.1和1.2 - 支持在WSDL中定义安全性断言.
  • WS-SecureConversation 1.3和2005年2月 - 为安全会话提供支持,其中仅在第一次呼叫期间交换凭证,并且通信的其余部分使用唯一的安全令牌.
  • WS-Trust 1.3和2005年2月 - 为联合方案和安全令牌服务(STS)提供支持.

WCF还支持WS-I Basic Security Profile 1.0,它只是具有规定配置的以前协议的子集.

对于不可互操作的功能,WCF提供了诸如Windows安全性或TLSNego和SPNego(两者通常应该是可互操作的,但它们在许多SOAP堆栈中不可用)的功能,用于服务凭证交换.


Ali*_*tad 5

链接概述了使用或不使用Message安全性的原因.

基本上,除非不能使用,否则首选运输安全.

链接的摘录:

运输级安全的利弊

运输安全具有以下优点:

不要求通信方理解XML级安全性概念.这可以改善互操作性,例如,当使用HTTPS来保护通信时.

一般性能提高.

可以使用硬件加速器.

流媒体是可能的.

运输安全具有以下缺点:

仅限跳到跳.

有限且不可扩展的凭证集.

交通运输依赖.

消息级安全性的缺点

消息安全性具有以下缺点:

性能

无法使用消息流.

需要实现XML级安全机制并支持WS-Security规范.这可能会影响互操作性.

  • 你好!有些事情我不明白:你说"基本上,运输安全是首选,除非它不能被使用." - 该声明的成立是什么?提供的链接没有说任何接近的内容. (3认同)