【问题标题】:WCF Security: Difference between TransportWithMessageCredential and Message Security ModeWCF 安全性:TransportWithMessageCredential 和消息安全模式之间的区别
【发布时间】:2015-01-28 07:28:52
【问题描述】:

我想知道 TransportWithMessageCredentialMessage 在 WCF 安全性方面的区别。

我知道的是:

传输安全性:用于在两个端点之间提供点对点的安全性。

消息安全性:它提供端到端的安全性。因为消息安全直接对消息进行加密和签名,所以有中介不会破坏安全。

如果我们使用TransportWithMessageCredential 模式,SOAP 消息(Header 和 Body)是否加密?

我担心的是我希望在 WCF 服务器和我的 WinForms 客户端之间加密应用程序数据。

【问题讨论】:

  • WCF Transport vs Message 的可能重复项
  • 我不认为它是重复的。我需要知道 TransportWithMessageCredentials 与消息之间的区别。您指的是传输与消息。
  • 我需要知道的是,如果我们使用 TransportWithMessageCredentials 模式,SOAP 消息(Header 和 Body)是否加密?我担心的是我希望在 WCF 服务器和 Windows 窗体客户端之间加密应用程序数据。

标签: wcf security encryption wcf-security


【解决方案1】:

如果我们使用 TransportWithMessageCredentials 模式,是 SOAP 消息( Header 和 Body) 是否加密?

是的,因为TransportWithMessageCredential 安全模式是传输安全,它为通过网络传输的消息提供机密性和完整性保护。在这种情况下,传输安全还提供服务身份验证。例如,对于 HTTP,安全套接字层 (SSL) 用于对通过安全 HTTP (HTTPS) 发送的数据包的内容进行加密和签名。

使用TransportWithMessageCredential 安全模式,客户端身份验证通过 SOAP 消息安全性提供,其中客户端凭据直接放在消息中。

当 SOAP 消息离开客户端以获得服务时,它会被加密。但是,与传输安全性一样,它在两个端点(服务和客户端)之间提供点对点(不是端到端)安全性。因此,如果客户端和服务之间存在中间系统,则每个中间点都必须通过新的安全连接转发消息。

按评论更新

您说过“当 SOAP 消息离开客户端以获取服务时,它 是加密的'那么它应该是端到端的安全性。为什么它只是 点对点。

传输安全性是点对点的,因为消息在离开一个端点时被加密,并一直保持到它到达安全传输的另一个端点,然后在该端点对消息进行解密。在客户端和服务器直接相互通信的部署中,这提供了全程加密。但是,如果您的服务端点将该消息转发给预期的收件人,则不再保证您的消息从该点开始被加密。

消息安全直接对消息进行加密和签名,以便只有预期的收件人才能解密和阅读消息的实际内容。因此,发送方和接收方之间的安全性得到保证,而不仅仅是端点之间。因此,消息安全提供端到端的安全性。

我可以总结 TransportWithMessageCredential 提供安全点吗 点对点和消息级安全性提供端到端安全性。那么为什么 WCF 安全指南建议使用 当我们使用 WCF 时,带有 UserName 的 TransportWithMessageCredential 在 Internet 上使用 Windows 窗体客户端。

是的,没错。 TransportWithMessageCredential 安全提供点对点,Message 安全提供端到端安全。 WCF 安全指南建议将客户端凭据设置为UserName,因为这将用于对客户端进行身份验证。在UserName 案例中,我们将用户名和密码对直接放入SOAP 消息中。除非客户端提供某种凭据,例如 UserNameCertificate 来向服务验证自己,否则您将拥有一个匿名客户端。匿名客户端意味着任何人都可以访问您的服务,因为客户端没有经过身份验证。

如果邮件正文未使用 TransportWithMessageCredential 加密 那么为什么微软说 TransportWithMessageCredential 是一个 传输和消息安全的结合

与我最初的答案一样:SOAP 消息由传输层(例如 HTTPS)加密和签名。 TransportWithMessageCredential 是传输和消息安全的组合,因为传输安全对消息进行加密和签名以及向客户端验证服务,并且消息安全用于向服务验证客户端。

【讨论】:

  • 您说“当 SOAP 消息离开客户端以获取服务时,它会被加密”那么它应该是端到端的安全性。为什么它只是点对点的。
  • 我可以得出结论吗 TransportWithMessageCredential 提供安全点对点和消息级别安全提供端到端安全。那么为什么 WCF 安全指南建议使用带有 UserName 的 TransportWithMessageCredential 当我们在 Internet 中将 WCF 与 Windows 表单客户端一起使用时。
  • 我有一个客户端(Win 表单应用程序),它将通过 Internet 连接 WCF。我希望我的客户端 SOAP 消息应该被加密并将其发送到 Servre,这样任何人都不能篡改我在 SOAP 消息正文中的应用程序数据。
  • 如果邮件正文没有使用 TransportWithMessageCredential 加密,那么为什么微软说 TransportWithMessageCredential 是传输和邮件安全的组合
猜你喜欢
  • 2014-07-31
  • 2013-02-05
  • 2010-10-04
  • 2014-05-22
  • 2011-01-01
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多