Enterprise エディション安定性: 実験的
ポスト量子 HSM 署名(PQS)プレビュー機能ステータス
プレビュー機能ステータス。オプトイン、デフォルトオフ、フェイルクローズ。 これは HSM 委譲型ポスト量子署名のプレビューです。一般提供ではなく、AdES 準拠でもなく、FIPS 検証済みでもなく、 認証や適合性の主張も行いません。プレビューはオプトインするまでオフです。オフのとき、署名呼び出しは型付き例外でフェイルクローズします。
NextPDF Enterprise は、PKCS#11 ハードウェアトークンを通じて ML-DSA(FIPS 204)と SLH-DSA(FIPS 205)の署名を駆動する、実験的なポスト量子署名(PQS)サーフェスを公開します。そのパスは Pkcs11Signer::signPqs()
で、明示的な署名者ごとのオプトイン($enablePostQuantum)と、それとは別にプロセスレベルの環境フラグ
(NEXTPDF_FEATURE_PREVIEW_PQS_HSM)の背後でゲートされています。どちらもデフォルトでオフです。
このページは正直な境界です。プレビューが何を行うか — トークンへ本物のポスト量子署名操作を委譲する — を述べ、同じ正直さで、それが何でないかを述べます。それは GA でも、AdES でも、FIPS 検証済みでもなく、 FIPS、OASIS、ETSI に対する適合性の主張でもありません。ポスト量子 PDF 署名を長期アーカイブのために相互運用可能にする規格は、まだ成立していません(規格境界 を参照)。
提供状況とライセンス
「提供状況とライセンス」という見出しのセクションこの機能は NextPDF Enterprise(nextpdf/enterprise)に含まれて出荷され、Enterprise ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントを持たないデプロイメントは、この機能のクラスをロードしません。エディションを比較してライセンスを取得。
これは Enterprise の PKCS#11 ハードウェアトークン署名者の上に構築されています — HSM 署名 を参照してください。クラシック(RSA / ECDSA)の PKCS#11 署名パスは、サポートされた安定的な Enterprise 機能です。ここで説明するポスト量子パスは、その上に重ねられた実験的なプレビューです。NextPDF Enterprise は Pro の機能セットを含みます。
プレビュー機能ステータス
「プレビュー機能ステータス」という見出しのセクションプレビューは本物の署名操作を駆動します。有効化されると、signPqs() はトークン上の候補の PKCS#11 v3.1
ポスト量子メカニズムへディスパッチし、秘密鍵はトークン境界を決して離れず、返されたバイトは、受け入れられる前に、選択されたパラメータセットに対する FIPS 規定の署名長と照合されます。
それは同時に、プレビューであって一般提供される製品機能ではありません。
- PKCS#11 のポスト量子メカニズムおよびパラメータセット識別子は暫定的です — OASIS PKCS#11 v3.1 はポスト量子メカニズムレジストリを確定していないため、使用される値は暫定的なものとして追跡され、HSM のオペレーターは、有効化する前にトークンの PQ ファームウェアがそれらと一致することを確認しなければなりません。
- NextPDF にはポスト量子の検証パスが存在せず、AdES 長期アーカイブのためにポスト量子署名を登録する ETSI スイートもありません。そのため、ここで生成された署名はまだ相互運用可能ではなく、ほとんどの PDF ビューアーは検証時にそれを拒否します。
- 同伴のデスクリプター
PqsCapabilityStatusが、これらの事実を機械可読な形で報告します。すべての肯定的な主張ブール値 —generallyAvailable、adesCompliant、verificationAvailable、conformanceClaimed— はハードコードでfalseであり、プレビューフラグがオンであってもfalseのままで、いかなる設定もそれらを反転させられません。(またrecognitionOnlyフラグをハードコードでtrueとして持ち、これはアルゴリズムの認識は決して適合性の判定ではないことを記録します。サーフェスが署名できないという意味ではありません — 署名は上記のとおりsignPqs()を通じて行われます。)
なぜこのように動作するか
「なぜこのように動作するか」という見出しのセクションNextPDF は、トークンを通じて本物の ML-DSA または SLH-DSA 署名をすでに計算できます。それでも、すべての適合性ブール値は、2 つのデフォルトオフのゲートの背後で、ハードコードで false のままです。署名は、後でそれを検証できる能力があってこそ価値があります。ポスト量子については、検証パスも、登録された ETSI AdES スイートも、
FIPS 検証済みの HSM ラウンドトリップも、まだありません。これを一般提供として出荷することは、どのビューアーも検証できず、どのアーカイブも信頼できない署名を発行することになります。そこで設計は、バイトを生成することと、
誰かがそれに依拠してよいと主張することとを分離しており、いかなるプレビューフラグもその境界を曖昧にできません。
設計の背景:長期検証。
アルゴリズムパラメータセット
「アルゴリズムパラメータセット」という見出しのセクションsignPqs() は、Pkcs11PqsAlgorithm 列挙を通じてアルゴリズムとパラメータセットを選択します。各ケースは、
NIST のパラメータセットを暫定的な PKCS#11 メカニズム / パラメータセット識別子と、多層防御の長さチェックに使われる FIPS 規定の署名バイト長にマッピングします。
ML-DSA — FIPS 204(モジュール格子)。 3 つのパラメータセット。示された NIST セキュリティ強度カテゴリで主張されます。
| パラメータセット | NIST カテゴリ | 署名長(バイト) |
|---|---|---|
ML-DSA-44 | 2 | 2420 |
ML-DSA-65(推奨デフォルト) | 3 | 3309 |
ML-DSA-87 | 5 | 4627 |
SLH-DSA — FIPS 205(ステートレスハッシュベース)。 12 のパラメータセット。SHA2 / SHAKE x 128 / 192 /
256 x small(s)/ fast(f)として構成されます。s バリアントは署名サイズを最小化し、f バリアントは署名レイテンシを最小化します。
| パラメータセットファミリー | NIST カテゴリ | 署名長(バイト) |
|---|---|---|
SLH-DSA-{SHA2,SHAKE}-128s | 1 | 7856 |
SLH-DSA-{SHA2,SHAKE}-128f | 1 | 17088 |
SLH-DSA-{SHA2,SHAKE}-192s | 3 | 16224 |
SLH-DSA-{SHA2,SHAKE}-192f | 3 | 35664 |
SLH-DSA-{SHA2,SHAKE}-256s | 5 | 29792 |
SLH-DSA-{SHA2,SHAKE}-256f | 5 | 49856 |
プレビューの有効化
「プレビューの有効化」という見出しのセクション2 つの独立したゲートを両方とも開く必要があります。どちらもデフォルトでオフです。
- プロセスゲート。 プロセスがブートする前に
NEXTPDF_FEATURE_PREVIEW_PQS_HSM=1を設定します(またはステータスが読まれる前にputenv()で)。文字列1への厳密な等価が必要です。それ以外の値 —0、true、yes、空文字列を含む — はオフとして扱われます。 - 署名者ごとのオプトイン。
Pkcs11Signerコンストラクターに$enablePostQuantum: trueを渡します。
use NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11Signer;use NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11PqsAlgorithm;use NextPDF\Enterprise\Security\Signature\Hsm\PqsCapabilityStatus;use NextPDF\Enterprise\Security\Signature\Hsm\PqsPreviewFeature;
// 1. Open the process-level preview gate (default-off).putenv(PqsPreviewFeature::ENV_PREVIEW_PQS_HSM . '=1');
// 2. The capability status is honest even with the gate open:// generallyAvailable / adesCompliant / verificationAvailable stay false.$status = PqsCapabilityStatus::current();
// 3. Construct the PKCS#11 signer with the per-signer opt-in.$signer = new Pkcs11Signer( libraryPath: '/usr/lib/softhsm/libsofthsm2.so', slotId: 0, pin: '1234', certLabel: 'my-pqc-signing-cert', enablePostQuantum: true,);
// 4. Sign with a chosen parameter set. The returned bytes are length-checked// against Pkcs11PqsAlgorithm::signatureLength() before being accepted.$signature = $signer->signPqs( data: $tbsBytes, algorithm: Pkcs11PqsAlgorithm::MlDsa65,);isPostQuantumEnabled() は署名者ごとのオプトインが設定されたかどうかを報告し、
PqsCapabilityStatus::current() はプロセスレベルの状態に加えて正直な主張ブール値を報告します。
フェイルクローズ境界
「フェイルクローズ境界」という見出しのセクションこのサーフェスはフェイルクローズであり、暗黙のフォールバックではなく、名前付きで型付きの例外を通じて失敗を報告します。
- オプトインの欠如。
$enablePostQuantumがfalseのときにsignPqs()が呼ばれると、HsmOperationExceptionをスローします。署名は行われません。 - コンテキストが長すぎる。 255 バイトを超える署名コンテキストのオクテット文字列は、いかなるトークン呼び出しの前にも
InvalidArgumentException(FIPS 204 / FIPS 205 のコンテキスト上限による)をスローします。 - 鍵の欠如。 トークン上に設定されたラベルに一致する秘密鍵がない場合、
signPqs()はHsmOperationExceptionをスローします。 - 長さの不一致。 トークンが返す署名のバイト長が、パラメータセットに対する FIPS 規定の長さと一致しない場合、
signPqs()はHsmOperationExceptionをスローします — 不正な形式(切り詰められた、または過大な) の署名は、CMS SignedData のエンコーディングに到達する前に拒否されます。 - トークンエラー。 基盤となる PKCS#11 のエラーはすべて
HsmOperationExceptionでラップされます。
プロセスレベルの環境フラグは、この境界について何も変えません。フラグがオンであっても、機能ブール値は
false のままで、署名パスは長さチェック付きかつフェイルクローズのままです。
正直な境界
「正直な境界」という見出しのセクション以下の主張はこのサーフェスについてなされません。それに由来するいかなるドキュメント、UI、マーケティングにも現れてはなりません。
- 「GA」/「一般提供(generally available)」。
- 「AdES」/「PAdES 準拠」 — 長期アーカイブのためにポスト量子署名を登録する ETSI スイートはありません。
- 「FIPS 検証済み」 — このパスに対して FIPS-140-3 検証済みのポスト量子 HSM ラウンドトリップは確立されていません。
- FIPS、OASIS PKCS#11 v3.1、または ETSI に対する「認証済み」または「適合」。
- 「本番対応(production-ready)」。
このサーフェスが正直に何であるか。PKCS#11 トークンを通じて ML-DSA / SLH-DSA を駆動し、結果を長さチェックする、オプトイン、デフォルトオフ、フェイルクローズの HSM 委譲型ポスト量子署名のプレビューです。それが何でないか。一般提供される、AdES 準拠の、FIPS 検証済みの、または認証された署名機能ではありません。
関連する規格は外部の機関によって維持されており、プレビューはそのいずれへの適合性についても立場を取りません。
- アルゴリズムパラメータセットと署名長は、FIPS 204(ML-DSA)と FIPS 205(SLH-DSA)に従います。
- トークンメカニズム識別子は OASIS PKCS#11 に従います。PKCS#11 v3.1 のポスト量子メカニズムレジストリはまだ確定していないため、NextPDF は暫定的な識別子を使用します。
- PDF 署名の長期アーカイブプロファイルは ETSI EN 319 142-2(PAdES 拡張プロファイル、CMS
SignerInfoの上に構築)と、暗号スイートのカタログ ETSI TS 119 312 です。後者は現在 RSA と ECDSA のみをプロファイルしており — CAdES/PAdES のためにポスト量子スイートは登録されていません。したがって、今日生成されたポスト量子 PDF 署名は、アーカイブのためにはまだ AdES 準拠ではありません。
このページでは規格本文の複製を行っていません。
セキュリティに関する注意
「セキュリティに関する注意」という見出しのセクションプレビューはセキュリティ制御ではありません。このパスによって生成されたポスト量子署名が存在することは、 AdES の有効性を確立せず、信頼された鍵を含意せず、NextPDF によって検証可能でもありません(ポスト量子の検証パスはありません)。署名保証のためにこのプレビューに依存しないでください。また、AdES 準拠または FIPS 検証済みの署名が必要な場所にデプロイしないでください。規格が成立するまで、本番では両方のゲートをオフのままにしてください。
API サーフェス
「API サーフェス」という見出しのセクション| シンボル | 役割 |
|---|---|
Pkcs11Signer::signPqs() | PKCS#11 を通じた、オプトイン、フェイルクローズの HSM 委譲型ポスト量子署名。無効時、鍵が欠如しているとき、または署名長の不一致時に HsmOperationException をスローする。 |
Pkcs11Signer::isPostQuantumEnabled() | 署名者ごとの $enablePostQuantum オプトインが設定されたかどうか。 |
Pkcs11PqsAlgorithm | ML-DSA(FIPS 204)と SLH-DSA(FIPS 205)のパラメータセットの列挙。各々を暫定的なメカニズム id と FIPS 規定の署名長にマッピングする。 |
PqsPreviewFeature | プロセスレベルの、デフォルトオフの環境ゲート(NEXTPDF_FEATURE_PREVIEW_PQS_HSM)。 |
PqsCapabilityStatus | 正直で機械可読なステータス:すべての肯定的な主張ブール値(一般提供、AdES、検証、適合性)はプレビューフラグにかかわらずハードコードで false。 |
HsmOperationException | フェイルクローズパスで送出される型付き例外。 |
このページは、外部から観察可能な動作と、サポートされた公開 API サーフェスのみを記述します。内部の名前空間パス、ヘルパークラス、メカニズムテーブル、ランブックのファイル名、チケットのプレフィックスは、対象外です。