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

無需安裝。直接在您的瀏覽器中工作。

立即開始 →