我有一个可通过 Internet 访问的 WCF 服务。它具有 wsHttpBinding 绑定和消息安全模式,使用用户名凭据来验证客户端。msdn 说我们应该在 Internet 场景中使用消息安全,因为它提供端到端的安全性,而不是像传输安全性那样提供点对点的安全性。
如果我通过 Internet 对 wcf 服务使用传输安全性会怎样?这是一个不好的做法吗?恶意用户会看到我的数据吗?
我有一个可通过 Internet 访问的 WCF 服务。它具有 wsHttpBinding 绑定和消息安全模式,使用用户名凭据来验证客户端。msdn 说我们应该在 Internet 场景中使用消息安全,因为它提供端到端的安全性,而不是像传输安全性那样提供点对点的安全性。
如果我通过 Internet 对 wcf 服务使用传输安全性会怎样?这是一个不好的做法吗?恶意用户会看到我的数据吗?
不,这将是一个很好的做法 - 问题是:当您处理 Internet 连接时,您无法保证通过任意数量的中间跃点建立完整的安全连接链。
传输安全性所能保证的只是从客户端到第一跳的链接,以及从最后一跳到服务器的链接——这两者之间的任何事情都超出了您的控制范围。所以基本上,互联网上的传输安全是行不通的——除非你有一个严格控制的环境,你知道客户端非常直接地连接到你的服务器。
由于这些技术限制,传输安全仅在公司/局域网环境中真正起作用。一旦您无法控制路由和中间跃点,您就需要使用消息安全性来实现端到端安全性。
是的,当客户端(大多数客户端都这样做)验证服务器证书时,它是 100% 安全的。
这里提到的多跳场景完全是假的。仅当同一消息通过各种应用程序传播时,这才是正确的。例如几个应用程序代理。如果这些代理不能安全地通信,则中间网络嗅探器可以读取消息。
换句话说,即使中间有一百万个路由器,通过 Internet 进行的客户端/服务器通信也是 100% 安全的,但只有当客户端验证服务器证书时才安全,因为客户端可以连接到中间人可以使用虚假证书冒充服务器的主机。如果客户端不验证证书,则消息可能会被泄露。
IMO 它可能不是 100%
如果 BlueCoat 可以做到,那么还有谁能做到呢?
http://directorblue.blogspot.com/2006/07/think-your-ssl-traffic-is-secure-if.html