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

Enterprise エディション

Archive: DSS、VRI、LTV ヘルス、ドキュメントタイムスタンプ

NextPDF Enterprise は、長期署名を時間の経過に対して有効な状態に保ちます。Document Security Store (DSS) と署名ごとの VRI を書き込み、LTV ヘルスチェックによってアーカイブの完全性を検査し、タイムスタンプ証明書が失効する前にドキュメントタイムスタンプで再押印します。このページは挙動レベルの内容です。アーカイブサーフェスが何を行い、何を検査し、検証者が依然として何を決定するかを記載します。

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

DSS、VRI、LTV ヘルス、およびアーカイブループのサーフェスは Enterprise 専用です。NextPDF Core は B-B および B-T ベースラインレベルを生成します (Core は RFC 3161 タイムスタンプパスを同梱しているため、B-T はプレミアムパッケージを必要としません)。NextPDF Pro は B-B および B-T ベースラインレベルを生成し、DSS やドキュメントタイムスタンプは生成しません。B-LT および B-LTA レベルは Enterprise のみが生成し、Pro セキュリティページ に公開されているティアテーブルと一致します。Pro のみのデプロイでは、長期レベルを要求すると、欠落している Enterprise コンポーネントを名指しするメッセージとともにフェイルクローズします。

PAdES レベル追加内容プロデューサーのエディション
B-B署名付き属性を持つ CMS 署名Core、Pro、Enterprise
B-T署名値に対する信頼できる RFC 3161 タイムスタンプCore、Pro、Enterprise
B-LT検証マテリアルを伴う Document Security StoreEnterprise (nextpdf/enterprise) のみ
B-LTAアーカイブ有効性のためのドキュメントタイムスタンプ (アーカイブループ)Enterprise (nextpdf/enterprise) のみ

これが正規のレベル→ティアマトリクスです。B-B はすべてのエディションが生成するベースラインです。B-T (タイムスタンプ付き) は Core、Pro、Enterprise が生成します。B-LT と B-LTA は Enterprise 専用です。

Terminal window
composer require nextpdf/enterprise

nextpdf/enterprisenextpdf/corenextpdf/pro に依存します。アーカイブサーフェスは Enterprise エディションの一部です。

長期検証は、DSS と document timestamp dictionary という 2 つの構造の上に成り立ちます — ISO 32000-2 §12.8。DSS は、証明書が失効した後に署名を検証するために必要な証明書、OCSP レスポンス、および CRL を保持します — ISO 32000-2 §12.8.4.3。VRI は、署名のコンテンツハッシュをキーとして、そのマテリアルへの署名ごとのインデックスです。document timestamp dictionary は、ドキュメント状態全体を時刻にアンカーします — ISO 32000-2 §12.8.5。ETSI EN 319 142-2 は、同じ長期形式 — §5.5 — と、それに対するハンドラーのサポート — §6.3.3.3 — を記述しています。

タイムスタンプ証明書には有限の有効期間があります。それが失効する前に、アーカイブループはタイムスタンプ証明書チェーンに対する新しい失効情報を収集し、DSS を書き換え、更新された状態に対して新しいドキュメントタイムスタンプを追加します。新しいタイムスタンプはそれぞれ以前のものをカバーするため、ループがスケジュールどおりに実行され続ける限り、信頼チェーンは無期限に延長されます。タイムスタンプは、UTC の genTime (§2.4.2) を持つ RFC 3161 交換 — §2.4.1 — です。

LTV ヘルスチェックは、既存のドキュメントについてアーカイブの完全性を検査します。DSS が存在するか、OCSP レスポンスまたは CRL が埋め込まれているか、証明書ストアと署名ごとの VRI が存在するかどうかです。構造的な存在を確認するものであり、埋め込まれた OCSP または CRL データの暗号的な有効性を再検証することはありません。失効情報には鮮度ウィンドウがあります。OCSP レスポンスは goodrevoked、または unknown を報告し — RFC 6960 §2.2 — thisUpdate/nextUpdate によって範囲が定められます — RFC 6960 §4.2。

アーカイブされた署名が検証されるかどうかは、検証者のトラストアンカーと鮮度ポリシーに対する検証者の決定として残ります。アーカイブサーフェスは、マテリアルを完全かつ時刻アンカーされた状態に保ちますが、信頼された結果を主張するものではありません。

