使用 LtvTimestamp 添加长期验证 (LTV) 后使用 iTextSharp 锁定已签名的 PDF
Locking a signed PDF using iTextSharp after Long Term Validation(LTV) has been added using LtvTimestamp
在 PDF 使用 LtvTimestamp 添加 LTV 后,是否可以停止添加任何注释和/或签名?
我尝试在初始签名中添加 PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED,但添加 LTV 会使该签名无效。
如有任何帮助,我们将不胜感激。
一般
首先,不,在 PDF 添加了 LTV 后,一般无法停止添加任何注释和/或签名,因为人们可以很容易地编写一个实用程序添加注释或签名字段而忽略权限。
所以让我们假设我们正在谈论尊重权限的工具。但即使在那种情况下,问题还是根据哪个规范解释权限。
ISO 32000-1 中的权限
ISO 32000-1 中允许或不允许的更改已在 this answer 中进行了描述。
ISO 32000-1 不知道 PAdES-4 LTV 信息或文档时间戳。它将后者视为使用不可互操作格式的普通签名,并且对前者没有解释。
因此,如果初始签名是一个“允许填表和数字签名”的认证签名,并且已经正好有一个空白的签名字段,您可以在该空白字段中添加文档时间戳,以后不可以允许签名或注释。
但不幸的是,严格来说,在任何认证文件中都不允许添加与验证相关的信息(毕竟这是 LTV 的主要原因之一)。
因此,可以说服严格根据 ISO 32000-1 解释权限的工具不允许在文档时间戳之后添加签名或注释。但是这样的工具可能不是您的目标工具,因为它既不允许 LTV VRI,也不可能处理文档时间戳,更不用说将整个文档解释为“带有 LTV 的签名文档”了。
根据 PAdES 第 4 部分修改了 ISO 32000-1 中的权限
PAdES 第 4 部分通过正确指定文档时间戳和 LTV VRI 并通过裁定
改变了这种情况
DocMDP restrictions (see ISO 32000-1 [1] clause 12.8.2.2) shall not apply to incremental updates to a PDF document containing a DSS dictionary and associated VRI, Certs, CRLs and OCSPs. [...]
When evaluating the DocMDP restrictions (see ISO 32000-1 [1], clause 12.8.2.2) the presence of a Document Timestamp dictionary item shall be ignored.
(ETSI TS 102 778-4 V1.1.2 "Annex A (normative): ISO 32000-1 LTV Extensions")
因此,如果一个文件是
- “已认证,不允许更改”,添加了 LTV 验证相关信息和文档时间戳
- 或“已通过表格填写和数字签名认证”,包含 LTV 验证相关信息和添加的文档时间戳,没有任何剩余的空签名字段(可能通过字段锁定强制执行)
由根据 PAdES 第 4 部分修改的 ISO 32000-1 解释权限的工具处理,此工具将:
- 接受 VRI 添加并妥善处理它们和文档时间戳,并且
- 不接受或创建进一步的签名或注释。
但它将接受进一步的 VRI 和文档时间戳添加!
ISO 32000-2(草案)中的权限
我在这里提供的最新草案基本上集成了 PAdES 第 4 部分的补充内容。因此,情况与根据 PAdES 第 4 部分修改的 ISO 32000-1 的情况基本相同。
作为字段锁定的一部分更改 MDP 权限的新选项可用于在添加文档时间戳之前有更宽松的情况。
Adobe Acrobat Reader DC V 2015.007.20033
这个软件是如何解释权限的,还有待分析...
在 PDF 使用 LtvTimestamp 添加 LTV 后,是否可以停止添加任何注释和/或签名?
我尝试在初始签名中添加 PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED,但添加 LTV 会使该签名无效。
如有任何帮助,我们将不胜感激。
一般
首先,不,在 PDF 添加了 LTV 后,一般无法停止添加任何注释和/或签名,因为人们可以很容易地编写一个实用程序添加注释或签名字段而忽略权限。
所以让我们假设我们正在谈论尊重权限的工具。但即使在那种情况下,问题还是根据哪个规范解释权限。
ISO 32000-1 中的权限
ISO 32000-1 中允许或不允许的更改已在 this answer 中进行了描述。
ISO 32000-1 不知道 PAdES-4 LTV 信息或文档时间戳。它将后者视为使用不可互操作格式的普通签名,并且对前者没有解释。
因此,如果初始签名是一个“允许填表和数字签名”的认证签名,并且已经正好有一个空白的签名字段,您可以在该空白字段中添加文档时间戳,以后不可以允许签名或注释。
但不幸的是,严格来说,在任何认证文件中都不允许添加与验证相关的信息(毕竟这是 LTV 的主要原因之一)。
因此,可以说服严格根据 ISO 32000-1 解释权限的工具不允许在文档时间戳之后添加签名或注释。但是这样的工具可能不是您的目标工具,因为它既不允许 LTV VRI,也不可能处理文档时间戳,更不用说将整个文档解释为“带有 LTV 的签名文档”了。
根据 PAdES 第 4 部分修改了 ISO 32000-1 中的权限
PAdES 第 4 部分通过正确指定文档时间戳和 LTV VRI 并通过裁定
改变了这种情况DocMDP restrictions (see ISO 32000-1 [1] clause 12.8.2.2) shall not apply to incremental updates to a PDF document containing a DSS dictionary and associated VRI, Certs, CRLs and OCSPs. [...]
When evaluating the DocMDP restrictions (see ISO 32000-1 [1], clause 12.8.2.2) the presence of a Document Timestamp dictionary item shall be ignored.
(ETSI TS 102 778-4 V1.1.2 "Annex A (normative): ISO 32000-1 LTV Extensions")
因此,如果一个文件是
- “已认证,不允许更改”,添加了 LTV 验证相关信息和文档时间戳
- 或“已通过表格填写和数字签名认证”,包含 LTV 验证相关信息和添加的文档时间戳,没有任何剩余的空签名字段(可能通过字段锁定强制执行)
由根据 PAdES 第 4 部分修改的 ISO 32000-1 解释权限的工具处理,此工具将:
- 接受 VRI 添加并妥善处理它们和文档时间戳,并且
- 不接受或创建进一步的签名或注释。
但它将接受进一步的 VRI 和文档时间戳添加!
ISO 32000-2(草案)中的权限
我在这里提供的最新草案基本上集成了 PAdES 第 4 部分的补充内容。因此,情况与根据 PAdES 第 4 部分修改的 ISO 32000-1 的情况基本相同。
作为字段锁定的一部分更改 MDP 权限的新选项可用于在添加文档时间戳之前有更宽松的情况。
Adobe Acrobat Reader DC V 2015.007.20033
这个软件是如何解释权限的,还有待分析...