コンテンツにスキップ
getnextpdf.com

Enterprise エディション

検証

NextPDF Enterprise は、名前付きポリシー(PDF/A-4、PAdES baseline、Long-Term Validation(LTV)health、ZUGFeRD、米国食品医薬品局(FDA)21 CFR Part 11、米国証券取引委員会(SEC)17a-4)に対して、インプロセスの読み取り専用構造チェックを実行します。構造化された技術レポートを返します。このレポートは、法的助言、コンプライアンスの保証、認証のいずれでもありません。

この機能は NextPDF Enterprisenextpdf/enterprise)に同梱されており、Enterprise ティアのライセンスエンベロープで有効化されます。その権限を持たないデプロイメントでは、この機能のクラスはロードされません。エディションを比較してライセンスを取得

Terminal window
composer require nextpdf/enterprise:^3

Compliance がエントリーポイントです。Compliance::assess($pdfBytes, $policy) を呼び出す(またはインスタンスを注入して run() を呼び出す)ことで、1 つの CompliancePolicy を PDF バイト列に適用し、ComplianceReport を受け取ります。ポリシーが作業内容を定義し、レポートが構造化された結果を提供します。

Policies は、事前構築済みのポリシーファクトリを提供します。pdfA4()pdfA4e()pdfA4f()padesBaseline()eidasQualified()ltvHealth()zugferd($profile)fdaPart11()、および SEC 17a-4 ファミリー(sec17a4()sec17a4Compatible()sec17a4Structural()sec17a4PreSign())です。各ファクトリは CompliancePolicy を返し、その validate() メソッドは純粋関数です(PDF バイト列を入力し、検出結果を出力します)。アーキテクチャは厳格な読み取り専用の境界を強制します。ポリシーが PDF バイト列を変更することは決してないため、検証は自動修正の挙動とは明確に区別されます。

ComplianceReport は、検出結果を Severity(Error、Warning、Info)ごとにグループ化します。エラーがない場合、passes() は true を返します。警告によってレポートが失敗することはありません。レポートには組み込みの法的免責事項(getDisclaimer())が含まれており、結果は参照のみを目的とした技術的な構造チェックであること、および最終的な判断は有資格の法務またはコンプライアンスの専門家が行うことを明記しています。この免責事項をユーザー向けの出力に表示することが必須です。

署名については、2 つ目の境界が重要です。LtvHealthCheck は、ISO 32000-2:2020 §12.8.4.3 に従い、Document Security Store(DSS)の構造的な存在をチェックします。埋め込まれた Online Certificate Status Protocol(OCSP)や certificate revocation list(CRL)のデータを暗号的に検証することはありません。eidasQualified() は、PAdES の構造を PDF レベルでのみ検証します。実際の eIDAS 適格性は、trust service provider(TSP)と適格証明書に依存しており、これらはこのモジュールの対象外です。

このモジュールは 構造属性をチェックし、検出結果を報告します。ドキュメントを認証したり、ドキュメントが規制を満たすことを保証したりするものではありません。

  • 適合性は 最終ファイルと検証ツール の組み合わせに属する属性であり、このライブラリに属する属性ではありません。ISO 19005-4:2020 §5.2 は、規格の規範的要件に対する適合性を、生成ソフトウェアではなくチェックツールによって判定します。
  • 合格レポートは、各ポリシーが実装するルールに対してチェックされた結果です。これは認証ではありません。
  • FDA 21 CFR Part 11 および SEC 17a-4 ポリシーは、これらの規制が示唆する 構造属性(署名の存在、署名意図、監査証跡マーカー、write once, read many(WORM)制約)をチェックします。これらの規制への法的なコンプライアンスを確立するものではありません。法的な十分性は、お客様のコンプライアンスチームが判断します。

ある規格をサポートしていることは、その規格への適合を意味せず、適合は認証でもありません。NextPDF はいかなる認証も保有しておらず、いかなる認証も付与しません。

  • NextPDF Core Compliance はバイトストリームバリデーターと文法のクロスチェックを提供します。検出結果がゼロという結果はチェックされた結果であり、認証ではありません。
  • NextPDF Pro ComplianceEInvoiceValidator は、e-invoice レイヤーで EN 16931 / Factur-X / ZUGFeRD をインプロセスで検証します。
  • NextPDF Enterprise Validation(このページ) は、アーカイブ、署名、LTV、および規制業界の構造チェック(FDA Part 11、SEC 17a-4)向けの事前構築済みポリシーを、統一されたレポート形式で追加します。Enterprise Compliance モジュールは、外部サイドカーに委譲する別個のサーフェスです。このモジュールはインプロセスで実行されます。

