1

我需要制作一个应用程序,您可以在其中打开 PDF 文档,将其展示给客户,然后他将对其进行电子签名(在平板电脑上写下他的签名)。

从我读到的内容中,您需要正在创建的签名中的数据(时间戳、压力和绘图时间)并将其附加到 PDF 中。

但这足够了吗?因此,要打开画布,读取数据并将其附加到带有签名图像本身的 PDF 中,还是我还需要对 PDF 进行数字签名?如果这已经足够了,那么在哪里附加所有额外的数据(时间戳......)?- 我打算使用 itext 库。

4

1 回答 1

2

你的问题有很多方面。最后,这一切都取决于您/您的客户对流程的要求。让我来说明你可以做什么:

首先:数字签名和签名的手写表示之间存在差异-尽管您可以将两者结合使用...

解决方案一

  1. 捕获签名图像(从画布),从中创建图像
  2. 将图像放入PDF

解决方案二

  1. 和上面一样
  2. 创建一个标准的 PDF 签名字段,将签名图像设置为其外观并对字段和文档进行数字签名(为此您需要证书,但可以自签名)。时间戳(以及更多信息,如位置、原因等)也可以添加并作为签名的一部分

方案三

  1. 和上面一样
  2. 还收集签名的所谓生物特征数据(x,y 坐标,您提到的压力(但并非总是可用)和每个坐标对的时间戳
  3. 加密生物特征数据并将其添加到签名字段(过于简单化)
  4. 与上面的步骤 2 相同(cp.解决方案 II)

解决方案四(更新)

正如您在评论中提到的,您需要一个符合 eIDAS 的签名:

“我不需要对其进行数字签名,我需要的是在 eIDAS 下有效的基本电子签名”

明确一点:eIDAS 是一种对 PDF 文档进行数字签名的方法。

  1. 和上面一样
  2. 如果您想要一个符合 eIDAS 的电子签名,您还需要一个证书。没有其他办法了。但是证书可以是自签名的,所以应该不是问题。其余与解决方案 II 中的相同(步骤 2)

可能还有其他组合(例如使用来自智能卡的合格证书等),但最终只有您可以决定什么是适合您的解决方案。这取决于您的要求、您所在国家/地区的法规以及您要签署的合同的法律要求。

解决方案有什么区别?

第一个解决方案不提供验证签名者真实性的任何可能性,也不确保在添加签名图像后文档没有被更改。解决方案 II 确切地提供了,但是如果使用自签名证书,则无法识别签名者(任何人都可以签署该文档)。要证明这一点,您必须使用合格的证书或使用解决方案 III。

最后备注:

  • 如果签名者应该在某个地方签名,则在创建文档时添加空的签名字段是有意义的。然后,当在您的应用程序中打开时,用户可以单击他想要签名的签名字段。
  • 有许多现有的解决方案可以完全用于该用例。因此,您还必须问自己:为什么要重新发明轮子?
  • 这些解决方案中的大多数也不直接在(android)客户端上签署文档,而是在中央服务器上进行实际签署。使用这种方法,您无需为每个平台(iOS、Windows 手机、台式电脑上的 Web 浏览器等)重新实现您的解决方案
于 2017-01-02T09:48:40.713 回答