在WCF中使用消息级安全性时是否需要传输级安全性?

时间:2011-01-28 14:50:11

标签: .net wcf security

我仍在努力更好地了解WCF安全性。

我似乎无法控制的一个问题是......如果使用消息级别安全性,则可以对整个消息进行签名/加密。如果是这种情况,使用消息级安全性和传输级安全性是否有意义?换句话说,如果消息本身是安全的,为什么我需要使用HTTPS等传输安全性?

感谢。

3 个答案:

答案 0 :(得分:7)

HTTPS(SSL,TLS)提供点对点安全。我已经解释了我的一个previous answers中的含义。

WCF中的术语安全性有4个组成部分:

  • 身份验证 - 传递给服务器以识别客户端的凭据
  • 授权 - 有选择地定义可由经过身份验证的客户端执行的操作
  • 自信 - 加密 - 只有预期的接收者能够解密邮件并读取信心数据
  • 完整性 - 签名 - 预期的接收方可以验证该消息来自已声明的客户端,并且在传输过程中未对其进行修改

授权始终是WCF应用程序本身的一部分。身份验证是WCF应用程序或托管系统的一部分 - 传输协议只能用于传输凭据,而不能用于验证凭据。自信和完整性是传输协议(传输安全性)或WCF应用程序(消息安全性)的责任。因此,如果您在消息级别使用加密和签名,则不需要传输安全性。

答案 1 :(得分:0)

如果以加密的形式使用消息级安全性,则不需要也使用传输级加密。但是,这样做肯定会使您的信息更安全。如果您只使用邮件级安全性来签署外发邮件,那么如果您的邮件包含敏感信息,您还需要使用传输级安全性。

在未使用消息级加密时,使用传输级安全性非常重要。事实上,WCF要求您在使用UsernameToken明文时使用SSL,例如。

答案 2 :(得分:0)

据我记得,使用NetMsmqBinding时,只能使用传输和消息级安全性。