--- title: 驗證簽章 description: 驗證 PDF 檔案中的數位簽章。檢查憑證有效性、簽署者身分、文件完整性與信任鏈狀態。 --- # 驗證簽章 上傳已簽署的 PDF,此工具會擷取每個數位簽章、識別簽署者、檢查憑證有效性,並回報文件在簽署後是否遭到修改。您也可以提供受信任的憑證來驗證簽章鏈。 ## 運作方式 1. 上傳已簽署的 PDF 檔案。驗證會自動開始。 2. 工具會顯示摘要:找到的簽章數量,以及其中有幾個有效。 3. 每個簽章都有一張詳細資訊卡,顯示簽署者名稱、簽發者、日期與狀態。 4. 可選擇上傳**受信任的憑證**(.pem、.crt、.cer、.der),以特定信任錨點驗證簽章。重新驗證會自動執行。 ## 檢查項目 ### 簽章解析 此工具會從 PDF 擷取 PKCS#7 簽章物件、解碼 ASN.1 結構,並取出簽署者的 X.509 憑證以及簽章中內嵌的任何憑證鏈。 ### 憑證有效性 - **到期**:憑證目前是否在有效日期範圍內? - **自簽偵測**:憑證是否由其自身簽發? - **信任鏈**:提供受信任憑證時,簽署者的憑證鏈是否能追溯到該憑證? ### 密碼學驗證 - 此工具會重建簽章 `/ByteRange` 涵蓋的位元組,以簽署者宣告的演算法計算雜湊,並將結果與簽章內的 `messageDigest` 屬性比對。 - 接著將已簽署屬性重新序列化為 DER SET,並以簽署者憑證的公鑰驗證簽章。 - **只有在上述所有檢查都通過時,簽章才會被回報為有效。** 如果 PDF 位元組在簽署後遭到修改,或內嵌簽章與簽署者的金鑰不符,狀態會顯示「無效:密碼學驗證失敗」並附上具體原因。 #### 支援的簽章演算法 | 演算法 | 驗證方式 | | ----------------------- | ------------------------------------------------------------------------------------ | | RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`,並以 Web Crypto 作為備援 | | RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` | | ECDSA P-256/P-384/P-521 | 將 DER 簽章轉換為 IEEE P1363 格式後,使用 Web Crypto `verify({name: 'ECDSA', hash})` | 如果簽章使用此清單以外的演算法(例如 Ed25519、SM2,或使用罕見摘要 OID 的 RSA),資訊卡會以黃色顯示 **「未驗證:不支援的簽章演算法」**,並附上具體的 OID 或原因。這是刻意設計的三種狀態區分: - **有效**:簽章已透過簽署者的公鑰完成密碼學驗證。 - **無效**:驗證已執行且結果為否定(位元組已變更、金鑰不符)。 - **未驗證**:此工具無法針對該演算法執行驗證。憑證中繼資料仍會顯示,但您應將該簽章視為「未知」,並使用 Adobe Acrobat 或 `openssl cms -verify` 進行驗證。 ### 不安全的摘要演算法 - 使用 **MD5 或 SHA-1** 的簽章會被判定為無效,並標示為「不安全的摘要演算法」狀態。這兩種演算法都已有公開的碰撞攻擊,因此對 SHA-1 或 MD5 雜湊所做的簽章無法保證完整性。 - SHA-224、SHA-256、SHA-384 與 SHA-512 皆可接受。 ### 文件涵蓋範圍 - **完整涵蓋**:簽章涵蓋整個 PDF 檔案,表示簽署後沒有新增或變更任何位元組。 - **部分涵蓋**:簽章只涵蓋檔案的一部分。這可能表示簽署後有過修改(不一定是惡意的,增量儲存也會產生部分涵蓋)。 ## 簽章詳細資訊 每張簽章資訊卡會顯示: - **簽署者**:簽署者憑證中的一般名稱、組織與電子郵件 - **簽發者**:簽發簽署者憑證的憑證授權單位 - **簽署時間**:簽章中內嵌的時間戳記 - **有效期起 / 有效期至**:憑證的有效期間 - **原因**:簽署文件的原因(若有提供) - **地點**:簽署的地點(若有提供) - **涵蓋狀態**:完整或部分 - **信任標章**:受信任或不在信任鏈中(僅在提供自訂憑證時顯示) ### 技術細節 展開技術細節區塊可查看: - 簽署者憑證的序號 - 摘要演算法(SHA-256、SHA-512 等) - 簽章演算法(RSA with SHA-256、ECDSA with SHA-256 等) - 無效簽章的錯誤訊息 ## 使用情境 - 在會簽前驗證已數位簽署的合約 - 稽核已簽署的文件,確認未遭竄改 - 檢查憑證在文件簽署後是否已過期 - 以您組織的根憑證驗證簽章 - 檢視政府或法律文件的簽署詳細資訊 ## 提示 - 自簽憑證並不代表簽章無效,而是表示無法透過受信任的第三方驗證簽署者身分。這在內部文件中很常見。 - 部分涵蓋不一定代表遭到竄改。許多 PDF 工作流程會加入增量更新(例如第二個簽章),因而產生部分涵蓋。 - 將您組織的根憑證或中繼憑證上傳為受信任的憑證,即可進行信任鏈驗證。 ## 相關工具 - [數位簽章](./digital-sign-pdf):使用您自己的憑證簽署 PDF - [平面化 PDF](./flatten-pdf):在簽署前將 PDF 平面化,以防止簽署後的修改 - [移除中繼資料](./remove-metadata):在套用簽章前清理 PDF