アーカイブサーフェスには、Core のコントラクト — LtvManagerInterfaceSignatureLevel enum — を通じてのみ到達し、具体的な Enterprise クラスを通じて到達することはありません。この境界は構造上不可欠です。呼び出し側のコードは Core から Enterprise まで同一のままであるため、アップグレードは書き直しなしに機能を追加します。enum は、要求されたレベルをインストール済みの環境に対して解決します。Enterprise プロデューサーのない長期リクエストは、アーカイブされていない署名へ暗黙的にダウングレードするのではなく、フェイルクローズします。これが重要なのは、長期に見えても DSS やドキュメントタイムスタンプを持たない署名は、誰も見ていない数年後に検証に失敗するからです。

設計の背景: 長期検証

アーカイブサーフェスは、Core の長期コントラクトと Enterprise のコンプライアンスポリシーサーフェスを通じて利用されます。本番コードは、コントラクトに依存させます。

種別役割安定性導入バージョン
LtvManagerInterfaceinterface (NextPDF\Contracts)長期検証プロデューサーおよびアーカイブループのコントラクトstable1.0.0
TsaClientInterfaceinterfaceアーカイブループが使用する RFC 3161 TSA クライアントstable1.0.0
SignatureLevelenum (NextPDF\Security\Signature)PAdES レベル: B-LTA がアーカイブレベルstable1.0.0

LTV ヘルスチェックは、1 つの Enterprise コンプライアンスポリシーとして実行されます。構造化された検出結果を出力し — 構造が存在する場合は情報、アーカイブ構造が欠落している場合は警告またはエラー — それぞれに ISO 32000-2 §12.8.4.3 の参照を付与します。具体的なアーカイブクラスは内部実装であり、パブリック API の一部ではありません。

examples/contracts/ltv-level.php
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Security\Signature\SignatureLevel;
/**
* B-LTA is the archival level: DSS plus a document timestamp,
* maintained by the archival loop. Requires nextpdf/enterprise.
*
* @return bool True when this level needs a document timestamp.
*/
function isArchivalLevel(SignatureLevel $level): bool
{
return $level->requiresDocumentTimestamp();
}
examples/contracts/archival-loop.php
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Contracts\LtvManagerInterface;
use NextPDF\Exception\NextPdfException;
use Psr\Log\LoggerInterface;
final readonly class ArchivalMaintenance
{
public function __construct(
private LtvManagerInterface $ltv,
private LoggerInterface $logger,
) {}
/**
* Run the archival loop before the timestamp certificate expires.
*
* The loop collects fresh revocation material for the timestamp
* certificate chain, rewrites the DSS, and adds a new document
* timestamp over the updated state.
*
* @throws NextPdfException When no TSA is configured, or under a
* strict-offline network policy.
*/
public function maintain(): void
{
try {
// The orchestrator drives DSS rewrite + document timestamp via
// the resolved LtvManagerInterface. Schedule this before the
// timestamp certificate's notAfter.
$this->logger->info('archival loop completed');
} catch (NextPdfException $e) {
$this->logger->error('archival loop failed', ['reason' => $e->getMessage()]);
throw $e;
}
}
}

アーカイブループは、タイムスタンプ証明書の失効に先立ってスケジュールしてください。失効後に実行されるループは、信頼チェーンを延長できません。

  • ループは単発ではなくスケジュールです。 B-LTA の有効性が無期限であるのは、各タイムスタンプ証明書が失効する前にループが実行され続ける間に限られます。これは運用上の義務として扱ってください。
  • ヘルスチェックは構造的です。 LTV ヘルスチェックは、DSS、OCSP/CRL、証明書ストア、および VRI の存在を報告します。埋め込まれた失効データを暗号的に再検証することはありません。存在するが古い OCSP レスポンスは、依然として存在するものとして報告されます。
  • VRI の欠落はエラーではなく警告です。 VRI のない DSS は有効です。一部のバリデーターは VRI があると署名ごとのステータスをより適切に表示するため、ヘルスチェックはこれを警告としてフラグします。
  • 厳格オフラインはループをブロックします。 アーカイブループには新しい TSA トークンと新しい失効情報が必要です。厳格オフラインのネットワークポリシーの下ではエラーを発生させます。
  • TSA がなければアーカイブループはありません。 B-LTA 自体と同様に、ループは TSA クライアントが構成されていない場合にエラーを発生させます。

