驗證
NextPDF Enterprise 會針對具名的原則,在行程內執行唯讀的結構性檢查——PDF/A-4、PAdES baseline、LTV health、ZUGFeRD、FDA 21 CFR Part 11、SEC 17a-4——並回傳結構化報告。這份報告是技術性的結構檢查結果,不是法律建議、合規背書或認證。
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)的結構性存在——它不會以密碼學方式驗證嵌入的 OCSP/CRL 資料。eidasQualified() 僅在 PDF 層級驗證 PAdES 結構;實際的 eIDAS 合格性取決於信任服務提供者與合格憑證,這些都不在本模組範圍內。
這裡的「驗證」是什麼意思
標題為「這裡的「驗證」是什麼意思」的區段本模組會 檢查結構性屬性並回報 findings。它不會認證文件,也不保證具備符合法規所需的充分性。
- 符合性是 最終檔案加上驗證器 的屬性,不是本函式庫的屬性。ISO 19005-4:2020 §5.2 是依該標準的規範性要求、由檢查工具判定符合性,而不是由產生檔案的軟體判定。
- 通過的報告,是根據每個原則已實作規則所得到的檢查結果。它不是認證。
- FDA 21 CFR Part 11 與 SEC 17a-4 原則會檢查這些法規所隱含的 結構性屬性(簽章存在、簽署意圖、稽核軌跡標記、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;本模組則在行程內執行。
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 模式行為」的區段這些原則不會執行密碼學上的簽署或驗證。密碼學上的簽章有效性、金鑰保管,以及 FIPS 模式行為由 Signature 與 Security 模組處理。
威脅模型
標題為「威脅模型」的區段主要輸入是不可信的 PDF bytes。緩解措施包括:純唯讀原則(不變更、不自動修正)、沒有網路 I/O,以及每份報告都附帶明確的法律免責聲明,讓通過結果不會被誤認為認證。
商業情境
標題為「商業情境」的區段NextPDF Enterprise 新增預先建置的封存、簽章、LTV 與受監管產業原則,並提供統一報告。比較各版本。
版本限制
標題為「版本限制」的區段此功能在 NextPDF Enterprise 中提供。取得授權。
授權功能旗標
標題為「授權功能旗標」的區段此介面由 enterprise 層級控管。請將 Enterprise 套件與 Core 套件一同安裝;原則工廠與合規進入點會在執行階段透過 Core 合約解析,因此升級版本時,呼叫端程式碼不需要更動。
行為合約
標題為「行為合約」的區段- 每個原則的
validate()都是純函式——輸入 PDF bytes,輸出 findings——且絕不會變更輸入;這個架構維持嚴格的唯讀界線,與任何自動修正行為區隔開來。 - 報告會依嚴重性將 findings 分組;當沒有任何 error 時
passes()為 true,而 warning 絕不會讓報告失敗。 - 每份報告都帶有一段內建的法律免責聲明,說明該結果僅供參考,是技術性的結構檢查;面向使用者的輸出必須顯示該免責聲明。
- LTV health check 僅確認 DSS 的結構性存在;它並不會以密碼學方式驗證嵌入的 OCSP/CRL 資料。
- eIDAS 合格原則僅在 PDF 層級驗證 PAdES 結構;實際的合格性取決於信任服務提供者與憑證,而這些都在本模組的範圍之外。
NDA 掃描狀態
標題為「NDA 掃描狀態」的區段這個公開頁面僅描述外部可觀察的行為。除了已列出的公開支援類別名稱外,它不含任何內部命名空間路徑、內部 trait 名稱、runbook 檔名或內部工單前綴。各原則的內部細節仍保留在受 NDA 規範的受限參考文件中。
Core 後援
標題為「Core 後援」的區段NextPDF Core Compliance 提供位元組串流驗證器與文法交叉檢查;零 finding 的結果是檢查結果,不是認證。Core 層級沒有對應功能可提供附帶統一報告的預先建置封存、簽章、LTV 與受監管產業原則。
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 可能包含來自已簽署文件與稽核軌跡中繼資料的個人資料。
法律合規界線
標題為「法律合規界線」的區段本頁被標記為 export_control_class: legal-review-required;在設定 publish 旗標之前,必須先取得法律核准。支援某項標準不等於符合該標準;符合也不等於認證——NextPDF 並未持有任何認證,也不會授予任何認證。FDA 21 CFR Part 11 與 SEC 17a-4 原則僅檢查結構性屬性,並不會建立法律合規。本文件不是法律意見;如需判斷法律上的充分性,請洽詢你的合規團隊。
另請參閱
標題為「另請參閱」的區段- Compliance——外部驗證器 sidecar(獨立介面)。
- Evidence——封緘且附時間戳記的報告封包。
- Core Compliance——行程內位元組串流驗證器。
- 簽章驗證——密碼學上的 CMS / 時間戳記 / 封存鏈驗證端(不同於本結構性介面)。
- 規格:PDF/A-4——所參考的標準。
- Validation——深入參考(受限)。