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

Enterprise エディション

署名 — 詳細リファレンス

これは、NextPDF Enterprise の長期プロデューサーに関する詳細リファレンスです。B-LT または B-LTA 署名がどのように組み立てられるか、失効マテリアルがどのように収集および強制されるか、ドキュメントタイムスタンプがどのようにドキュメントを時刻アンカーするか、そして Pro の境界がどのように強制されるかを扱います。これは挙動レベルかつコントラクトレベルの記述です。具体的な Enterprise の実装型は、ここでは意図的に名指ししません。このページは、パブリックパッケージと Core のコントラクトサーフェスのみを参照します。

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

正規のレベル→ティアマトリクスは次のとおりです。B-B は Core、Pro、Enterprise が生成するベースラインです。B-T (タイムスタンプ付き) は Core、Pro、Enterprise が生成します。Core は RFC 3161 タイムスタンプパスを同梱しているため、B-T はプレミアムパッケージを必要としません。B-LT および B-LTA (DSS、VRI、ドキュメントタイムスタンプ) は Enterprise のみ が生成します。Pro のみのデプロイでは、B-LT または B-LTA を要求するとフェイルクローズします。Enterprise の長期プロデューサーが存在しない場合、Core の SignatureLevel::isAvailableInEnvironment は false を返し、Core のオーケストレーターはレベルを暗黙的に降格するのではなく、名前付きエラーを発生させます。

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

B-LT 署名とは、B-T 署名に Document Security Store を加えたものです。DSS は、署名証明書の有効期限が切れた後に検証者が必要とする、証明書、OCSP レスポンス、CRL の各ストリームを保持する、Catalog レベルのディクショナリです — ISO 32000-2 §12.8.4.3。長期検証は、DSS と document timestamp dictionary という 2 つのディクショナリタイプを使用します — ISO 32000-2 §12.8。CMS 署名自体は、/Contents に DER エンコードされて格納されます — ISO 32000-2 §12.8.1。

B-LTA 署名は、document timestamp dictionary を通じて書き込まれる、DSS を含むドキュメント状態全体に対するドキュメントタイムスタンプを追加します — ISO 32000-2 §12.8.5。ETSI EN 319 142-2 は、同じ長期構成 — §5.5 — とハンドラーサポート — §6.3.3.3 — を記述しています。

  1. チェーンを構築する。 署名者証明書に、呼び出し元が提供した中間証明書を加えたものが、署名者を先頭としてトラストアンカーへ向かうチェーンを形成します — RFC 5280 §6.1。
  2. 失効マテリアルを収集する。 ルート以外の各証明書について、プロデューサーはまず OCSP に問い合わせます。OCSP レスポンスは goodrevoked、または unknown を報告し — RFC 6960 §2.2 — thisUpdate/nextUpdate によって時刻範囲が定められます — RFC 6960 §4.2。OCSP が利用できない場合は、デルタ CRL サポートとともに CRL にフォールバックします。ベース CRL とオプションのデルタは、別個の DSS エントリとして追加されます。
  3. DSS を書き込む。 証明書、OCSP レスポンス、CRL は、個別の PDF ストリームオブジェクトとして書き込まれます。重複はコンテンツハッシュによって重複排除されます。DSS ディクショナリは、/Certs/OCSPs/CRLs を通じてそれらを参照します。
  4. 署名ごとの VRI(オプトイン)。 署名の /Contents 値の大文字ハッシュをキーとする VRI エントリは、その署名に対応する特定の証明書/OCSP/CRL を索引付けし、オプションの検証時刻エントリを伴います。VRI は デフォルトでオフ です。ETSI EN 319 142-1 V1.2.1 §5.4 は、新規ドキュメントに対して DSS 内の VRI を推奨していません。一部のバリデーターは VRI があると長期ステータスをより適切に表示するため、呼び出し元が有効化できます。
  5. ドキュメントタイムスタンプ(B-LTA)。 DSS が書き込まれた後、ByteRange と /Contents のプレースホルダーを伴う /SubFilter /ETSI.RFC3161 付きの /DocTimeStamp ディクショナリが追加されます。ファイル全体が組み立てられた後、プロデューサーは ByteRange に対する SHA-256 ダイジェストを計算し、RFC 3161 トークンを要求して — §2.4.1 — DER トークンを埋め込みます。genTime はトークンが作成された UTC 時刻です — §2.4.2。

プロデューサーは、次の優先順位で強制モードを解決します。明示的な構造化された強制モードが最優先されます。それがなければ、明示的な(非推奨の)ブール値が strict または permissive にマッピングされます。それもなければ、デフォルトは strict(フェイルクローズ) です。

strict 強制のもとでは、ルート以外のいずれかの証明書について OCSP レスポンスが欠落し、かつ CRL が欠落している場合、警告のみを発するのではなく、エラーを発生させます。フェイルクローズのデフォルトは、長期レベルを主張しながら DSS 内に失効マテリアルを持たない「B-LT」PDF が生成されることを防ぐために存在します。permissive(警告のみ)のワークフローは、明示的にオプトインしなければなりません。strict-offline のネットワークポリシーのもとでは、OCSP/CRL の取得は行われず、DSS に埋め込まれたマテリアルのみが使用され、マテリアル欠落の条件は同じ強制ルールによって処理されます。

B-LTA のドキュメントタイムスタンプは、それ自体が有効期限切れになる TSA 証明書によってアンカーされます。その有効期限の前に実行されるアーカイブループは、TSA 証明書チェーンのための新鮮な失効マテリアルを収集し、DSS を書き換え、オプションで TSA 証明書ハッシュをキーとする VRI エントリを追加し、更新された状態に対する新しいドキュメントタイムスタンプを追加します。各新規タイムスタンプは、それ以前のものをカバーします。ループをスケジュールどおりに実行することは運用上の義務です。TSA が構成されていない場合、または strict-offline ポリシーのもとでループが要求された場合、プロデューサーはエラーを発生させます。アーカイブサーフェス全体は、Archive 詳細リファレンスに記載されています。