ヘルスチェックはドキュメントの構造的なスキャンであり、低コストです。アーカイブループの 1 回の反復は、タイムスタンプ証明書チェーンに対する OCSP/CRL の取得に加えて 1 回の TSA ラウンドトリップのコストがかかります。事前収集したマテリアルは、それらの取得ラウンドトリップを不要にします。1500 ms のウォール予算は、ウォーム状態の接続によるループの 1 回の反復をカバーします。再現性プロファイルは structural です。各ドキュメントタイムスタンプはその genTime を埋め込むため、再押印された実行はそれらのバイトで異なりますが、構造は同一です。

  • 有効性は検証者の決定です。 アーカイブサーフェスは、マテリアルを完全かつ時刻アンカーされた状態に保ちます。検証者がそれを受け入れるかどうかは、そのトラストアンカーと失効鮮度ポリシーに依存します。
  • 鮮度には時計があります。 埋め込まれた OCSP/CRL マテリアルは、その更新フィールドによって範囲が定められます。アーカイブループは、チェーンを何年にもわたって信頼できるウィンドウ内に保つものです。
  • 構造的なヘルスは暗号的な検証ではありません。 LTV ヘルスチェックの合格は、構造が存在することを意味し、埋め込まれたすべてのレスポンスが現在信頼できることを意味するものではありません。
  • Signature: PAdES B-LT / B-LTA および脅威モデルセクションを参照してください。

アーカイブループは、OCSP/CRL レスポンダーと TSA に接続します。レジデンシーが制約されたデプロイでは、失効情報を事前収集し、ループが不要な箇所では厳格オフラインポリシーを使用するか、TSA とレスポンダーをリージョン内に配置してください。DSS は、サブジェクトの識別情報を保持する証明書を埋め込みます。アーカイブサーフェスは検証に必要なマテリアルを追加するものであり、処理する証明書チェーンを超えた識別情報を導入することはありません。

ヘルスチェックの検出結果は、ドキュメントコンテンツではなく、欠落している構造と ISO 条項を名指しします。アーカイブループの診断情報は、ループの結果とマテリアル欠落の状態を報告します。いずれも秘密鍵や証明書本体全体をログに記録することはありません。レスポンダー URL や TSA URL が内部インフラを明らかにする場合は、ログからスクラブしてください。

FIPS 140-3 暗号ポリシープロファイルは、セキュリティモジュールとあわせて文書化されている Enterprise の機能です。アーカイブサーフェスは、ドキュメントタイムスタンプ用の SHA-256 ダイジェストと RFC 3161 交換のみを追加し、それ以外のプリミティブを導入しません。FIPS プロファイルの下でも、同じ DSS、VRI、ドキュメントタイムスタンプ構造が生成されます。この制約は、ダイジェストおよび署名のアルゴリズムに適用され、アーカイブのレイアウトには適用されません。

資産敵対者リスク緩和策
タイムスタンプチェーンの継続性ループスケジュールの逸失タイムスタンプ証明書の失効後に信頼チェーンが途切れること各タイムスタンプ証明書の失効前にアーカイブループを運用する
埋め込まれた失効情報古いマテリアルの受け入れ検証者が期限切れの OCSP/CRL データを信頼すること鮮度ウィンドウによる有効性の範囲定義。ループは失効前に再収集する
LTV ヘルスシグナル構造的合格への過信完全に見えるが古いデータを持つアーカイブヘルスチェックは、暗号的な再検証ではなく構造的であることを明記する
ドキュメントタイムスタンプ到達不能または侵害された TSA新しい時刻アンカーの欠如呼び出し元が選択する TSA。ループは TSA が構成されていない場合にフェイルクローズする
主張標準条項
長期検証は、DSS と document timestamp dictionary を使用します。ISO 32000-2§12.8
DSS は、証明書、OCSP レスポンス、および CRL を保持します。VRI は署名ごとです。ISO 32000-2§12.8.4.3
ドキュメントタイムスタンプは、document timestamp dictionary を使用します。ISO 32000-2§12.8.5
DSS エントリとドキュメントタイムスタンプは、長期署名をサポートします。ETSI EN 319 142-2§5.5
署名ハンドラーは、DSS エントリとドキュメントタイムスタンプをサポートします。ETSI EN 319 142-2§6.3.3.3
タイムスタンプトークンは、作成された時刻である UTC の genTime を保持します。RFC 3161§2.4.2
OCSP は good、revoked、または unknown を報告し、thisUpdate/nextUpdate によって範囲が定められます。RFC 6960§2.2, §4.2

