Enterprise エディション
セキュリティ — HSM、PKCS#11、FIPS モード
NextPDF Enterprise は、Core と Pro のセキュリティサーフェスの上に、PKCS#11 ハードウェアトークン署名パスと FIPS-mode 暗号ポリシーを追加します。このページは、挙動、境界、および明示的な FIPS 認証と鍵保管の姿勢を記載します。
提供状況とライセンス
「提供状況とライセンス」という見出しのセクションこの機能は NextPDF Enterprise(nextpdf/enterprise)に同梱されており、Enterprise ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントを持たないデプロイでは、この機能のクラスはロードされません。エディションを比較してライセンスを取得。
概念の概要
「概念の概要」という見出しのセクションEnterprise セキュリティサーフェスには 3 つのパートがあります。ハードウェアトークン署名者、FIPS-mode 暗号ポリシー、電源投入時セルフテストガードです。
ハードウェアトークン署名者は、PKCS#11 トークン(スマートカード、USB デバイス、またはネットワーク接続された HSM)に適応します。署名者は、ラベルによってトークン上の証明書と秘密鍵を見つけます。次に、トークンに署名の計算を依頼します。秘密鍵はトークンの境界を離れません。操作はトークン内部で実行されます。トークンの署名操作、セッション、ユーザーログインは、PKCS#11 v3.1 §5 に従います。HSM パスには ext-pkcs11 PHP 拡張が必要です。その拡張は標準 PHP の一部ではありません。別途インストールしてください。署名者を構築する前に、可用性チェックを使用してください。
FIPS-mode 暗号ポリシーは、暗号の選択を承認された集合に制限します。2 つのプリセットがあります。strict プリセットは、SHA-256、SHA-384、SHA-512 のハッシュ、それらのハッシュを使用する RSA および ECDSA の署名 OID、AES-256-CBC 暗号化、および最小鍵サイズ RSA 2048 と EC 256 を許可します。standard プリセットは同じですが、より古い相互運用性のために AES-128-CBC も許可します。実行時ガードがポリシーをラップします。ガードは、操作が実行される前に、各ハッシュ、署名 OID、暗号化アルゴリズム、鍵強度をチェックします。許可されていない選択は、型付きの違反を発生させ、操作を停止します。このパスはフェイルクローズです。ポリシーが自身を緩めることは決してなく、より弱いアルゴリズムに置き換えることも決してありません。最小の RSA 鍵長は NIST SP 800-131A Rev.2 §3 に従います。ECDSA の曲線とハッシュのペアリングは、FIPS 186-5 §6.1.1 に従います。
電源投入時セルフテストガードは、プロセス開始時に既知応答テスト (KAT) のバッテリーを 1 回実行します。バッテリーは、承認されたハッシュ、MAC、暗号化、署名、ランダムビット関数をカバーします。いずれかのテストが失敗すると、Enterprise FIPS ガードはエラー状態に入り、リセットされるまで暗号サービスを拒否します。結果はプロセスのライフタイムにわたってキャッシュされます。オンデマンドの再実行が利用できます。セルフテストのカテゴリと条件付きテストのトリガーは、ISO/IEC 19790:2025 §7.10 および §7.10.3 に従います。
なぜこの仕組みなのか
「なぜこの仕組みなのか」という見出しのセクション要となる決定は、秘密鍵をトークンの境界内部に留め、暗号ポリシーをフェイルクローズにすることです。鍵をエクスポートできる署名者、または暗黙的により弱いアルゴリズムにフォールバックする署名者は、HSM が提供するために存在する保証を無に帰します。そのため、署名者はトークンにその場で署名を計算するよう依頼し、FIPS-mode ガードは、操作が実行される前に、承認されたプリセットの範囲外にあるハッシュ、OID、鍵強度をすべて拒否します。電源投入時セルフテストは、同じ姿勢を起動時にも拡張します。検証されていないモジュールは、テストされていないプリミティブで署名するのではなく、サービスを拒否します。その結果は、推論可能な境界であり、鍵の保管は、このソフトウェアではなく、オペレーターとトークンが所有します。
設計背景: HSM バックエンド署名。
API サーフェス
「API サーフェス」という見出しのセクション| Public surface | Type | Purpose | Stability | Since |
|---|---|---|---|---|
| PKCS#11 トークン署名者 | class (Core HsmSignerInterface を実装) | PKCS#11 トークンで署名する。鍵はトークン上に留まる | stable | 1.0.0 |
| FIPS 暗号ポリシー | class (Core CryptoPolicyInterface を実装) | 許可アルゴリズムと鍵強度のプリセット | stable | 1.9.0 |
| FIPS-mode ガード | class | ハッシュ、署名 OID、暗号化アルゴリズム、鍵強度が許可されているかをアサートする | stable | 1.9.0 |
| FIPS ブートガード | class | 電源投入時セルフテストを実行してキャッシュする。モジュールが動作可能であることをアサートする | stable | 3.2.0 |
| OpenSSL CLI / engine 署名者 | class (HsmSignerInterface を実装) | エンジンバックエンドのトークンのために、OpenSSL エンジンまたは OpenSSL CLI を通じて署名する | stable | 1.0.0 |
トークン署名者のコンストラクターは、PKCS#11 ライブラリパス、スロット番号、トークン PIN、証明書ラベル、およびオプションの個別の鍵ラベルを受け取ります。PIN パラメーターは機密としてマークされており、ログ記録もシリアライズもされません。署名者は、署名者証明書と証明書チェーンも DER 形式で公開します。権威あるパラメーターと型のコントラクトは、nextpdf/enterprise パッケージの公開 API リファレンスです。このページではなく、そのリファレンスをコントラクトとして扱ってください。
コードサンプル — クイックスタート
「コードサンプル — クイックスタート」という見出しのセクションcomposer require nextpdf/corecomposer require nextpdf/enterprise:^3use NextPDF\Enterprise\Security\Fips\FipsCryptoPolicy;use NextPDF\Enterprise\Security\Fips\FipsModeGuard;
$guard = new FipsModeGuard(FipsCryptoPolicy::strict());
// Throws a typed FIPS violation if the algorithm is not approved.$guard->assertHashAllowed('sha256');$guard->assertKeyStrengthAllowed('rsa', 2048);コードサンプル — 本番
「コードサンプル — 本番」という見出しのセクションuse NextPDF\Enterprise\Security\Fips\FipsBootGuard;use NextPDF\Enterprise\Security\Fips\FipsSelfTest;
// At application bootstrap (one self-test cycle per worker process):$bootGuard = new FipsBootGuard(new FipsSelfTest());$bootGuard->assertOperational(); // throws on a known-answer-test failure$container->set(FipsBootGuard::class, $bootGuard);
// The PKCS#11 token signer is only available when ext-pkcs11 is loaded.// Check availability before you construct the signer. The PIN is a secret;// supply it from your secret manager, never from source or logs.完全なコンストラクター引数リスト、例外型、PKCS#11 トークン署名者の構築は、Enterprise セキュリティ詳細リファレンス に記載されています。
エッジケースと注意点
「エッジケースと注意点」という見出しのセクション- PKCS#11 トークン署名者のコンストラクターは、
ext-pkcs11がロードされていない場合、型付きの操作例外を発生させます。まず可用性を確認してください。 - トークン署名者は、プロセスごと、ライブラリパスごとに 1 つの PKCS#11 モジュールをキャッシュします。これは、トークンインターフェースの「モジュールごとに 1 回初期化する」ルールを満たします。
- ECDSA のトークンメカニズムは生の署名を返します。署名者は、PDF および OpenSSL との相互運用性のために、それを DER エンコード形式に変換します。
- FIPS ガードは、未知の鍵タイプをデフォルトで拒否します。認識されない鍵タイプが暗黙的に受け入れられることはありません。
- ポスト量子署名パスは実験的であり、オプトインで、デフォルトで無効です。標準の PAdES 長期アーカイブプロファイルは、ポスト量子スイートをまだ認識していません。本番の AdES 署名のためにこれを有効にしないでください。
パフォーマンス
「パフォーマンス」という見出しのセクションFIPS ガードのチェックは、定数時間のハッシュマップ参照です。電源投入時セルフテストは、プロセスごとに 1 回実行されます。そのコストは、署名呼び出しごとではなく、プロセスのライフタイムにわたって償却されます。PKCS#11 署名操作は、トークンへの 1 回のラウンドトリップを追加します。ネットワーク接続された HSM は、そのラウンドトリップのネットワークレイテンシを追加します。
セキュリティに関する注意
「セキュリティに関する注意」という見出しのセクション- 署名パスはフェイルクローズです。プリミティブの失敗やポリシーのギャップは、型付きの例外を発生させます。このパスがより弱いアルゴリズムに暗黙的にダウングレードすることは決してありません。
- トークン PIN パラメーターは機密としてマークされています。ログ記録もシリアライズもされません。
- PKCS#11 トークンの秘密鍵は、トークン上に留まります。署名操作はトークンの境界内部で実行されます。
- 電源投入時セルフテストは、既知応答テストの不一致時に Enterprise FIPS ガードをエラー状態に入れ、リセットされるまで暗号サービスを拒否します。
- AES-GCM の使用は、NIST SP 800-38D §5 に従い、鍵ごとに一意の初期化ベクトルを必要とします。
データレジデンシーと PII の緩和策
「データレジデンシーと PII の緩和策」という見出しのセクション署名と FIPS ポリシーのコードは、インプロセスで実行されます。FIPS ポリシーチェックや電源投入時セルフテストのために、ドキュメントコンテンツがホストを離れることはありません。PKCS#11 トークンは、無関係なドキュメントコンテンツではなく、署名するデータを受け取ります。ネットワーク接続された HSM は、そのデータを、お客様が構成するネットワークチャネル経由で受け取ります。鍵マテリアルは、トークンまたは HSM の境界内部に留まります。
安全なテレメトリとログのスクラビング
「安全なテレメトリとログのスクラビング」という見出しのセクショントークン PIN は機密のコンストラクターパラメーターであり、ログとシリアライゼーションから除外されます。PIN、トークンラベル、鍵マテリアルを、お客様自身のアプリケーションログに追加しないでください。お客様のログおよびトレースのポリシーにおいて、すべてのトークン認証情報をシークレットとして扱ってください。
脅威モデル
「脅威モデル」という見出しのセクションこれは暗号境界であるため、脅威モデルは明示的です。署名するデータはトークンに渡されます。トークンが鍵を保持します。トークンまたは HSM のエラーは、型付きの例外を発生させます。署名者は、署名されていない、または部分的に署名された結果を生成しません。鍵保護は、トークンまたは HSM、デプロイ、およびオペレーターに依存し、このソフトウェア単独には依存しません。デプロイ境界 を参照してください。
- 電源投入時および条件付きセルフテストモデルは、ISO/IEC 19790:2025 §7.10 および §7.10.3 に整合します。
- 最小の RSA 署名鍵長は、NIST SP 800-131A Rev.2 §3 に整合します。
- 承認された ECDSA の曲線とハッシュのペアリングは、FIPS 186-5 §6.1.1 に整合します。
- PKCS#11 トークンの署名操作とセッションログインは、PKCS#11 v3.1 §5 に整合します。
- 鍵保護の責任は、NIST SP 800-57 Part 1 Rev.5 §5.5.2 に整合します。
- AES-GCM の初期化ベクトルの一意性は、NIST SP 800-38D §5 に整合します。
すべての規範的なソースはパラフレーズされています。このページに規範的なテキストは複製されていません。このページは暗号署名に関わります。
FIPS モードの挙動
「FIPS モードの挙動」という見出しのセクションFIPS-mode ポリシーは、上記で説明した承認された集合に暗号の選択を制限します。FIPS 検証済みの OpenSSL プロバイダーに対して構成された場合、基盤となるプリミティブはその検証済みの境界で実行されます。NextPDF Enterprise 自体は、構造的なアセンブリ、ダイジェスト計算、ポリシーの強制を実行します。
NextPDF Enterprise は FIPS 検証済みの暗号モジュールではなく、FIPS 認証の主張を一切行いません。 NextPDF Enterprise は、FIPS 検証済みの暗号プロバイダー(たとえば FIPS 検証済みの OpenSSL プロバイダー)または FIPS 検証済みの HSM と構成された場合にのみ、FIPS 互換モードで動作します。FIPS-mode ポリシーはコンプライアンスを支援します。認証ではありません。
エディションの境界
「エディションの境界」という見出しのセクションNextPDF Core は、ソフトウェア署名者、RFC 3161 タイムスタンプの消費、RFC 5280 パス検証、OCSP および CRL の失効チェックを同梱しています。Core は PAdES の B-B および B-T レベルを生成します。NextPDF Pro は、マスキング、テキストレイヤーの PII 検出、複数当事者による順次署名、リモートおよびクラウド KMS 署名ストラテジー (AWS KMS、GCP Cloud KMS、Azure Key Vault) を追加します。NextPDF Pro は、PKCS#11 ハードウェアトークンパスを提供せず、FIPS-mode 暗号ポリシープロファイルも提供しません。PKCS#11 ハードウェアトークン署名者、FIPS-mode 暗号ポリシープロファイル、電源投入時セルフテストガード、PAdES B-LT および B-LTA プロデューサーは、nextpdf/enterprise パッケージにのみ同梱されています。Enterprise エンタイトルメントを持たないデプロイでは、Enterprise クラスはロードされません。
Pro フォールバック
「Pro フォールバック」という見出しのセクションPro のみのデプロイでは、サポートされるハードウェアバックエンドおよびクラウドバックエンドの署名パスは、Pro のクラウド KMS ストラテジーです。クラウド KMS または HSM バックエンドの KMS が鍵を保持し、Pro はドキュメントではなく署名付き属性のダイジェストをプロバイダーに送信します。Pro は KMS の 統合 を提供しますが、Enterprise の PKCS#11 トークンファクトリや FIPS-mode プロファイルは提供しません。Pro のみのデプロイで B-LT、B-LTA、PKCS#11 トークン、または FIPS-mode プロファイルを要求する構成は、欠落している Enterprise コンポーネントを名指しするメッセージとともにフェイルクローズします。Pro の署名サーフェスについては セキュリティ — NextPDF Pro を参照してください。
Core フォールバック
「Core フォールバック」という見出しのセクションCore のみのデプロイでは、ソフトウェア署名者が、ローカル鍵または Core の署名ストラテジーコントラクトを通じて提供される鍵を用いて、PAdES B-B と B-T を生成します。Core にはハードウェアトークンパスも FIPS-mode プロファイルもありません。セキュリティ — NextPDF Core を参照してください。
Enterprise の境界に関する注記
「Enterprise の境界に関する注記」という見出しのセクションPKCS#11 トークン統合、そのメカニズムマッピング、そのセッション処理は、挙動レベルでのみ記述されています。内部のメカニズムマッピングテーブル、内部のセッションリカバリーロジック、ポスト量子移行マテリアルは、パブリックサーフェスの対象外であり、ここでは複製していません。
デプロイメントの境界
「デプロイメントの境界」という見出しのセクションNextPDF Enterprise は、PKCS#11 トークン、HSM、または KMS と統合されます。それ自体が署名鍵を保管、生成、またはそのセキュリティを保証することはありません。鍵のセキュリティは、トークン、HSM、または KMS、デプロイ、およびオペレーターに依存し、NextPDF Enterprise 単独には依存しません。 オペレーターは、トークンのプロビジョニング、PIN の取り扱い、スロット構成、ネットワーク接続された HSM のネットワーク保護、およびトラスト構成について責任を負います。鍵保護の責任は、NIST SP 800-57 Part 1 Rev.5 §5.5.2 に従います。NextPDF Enterprise は、このドキュメントにおいて、トークンの PIN の取り扱い、スロット構成の内部、ベンダーの認証情報マテリアルを公開しません。
法令遵守の境界
「法令遵守の境界」という見出しのセクションこれは暗号署名とハードウェアセキュリティモジュール統合に関わります。FIPS-mode ポリシーはコンプライアンス支援機能です。法的意見でも認証でもありません。ご自身の規制上の義務については、ご自身のコンプライアンスおよび法務の助言者にご相談ください。
公開の境界
「公開の境界」という見出しのセクションこのページは、外部から観測可能な挙動とサポートされる公開 API サーフェスのみを記載します。内部の名前空間パス、ヘルパークラス、メカニズムテーブル、ランブックのファイル名、チケットプレフィックスは対象外です。
挙動コントラクト
「挙動コントラクト」という見出しのセクション- FIPS ガードは、各ハッシュ、署名 OID、暗号化アルゴリズム、鍵強度をアクティブなプリセットに照らしてアサートし、許可されていない選択に対して型付きの違反を発生させます。
- 電源投入時セルフテストは、プロセスごとに 1 回実行され、既知応答テストの失敗時には、リセットされるまで暗号サービスを拒否します。
- PKCS#11 トークン署名者には
ext-pkcs11が必要です。拡張が存在しない場合、型付きの操作例外を発生させます。 - 署名パスはフェイルクローズであり、より弱いアルゴリズムに置き換えることは決してありません。