用于数字签名的Java插件替换

时间:2016-12-12 11:14:00

标签: java web browser plugins digital-signature

我们有一个自定义Java小程序,可以执行某些任务,例如从本地文件系统加载PDF,使用系统KeyStore /智能卡等证书对其进行签名。这些操作在常规HTML / JavaScript中是不可能的。既然Java已被浏览器弃用,我们正在寻找替换applet功能的可能性。

有这个Web Cryptography API,但遗憾的是规范不包括使用系统密钥库。还有另一个规范,WebCrypto Key Discovery,但我不认为任何浏览器目前都支持它。

Mozilla有一个API可能正是我们需要的,但不幸的是它现在已被弃用。

所以看起来我们唯一的选择是:

  • 编写自定义桌面GUI应用程序
  • 编写自定义浏览器插件

还是有更好的解决方案吗?你有什么建议?我不关心解决方案是否仅适用于Internet Explorer,因为我们的大多数用户都使用。

2 个答案:

答案 0 :(得分:2)

由于Java对浏览器的限制一般不可能使用OS本机密钥库。您仍然可以在旧版本的IE和Firefox中使用Java,但Oracle已宣布将停止浏览器的JRE插件,并且Firefox决定在2017年放弃Java支持,因此不推荐

无法编写浏览器插件,因为浏览器不允许访问多个操作系统功能。特别是Chrome插件API仅允许访问Chrome操作系统中的用户证书,而不允许访问Windows或Linux中的用户证书。对于Edge,我认为插件界面尚不可用。

有一些替代方案

我个人测试了第一个和最后一个选项。对于爱沙尼亚解决方案,我建议与团队联系。我认为目前只支持一些智能卡

答案 1 :(得分:0)

此问题有一个新的解决方案FortifyApp,您可以了解其工作原理here

TL; DR;它是可在OSX,Windows和Linux上运行的客户端可安装应用程序,可通过Web加密polyfill公开智能卡。