Others

为什么添加数字签名后 PDF 文件大小会增加,尽管签名图像很小

向 PDF 添加数字签名似乎应该只添加签名图像本身的大小,对于典型的 PNG 文件来说可能是 20 到 50 KB。实际文件大小的增加通常要大得多,对于以前显示的文件大小适中的文档来说,有时会增加数百千字节甚至兆字节。这种差异让用户感到困惑,他们希望文件大小的增长量大约与添加的签名数据的大小相同。解释在于数字签名如何嵌入 PDF 中、它们所需的加密基础设施,以及 PDF 格式从未签名文档转换为签名文档时所经历的结构变化。

Why Does a PDF File Size Increase After Adding a Digital Signature Even Though the Signature Image Is Small

数字签名在 PDF 中添加的内容超出了可见签名图像

PDF 中的数字签名不仅仅是粘贴到页面上的图像。它是一种加密构造,包含多个超出可见签名外观的组件。签名的核心是文档内容的签名哈希,使用私钥创建并可使用相应的公钥证书进行验证。此加密数据、哈希值、签名值和证书链通常占用 2 到 10 KB,具体取决于所使用的证书类型和签名算法。可见签名图像(如果使用)会将图像文件大小添加到加密数据之上。

除了签名数据本身之外,PDF 规范还需要一个描述签名属性的签名字典:签名时间、签名原因、位置、标识签名处理程序的过滤器和子过滤器以及对文件内签名数据范围的引用。该字典加上附带的元数据可能会增加几千字节。对于大多数签名,直接归属于签名的总数据应在 30 到 100 KB 范围内。超出此范围的大小增加来自 PDF 如何吸收签名数据的结构因素。下表详细列出了导致文件大小增长的组件。

签名组件典型尺寸范围它包含什么
加密签名数据2-10KB签名哈希、签名值、时间戳令牌
证书链3-15KB签名者证书、中间 CA 证书、根证书
撤销数据(CRL/OCSP)5-30KB证明证书在签名时有效的证明
签名字典和元数据2-5KB签名时间、原因、地点、过滤器标识符
可见的签名图像10-100KB手写签名或印章的 PNG 或 JPEG
结构开销(增量保存)30-80KB更新了交叉引用表、附加对象、字节范围描述符
WukongPDF

尝试签署 PDF

无需安装。直接在您的浏览器中工作。

立即开始 →

添加签名后 PDF 文件结构如何变化

PDF 文件将其内容存储为由交叉引用表链接的编号对象的集合,该交叉引用表将对象编号映射到文件内的字节偏移量。添加数字签名后,必须以不会使现有内容上的签名失效的方式修改 PDF。这是通过增量保存来实现的,其中原始文件内容保持不变,并将新对象附加到文件末尾。新对象包括签名字典、签名数据、更新的交叉引用表以及在签名过程中修改的任何对象。

增量保存机制确保可以通过将签名字节范围与原始内容进行比较来验证签名。然而,增量保存对文件空间的使用效率很低。可以在完全重写中紧凑引用的对象必须在附加部分中完全指定。交叉引用表随着每次增量保存而增长。第一个签名通常会在加密数据之上添加 30 到 80 KB 的结构开销。随后的签名增加了类似的金额。一份由四方签名的文档可以携带数百KB的签名相关结构数据。

证书链和吊销检查数据的作用

数字签名通常嵌入验证签名者身份所需的完整证书链:签名者的证书、颁发中间证书颁发机构的证书,有时还包括根证书。链中的每个证书可以是 1 到 3 KB。三个证书链会增加 3 到 9 KB。某些签名工具还嵌入证书吊销列表 (CRL) 或 OCSP 响应,以证明证书在签名时有效。这些吊销检查数据结构可能非常大,有时超过证书本身的大小。具有多个状态条目的完整 OCSP 响应可能会增加 10 到 20 KB 或更多。

包含撤销数据的决定由签名软件做出,并受到所使用的签名配置文件的影响。长期验证 (LTV) 签名旨在在证书过期数年后仍可验证,与设计用于立即验证的基本签名相比,它包含更多的吊销数据。用户可能不知道他们的签名工具正在嵌入撤销数据,因为该选项通常隐藏在高级设置中或默认启用。由此产生的文件大小增加可能会令人困惑,因为用户看到一个小的签名图像并期望相应的较小的文件大小变化。

为什么不同的 PDF 工具会产生不同的文件大小增加

不同的 PDF 签名工具以不同级别的结构效率实现签名过程。作为签名过程的一部分,一种工具可以执行 PDF 的完全重写,压缩文件结构并消除以前编辑中的孤立数据,因此签名带来的净文件大小增加可以通过结构清理来抵消。另一个工具可以执行增量保存,以保留所有现有内容不变,从而导致将全部结构开销添加到现有文件大小。通过两个不同的工具对同一文档应用相同的签名可能会产生大小相差数百千字节的输出文件。

WukongPDF 的Sign PDF 工具应用数字签名,同时有效管理文件结构。签名添加了必要的加密数据,而没有不必要的结构重复。对于在签名前经过大量编辑的文档,在签名前使用“另存为”功能执行完全重写以创建干净的副本,然后对该副本进行签名,可以最大限度地减少累积文件大小。干净的基础文件和高效的签名工具相结合,可以生成尽可能小的签名 PDF。

需要多个签名时管理文件大小

需要多个签名的文档带来了最大的文件大小挑战,因为每个签名都会通过增量保存添加自己的加密数据和结构开销。由买方、卖方和两名见证人签署的合同包含四层签名数据。如果每个签名增加 50 到 100 KB,则与签名相关的总大小增加为 200 到 400 KB,这对于所提供的法律保证是完全合理的。当每个签名由于嵌入的吊销数据和详细的证书链而增加数百千字节时,就会出现问题,将总增量推至兆字节范围。

要管理多重签名文档的文件大小,请使用可最大限度减少结构开销的签名工作流程。使用生成紧凑签名的工具对文档进行签名。在签名之间,避免不必要的编辑和保存,否则会添加中间增量保存层。如果文件大小出现问题,请在所有签名完成后使用 PDF 优化工具来压缩文件结构。只要签名字节范围不被修改,签名通过优化仍然有效。保留数字签名数据,同时清除多个增量保存的结构开销,生成合法有效且大小有效的签名文档。

了解签名后导致文件大小增长的因素有助于您就签名配置做出明智的决策。对于文件大小很重要的文档(例如通过电子邮件分发或上传到大小受限的门户的文档),选择省略不必要的吊销数据并使用最小证书链的签名配置文件可以为每个签名节省数百千字节。对于长期验证比文件大小更重要的文档(例如多年后可能受到质疑的合同),撤销数据带来的额外大小对于文档未来的法律辩护来说是一项值得的投资。

WukongPDF

尝试签署 PDF

无需安装。直接在您的浏览器中工作。

立即开始 →