【发布时间】:2020-01-15 15:44:23
【问题描述】:
我正在尝试替换用于在 ASP.NET 应用程序中对数据进行数字签名的旧 Java 小程序。
我正在尝试从客户端证书访问私钥,对一些数据进行签名,然后将签名数据发送回服务器。
我一直在查看 PKI.JS,但如果有一种 C# 方法可以使用 Blazor 完成此任务,那么外部依赖就会减少。
【问题讨论】:
-
Blazor 服务器端还是 Blazor 客户端(WebAssembly)?在服务器端,您可以使用完整的 Core 3 库。
-
它必须是客户端。我需要访问用户的证书存储才能找到签名证书并访问其关联的私钥来签署数据。在服务器端,您只能访问客户端证书的公钥。
-
经过更多研究后,WebAssembly、Blazor 或任何其他 JS 库似乎都无法访问智能卡或操作系统证书存储上的签名证书。人们一直在创建 Chrome 插件来做到这一点,但这对我来说不是一个可行的选择。
-
有点道理,不是吗?您想访问开始上传您的私钥的页面吗?
-
一点澄清:目的不是在任何地方上传某人的私钥。数据将在客户端签名并使用公钥发送回服务器。到今天为止,我仍然看不到从 Java 小程序、silverlight 或自定义浏览器扩展之外的客户端技术访问本地证书存储。这些都不是 IMO 可行的选择。
标签: digital-signature blazor pki