PDF 簽名檢查器
檢查 PDF 的簽名欄位、統計簽名標記,並分析 ByteRange 完整性視窗。
檢查 PDF 的簽名欄位、統計簽名標記,並分析 ByteRange 完整性視窗。 檢查 PDF 的簽名欄位、統計簽名標記,並分析 ByteRange 完整性視窗。
檢查 PDF 的簽名欄位、統計簽名標記,並分析 ByteRange 完整性視窗。
檢查 PDF 的簽名欄位、統計簽名標記,並分析 ByteRange 完整性視窗。 檢查 PDF 的簽名欄位、統計簽名標記,並分析 ByteRange 完整性視窗。
PDF 上的數字簽名不是畫在頁面上的圖章(儘管也可能存在視覺簽名外觀)。它是 一個密碼學物件:簽名字典的 /Contents 值儲存著 DER 編碼的 PKCS#7 SignedData 結構。該結構包含簽名者的證書、摘要演算法,以及對 PDF 位元組精確切片計算出的 簽名。/ByteRange 陣列精確描述簽名覆蓋了檔案的哪些位元組範圍:通常為 [0, a, b, c],意為"位元組 0..a-1 和 b..b+c-1"。這些範圍內的所有內容都被簽名; 範圍之外——包括簽名值本身——則沒有。這種設計讓 PDF 無需預先知道最終長度 就能簽名。
要驗證簽名,檢查器對簽名範圍內的位元組計算雜湊,並與 PKCS#7 結構中內嵌的 摘要比對。如果簽名後有人編輯 PDF,覆蓋的位元組會改變,重算的雜湊就會偏離, 驗證失敗——這就是篡改訊號。因此 /ByteRange 定義了完整性視窗:簽名只能保護 它覆蓋的位元組。範圍未覆蓋整個文件的簽名會留下其餘檔案可被無痕修改的漏洞。 本檢查器會報告範圍是否存在,以及它是否從位元組 0 開始並覆蓋頭部加尾部—— 這是所有簽名工具都會產生的形狀。
它用內建的 pdf-lib 庫(Apache-2.0)解析 PDF,並報告:頁數;AcroForm 中 找到的簽名欄位數;原始位元組流中 /FT /Sig 標記的數量;/ByteRange 陣列是否 存在;以及該範圍是否具有規範 [0, head, tailStart, tailLen] 形狀。零標記的 PDF 完全沒有簽名。有標記但無法解析範圍的 PDF 不常見,值得仔細檢查。完整的 密碼學驗證——重算雜湊並驗證證書鏈——需要簽名者的完整鏈和信任庫;本頁面 聚焦於揭示簽名是否存在、完整性視窗是否完好的結構性分析。
多個簽名標記通常意味著多重簽名,或增量更新後文檔被重新簽名。加密 PDF 可能 對解析器隱藏簽名字典;本工具使用 ignoreEncryption 模式,仍會報告結構。 記住:本工具檢查結構,不檢查身份。它無法告訴你簽名者是否確如其聲稱——那 需要對照可信根驗證證書。把它用作收到文件的初步分流,重要內容再用你平臺的 完整簽名驗證跟進。分析完全在瀏覽器中完成,你的 PDF 永遠不會被上傳。