c# - 在 C# 中临时加载用于客户端身份验证的 SSL 客户端 key

标签 c# .net http ssl .net-2.0

我正在使用 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/

相关文章:

c# - MQ 在 C# 中与 SSL 连接

.net - IIS 无法访问证书存储

C# 接口(interface)不允许成员类满足要求

c# - 统一的 Firebase 身份验证登录总是返回一个新用户

c# - C# 应用程序的附加组件

.net - 为什么对于没有目标的方法,我会收到 Interceptor attempts to ‘Proceed’ 错误?

java - 在 Java 中将 http servlet 与其他 TCP 服务器结合起来

http - 每个请求的 Apache HTTP 客户端 4.3 凭据

ruby - 如何使用将文件发送到服务器的 HTTParty (Net::HTTP) 发送 POST 请求

c# - 在分层数据结构中添加对 MVVM 的编辑