【问题标题】:Is it possible to put an electronic seal on a document with OpenPDF?是否可以使用 OpenPDF 在文档上加盖电子印章?
【发布时间】:2020-03-30 04:02:41
【问题描述】:

我的公司需要实施一种在官方 PDF 上加盖电子印章的方法,以确保其完整性。听一些同事说是用OpenPDF做的,但是网上搜到现在什么都没找到。

仅使用 OpenPDF 是否可以有效地实现这一目标?或者是否存在其他库?在这种情况下,我更喜欢免费库,但如果只有商业选项,我想先尝试一下,这样我就可以看看我是否能够使用它们,以及我的上级是否愿意承担经济风险。

这是维基百科对电子印章的定义:

合格的电子印章是符合欧盟第 910/2014 号条例(eIDAS 条例)的电子印章,适用于欧洲内部市场的电子交易。它可以在很长一段时间内验证文件的发行者。合格的电子印章可以被认为是纸上法人印章的数字等效物。根据eIDAS规定,合格的电子印章必须由合格的电子设备制作,并以合格的电子印章证书为基础。

【问题讨论】:

  • 您应该在您的问题中使用正确的术语(以及在搜索或谈论它时),您已经习惯于更正标签:“数字签名”,而不是“印章”。
  • 没有电子印章标签。
  • 那么您是在说印章,就像一封信上的蜡封?第一次打开 PDF 时会出现问题,以便后续查看者知道有人在他们之前打开了 PDF?然后你应该删除不相关的标签(如果它真的不是你要问的)。
  • 是的,就是这样。这是一项确保数字文档完整性的新规范
  • 诚信可以通过签名来实现!无法实现密封,除非 PDF 连接到服务器和自定义阅读器以按照您希望的方式运行,基本上您将不再拥有 PDF,而是一些自定义的第 3 方文件格式。即使在理论上,这应该如何与 PDF 一起工作?请考虑实际应该发生什么,为什么以及如何这会奏效!

标签: java pdf openpdf


【解决方案1】:

印章和签名

首先,对于这个问题,在 cmets 中有一些关于电子印章签名的讨论。

在法律上(在 eIDAS 的背景下),它们彼此严格不同。但是,从技术上讲,两者通常都是作为数字签名实现的,在 PDF 的上下文中更准确地说是作为 PAdES 签名;主要区别在于使用的签名者证书表明您是否有电子印章或签名。

因此,问题归结为 OpenPDF 是否支持创建 PAdES 签名。

OpenPDF 和 PAdES

OpenPDF 是 iText 的最后一个非 AGPL 版本的分支,即 2009-11-27 13:59:39 标记的非官方版本 iText 4.2.0 Bruno Lowagie。在那一年,ETSI 刚刚发布了 PAdES 签名的第一个版本,作为技术规范 (TS),而不是欧洲标准 (EN)。

因此,当时的 iText 库不包含任何明确的 PAdES 支持,仅针对可互操作的 ISO 32000-1 签名类型。不过,它提供了一个选项,主要是自己创建签名字典并注入您自己的定制签名容器。因此,通过使用此选项,您可以创建 PAdES 签名,不仅可以使用 ISO 32000-1 兼容性配置文件,还可以使用 BES 和 EPES 配置文件。

从那时起,OpenPDF 签名 API 几乎没有改变;因此,仍然没有对 PAdES 的明确支持,但接口是开放的,可以注入签名字典和签名容器,以创建匹配简单 PAdES 配置文件(Baseline-B、Baseline-T、E-BES、E-EPES)的签名。

关于你的问题,因此

仅使用 OpenPDF 是否可以有效地实现这一目标?

使用 OpenPDF 是可能的,但根据您想要的确切配置文件,您必须添加一些代码以相应地生成签名字典和签名容器。

或者是否存在其他库?

是的。例如

  • iText(很久以前从 OpenPDF 派生出来的)同时得到了进一步的开发,并包含一些更明确的 PAdES 支持。
  • CEF eSignature Digital Signature Services suite 用于 PDF 签名,它使用 PDFBox 或 OpenPDF 作为基础 PDF 库,但构建自己的签名字典和签名容器。
  • ...

(不过,对于库推荐,请使用Software Recommendations Stack Exchange 而不是堆栈溢出,严格来说它们在这里是题外话。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2018-02-02
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多