検証は、修正してレポートするパイプラインではなく、純粋な読み取り専用ポリシーの集合として構築されています。各ポリシーの CompliancePolicy::validate() は PDF バイト列を受け取り、検出結果を返します。ドキュメントを編集することは決してありません。したがって、合格レポートが、ツールがひそかに入力を「手助け」して合格させた結果であることは決してありません。それは、各ポリシーが実装するルールに対してファイルがチェックされたことのみを意味します。この同じ境界があるからこそ、すべてのレポートに組み込みの免責事項が付与され、適合性が生成者の自己主張ではなく最終ファイルと外部検証ツールの組み合わせに属する属性であり続けます。認証と法的な十分性は、監査人またはコンプライアンスチームの判断に委ねられるため、このモジュールは構造を報告し、そこで止まります。

設計の背景: 監査人に渡せるコンプライアンス

クラス責務
Complianceエントリーポイント。1 つのポリシーを適用してレポートを返す。
Policies事前構築済み CompliancePolicy インスタンスのファクトリ。
CompliancePolicyコントラクト。検出結果を返す純粋な validate()
ComplianceReport深刻度ごとにグループ化された検出結果。法的免責事項を保持。
ComplianceFinding1 件の検出結果。ルール ID、メッセージ、規格参照、是正措置。
SeverityError / Warning / Info。
PdfAPolicyPDF/A-4 ファミリーの構造ポリシー。
PadesValidatorPAdES baseline / eIDAS の構造ポリシー。
LtvHealthCheckDSS の構造的存在チェック(ISO 32000-2 §12.8.4.3)。
ZugferdValidatorZUGFeRD / Factur-X の PDF レベルポリシー。
FdaPart11PolicyFDA 21 CFR Part 11 の構造属性ポリシー。
Sec17a4WormPolicySEC 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
  • 警告によってレポートが失敗することは決してありません。passes() を false にするのはエラーのみです。クリーンなレポートであっても、それは「実装済みのルールに対してチェック済み」を意味し、「コンプライアンスに準拠」を意味するものではありません。
  • LtvHealthCheck は DSS の構造を確認するものであり、失効の暗号的な有効性を確認するものではありません。
  • eidasQualified() は PDF レベルの構造のみをチェックします。適格性は TSP と証明書に依存します。
  • SEC 17a-4 ファミリーは、選択可能な厳格度(Full / Compatible / Structural / PreSign)を提供します。ワークフローの段階に合うものを選択してください。

各ポリシーは、指定された PDF バイト列に対してインプロセスで実行されます。処理コストはドキュメントのサイズとルール数に応じて増減します。Compliance は実行時間をレポートに記録します。

ポリシーは PDF バイト列をインプロセスで解析し、外部呼び出しは決して行いません。信頼できないソースからの PDF バイト列は、敵対的な入力として扱ってください。純粋な読み取り専用アーキテクチャにより、ポリシーが入力を変更することはできません。

検証はインプロセスかつローカルで実行され、ネットワーク I/O はありません。署名済みドキュメントや監査証跡メタデータには個人データが含まれる場合があります。レポートと検出結果に対して、お客様独自の保持および最小化の管理策を適用してください。

検出結果には、ルール 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 プロファイルのセマンティックモデルFactur-X 1.08 (EN 16931)補足的な参照(発行者が引き続き責任を負う)
FDA 21 CFR Part 11 / SEC 17a-421 CFR Part 11 / 17 CFR 240.17a-4構造属性のみチェック(法的検証なし)

この表は、各ポリシーが何をチェックするか、およびそのポリシーの背後にある仕様を記録したものです。認証または規制上の十分性に関する表明ではありません。FDA および SEC の行は、構造属性のみのチェックです。これらの基礎となる規格は検証コーパスに含まれておらず、Verified の適合性主張は付与されません。

