印度公司法案有一些变化。其中值得注意的是,如果公司的数字签名,公司可以以电子形式保存其登记册。下面有几点让我感到困惑:
记录一旦注明日期并以数字方式签名,则不得编辑或更改;
根据该法案的规定或其下的规则,记录应能够更新,更新日期应能在每次更新时记录。
想象一下,我们正在对PDF中的表格进行数字签名。如果表中最初有2行,则用户以数字方式对pdf进行签名。现在,我们再向pdf添加2行,我们可以再次签署同一份文档吗?这样做我们不会使之前的签名无效吗?或者我们可以说前一个签名只验证表中的前两行,第二个签名验证剩余的?
这甚至可能吗?如果它可以使用itext和java完成。
PS:以上是对不断更新的物理注册簿的替代。每当更新注册表时,一个人必须在新的记录上加上湿墨签名证明。这就是政府希望以电子方式实现的目标。
答案 0 :(得分:2)
首先我假设
在这种情况下,确实可以对文档应用更改,而无需在数学上使覆盖原始签名字节范围的原始签名无效,参见图2。 this answer为背景。
此情况的PDF规范规定,只允许某些更改。关于这个比较this answer。基本上最好的人可以希望(取决于原始签名的类型)这些允许的更改:
因此,
如果OP通过填充现有表单字段或创建某种注释,OP可能只再添加2行。前者需要相应地计划这些附加信息并提供表单字段,而后者仅使用注释,可能不会在每个上下文中被接受(某些预览器不显示注释......)。如果表中最初有2行,则用户以数字方式对pdf进行签名。现在,我们再向pdf添加2行,我们可以再次签署同一份文档吗?这样做是不是让以前的签名无效?
因此,可以对签名文档添加某些更改,但必须事先为它们进行规划。
答案 1 :(得分:2)
我建议“注册”是PDF文档的集合。注册表中的每个条目都是签名的PDF。
注册表中的每个条目都是签名的PDF,它们可能只有一页。
我建议您不要尝试使用“打开字段”创建表单,逐步添加到已签名的PDF或类似内容。您(和政府)希望数字签名版本的寄存器易于理解且易于实现。
解决方案也应该可以使用现成的签名系统。很容易理解一堆文书工作(总计),一个“注册”。使用PDF集合执行相同的操作。
如果担心可能会从“注册表”中删除单个PDF,则可以创建(并签名)其他“索引”。然后,只要将页面添加到寄存器,就可以修改和重新签名索引。或者可以签署新的索引版本。
优于签署索引pdf将是以XML格式创建索引并签署XML。这样,XML可以被计算机程序读取,各个PDF验证它们的存在和有效签名。 - 您希望为职员提供一些简单方式,以确保寄存器的所有单独部分都存在并进行说明。
答案 2 :(得分:1)
您可以通过在PDF本身中包含PDF上次更新的日期,然后通过对PDF进行数字签名来满足这两个要求。
数字签名证明文档未被更改,日期是数字签名PDF的一部分。每次更新时都必须保留文档列表。因此,您必须永久存储文档的所有版本。
您是正确的,对文档进行任何更改都会使其数字签名无效。但这不是问题,因为您可以将旧版本的文档存储在数据库中。文档更新后,再次对其进行数字签名。
答案 3 :(得分:1)
对PDF进行数字签名后,可以对其进行修改,然后应用其他签名。
当然,修改“打破了第一个签名的印章”,但随后签名,你将添加一个新的印章。此外,在此工作流程中,您将获得增量节省,这意味着可以显示(甚至回滚)各个签名之间的更改。
改述上段以更接近问题:
您以数字方式唱出一份文件。数字签名是围绕着什么的密封(如示例中的两行)。
您进行了修改(再添加两行)。这打破了数字签名,因为封条不会覆盖另外两行。
您应用其他数字签名。数字签名是围绕着什么的密封(如示例中现在是四行)。
您分析文档,并注意到彼此顶部有两个签名。您将能够看到第一个签名所涵盖的内容,以及第二个签名所涵盖的内容。
一个额外的想法,即使视觉上更清晰,将使用文档中的模板页面,并且对于每个添加,您将从该模板生成页面。您可以以已有可见签名字段的方式设置模板。这也可以直观地呈现签名信息。
我不知道印度法规是如何实现的,但也可能值得确定哪种工作流程符合PDF / A标准。