是否可以让用户对文档进行电子签名?
方案
我希望用户不需要下载,使用某些第三方工具签名然后上传文档。我希望他们以某种方式在网页上执行此操作,可能是在他们登录时在文档框中输入全名。
答案 0 :(得分:1)
一种可行的方法是为每个用户生成cryptographic pair of keys。两个密钥(私有密钥和公共密钥)都需要保存在您的服务器上,私钥受密码保护。理想情况下,密码只能由用户自己知道(在生成密钥时请求密码但不保存密码)和其他任何人。然后,在用户通过输入他的私钥密码签署文档后,您将能够使用他的公钥验证他的“签名”。
流程本身在很大程度上取决于您的服务器设置(即访问加密工具,数据库等)。
PS:我怀疑这是否具有法律约束力(至少不是我所在的地方)但你的管辖权可能会有所不同。答案 1 :(得分:0)
“验证他们合法签署的某种方式”......根据国家/地区的影响略有不同(您的个人资料并未表明您的位置)。我只能回答美国有关法律部分的问题,但对于技术部分而言......
您可以使用PHP将PDF的每个页面导出为PNG,然后显示每个页面(作为PNG图像)供用户查看。然后使用JavaScript记录用户在指定位置签名的操作。然后,用户发布他/她对签名的接受并记录它。当每个用户都“签名”时,您可以使文档可供下载。当第一个用户想要下载包含所有签名的PDF时,您只需应用签名证书即可验证您(您的应用程序/公司)是否证明文档的真实性和签名,就像“公证人”公证一样一个文件。您必须能够提供一种方法,以便将文档链接到签名的签名日志(当您记录用户签名的操作时)和验证用户身份时的身份验证日志。我使用包装在Java SOAP服务中的iText来操作PDF,然后让PHP调用该服务。我已经创建了一个应用程序,它以这种方式执行,但截至目前它仍然在alpha其他我将链接它。
dotloop有一个类似于上面的简单方法,减去真正的身份验证,显然他们的系统成功用于成千上万的房地产交易(托管公司将验证交易的所有各方)注意:应用登录,甚至OAuth都不如欧洲智能卡真实,但即便是那些也不是万无一失的。也许更好的身份验证解决方案是让用户上传其ID的副本(AirBnB执行此操作)。另一种解决方案可能是集成一个简单的Flash应用程序来记录签名者,声明他们接受该事务的签名并将其链接到doc和签名。
要记住的关键事项是:(1)您可以处理Web应用程序堆栈中的所有内容(HTML; JavaScript; PHP; iText),因此用户无需下载实际的PDF。 (2)在许多情况下,只要您可以对进行文档签名操作的用户进行身份验证,只需要在最终文档上“验证”用户执行该操作并提供证明(如dotloop),而不是证明每个签名。通过认证,我的意思是,您使用AATL证书签署最终PDF。