【问题标题】:Digital signature with Javascript使用 Javascript 进行数字签名
【发布时间】:2022-02-25 01:20:40
【问题描述】:

所以我遇到了这个问题:

IE Edge不再允许applet、activeX等,

我有这个 applet 用于数字签名

想法是从客户端的KEY文件中提取私钥,这样私钥永远不会离开客户端的计算机,是安全的要求,这是无法避免的:(

我正在寻找 API 或框架,但找不到解决此问题的方法,

jsrsasign 的示例使用 PEM 文件,但我的用户有 .CER + .KEY + 密码,在 java 中我可以做到,但我需要在 javascript 或 something 中做到在客户端。

并且,阅读我发现的Web Cryptography API 和一些examples,他们会生成新的私钥和公钥来签名,但他们从未阅读过现有的CERTIFICATE p>

有人有这个问题或知道我可以使用的框架吗? 请帮忙!

【问题讨论】:

  • 所以,如果我理解正确,你有一个已经在 IE 中工作的小程序,但在 Edge 上不能工作,这就是你尝试使用新 API 复制相同进程的原因(或任何可用的 API)?
  • 是的,这就是问题@RomanCanlas
  • 另一个问题 - 您的网络应用程序是面向公众还是仅在您的组织内部?
  • 主要是针对私有内网@RomanCanlas

标签: javascript internet-explorer applet digital-signature microsoft-edge


【解决方案1】:

所以答案是在 github 上发布的示例中使用 JSRSASIGN (http://kjur.github.io/jsrsasign/) 它使用 PEM 文件,我构建了一个使用 CER+ KEY + PASSWORD 的示例 >> https://github.com/alfredomova/firmaJs-with-jsrsasign-example

对于那个具体的例子,我使用 sparkMD5(https://github.com/satazor/SparkMD5) 来计算文件的哈希值。

【讨论】:

    【解决方案2】:

    现代浏览器不再支持 ActiveX、applet。 WebCrypto API 动态生成和使用密钥,但无法从证书存储访问证书。

    Alfredo M 提供的已接受答案(他也提出了问题)指向 JavaScript 来处理浏览器中的加密,它不谈论访问本地证书存储。最近证书不是以 pfx(或 PEM)文件的形式生成/颁发,而是在 USB 令牌或智能卡等加密设备上生成/颁发。

    因此,我们需要为现代浏览器使用浏览器扩展,其中运行在浏览器后面的应用程序可以访问证书存储并签署哈希。我的公司免费提供了一个这样的browser extension。您只需要几行 JavaScript 代码即可调用任何浏览器扩展提供的方法,以实现现代浏览器的数字签名。如果您只想签署文件或 eReturn,则不需要任何服务器端组件。如果你想签署 pdf,你可能需要服务器端的 pdf 组件。

    【讨论】:

      【解决方案3】:

      您不一定需要强制您的网络应用在 Edge 中运行,因为它不再支持您的网络应用使用的旧技术。

      “使用企业模式和 Microsoft Edge 打开 Internet Explorer 11 适用于需要 IE 专有技术的企业网站。”

      将您的站点包含在企业模式站点列表中,以便在 IE11 中自动打开:

      一旦 Edge 检测到您的网络应用正在使用专有技术,它就会告诉您在 IE11 中打开您的网站。

      可以在 Microsoft Edge 团队的这篇博文中找到步骤和详细信息,并查看博客的用户体验部分,以便了解实施后它将为用户带来的 UX:

      http://blogs.windows.com/msedgedev/2015/08/26/how-microsoft-edge-and-internet-explorer-11-on-windows-10-work-better-together-in-the-enterprise/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多