種別役割安定性導入
SignerInterfaceinterface (NextPDF\Contracts)Core の署名コントラクトstable1.0.0
LtvManagerInterfaceinterface (NextPDF\Contracts)実行時に解決される長期プロデューサー + アーカイブループのコントラクトstable1.0.0
TsaClientInterfaceinterfaceプロデューサーが呼び出す RFC 3161 TSA クライアントstable1.0.0
SignatureLevelenum (NextPDF\Security\Signature)B-B、B-T、B-LT、B-LTA のセレクターと可用性プローブstable1.0.0

SignatureLevel::requiresDss → B-LT、B-LTA で true。requiresDocumentTimestamp → B-LTA でのみ true。requiresTimestamp → B-T、B-LT、B-LTA で true。本番コードはこれらのコントラクトに依存します。具体的な Enterprise の実装クラスは内部実装であり、パブリック API の一部ではありません。

主張標準条項
署名/タイムスタンプは /Contents に DER エンコードされて格納される。ISO 32000-2§12.8.1
LTV は DSS と document timestamp dictionary を使用する。ISO 32000-2§12.8
DSS は、document catalog の DSS キーの値であるディクショナリであり、Certs、OCSPs、CRLs を保持する。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
RFC 3161 リクエストは TSTInfo を返す。genTime は UTC の作成時刻。RFC 3161§2.4.1, §2.4.2
OCSP の good/revoked/unknown は thisUpdate/nextUpdate によって範囲が定められる。RFC 6960§2.2, §4.2
トラストアンカーへのパス検証の入力。RFC 5280§6.1

すべての条項はパラフレーズです。NextPDF は規範的なテキストを複製しません。NextPDF は PAdES 認証の主張を行いません。 プロデューサーは、ETSI EN 319 142 で定義された B-LT および B-LTA レベルに整合した構造を書き込みます。適合性テスト結果や第三者による証明は主張しません。ETSI EN 319 142-1 のベースラインレベルに関するパートは引用された証拠セットの範囲外であるため、引用された ETSI のアンカーは EN 319 142-2 であり、ISO/RFC のアンカーが、Core 署名リファレンスと同じ開示姿勢で、長期およびタイムスタンプの主張を担います。生成された署名が 検証される かどうかは、検証者がそのトラストアンカーおよび失効鮮度ポリシーに照らして下す決定です。プロデューサーはマテリアルを埋め込み、信頼された結果を主張するものではありません。

  • DSS は、ドキュメントタイムスタンプより前に書き込まれなければなりません。DSS より前に書き込まれたタイムスタンプは、検証マテリアルをカバーしません。
  • strict 強制(デフォルト)は、ルート以外の証明書について失効マテリアルが欠落している場合、エラーを発生させます。permissive はオプトインです。
  • TSA が構成されていない B-LTA は、B-LT を生成するのではなく、エラーを発生させます。
  • strict-offline ポリシー: OCSP/CRL/TSA のネットワークアクセスなし。B-LTA は strict-offline では到達できません。
  • ドキュメントタイムスタンプトークンには、限定された予約済みスペースがあります。それを超えるトークンは、切り詰めるのではなく、エラーを発生させます。

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

  • Core は B-B と B-T を生成します(B-T は署名値に RFC 3161 タイムスタンプを追加します)。Pro は同じ Core スタックを通じて B-B と B-T を生成します。B-LT と B-LTA は Enterprise のみが生成します。
  • プロデューサーは DSS(B-LT)と、DSS に対するドキュメントタイムスタンプ(B-LTA)を書き込みます。検証マテリアルを埋め込みますが、信頼された検証結果を主張するものではありません。
  • フェイルクローズの失効強制デフォルトは、呼び出し元が permissive ワークフローをオプトインしない限り、ルート以外の証明書について失効マテリアルが欠落している場合にエラーを発生させます。
  • B-LTA には構成された TSA が必要です。TSA がない場合、B-LTA ステップは B-LT に降格するのではなく、エラーを発生させます。

Core のみのデプロイでは、ソフトウェア署名者が SignerInterface を通じて PAdES B-BB-T を生成します。Core は RFC 3161 タイムスタンプパスを同梱しているため、B-T はプレミアムパッケージを必要としません。Core には DSS、VRI、ドキュメントタイムスタンプのプロデューサーがありません。B-LT または B-LTA を要求すると、SignatureLevel::isAvailableInEnvironment が false を返してフェイルクローズします。

Pro のみのデプロイでは、署名パスは B-B/B-T ベースラインに、リモート署名ワークフローとクラウド KMS 署名ワークフローを加えたものです。Pro は DSS もドキュメントタイムスタンプも生成しません。RemoteSigningConfig は Core の SignatureLevel enum を保持しますが、長期レベル(B-LT/B-LTA)は Pro が動作させない前方宣言された値です。長期プロデューサーは、実行時に Core コントラクトを通じて解決され、nextpdf/enterprise に同梱されています。

内部のメカニズムの詳細は、ソースリポジトリの内部ドキュメントに留まり、この manual の対象外です。

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

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

ETSI EN 319 142 で定義された B-LT および B-LTA 構造との整合は構造的な記述であり、法的意見でも認証でもありません。NextPDF は PAdES 認証の主張を行いません。 生成された署名が 検証される かどうかは、検証者がそのトラストアンカーおよび失効鮮度ポリシーに照らして下す決定です。