我们正在开发一个使用 PKI 的安全应用程序。作为需求的一部分,我们需要构建一个独立于浏览器和平台的应用程序,它支持浏览器和电子 token 中的所有类型的证书。我们使用这些证书进行加密和解密。所有与 PKI 相关的工作都应该发生在客户端。
我发现了一个名为 Forge 的 javascript 库 https://github.com/digitalbazaar/forge/downloads .
代码是什么 a) 使用伪造和访问从浏览器获取证书列表 b) 获取证书的公开信息 c) 获取私钥加密数据
最佳答案
目前,浏览器中没有用于访问证书的 JS API。您通常可以将它们导出到 PKCS#12 (p12) 文件,Forge 可以读取这些文件。请记住,用户绝对不希望服务器访问他们的私钥(也可以导出到 PKCS#12 容器)。
如果您确实需要访问 JS 中的私钥并且您无权访问 WebCrypto API(大多数浏览器还没有,因为它不完整),您将不得不在安全性降低的情况下进行操作。也就是说,服务器将能够访问用户的私钥——他们应该知道这一点。为此应生成新的 key 对;用户可能在别处使用的现有的不应重复使用。在未来,JS 应该可以访问使用私钥的加密函数——而不会将 key Material 暴露给浏览器(保护它免受服务器的影响)。在那之前,如果你必须使用 JS,唯一的选择就是让用户在某种程度上信任服务器。 Forge可用于生成 key 对、创建证书、创建p12等。
关于javascript - 使用 Forge 访问浏览器证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10102163/