使用Forge访问浏览器证书

4
我们正在开发一款安全应用程序,该程序使用PKI技术。作为要求的一部分,我们需要构建一个浏览器和平台无关的应用程序,支持在浏览器和eToken中的所有类型证书。我们使用这些证书用于加密和解密目的。所有与PKI相关的工作都应在客户端上进行。
我找到了一个名为Forge的javascript库,链接如下:https://github.com/digitalbazaar/forge/downloads
以下是代码示例: a) 使用Forge获取浏览器中的证书列表并访问其内容。 b) 获取证书的公共信息。 c) 获取私钥以加密数据。
1个回答

2

目前,浏览器中没有用于访问证书的JS API。通常可以将它们导出到PKCS#12(p12)文件中,而Forge可以读取这些文件。请注意,用户绝对不希望服务器能够访问他们的私钥(也可以导出到PKCS#12容器中)。

如果您确实需要在JS中访问私钥且无法访问WebCrypto API(大多数浏览器尚未完全支持),则必须降低安全性。即服务器将能够访问用户的私钥,用户应该知道这一点。为此目的应生成新密钥对;不应重复使用用户可能在其他地方使用的现有密钥对。在未来,JS应该有访问使用私钥的加密功能的权限,而不会将密钥材料暴露给浏览器(保护其免受服务器的攻击)。在那之前,如果必须使用JS,则唯一的选择是用户在某种程度上信任服务器。Forge可用于生成密钥对、创建证书和创建p12等操作。


嗨,5年过去了,似乎还没有一种方法可以在浏览器中使用客户端证书的私钥解密字符串...是吗? - Giox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接