3

这是我很困惑的 WCF 绑定和安全问题:

您在 http://www.contoso.com为执法机构托管 Windows Communication Foundation (WCF) 服务。该机构增加了支持通过非缓冲流发送生物识别指纹数据的操作。服务数据在中介之间路由。默认情况下,您使用的 WCF 绑定不支持加密。您需要确保指纹数据在通过网络传递时不会泄露。你该怎么办?

  • A. 使用具有消息安全性的 basicHttpBinding 到 https://www.contoso.com
  • B. 使用具有传输安全性的 basicHttpBinding 到 https://www.contoso.com
  • C. 使用带有消息安全性的 wsHttpBinding 到 https://www.contoso.com
  • D. 使用具有传输安全性的 wsHttpBinding 到 http://www.contoso.com

答案是 B。但我认为这里说的是“服务数据在中介之间路由”,因此消息安全性应该优于传输安全性。好吧,它确实说“默认情况下您使用的 WCF 绑定不支持加密”,但是这里的选项确实提供了使用 wsHttpBinding,所以我认为 A 和 C 都可以。谁能告诉我那里有什么问题?

4

1 回答 1

4

问题中的这句话是关键:

您默认使用的 WCF 绑定不支持加密

所以这意味着问题暗示您正在使用 basicHttpBinding,因为 wsHttpBinding 默认启用 WS*-Security。您实际上可以通过 Fiddler 检查调用。默认情况下,使用安全令牌对消息进行签名和加密 - 对于血腥细节 - 这解释了缓存在服务上的 SPNEGO 令牌。

因此,由于我之前突出显示的句子,因此消除了 C、D。

剩下的就是A 和 B。我不同意 B,因为 MSDN 本身声明传输安全性仅通过点对点的通信来保护消息。如果消息在到达最终接收者之前被路由到一个或多个 SOAP 中介,那么一旦中介从线路中读取消息,消息本身就不受保护

问题也很明确的说:

服务数据在中介之间路由

因此,我相信正确的答案是A,一些关于 SO 的 WCF 专家可能会纠正我。

于 2012-08-09T00:12:17.310 回答