首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单电子签署:“签署”PDF无证书后签名篡改-保护

简单电子签署:“签署”PDF无证书后签名篡改-保护
EN

Stack Overflow用户
提问于 2016-05-04 09:33:54
回答 2查看 1.9K关注 0票数 0

首先,有一点背景--实际问题在底部。

我目前正在开发一个基于网络的应用程序(类似于SaaS),它允许用户向自己的客户发送表单。

这些表格很简单,小规模的工作合同,他们的客户说:“好的,我会这样做,这是我的确认”。

这种正在“签字”的东西不需要完全限定的数字签字,电子签字就足够了。

在这种情况下,一个简单的复选框--“是的,我会这么做”--在法律上就足够了,但是我很想用一个签名垫来实现它。老实说,这仅仅是因为看上去更有约束力,而且,嗯,“整洁”。

当前的工作流如下所示:

  1. 用户的客户打开web表单(被要求签名的人是宇宙中唯一知道直接链接的人)
  2. 勾选几个框并输入文本。
  3. 单击“符号”,打开HTML5签名垫(移动)或简单输入(PC),以键入其名称。
  4. 点击“接受”
  5. 生成一个PDF以供下载并存储在服务器上(连同时间戳、IP和其他一些信息)。

正如你所看到的,整个协议构成了一个简单的电子签名--即使没有铃声和口哨声。

我想做什么

与任何简单的电子签名一样,任何一方都很容易说文件可能被篡改。

因此,我所做的是根据规范(使用tcpdf)正确地对PDF进行签名:这需要首先生成PDF,然后将签名添加到/Sig字典中,然后生成一个跨越所有字节范围的摘要(不包括签名),将其与一个.crt文件链接起来,而voilá:文档的签署带来了签名如果一个字节被更改就会变得无效的好处。

现在来回答以下问题:

  1. 在没有使用证书的的情况下,可以从“篡改验证”中获益吗?就像我说的,这些不是数字签名,而是简单的电子签名。不过,我还是希望能从任何突出显示的签名后更改中获益。
  2. 或者,我也可以简单地为签名过程使用一个适当的证书。但是这个证书将是我的,而不是我的用户的,甚至我的用户的客户。从这个意义上说,它会弊大于利吗?也就是说,证书属于错误的一方,因此变得毫无意义;我,而不是签字人的凭单;“文件在我签字后被更改和重新签署”等。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-04 14:26:29

不使用证书就能从“篡改验证”中获益吗?就像我说的,这些不是数字签名,而是简单的电子签名。不过,我还是希望能从任何突出显示的签名后更改中获益。

不,至少只要你想以一种可互操作的方式来做这件事。

当然,您可以发明自己的安全系统,创建PDF查看器,或者至少为常用的PDF查看器创建插件来支持您的系统,并将这些程序提交给用户。

但是,如果您想要现有的Adobe验证签名,就必须采用X509 PKI的方式。

或者,我也可以简单地为签名过程使用一个适当的证书。但是这个证书将是我的,而不是我的用户的,甚至我的用户的客户。从这个意义上说,它会弊大于利吗?也就是说,证书属于错误的一方,因此变得毫无意义;我,而不是签字人的凭单;“文件在我签字后被更改和重新签署”等。

在使用您自己的证书进行签名时,不要忘记正确地填充“原因”字段,以便它指示您的签名作为计数器签名应用,以保证验证性。

有了这个位置,我看你的签名没什么坏处。

但问题是它有多好。

显然用户仍然可以声称他签了不同的东西..。因为他做到了!他在网络表格上签名,而不是PDF。因此,您可能必须提供证据,证明PDF格式准确地反映了web表单显示的内容,用户签署了类似的内容。

如果你想让用户真正的不可否认,你需要让他以一种被普遍接受的方式签名,不允许篡改。换句话说,您的用户需要自己应用适当的数字签名。其他一切都可以要求伪造。

票数 1
EN

Stack Overflow用户

发布于 2016-05-05 07:59:21

您可以使用可信时间戳(在RFC3161中定义)代替由客户或服务器创建的签名。时间戳保护文档完整性,并证明您的文档在特定时间之前存在.从技术上讲,这是一个由可信的第三方创建的数字签名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37023819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档