电子签名PDF Android
Electronic signature PDF Android
我需要制作一个应用程序,您可以在其中打开 PDF 文档,将其展示给客户,然后他将对其进行电子签名(在平板电脑上写下他的签名)。
根据我的阅读,您需要创建签名的数据(时间戳、压力和绘图时间)并将其附加到 PDF。
但这就够了吗?因此,要打开 canvas,读取数据并将其与签名图像本身一起附加到 PDF,还是我还需要对 PDF 进行数字签名?如果这就足够了,那么在哪里附加所有附加数据(时间戳......)? - 我打算使用 itext 库。
您的问题涉及很多方面。最后,这一切都归结为 your/your 客户对流程的要求。让我来说明您可以做什么:
首先:数字签名和手写签名表示之间存在差异 - 尽管您可以将两者结合使用...
解决方案一
- 捕获签名图像(来自 canvas),从中创建一个图像
- 将图片放入PDF
方案二
- 同上
- 创建一个标准的 PDF 签名字段,将签名图像设置为其外观并对该字段和文档进行数字签名(为此您需要一个证书,但它可以是自签名的)。时间戳(以及更多信息,如位置、原因等)也可以添加并且是签名的一部分
方案三
- 同上
- 还收集签名的所谓生物识别数据(x、y 坐标、压力,如您提到的(但并非总是可用)和每个坐标对的时间戳
- 加密生物识别数据并将其添加到签名字段(极度简化)
- 与上面的步骤 2 相同(cp. 解决方案 II)
解决方案四(更新)
正如您在评论中提到的,您想要一个符合 eIDAS 的签名:
"I do not need it to be digitally signed what I need is basic e-signature that is valid underneath eIDAS"
明确一点:eIDAS 是一种对 PDF 文档进行数字签名的方法。
- 同上
- 如果您想要一个符合 eIDAS 标准的电子签名,您还需要一个证书。没有其他办法了。但是证书可以是自签名的,所以应该不是问题。其余与解决方案二(步骤 2)相同
可能还有其他组合(例如使用来自智能卡的合格证书等),但最终只有您可以决定什么是适合您的解决方案。这取决于您的要求、您所在国家/地区的法规以及您要签署的合同的法律要求。
解决方案有什么不同?
第一个解决方案不提供任何验证签名者真实性的可能性,也不确保文档在添加签名图像后未被更改。解决方案 II 准确地提供了这一点,但是如果使用自签名证书,则无法识别签名者(任何人都可以签署该文档)。要证明这一点,您必须使用合格的证书或使用解决方案 III。
最后评论:
- 如果签名者应该在某个地方签名,那么在创建文档时添加空签名字段是有意义的。然后当在您的应用程序中打开时,用户可以单击他想要签名的签名字段。
- 有许多现有解决方案可以完全用于该用例。因此你也必须问自己:为什么要重新发明轮子?
- 大多数这些解决方案也不直接在 (android) 客户端上签署文档,而是在中央服务器上进行实际签署。使用这种方法,您不需要为每个平台重新实现解决方案(iOS、windows phone、桌面 pc 上的 Webbrowser 等)
我需要制作一个应用程序,您可以在其中打开 PDF 文档,将其展示给客户,然后他将对其进行电子签名(在平板电脑上写下他的签名)。
根据我的阅读,您需要创建签名的数据(时间戳、压力和绘图时间)并将其附加到 PDF。
但这就够了吗?因此,要打开 canvas,读取数据并将其与签名图像本身一起附加到 PDF,还是我还需要对 PDF 进行数字签名?如果这就足够了,那么在哪里附加所有附加数据(时间戳......)? - 我打算使用 itext 库。
您的问题涉及很多方面。最后,这一切都归结为 your/your 客户对流程的要求。让我来说明您可以做什么:
首先:数字签名和手写签名表示之间存在差异 - 尽管您可以将两者结合使用...
解决方案一
- 捕获签名图像(来自 canvas),从中创建一个图像
- 将图片放入PDF
方案二
- 同上
- 创建一个标准的 PDF 签名字段,将签名图像设置为其外观并对该字段和文档进行数字签名(为此您需要一个证书,但它可以是自签名的)。时间戳(以及更多信息,如位置、原因等)也可以添加并且是签名的一部分
方案三
- 同上
- 还收集签名的所谓生物识别数据(x、y 坐标、压力,如您提到的(但并非总是可用)和每个坐标对的时间戳
- 加密生物识别数据并将其添加到签名字段(极度简化)
- 与上面的步骤 2 相同(cp. 解决方案 II)
解决方案四(更新)
正如您在评论中提到的,您想要一个符合 eIDAS 的签名:
"I do not need it to be digitally signed what I need is basic e-signature that is valid underneath eIDAS"
明确一点:eIDAS 是一种对 PDF 文档进行数字签名的方法。
- 同上
- 如果您想要一个符合 eIDAS 标准的电子签名,您还需要一个证书。没有其他办法了。但是证书可以是自签名的,所以应该不是问题。其余与解决方案二(步骤 2)相同
可能还有其他组合(例如使用来自智能卡的合格证书等),但最终只有您可以决定什么是适合您的解决方案。这取决于您的要求、您所在国家/地区的法规以及您要签署的合同的法律要求。
解决方案有什么不同?
第一个解决方案不提供任何验证签名者真实性的可能性,也不确保文档在添加签名图像后未被更改。解决方案 II 准确地提供了这一点,但是如果使用自签名证书,则无法识别签名者(任何人都可以签署该文档)。要证明这一点,您必须使用合格的证书或使用解决方案 III。
最后评论:
- 如果签名者应该在某个地方签名,那么在创建文档时添加空签名字段是有意义的。然后当在您的应用程序中打开时,用户可以单击他想要签名的签名字段。
- 有许多现有解决方案可以完全用于该用例。因此你也必须问自己:为什么要重新发明轮子?
- 大多数这些解决方案也不直接在 (android) 客户端上签署文档,而是在中央服务器上进行实际签署。使用这种方法,您不需要为每个平台重新实现解决方案(iOS、windows phone、桌面 pc 上的 Webbrowser 等)