如何使用我现有的Web项目实施数字签名

我正在研究用户需要在文档上进行数字签名的项目。我检查了google,并了解了sinadura,这是一个桌面应用程序,但是我需要将其调用到我的Web应用程序中。

我在Linux服务器(https://www.alfresco.com/thank-you/thank-you-downloading-alfresco-

community-edition)上安装了露天社区版本,并按照以下GitHub链接中的说明进行操作。

https://github.com/zylklab/alfresco-

sinadura

我已经按照上述说明成功实施了。但是Alfresco是一个大项目,并且还具有其他一些功能。但是我不需要,我只需要在我自己的Web应用程序中实现数字签名部分即可,类似于alfresco

如何在我现有的项目中实施数字签名部分?任何人都可以提出建议

回答:

浏览器的安全限制不允许javascript访问系统证书密钥库或智能卡。以前可以使用Java小程序,但是使用最新的浏览器更新不再可能。

当前的浏览器数字签名解决方案要求在用户计算机上安装桌面软件。操作过程如下:

:用户在其计算机上安装桌面软件。该软件将安装自签名证书,并包括一个嵌入式浏览器,该浏览器侦听计算机端口并将其作为服务运行

  1. Web应用程序使用安全的Web连接向本地软件请求签名。例如https://localhost:1234/sign?doc=xxxx.,浏览器等待结果

  2. 本地应用程序接收文档,要求用户选择证书或输入卡并进行签名。由于它是本地应用程序,因此没有安全限制

  3. Web应用程序接收结果。它可以通过REST服务查询本地应用程序或打开websocket。

这个概念很简单( ),但是这种类型的应用程序的构造非常复杂,因为您必须考虑许多其他因素:

  • 软件安装和分发

  • 安全与加密

  • 数字签名格式:XAdES,CAdES,PAdES等。它们可以在应用程序中实现,也可以分三个阶段使用签名服务,其中文档在服务器上,单个哈希在本地签名

因此,我建议使用现有解决方案:

  • @firma + Autofirma:西班牙公共管理部门推广和使用的开源解决方案

  • SD-DSS + nexU(lowina):由欧洲委员会推广的开源解决方案。在这里查看演示

  • chrome令牌签名:Chrome和Firefox扩展程序,用于为爱沙尼亚政府开发的网络上的eID进行签名

Sinadura也是一个开放源代码的计划,从我所看到的看,它以类似的方式起作用,但是我不知道它是否有重要的参考资料,并且我还没有找到API

以上是 如何使用我现有的Web项目实施数字签名 的全部内容, 来源链接: utcz.com/qa/410335.html

回到顶部