Enterprise editiestabiliteit: Experimenteel
Post-quantum HSM-ondertekening (PQS) preview-vermogensstatus
In een oogopslag
Sectie met titel “In een oogopslag”Preview-vermogensstatus. Opt-in, standaard uit, fail-closed. Dit is een preview van HSM-gedelegeerde post-quantum-ondertekening. Het is niet algemeen beschikbaar, het is niet AdES-compliant, het is niet FIPS-validated, en het maakt geen certificerings- of conformiteitsclaim. De preview is uit totdat je opt-in geeft; wanneer uit, faalt de ondertekeningsaanroep gesloten met een getypeerde exception.
NextPDF Enterprise stelt een experimenteel post-quantum signature (PQS)-oppervlak
beschikbaar dat ML-DSA (FIPS 204)- en SLH-DSA (FIPS 205)-ondertekening aandrijft via
een PKCS#11-hardwaretoken. Het pad is Pkcs11Signer::signPqs(), gegatet achter een
expliciete per-signer-opt-in ($enablePostQuantum) en, afzonderlijk, achter een
env-vlag op procesniveau (NEXTPDF_FEATURE_PREVIEW_PQS_HSM). Beide zijn standaard
uit.
Deze pagina is de eerlijke grens. Hij vermeldt wat de preview doet — het delegeert een echte post-quantum-ondertekeningsbewerking aan het token — en, met gelijke eerlijkheid, wat het niet is: het is niet GA, niet AdES, niet FIPS-validated, en geen conformiteitsclaim tegen FIPS, OASIS of ETSI. De standaarden die een post-quantum-PDF-handtekening interoperabel zouden maken voor langetermijnarchivering zijn nog niet geland (zie Standaardgrens).
Beschikbaarheid en licentiëring
Sectie met titel “Beschikbaarheid en licentiëring”Dit vermogen wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en
activeert met een licentie-envelop op Enterprise-niveau. Een deployment zonder die
entitlement laadt de klassen van het vermogen niet.
Vergelijk edities en verkrijg een licentie.
Het bouwt voort op de Enterprise PKCS#11-hardwaretoken-signer — zie HSM-ondertekening. Het klassieke (RSA / ECDSA) PKCS#11-ondertekeningspad is het ondersteunde, stabiele Enterprise-vermogen; het hier beschreven post-quantum-pad is een experimentele preview die daar bovenop is gelaagd. NextPDF Enterprise omvat de Pro-featureset.
Preview-vermogensstatus
Sectie met titel “Preview-vermogensstatus”De preview drijft een echte ondertekeningsbewerking aan: wanneer ingeschakeld,
verstuurt signPqs() naar het kandidaat-PKCS#11 v3.1 post-quantum-mechanisme op het
token, de private key verlaat nooit de tokengrens, en de teruggegeven bytes worden
lengtegecontroleerd tegen de FIPS-voorgeschreven handtekeninglengte voor de gekozen
parameterset voordat ze worden geaccepteerd.
Het is tegelijkertijd een preview en geen algemeen beschikbaar productvermogen:
- Het PKCS#11 post-quantum-mechanisme en de parameterset-identificatoren zijn provisioneel — OASIS PKCS#11 v3.1 heeft geen post-quantum-mechanismeregister gefinaliseerd, dus de gebruikte waarden worden bijgehouden als provisioneel en HSM-operators moeten bevestigen dat de PQ-firmware van hun token overeenkomt voordat ze inschakelen.
- Er bestaat geen post-quantum-verificatiepad in NextPDF, en geen ETSI-suite registreert een post-quantum-handtekening voor AdES-langetermijnarchivering, dus een hier geproduceerde handtekening is nog niet interoperabel en de meeste PDF-viewers zullen die bij validatie afwijzen.
- Een begeleidende descriptor,
PqsCapabilityStatus, rapporteert deze feiten in een machineleesbare vorm. Elke positieve claim-boolean —generallyAvailable,adesCompliant,verificationAvailable,conformanceClaimed— is hard-coded opfalseen blijftfalsezelfs wanneer de preview-vlag aan staat, en geen configuratie kan er een inschakelen. (Het draagt ook eenrecognitionOnly-vlag, hard-codedtrue, die vastlegt dat algoritmeherkenning nooit een conformiteitsverdict is; het betekent niet dat het oppervlak niet kan ondertekenen — ondertekening gebeurt viasignPqs()zoals hierboven beschreven.)
Waarom het zo werkt
Sectie met titel “Waarom het zo werkt”NextPDF kan al een echte ML-DSA- of SLH-DSA-handtekening berekenen via het token.
Toch blijft elke conformiteits-boolean hard-coded op false, achter twee
standaard-uitgeschakelde gates. Een handtekening is alleen zoveel waard als het
vermogen om die later te verifiëren. Voor post-quantum is er nog geen
verificatiepad, geen geregistreerde ETSI AdES-suite en geen FIPS-validated
HSM-rondrit. Dit als algemeen beschikbaar leveren zou handtekeningen uitgeven die
geen viewer kan valideren en geen archief kan vertrouwen. Daarom scheidt het ontwerp
het produceren van de bytes van het claimen dat iemand erop mag vertrouwen, en geen
preview-vlag kan die lijn vervagen.
Ontwerpachtergrond: Langetermijnvalidatie.
Algoritme-parametersets
Sectie met titel “Algoritme-parametersets”signPqs() selecteert het algoritme en de parameterset via de
Pkcs11PqsAlgorithm-enum. Elke case mapt een NIST-parameterset naar een provisionele
PKCS#11-mechanisme-/parameterset-identificator en naar de FIPS-voorgeschreven
handtekening-bytelengte die wordt gebruikt voor de defence-in-depth-lengtecontrole.
ML-DSA — FIPS 204 (module-lattice). Drie parametersets, geclaimd op de getoonde NIST-securitystrength-categorieën:
| Parameter set | NIST category | Signature length (bytes) |
|---|---|---|
ML-DSA-44 | 2 | 2420 |
ML-DSA-65 (aanbevolen standaard) | 3 | 3309 |
ML-DSA-87 | 5 | 4627 |
SLH-DSA — FIPS 205 (stateless hash-based). Twaalf parametersets, gevormd als
SHA2 / SHAKE x 128 / 192 / 256 x small (s) / fast (f). De s-varianten
minimaliseren de handtekeninggrootte; de f-varianten minimaliseren de
ondertekeningslatentie:
| Parameter set family | NIST category | Signature length (bytes) |
|---|---|---|
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 |
De preview inschakelen
Sectie met titel “De preview inschakelen”Twee onafhankelijke gates moeten beide open zijn. Beide staan standaard uit.
- Procesgate. Stel
NEXTPDF_FEATURE_PREVIEW_PQS_HSM=1in voordat het proces boot (of viaputenv()voordat de status wordt gelezen). Strikte gelijkheid aan de string1is vereist; elke andere waarde — inclusief0,true,yesof leeg — wordt behandeld als uit. - Per-signer-opt-in. Geef
$enablePostQuantum: truedoor aan dePkcs11Signer-constructor.
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() rapporteert of de per-signer-opt-in was ingesteld, en
PqsCapabilityStatus::current() rapporteert de staat op procesniveau plus de
eerlijke claim-booleans.
Fail-closed-grens
Sectie met titel “Fail-closed-grens”Het oppervlak is fail-closed en rapporteert mislukkingen via benoemde, getypeerde exceptions in plaats van stille terugval:
- Opt-in afwezig. Als
signPqs()wordt aangeroepen terwijl$enablePostQuantumfalseis, werpt hetHsmOperationException. Er vindt geen ondertekening plaats. - Context te lang. Een ondertekeningscontext-octetstring die langer is dan 255
bytes werpt
InvalidArgumentException(volgens de FIPS 204- / FIPS 205-contextgrens) voordat er een tokenaanroep plaatsvindt. - Key afwezig. Als geen private key overeenkomt met het geconfigureerde label op
het token, werpt
signPqs()HsmOperationException. - Lengtemismatch. Als het token een handtekening teruggeeft waarvan de
bytelengte niet gelijk is aan de FIPS-voorgeschreven lengte voor de parameterset,
werpt
signPqs()HsmOperationException— een misvormde (afgekapte of te grote) handtekening wordt afgewezen voordat die de CMS SignedData-encoding kan bereiken. - Tokenfout. Elke onderliggende PKCS#11-fout wordt verpakt in
HsmOperationException.
De env-vlag op procesniveau verandert niets aan deze grens: zelfs wanneer de vlag aan staat, blijven de vermogensbooleans false en blijft het ondertekeningspad lengtegecontroleerd en fail-closed.
Eerlijke grens
Sectie met titel “Eerlijke grens”De volgende claims worden niet gemaakt voor dit oppervlak en mogen niet verschijnen in enige documentatie, UI of marketing die ervan is afgeleid:
- “GA” / “generally available”.
- “AdES” / “PAdES-compliant” — geen ETSI-suite registreert een post-quantum-handtekening voor langetermijnarchivering.
- “FIPS-validated” — er is geen FIPS-140-3-validated post-quantum-HSM-rondrit vastgesteld voor dit pad.
- “certified” of “conformant” tegen FIPS, OASIS PKCS#11 v3.1 of ETSI.
- “production-ready”.
Wat het oppervlak eerlijk is: een opt-in, standaard-uitgeschakelde, fail-closed preview van HSM-gedelegeerde post-quantum-ondertekening die ML-DSA / SLH-DSA aandrijft via een PKCS#11-token en het resultaat lengtecontroleert. Wat het niet is: een algemeen beschikbaar, AdES-compliant, FIPS-validated of certified ondertekeningsvermogen.
Standaardgrens
Sectie met titel “Standaardgrens”De betrokken standaarden worden onderhouden door externe instanties, en de preview neemt geen standpunt in over conformiteit aan een ervan:
- De algoritme-parametersets en handtekeninglengtes volgen FIPS 204 (ML-DSA) en FIPS 205 (SLH-DSA).
- De token-mechanisme-identificatoren volgen OASIS PKCS#11; het post-quantum-mechanismeregister in PKCS#11 v3.1 is nog niet gefinaliseerd, dus NextPDF gebruikt provisionele identificatoren.
- De PDF-handtekening-langetermijnarchiveringsprofielen zijn ETSI EN 319 142-2
(PAdES extended profiles, gebouwd op CMS
SignerInfo) en de cryptografische-suites-catalogus ETSI TS 119 312, die momenteel alleen RSA en ECDSA profileren — geen post-quantum-suite is geregistreerd voor CAdES/PAdES. Een vandaag geproduceerde post-quantum-PDF-handtekening is daarom nog niet AdES-compliant voor archivering.
Er wordt geen standaardtekst gereproduceerd op deze pagina.
Beveiligingsnotities
Sectie met titel “Beveiligingsnotities”Een preview is geen beveiligingscontrole. De aanwezigheid van een post-quantum-handtekening geproduceerd door dit pad stelt geen AdES-geldigheid vast, impliceert geen vertrouwde key, en is niet verifieerbaar door NextPDF (er is geen post-quantum-verificatiepad). Vertrouw niet op deze preview voor handtekeninggaranties, en deploy hem niet waar een AdES-compliant of FIPS-validated handtekening vereist is. Houd beide gates uit in productie totdat de standaarden landen.
API-oppervlak
Sectie met titel “API-oppervlak”| Symbol | Role |
|---|---|
Pkcs11Signer::signPqs() | Opt-in, fail-closed HSM-gedelegeerde post-quantum-ondertekening via PKCS#11. Werpt HsmOperationException wanneer uitgeschakeld, wanneer de key afwezig is, of bij een handtekening-lengtemismatch. |
Pkcs11Signer::isPostQuantumEnabled() | Of de per-signer-$enablePostQuantum-opt-in was ingesteld. |
Pkcs11PqsAlgorithm | Enum van ML-DSA (FIPS 204)- en SLH-DSA (FIPS 205)-parametersets; mapt elk naar een provisioneel mechanisme-id en de FIPS-voorgeschreven handtekeninglengte. |
PqsPreviewFeature | Env-gate op procesniveau, standaard uit (NEXTPDF_FEATURE_PREVIEW_PQS_HSM). |
PqsCapabilityStatus | Eerlijke, machineleesbare status: elke positieve claim-boolean (generally-available, AdES, verification, conformance) is hard-coded false ongeacht de preview-vlag. |
HsmOperationException | De getypeerde exception die op de fail-closed-paden wordt geworpen. |
Publicatiegrens
Sectie met titel “Publicatiegrens”Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde publieke API-oppervlak. Interne namespace-paden, helperklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten de scope.