我正在使用 WebBrowser 控件将 WebInterface 添加到 C# 应用程序。我的愿望是验证只有这样的应用程序才能使用 SSL 客户端证书连接到我们的 Web 服务器。
我的想法是将客户端证书嵌入到应用程序中,仅在通过我的应用程序连接时使用。有人对如何做到这一点有建议吗?或者让它工作的唯一方法是在 X509Store 中加载 key 。
如果我把它放在 X509Store 中,它会让我的 key 可用于一般的 Internet Explorer 使用吗?
最佳答案
您确定这是您要执行的操作吗?如果您将私钥嵌入到您的应用程序中(正如您的方法所需要的那样),攻击者可以提取它并使用它来验证他们的流氓软件。
服务器无法验证客户端软件。它只能测试客户端是否拥有一些 secret 。当您在客户端中嵌入私钥并分发它时,它就不再是 secret 了。
我建议验证软件的用户,而不是软件本身。您需要让用户生成自己的 secret ,无论是密码还是私钥,并激励他们保护它。
关于c# - 在 C# 中临时加载用于客户端身份验证的 SSL 客户端 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/96276/