これらのポリシーは、PDF の電子署名、証明書チェーン、OCSP/CRL レスポンス、法的適格性のいずれも検証しません。これらが計算する SHA-256 の監査証跡ダイジェストは、改ざん検知のためのチェックであり、署名検証ではありません。暗号的な署名の有効性、鍵の保管、および Federal Information Processing Standards(FIPS)モードの挙動は、Signature モジュールと Security モジュールが処理します。

主要な入力は、信頼できない PDF バイト列です。緩和策には、純粋な読み取り専用ポリシー(変更なし、自動修正なし)、ネットワーク I/O なし、そして合格結果が認証と取り違えられないよう、すべてのレポートに付与される明示的な法的免責事項が含まれます。

  • 各ポリシーの validate() は純粋関数です(PDF バイト列を入力し、検出結果を出力します)。入力を決して変更しません。アーキテクチャは、自動修正の挙動とは区別される厳格な読み取り専用の境界を保ちます。
  • レポートは検出結果を深刻度ごとにグループ化します。エラーがない場合、passes() は true を返し、警告によってレポートが失敗することは決してありません。
  • すべてのレポートには、結果が参照のみを目的とした技術的な構造チェックであることを明記する、組み込みの法的免責事項が含まれます。この免責事項をユーザー向けの出力に表示することが必須です。
  • LTV ヘルスチェックは DSS の構造的存在のみを確認します。埋め込まれた OCSP/CRL データを暗号的に検証することはありません。
  • eIDAS-qualified ポリシーは PAdES の構造を PDF レベルでのみ検証します。実際の適格性は、trust service provider と証明書に依存しており、これはこのモジュールの対象外です。

このページは、外部から観測可能な挙動とサポート対象の公開 API サーフェスのみを記述しています。内部名前空間パス、ヘルパークラス、メカニズムの表、ランブックのファイル名、およびチケットのプレフィックスは対象外です。

NextPDF Core Compliance はバイトストリームバリデーターと文法のクロスチェックを提供します。検出結果がゼロという結果はチェックされた結果であり、認証ではありません。統一されたレポート形式を備えた、アーカイブ、署名、LTV、および規制業界向けの事前構築済みポリシーには、Core ティアの同等品はありません。

NextPDF Pro Compliance は、e-invoice レイヤーで EN 16931 / Factur-X / ZUGFeRD をインプロセスで検証します。事前構築済みの PDF/A-4、PAdES、LTV、FDA Part 11、または SEC 17a-4 の構造ポリシーは提供しません。これらは nextpdf/enterprise パッケージにのみ同梱されています。Enterprise Compliance の外部サイドカーサーフェスは、別個のモジュールです。

エントリーポイント、ポリシーファクトリ、およびレポートは、挙動レベルで記述されています。ポリシーごとのルールの内部仕様、および内部分類の詳細は、公開サーフェスの対象外です。暗号的な署名の有効性は、ここでは意図的に対象外としています。これは 署名検証 の verify 側と Security モジュールが処理します。

検証はインプロセスかつローカルで実行され、ネットワーク I/O はありません。ポリシーが入力を変更することはできません。オペレーターは、信頼できないソースからの PDF バイト列を敵対的な入力として扱い、レポートの免責事項をユーザー向けの出力に表示し、署名済みドキュメントや監査証跡メタデータに由来する個人データを含む場合があるレポートと検出結果について、保持および最小化の管理策を担います。

ある規格をサポートしていることは、その規格への適合を意味せず、適合は認証でもありません。NextPDF はいかなる認証も保有しておらず、いかなる認証も付与しません。FDA 21 CFR Part 11 および SEC 17a-4 ポリシーは構造属性のみをチェックするものであり、法的なコンプライアンスを確立するものではありません。このドキュメントは法的意見ではありません。法的な十分性については、お客様のコンプライアンスチームにご相談ください。

  • Compliance — 外部バリデーターのサイドカー(別個のサーフェス)。
  • Evidence — 封緘され、タイムスタンプが付与されたレポートパッケージ。
  • Core Compliance — インプロセスのバイトストリームバリデーター。
  • 署名検証 — 暗号的な CMS / タイムスタンプ / アーカイブチェーンの verify 側(この構造サーフェスとは別個)。
  • 仕様: PDF/A-4 — 参照されている規格。
  • Validation — Deep Reference — ポリシーごとのルールの内部仕様と完全なクラスリファレンス。