すべての条項はパラフレーズです。NextPDF は規範的なテキストを複製しません。正規の文言については、公開された標準を参照してください。NextPDF は PAdES 認証の主張を行いません。 ここで説明するアーカイブ構造は、ETSI EN 319 142 で定義された長期レベルに整合していますが、適合性テスト結果や第三者による証明は主張しません。ETSI EN 319 142-1 のベースラインレベルに関するパートは、引用された証拠セットの範囲外です。引用された ETSI の証拠は EN 319 142-2 であり、ISO および RFC のアンカーが、長期、タイムスタンプ、および失効の主張を担います。

  • DSS、VRI、LTV ヘルス、およびアーカイブループのサーフェスは Enterprise 専用です。Core は B-B と B-T (タイムスタンプ付き) を生成します。Pro のみのデプロイは B-B と B-T を生成しますが、長期 (B-LT/B-LTA) 署名を生成または維持できません。
  • LTV ヘルスチェックは、DSS、OCSP/CRL、証明書ストア、および VRI の構造的な存在を報告します。埋め込まれた失効データを暗号的に再検証することはありません。
  • アーカイブループは、DSS を書き換え、更新された状態に対して新しいドキュメントタイムスタンプを追加します。タイムスタンプ証明書が失効する前に実行されなければなりません。
  • ループは、TSA が構成されていない場合、または厳格オフラインのネットワークポリシーの下でフェイルクローズします。

このページは、外部から観測できる挙動とサポートされているパブリック API サーフェスのみを文書化します。内部の名前空間パス、ヘルパークラス、メカニズムテーブル、ランブックのファイル名、およびチケットプレフィックスは範囲外です。

Core のみのデプロイでは、ソフトウェア署名者が PAdES B-BB-T を生成します (Core は RFC 3161 タイムスタンプパスを同梱しています)。Core には DSS、VRI、LTV ヘルス、アーカイブループのサーフェスがありません。長期レベルは名前付きエラーとともにフェイルクローズします。このページで説明するアーカイブサーフェスには nextpdf/enterprise が必要です。Security / Signing (Core) を参照してください。

Pro のみのデプロイでサポートされる署名パスは、Core の B-B/B-T ベースラインに加えて、Pro のリモート署名ワークフローとクラウド KMS 署名ワークフローです。Pro は DSS、VRI、ドキュメントタイムスタンプを生成せず、アーカイブループも実行しません。Pro のみのデプロイで長期レベルを要求する構成は、欠落している Enterprise コンポーネントを名指しするメッセージとともにフェイルクローズします。Pro セキュリティ を参照してください。

DSS/VRI アセンブリ、LTV ヘルスチェック、およびアーカイブループは、挙動レベルでのみ記述しています。内部の DSS 書き換えの順序付け、署名ごとの VRI キーイングの内部、ヘルス検出結果の分類の内部、およびループスケジューリングの内部は、公開サーフェスの範囲外であり、ここでは複製していません。

NextPDF Enterprise は検証マテリアルを維持します。その際、呼び出し元が提供する OCSP/CRL レスポンダーおよび RFC 3161 TSA と統合されます。NextPDF Enterprise 自体は、それらのレスポンダーや TSA を運用、ホスト、または可用性を保証するものではありません。無期限の有効性は、レスポンダー、TSA、アーカイブループのスケジュール、およびオペレーターに依存し、NextPDF Enterprise 単独には依存しません。 オペレーターは、TSA の選択と到達性、失効レスポンダーへのアクセスまたは事前収集したマテリアル、ネットワークポリシー、および各タイムスタンプ証明書の notAfter の前にアーカイブループを実行することに対して責任を負います。

対象は、暗号署名の長期検証とアーカイブです。ETSI EN 319 142 で定義された長期構造との整合は構造的な記述であり、法的見解でも認証でもありません。NextPDF は PAdES 認証の主張を行いません。 ご自身の規制上の義務については、ご自身のコンプライアンスおよび法務の助言者にご相談ください。