Enterprise EditionStabilität: Experimentell
Post-Quantum-Signaturvorschau — Ausführliche Referenz
Auf einen Blick
Abschnitt betitelt „Auf einen Blick“Diese Seite ist die Referenz auf Vertragsebene für die Post-Quantum-Signaturvorschau (PQS-Vorschau) in NextPDF Enterprise. Sie behandelt drei öffentliche Symbole: das Parameter-Satz-Enum Pkcs11PqsAlgorithm, das Prozess-Gate PqsPreviewFeature und den Deskriptor PqsCapabilityStatus. Außerdem dokumentiert sie das Umgebungs-Gate NEXTPDF_FEATURE_PREVIEW_PQS_HSM.
Die Oberfläche ist experimentell und standardmäßig deaktiviert. Sie erkennt ML-DSA- (FIPS 204) und SLH-DSA-Algorithmuskennungen (FIPS 205), Parameter-Sätze und Signaturlängen. Erkennung ist kein Validierungsurteil. Es gibt keinen Post-Quantum-Verifizierungspfad. Es wird kein AdES-, FIPS-Validierungs- oder Konformitätsanspruch erhoben, und das Vorschau-Flag kann keinen erzeugen. Der konsumierende Signatur-Einstiegspunkt, Pkcs11Signer::signPqs(), wird auf der Fähigkeitsseite beschrieben.
Verfügbarkeit & Lizenzierung
Abschnitt betitelt „Verfügbarkeit & Lizenzierung“Diese Fähigkeit wird in NextPDF Enterprise (nextpdf/enterprise) ausgeliefert und wird mit einer Lizenzhülle der Enterprise-Stufe aktiviert. Eine Bereitstellung ohne diese Berechtigung lädt die Klassen der Fähigkeit nicht. Editionen vergleichen und Lizenz erwerben.
Die Lizenz aktiviert die Enterprise-PKCS#11-Oberfläche als Ganzes. Der darin enthaltene Post-Quantum-Pfad bleibt unabhängig von der Lizenzstufe eine Vorschau. Zwei voneinander unabhängige Opt-ins sind weiterhin erforderlich: das hier dokumentierte Prozess-Gate und das Konstruktor-Flag pro Signierer auf Pkcs11Signer.
Öffentliche API-Oberfläche
Abschnitt betitelt „Öffentliche API-Oberfläche“| Symbol | Parameter | Standardverhalten | Rückgabe | Wirft oder scheitert mit | Hinweise |
|---|---|---|---|---|---|
Pkcs11PqsAlgorithm | String-gestütztes Enum, 15 Fälle | Benennt einen FIPS 204 / FIPS 205-Parameter-Satz pro Fall | Enum-Fall | Nichts beim Fallzugriff | Fallwerte sind die Parameter-Satz-Namen, z. B. ML-DSA-65. |
Pkcs11PqsAlgorithm::isMlDsa() | keine | Familientest | bool | Wirft nicht | true für MlDsa44, MlDsa65, MlDsa87. |
Pkcs11PqsAlgorithm::isSlhDsa() | keine | Negation von isMlDsa() | bool | Wirft nicht | true für die zwölf SLH-DSA-Fälle. |
Pkcs11PqsAlgorithm::mechanismId() | keine | Ordnet die Familie der Kandidaten-PKCS#11-v3.1-PQ-Mechanismus-ID zu | int | PHP-Error, wenn der Laufzeitumgebung die vorläufigen Pkcs11-PQ-Konstanten fehlen | CKM_ML_DSA oder CKM_SLH_DSA; beide IDs sind vorläufig. |
Pkcs11PqsAlgorithm::parameterSetId() | keine | Ordnet den Fall dem OASIS-Parameter-Satz-Diskriminator zu | int | PHP-Error, wenn der Laufzeitumgebung die vorläufigen Pkcs11-PQ-Konstanten fehlen | CKP_*-Werte; vorläufig. |
Pkcs11PqsAlgorithm::signatureLength() | keine | FIPS-vorgeschriebene Signatur-Byte-Länge für den Fall | int (positiv) | Wirft nicht | Vom Signaturpfad genutzt, um eine zurückgegebene Signatur mit unerwarteter Länge abzulehnen. |
Pkcs11PqsAlgorithm::nistCategory() | keine | Beanspruchte NIST-Sicherheitsstärke-Kategorie | int | Wirft nicht | Gibt 1, 2, 3 oder 5 zurück. |
PqsPreviewFeature | String-gestütztes Enum, 1 Fall | Einziger Fall PREVIEW_PQS_HSM; Konstante ENV_PREVIEW_PQS_HSM | Enum-Fall | Nichts beim Fallzugriff | Das Vorschau-Gate auf Prozessebene. |
PqsPreviewFeature::isEnabled() | keine | Liest getenv() live; strikter Vergleich mit dem String 1 | bool | Wirft nicht | Fehlende Variable oder jeder andere Wert, einschließlich 0, true, yes, ist aus. |
PqsCapabilityStatus::__construct() | neun benannte readonly-Felder | Erstellt eine beliebige Deskriptor-Instanz | PqsCapabilityStatus | Wirft nicht | current() ist der kanonische Konstruktor. |
PqsCapabilityStatus::current() | keine | Erstellt den Deskriptor für den umgebenden Prozess | PqsCapabilityStatus | Wirft nicht | Jeder Anspruchs-Boolean ist fest; nur hsmRoundtripPreviewEnabled variiert mit dem Gate. |
PqsCapabilityStatus::summary() | keine | Einzeiliger Statustext | string | Wirft nicht | Die Formulierung trägt keinen Verfügbarkeits-, Archivierungs- oder Validierungsanspruch. |
enum Pkcs11PqsAlgorithm: string
case MlDsa44 = 'ML-DSA-44';case MlDsa65 = 'ML-DSA-65';case MlDsa87 = 'ML-DSA-87';
case SlhDsaSha2_128s = 'SLH-DSA-SHA2-128s';case SlhDsaShake_128s = 'SLH-DSA-SHAKE-128s';case SlhDsaSha2_128f = 'SLH-DSA-SHA2-128f';case SlhDsaShake_128f = 'SLH-DSA-SHAKE-128f';
case SlhDsaSha2_192s = 'SLH-DSA-SHA2-192s';case SlhDsaShake_192s = 'SLH-DSA-SHAKE-192s';case SlhDsaSha2_192f = 'SLH-DSA-SHA2-192f';case SlhDsaShake_192f = 'SLH-DSA-SHAKE-192f';
case SlhDsaSha2_256s = 'SLH-DSA-SHA2-256s';case SlhDsaShake_256s = 'SLH-DSA-SHAKE-256s';case SlhDsaSha2_256f = 'SLH-DSA-SHA2-256f';case SlhDsaShake_256f = 'SLH-DSA-SHAKE-256f';
public function isMlDsa(): boolpublic function isSlhDsa(): boolpublic function mechanismId(): intpublic function parameterSetId(): intpublic function signatureLength(): intpublic function nistCategory(): intenum PqsPreviewFeature: string
case PREVIEW_PQS_HSM = 'preview_pqs_hsm';
public const string ENV_PREVIEW_PQS_HSM = 'NEXTPDF_FEATURE_PREVIEW_PQS_HSM';
public function isEnabled(): boolfinal readonly class PqsCapabilityStatus
public const string MATURITY_PREVIEW_EXPERIMENTAL = 'preview-experimental';public const string MECHANISM_STATUS_PROVISIONAL = 'provisional';
public function __construct( public bool $hsmRoundtripPreviewEnabled, public bool $generallyAvailable, public bool $adesCompliant, public bool $verificationAvailable, public bool $conformanceClaimed, public bool $recognitionOnly, public string $maturity, public string $mechanismIdStatus, public string $envGate,)
public static function current(): selfpublic function summary(): stringVerhaltensvertrag
Abschnitt betitelt „Verhaltensvertrag“- Parameter-Satz-Katalog.
NextPDF\Enterprise\Security\Signature\Hsm\Pkcs11PqsAlgorithmzählt drei ML-DSA-Sätze (FIPS 204) und zwölf SLH-DSA-Sätze (FIPS 205 §11.p12, Table 2) auf. Jeder Fall wird einer vorläufigen Mechanismus-ID, einem Parameter-Satz-Diskriminator, einer FIPS-vorgeschriebenen Signatur-Byte-Länge und einer beanspruchten NIST-Kategorie zugeordnet. - Signaturlängen.
signatureLength()gibt 2420, 3309 und 4627 Bytes fürMlDsa44,MlDsa65undMlDsa87zurück, gemäß FIPS 204 §4.p15 (Table 2). Die SLH-DSA-Fälle geben je nach Stufe und Variante 7856, 17088, 16224, 35664, 29792 und 49856 Bytes zurück, gemäß FIPS 205 §11 (Table 2). Der konsumierende Signierer wirftHsmOperationException, wenn eine zurückgegebene Signatur eine abweichende Länge hat, was die Längen-Ablehnungsdisziplin von FIPS 204 §x34 widerspiegelt. - Kategorien.
nistCategory()gibt 2, 3 und 5 für die ML-DSA-Fälle zurück, gemäß FIPS 204 §4.p9. Die SLH-DSA-Fälle geben je nach Sicherheitsparameter-Stufe 1, 3 und 5 zurück. - Prozess-Gate.
PqsPreviewFeature::PREVIEW_PQS_HSMist standardmäßig aus.isEnabled()gibt nur danntruezurück, wenn die UmgebungsvariableNEXTPDF_FEATURE_PREVIEW_PQS_HSMexakt gleich dem String1ist. Der Lesevorgang ist bei jedem Aufruf live; nichts wird memoisiert. - Ergänzendes Gating. Das Prozess-Gate ist getrennt vom Konstruktor-Opt-in
$enablePostQuantumpro Signierer aufPkcs11Signer. Der Signaturaufruf scheitert geschlossen ohne das Opt-in pro Signierer. Das Prozess-Gate existiert als einzelne prüfbare Grenze für jedes künftige Round-Trip- oder Archivierungsverhalten. - Ehrlichkeitsinvariante.
NextPDF\Enterprise\Security\Signature\Hsm\PqsCapabilityStatus::current()verdrahtetgenerallyAvailable,adesCompliant,verificationAvailableundconformanceClaimedfest auffalseundrecognitionOnlyauftrue. Keine Konfiguration, Konstruktoroption oder Umgebungsvariable schaltet einen Anspruch ein. NurhsmRoundtripPreviewEnabledspiegelt das Gate wider. - Kein Verifizierungspfad. NextPDF hat keinen Post-Quantum-Verifizierungspfad. Eine erkannte Algorithmuskennung oder eine wohlgeformte Signaturlänge ist niemals ein Akzeptanzurteil.
Grenzfälle & Fehlermodi
Abschnitt betitelt „Grenzfälle & Fehlermodi“- Das Setzen der Gate-Variable auf
0,true,yes,onoder eine leere Zeichenkette lässt das Gate aus. Nur der exakte String1aktiviert es. putenv()-Änderungen werden beim nächstenisEnabled()-Aufruf wirksam, da der Lesevorgang live ist. Ein mitten im Prozess umgeschaltetes Gate wird sofort beobachtet.mechanismId()undparameterSetId()lösen Konstanten aus dem Namespace derPkcs11-Erweiterung auf. Eine Laufzeitumgebung ohne die vorläufigen Post-Quantum-Erweiterungskonstanten scheitert mit einem PHP-Error(undefinierte Konstante) zur Aufrufzeit.- Die Mechanismus- und Parameter-Satz-IDs sind vorläufig. OASIS hat die PKCS#11-v3.1-Post-Quantum-Registrierung nicht abgeschlossen. Ein Token, dessen Firmware abweichende IDs zuweist, scheitert auf der PKCS#11-Ebene; Betreiber müssen die Firmware-IDs bestätigen, bevor sie die Vorschau aktivieren.
- Der vom konsumierenden Signierer akzeptierte Signaturkontext ist auf 255 Bytes begrenzt, passend zum Signatureingabe-Vertrag von FIPS 204 (§x43.p2). Ein längerer Kontext wirft
InvalidArgumentExceptionvor jedem Token-Aufruf. PqsCapabilityStatus::__construct()ist öffentlich, sodass eine handgefertigte Instanz beliebige Booleans tragen kann. Eine solche Instanz ist nur ein Wertobjekt. Sie verändert kein Signaturverhalten.current()ist der kanonische, fest verdrahtete Konstruktor.- Die Wahl zwischen randomisiert und deterministisch auf dem konsumierenden Signierer folgt der Semantik von FIPS 205 §x65.p7: Hedged-Signieren ist der Standard. Das Flag wird für ML-DSA ignoriert, das stets über seine eigene Nonce randomisiert.
FIPS-Modus-Verhalten
Abschnitt betitelt „FIPS-Modus-Verhalten“ML-DSA und SLH-DSA sind FIPS 204- und FIPS 205-Algorithmen, aber diese Vorschau trägt keinen FIPS 140-3-Validierungsanspruch. Für diesen Pfad wurde kein FIPS-validierter Post-Quantum-HSM-Round-Trip etabliert. Das Enterprise-FIPS-Modus-Krypto-Richtlinienprofil, dokumentiert in der Security Deep Reference, gated die klassischen Signaturalgorithmen; es nimmt die PQS-Oberfläche nicht in einen validierten Satz auf. Das Aktivieren des FIPS-Modus macht Post-Quantum-Signaturen nicht FIPS-validiert. Setzen Sie die Vorschau nicht dort ein, wo eine FIPS-validierte Signatur erforderlich ist.
Konformität
Abschnitt betitelt „Konformität“| Anspruch | Standard | Klausel |
|---|---|---|
| ML-DSA-44/65/87 tragen beanspruchte NIST-Kategorien 2, 3, 5. | FIPS 204 | §4.p9 |
| ML-DSA-Signaturgrößen sind 2420, 3309, 4627 Bytes. | FIPS 204 | §4.p15 (Table 2) |
| Die Signaturkontext-Bytefolge ist auf 255 Bytes begrenzt. | FIPS 204 | §x43.p2 |
| Eine Signatur oder ein Schlüssel mit falscher Länge muss abgelehnt werden. | FIPS 204 | §x34 |
| Zwölf SLH-DSA-Parameter-Sätze sind zugelassen. | FIPS 205 | §11.p12 (Table 2) |
| SLH-DSA-Signaturgrößen folgen Table 2 (7856 Bytes für 128s). | FIPS 205 | §11.p6 |
| Hedged-Signieren ist der Standard; eine deterministische Variante existiert. | FIPS 205 | §x65.p7 |
| Die CAdES/PAdES-Suiten katalogisieren nur RSA und EC-DSA. | ETSI TS 119 312 V1.5.1 | §7.x7.p10 (Table A.1) |
| Die PKCS#11-PQ-Mechanismus-IDs sind vorläufig. | OASIS PKCS#11 v3.1 | product-source grounded |
Alle Klauseln sind paraphrasiert. NextPDF gibt keinen normativen Text wieder. NextPDF besitzt keine Zertifizierung und gewährt keine. Die obigen Aussagen sind Aussagen zur strukturellen Übereinstimmung über Kennungen, Längen und Grenzen. Sie sind keine Konformitätstest-Ergebnisse, keine Drittpartei-Attestierungen und kein FIPS-, OASIS- oder ETSI-Konformitätsanspruch. PqsCapabilityStatus kodiert diese Haltung im Code: conformanceClaimed ist false, adesCompliant ist false und verificationAvailable ist false, in jeder Konfiguration. Eine von dieser Vorschau erzeugte Signatur ist nicht AdES-konform für die Langzeitarchivierung, und die meisten PDF-Viewer lehnen sie zur Validierungszeit ab.
Entwicklungshinweise
Abschnitt betitelt „Entwicklungshinweise“-
Die OASIS-PKCS#11-Post-Quantum-Mechanismus-Registrierung ist nicht abgeschlossen; die hier verwendeten
CKM_ML_DSA- /CKM_SLH_DSA-IDs und Parameter-Satz-Konstanten sind vorläufig und aus der Produktquelle abgeleitet, keine Spezifikationszitierung. -
Der aktuelle Meilenstein ist Mock-getestete Bereitschaft. Es wurde noch kein echter Post-Quantum-Firmware-HSM-Round-Trip validiert.
-
Halten Sie beide Gates in der Produktion aus. Die Vorschau fügt keine Produktionsfähigkeit hinzu, die dem klassischen RSA/ECDSA-PKCS#11-Pfad fehlt.
-
Bestätigen Sie vor jeder Evaluierung mit echter Hardware die Mechanismus- und Parameter-Satz-IDs der Token-Firmware gegen die vorläufigen Werte. Eine Nichtübereinstimmung scheitert auf der PKCS#11-Ebene, nicht innerhalb von NextPDF.
-
Behandeln Sie
PqsCapabilityStatus::current()als einzige Quelle der Wahrheit, wenn Sie den PQS-Status in Werkzeugen oder der UI darstellen. Geben Sie seine Booleans nicht von Hand wieder. -
Die
summary()-Ausgabe ist sicher für Logs und Status-Endpunkte; sie ist so formuliert, dass sie keinen Verfügbarkeits- oder Validierungsanspruch trägt.
Siehe auch
Abschnitt betitelt „Siehe auch“- Post-Quantum-HSM-Signaturvorschau (PQS) — Fähigkeitsseite
- Security — Deep Reference (HSM, PKCS#11, FIPS-Modus)
- Signature — Deep Reference
- HSM-Signatureinrichtung
- Security / Signing (Core)
Veröffentlichungsgrenze
Abschnitt betitelt „Veröffentlichungsgrenze“Diese Seite dokumentiert ausschließlich extern beobachtbares Verhalten und die unterstützte öffentliche API-Oberfläche. Interne Namespace-Pfade, Hilfsklassen, Mechanismus-Tabellen, Runbook-Dateinamen und Ticket-Präfixe sind außerhalb des Geltungsbereichs.