我已经按照一些教程来设置安全模式为“TransportWithMessageCredential”的WCF Web服务和消息clientCredentialType“Certificate”。我没有设置任何问题,但是教程中没有一个真正解释的是这实际上是如何工作的?服务器如何知道客户端实际上是正确的客户端?如果有人访问证书,他可以使用证书通过某些恶意客户端应用程序访问服务器吗?
答案 0 :(得分:0)
带有私钥的证书是一种凭证形式。它需要保持安全,就像用户名和密码需要保持安全一样。如果它是由某人获得的,那么它不是为了那个目的而被泄露并且应该被撤销并且颁发新的证书。 Windows(和其他平台)为证书提供安全存储,因此可以相对安全地保存在客户端上。但是,如果证书不能保证安全,则服务器无法确定客户端是否为目标客户端。
通常,在Windows上,证书保存在用户存储中,这意味着在该安全原则下运行的任何应用程序都可以访问和使用证书。这意味着除非您的应用程序在其自身的安全性原则下运行(例如,它具有特定标识的Windows服务),否则服务器无法识别客户端应用程序。用户运行的任何应用程序都可以访问证书并使用它来对您的服务进行身份验证。