Enterprise 版本
驗證
NextPDF Enterprise 會針對具名的原則,在行程內執行唯讀的結構性檢查:PDF/A-4、PAdES baseline、長期驗證(Long-Term Validation,LTV)健全性、ZUGFeRD、美國食品藥物管理局(U.S. Food and Drug Administration,FDA)21 CFR Part 11,以及美國證券交易委員會(U.S. Securities and Exchange Commission,SEC)17a-4。它會回傳一份結構化的技術報告。這份報告不是法律建議、合規背書或認證。
供應與授權
標題為「供應與授權」的區段此功能隨 NextPDF Enterprise(nextpdf/enterprise)提供,並透過 Enterprise 層級的授權封套啟用。未具備該授權的部署不會載入此功能的類別。比較各版本並取得授權。
composer require nextpdf/enterprise:^3概念總覽
標題為「概念總覽」的區段Compliance 是進入點。呼叫 Compliance::assess($pdfBytes, $policy)(或注入一個實例並呼叫 run()),即可將單一 CompliancePolicy 套用到 PDF bytes 並取得一個 ComplianceReport。原則定義了要做的工作;報告則提供結構化的結果。
Policies 提供預先建置的原則工廠:pdfA4()、pdfA4e()、pdfA4f()、padesBaseline()、eidasQualified()、ltvHealth()、zugferd($profile)、fdaPart11(),以及 SEC 17a-4 家族(sec17a4()、sec17a4Compatible()、sec17a4Structural()、sec17a4PreSign())。每一個工廠都會回傳一個 CompliancePolicy,其 validate() 方法是純函式:輸入 PDF bytes,輸出 findings。這個架構強制一條嚴格的唯讀界線:原則絕不會變更 PDF bytes,因此驗證會與任何自動修正行為保持區隔。
ComplianceReport 會依 Severity(Error、Warning、Info)將 findings 分組。沒有任何 error 時,passes() 會回傳 true;warning 不會讓報告失敗。報告內含一段內建的法律免責聲明(getDisclaimer()),說明該結果僅是供參考的技術性結構檢查,最終判定由合格的法律或合規專業人員負責。你必須在面向使用者的輸出中顯示該免責聲明。
對簽章而言,還有第二條界線很重要。LtvHealthCheck 會依 ISO 32000-2:2020 §12.8.4.3 檢查 Document Security Store(DSS)的結構性存在;它不會以密碼學方式驗證嵌入的線上憑證狀態協定(Online Certificate Status Protocol,OCSP)或憑證撤銷清單(certificate revocation list,CRL)資料。eidasQualified() 僅在 PDF 層級驗證 PAdES 結構;實際的 eIDAS 合格性取決於信任服務提供者(trust service provider,TSP)與合格憑證,這些都在本模組範圍之外。
這裡的「驗證」是什麼意思
標題為「這裡的「驗證」是什麼意思」的區段本模組會 檢查結構性屬性並回報 findings。它不會認證文件,也不保證該文件滿足某項法規。
- 符合性是 最終檔案加上驗證器 的屬性,而非本函式庫的屬性。ISO 19005-4:2020 §5.2 是透過檢查工具、依該標準的規範性要求判定符合性,而不是透過產生檔案的軟體。
- 通過的報告,是對照每個原則所實作規則的檢查結果。它不是認證。
- FDA 21 CFR Part 11 與 SEC 17a-4 原則會檢查這些法規所隱含的 結構性屬性(簽章存在、簽署意圖、稽核軌跡標記、一次寫入多次讀取(write once, read many,WORM)限制)。它們不會建立對那些法規的法律合規。法律上的充分性由你的合規團隊判定。
支援某項標準不等於符合該標準,符合也不等於認證。NextPDF 並未持有任何認證,也不會授予任何認證。
層級界線
標題為「層級界線」的區段- NextPDF Core
Compliance提供位元組串流驗證器與文法交叉檢查;零 finding 的結果是檢查結果,而非認證。 - NextPDF Pro
Compliance(EInvoiceValidator) 會在行程內於電子發票層級驗證 EN 16931 / Factur-X / ZUGFeRD。 - NextPDF Enterprise Validation(本頁) 為封存、簽章、LTV 與受監管產業的結構性檢查(FDA Part 11、SEC 17a-4)新增預先建置的原則,並提供統一的報告格式。Enterprise Compliance 模組是一個委派給外部 sidecar 的獨立介面;本模組則在行程內執行。
為什麼採用這種設計
標題為「為什麼採用這種設計」的區段驗證是以一組純粹、唯讀的原則建置而成,而不是一條「修正並回報」的流水線。每個原則的 CompliancePolicy::validate() 會接收 PDF bytes 並回傳 findings;它絕不會編輯文件。因此,通過的報告絕不會是工具在暗中「幫忙」讓輸入過關的產物。它僅代表該檔案已對照每個原則所實作的規則進行檢查。正是這條界線,讓每份報告都附帶內建免責聲明,也讓符合性始終是最終檔案加上外部驗證器的屬性,而非產生者的自我宣稱。認證與法律上的充分性是稽核人員或合規團隊的裁量,因此本模組回報結構後便就此打住。
設計背景:可以直接交給稽核人員的合規。
API 介面
標題為「API 介面」的區段| 類別 | 職責 |
|---|---|
Compliance | 進入點:套用單一原則,回傳一份報告。 |
Policies | 預先建置 CompliancePolicy 實例的工廠。 |
CompliancePolicy | 合約:純粹的 validate(),回傳 findings。 |
ComplianceReport | 依嚴重性分組的 findings;帶有法律免責聲明。 |
ComplianceFinding | 單一 finding:規則 id、訊息、標準參考、修正建議。 |
Severity | Error / Warning / Info。 |
PdfAPolicy | PDF/A-4 家族的結構性原則。 |
PadesValidator | PAdES baseline / eIDAS 結構性原則。 |
LtvHealthCheck | DSS 結構性存在檢查(ISO 32000-2 §12.8.4.3)。 |
ZugferdValidator | ZUGFeRD / Factur-X 的 PDF 層級原則。 |
FdaPart11Policy | FDA 21 CFR Part 11 結構性屬性原則。 |
Sec17a4WormPolicy | SEC 17a-4 WORM 結構性原則(嚴格程度可選)。 |
程式碼範例——快速開始
標題為「程式碼範例——快速開始」的區段use NextPDF\Enterprise\Validation\Compliance;use NextPDF\Enterprise\Validation\Policies;
$report = Compliance::assess($pdfBytes, Policies::pdfA4());$ok = $report->passes(); // no errors程式碼範例——正式環境
標題為「程式碼範例——正式環境」的區段$report = (new Compliance($clock))->run($pdfBytes, Policies::fdaPart11());
foreach ($report->errors as $finding) { $logger->warning('validation.error', [ 'rule' => $finding->ruleId, 'standard' => $finding->standardReference, ]);}$auditLine = $report->getDisclaimer(); // surface this in user-facing output邊界情況與陷阱
標題為「邊界情況與陷阱」的區段- warning 絕不會讓報告失敗;只有 error 才會將
passes()設為 false。一份乾淨的報告,表示的仍然是「已對照已實作的規則進行檢查」,而非「合規」。 LtvHealthCheck確認的是 DSS 結構,而非密碼學上的撤銷有效性。eidasQualified()僅檢查 PDF 層級的結構;合格性取決於 TSP 與憑證。- SEC 17a-4 家族提供可選的嚴格程度(Full / Compatible / Structural / PreSign);請挑選符合你工作流程階段的那一個。
每個原則都會在行程內針對所提供的 PDF bytes 執行;成本會隨文件大小與規則數量而增加。Compliance 會在報告中記錄執行時間。
安全性備註
標題為「安全性備註」的區段原則會在行程內剖析 PDF bytes,且絕不會進行外部呼叫。請將來自不可信來源的 PDF bytes 視為具敵意;純唯讀架構讓原則無法更動輸入。
資料駐留與 PII 緩解措施
標題為「資料駐留與 PII 緩解措施」的區段驗證會在行程內於本機進行,沒有任何網路 I/O。已簽署文件與稽核軌跡中繼資料可能包含個人資料;請對報告與 findings 套用你自己的保留與最小化控制措施。
安全的遙測與日誌清理
標題為「安全的遙測與日誌清理」的區段Findings 包含規則 id、標準參考與訊息;有些訊息會回顯從 PDF 擷取出的簽署者名稱或原因字串。在將日誌轉送到共用接收端之前,請先清理或遮蔽那些欄位。
符合性
標題為「符合性」的區段| 行為 | 參考 | 狀態 |
|---|---|---|
| 符合性依該標準判定,而非依產生者 | ISO 19005-4:2020 §5.2 | 已反映在設計中(唯讀原則) |
| 用於 LTV 的 DSS 結構性存在 | ISO 32000-2:2020 §12.8.4.3 | 已檢查(僅結構) |
| PAdES baseline 結構 | ETSI EN 319 142-1 §5.4.3 | 已檢查(PDF 層級) |
| EN 16931 profile 語意模型 | Factur-X 1.08 (EN 16931) | 輔助參考(仍由發行者負責) |
| FDA 21 CFR Part 11 / SEC 17a-4 | 21 CFR Part 11 / 17 CFR 240.17a-4 | 已檢查結構性屬性;未經法律驗證 |
這份表格記錄每個原則所檢查的內容,以及該原則背後所依據的規格。它不是關於認證或符合法規充分性的聲明。FDA 與 SEC 兩列僅代表結構性屬性檢查;那些來源標準不在驗證語料庫中,因此不帶有任何 Verified 符合性宣告。
FIPS 模式行為
標題為「FIPS 模式行為」的區段這些原則不會驗證 PDF 數位簽章、憑證鏈、OCSP/CRL 回應或法律合格性;它們計算的任何 SHA-256 稽核軌跡摘要都是防竄改佐證檢查,而非簽章驗證。密碼學上的簽章有效性、金鑰保管,以及聯邦資訊處理標準(Federal Information Processing Standards,FIPS)模式行為,由 Signature 與 Security 模組處理。
威脅模型
標題為「威脅模型」的區段主要輸入是不可信的 PDF bytes。緩解措施包括:純唯讀原則(不變更、不自動修正)、沒有網路 I/O,以及每份報告都附帶明確的法律免責聲明,讓通過結果不會被誤認為認證。
行為合約
標題為「行為合約」的區段- 每個原則的
validate()都是純函式:輸入 PDF bytes,輸出 findings;它絕不會變更輸入,這個架構維持一條嚴格的唯讀界線,與任何自動修正行為區隔開來。 - 報告會依嚴重性將 findings 分組;沒有任何 error 時
passes()為 true,而 warning 絕不會讓報告失敗。 - 每份報告都帶有一段內建的法律免責聲明,說明該結果僅是供參考的技術性結構檢查;你必須在面向使用者的輸出中顯示該免責聲明。
- LTV health check 僅確認 DSS 的結構性存在;它不會以密碼學方式驗證嵌入的 OCSP/CRL 資料。
- eIDAS 合格原則僅在 PDF 層級驗證 PAdES 結構;實際的合格性取決於信任服務提供者與憑證,而這些都在本模組的範圍之外。
發佈界線
標題為「發佈界線」的區段此頁面僅記載外部可觀察的行為,以及受支援的公開 API 介面。內部命名空間路徑、輔助類別、機制表格、runbook 檔名與工單前綴皆不在範圍內。
Core 後援
標題為「Core 後援」的區段NextPDF Core Compliance 提供位元組串流驗證器與文法交叉檢查;零 finding 的結果是檢查結果,而非認證。附帶統一報告格式、預先建置的封存、簽章、LTV 與受監管產業原則,在 Core 層級沒有對應功能。
Pro 後援
標題為「Pro 後援」的區段NextPDF Pro Compliance 會在行程內於電子發票層級驗證 EN 16931 / Factur-X / ZUGFeRD。它不提供預先建置的 PDF/A-4、PAdES、LTV、FDA Part 11 或 SEC 17a-4 結構性原則;那些僅隨 nextpdf/enterprise 套件提供。Enterprise Compliance 的外部 sidecar 介面是另一個獨立模組。
Enterprise 界線備註
標題為「Enterprise 界線備註」的區段進入點、原則工廠與報告皆以行為層級描述。各原則的規則內部細節,以及任何內部分類細節,皆不在公開介面範圍內。密碼學上的簽章有效性在此是刻意排除在範圍外;它由 簽章驗證 的驗證端以及 Security 模組處理。
部署界線
標題為「部署界線」的區段驗證會在行程內於本機執行,沒有任何網路 I/O;原則無法更動輸入。運維人員會將來自不可信來源的 PDF bytes 視為具敵意,在面向使用者的輸出中顯示報告免責聲明,並負責報告與 findings 的保留與最小化控制;這些報告與 findings 可能包含來自已簽署文件與稽核軌跡中繼資料的個人資料。
法律合規界線
標題為「法律合規界線」的區段支援某項標準不等於符合該標準,符合也不等於認證;NextPDF 並未持有任何認證,也不會授予任何認證。FDA 21 CFR Part 11 與 SEC 17a-4 原則僅檢查結構性屬性,並不會建立法律合規。本文件不是法律意見;如需判斷法律上的充分性,請洽詢你的合規團隊。
另請參閱
標題為「另請參閱」的區段- Compliance——外部驗證器 sidecar(獨立介面)。
- Evidence——封緘且附時間戳記的報告封包。
- Core Compliance——行程內的位元組串流驗證器。
- 簽章驗證——密碼學上的 CMS / 時間戳記 / 封存鏈驗證端(不同於本結構性介面)。
- 規格:PDF/A-4——所參考的標準。
- Validation——深入參考——各原則的規則內部細節與完整類別參考。