4

我们正在开发一个使用 PKI 的安全应用程序。作为要求的一部分,我们需要构建一个独立于浏览器和平台的应用程序,它支持浏览器和 eToken 中的所有类型的证书。我们将这些证书用于加密和解密目的。所有与 PKI 相关的工作都应该发生在客户端。

我发现了一个名为 Forge https://github.com/digitalbazaar/forge/downloads的 JavaScript 库。

a) 使用 forge 从浏览器获取证书列表并访问 b) 获取证书的公共信息 c) 获取用于加密数据的私钥

4

1 回答 1

2

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

如果您确实需要访问 JS 中的私钥并且您无权访问 WebCrypto API(大多数浏览器还没有,因为它不完整),您将不得不降低安全性。也就是说,服务器将能够访问用户的私钥——他们应该知道这一点。为此应生成新的密钥对;不应重复使用用户可能在其他地方使用的现有的。将来,JS 应该可以访问使用私钥的加密函数——而不会将密钥材料暴露给浏览器(保护它不受服务器影响)。在那之前,如果你必须使用 JS,唯一的选择是让用户在某种程度上信任服务器。Forge 可用于生成密钥对、创建证书、创建 p12s 等。

于 2013-06-28T15:15:46.643 回答