上下文
我的总体目标是制作一套PDF文件,以便用户可以确信文件的来源(即,它们来自预期来自的原点)。我正在考虑通过在服务器上对PDF进行数字签名来做到这一点。这些签名不会有到期风险,因为服务器可以在更新证书时重新发布新签名的PDF。使用SSL来提供文档是不够的,因为这些文件可以传递给不想/不需要访问服务器的第三方。
问题
出现过期问题是因为其中一些PDF已经有一个或多个数字签名(例如,为法律目的而创建)。我的问题是,如果服务器签署PDF,那么只要最新签名有效,它是否也会确保以前签名的持续有效性,即使它们过期了?
我在理论方面要求更多,虽然我计划使用iText实现我所描述的内容,因此欢迎任何有关如何将其用于我的目的的指示。
答案 0 :(得分:3)
不,在PDF中,所有签名都应该独立验证。如果您打开带有多个签名的PDF在Adbobe Reader中,所有签名都会得到验证,如果其中一个签名验证失败,您将收到警告消息。
如果您想防止签名验证问题(例如签名证书过期导致验证失败),您应该查看PAdES标准(PDF高级电子签名)第4部分(PAdES-LTV配置文件 - PAdES长期验证)。标准的这一部分涉及维护一段时间内的验证证明,以便能够在将来重新验证签名。
我不太了解iText,但似乎支持PAdES-LTV,因为我找到了这个代码示例:How to apply verification according to PAdES-LTV