Enterprise editie
Security — HSM, PKCS#11 en FIPS-modus
In het kort
Sectie met titel “In het kort”NextPDF Enterprise voegt een PKCS#11-hardwaretoken-ondertekeningspad en een FIPS-modus cryptografisch beleid toe bovenop het beveiligingsoppervlak van Core en Pro. Deze pagina beschrijft gedrag, grenzen en de expliciete FIPS-certificerings- en sleutelbewaringspositie.
Beschikbaarheid en licentie
Sectie met titel “Beschikbaarheid en licentie”Deze functionaliteit wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en wordt geactiveerd met een licentie-envelop op Enterprise-niveau. Een implementatie zonder die toekenning laadt de klassen van de functionaliteit niet. Vergelijk edities en vraag een licentie aan.
Conceptueel overzicht
Sectie met titel “Conceptueel overzicht”Het Enterprise-beveiligingsoppervlak heeft drie onderdelen: een hardwaretoken-ondertekenaar, een FIPS-modus-crypto-beleid en een power-on-zelftestbewaking.
De hardwaretoken-ondertekenaar adapteert een PKCS#11-token — een smartcard, een USB-apparaat of een netwerkgekoppelde HSM. De ondertekenaar lokaliseert het certificaat en de privésleutel op het token via een label. Vervolgens vraagt deze het token om de handtekening te berekenen. De privésleutel verlaat de tokengrens niet; de bewerking draait binnen het token. De token-sign-operatie, de sessie en de gebruikerslogin volgen PKCS#11 v3.1 §5. Het HSM-pad vereist de ext-pkcs11-PHP-extensie. Die extensie maakt geen deel uit van standaard-PHP. Installeer ze afzonderlijk. Gebruik de beschikbaarheidscontrole voordat je de ondertekenaar construeert.
Het FIPS-modus-crypto-beleid beperkt cryptografische keuzes tot een goedgekeurde set. Het heeft twee presets. De strict-preset staat SHA-256-, SHA-384- en SHA-512-hashes toe; RSA- en ECDSA-handtekening-OID’s met die hashes; AES-256-CBC-encryptie; en minimale sleutelgroottes van RSA 2048 en EC 256. De standard-preset is hetzelfde maar staat ook AES-128-CBC toe voor oudere interoperabiliteit. Een runtime-guard omhult het beleid. De guard controleert elke hash, handtekening-OID, encryptiealgoritme en sleutelsterkte voordat de bewerking draait. Een niet-toegestane keuze werpt een getypeerde overtreding en stopt de bewerking. Het pad is fail-closed: het beleid versoepelt zichzelf nooit en vervangt nooit door een zwakker algoritme. De minimale RSA-sleutellengte volgt NIST SP 800-131A Rev.2 §3. De ECDSA-curve en hash-pairing volgt FIPS 186-5 §6.1.1.
De power-on-zelftestbewaking voert eenmaal bij processtart een known-answer-test-batterij uit. De batterij dekt de goedgekeurde hash-, MAC-, encryptie-, handtekening- en random-bit-functies. Als een test faalt, gaat de Enterprise-FIPS-guard in een foutstatus en weigert deze cryptografische diensten tot een reset. Het resultaat wordt gecachet voor de levensduur van het proces; een on-demand herstart is beschikbaar. De zelftestcategorie en de voorwaardelijke-test-trigger volgen ISO/IEC 19790:2025 §7.10 en §7.10.3.
Waarom het zo werkt
Sectie met titel “Waarom het zo werkt”De dragende beslissing is om de privésleutel binnen de tokengrens te houden en het crypto-beleid fail-closed te maken. Een ondertekenaar die een sleutel zou kunnen exporteren, of stilzwijgend zou kunnen terugvallen op een zwakker algoritme, zou de zekerheid tenietdoen waarvoor een HSM bestaat. Daarom vraagt de ondertekenaar het token om de handtekening ter plaatse te berekenen, en de FIPS-modus-guard weigert elke hash, OID of sleutelsterkte buiten de goedgekeurde preset voordat de bewerking draait. De power-on-zelftest breidt dezelfde houding uit naar de opstart: een niet-geverifieerde module weigert dienst in plaats van te ondertekenen op ongeteste primitieven. Het resultaat is een grens waarover je kunt redeneren, waarbij de sleutelbewaring in handen is van de operator en het token, niet van deze software.
Ontwerpachtergrond: HSM-gebaseerde ondertekening.
API-oppervlak
Sectie met titel “API-oppervlak”| Publiek oppervlak | Type | Doel | Stabiliteit | Sinds |
|---|---|---|---|---|
| PKCS#11-token-ondertekenaar | klasse (implementeert de Core-HsmSignerInterface) | Onderteken met een PKCS#11-token; de sleutel blijft op het token | stabiel | 1.0.0 |
| FIPS-crypto-beleid | klasse (implementeert de Core-CryptoPolicyInterface) | Een preset voor toegestaan algoritme en sleutelsterkte | stabiel | 1.9.0 |
| FIPS-modus-guard | klasse | Asserteer dat een hash, handtekening-OID, encryptiealgoritme of sleutelsterkte is toegestaan | stabiel | 1.9.0 |
| FIPS-boot-guard | klasse | Voer de power-on-zelftest uit en cache deze; asserteer dat de module operationeel is | stabiel | 3.2.0 |
| OpenSSL CLI- / engine-ondertekenaar | klasse (implementeert HsmSignerInterface) | Onderteken via een OpenSSL-engine of de OpenSSL-CLI voor engine-gebaseerde tokens | stabiel | 1.0.0 |
De token-ondertekenaar-constructor neemt het PKCS#11-bibliotheekpad, het slotnummer, de token-PIN, het certificaatlabel en een optioneel apart sleutellabel. De PIN-parameter is gemarkeerd als gevoelig; deze wordt niet gelogd en niet geserialiseerd. De ondertekenaar stelt ook het ondertekenaar-certificaat en de certificaatketen in DER-vorm beschikbaar. Het gezaghebbende parameter- en typecontract is de gepubliceerde API-referentie voor het nextpdf/enterprise-pakket; behandel die referentie — niet deze pagina — als het contract.
Codevoorbeeld — Snelstart
Sectie met titel “Codevoorbeeld — Snelstart”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);Codevoorbeeld — Productie
Sectie met titel “Codevoorbeeld — Productie”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.De volledige lijst met constructorargumenten, de uitzonderingstypen en de constructie van de PKCS#11-token-ondertekenaar zijn gedocumenteerd in de diepe Enterprise-beveiligingsreferentie.
Randgevallen en valkuilen
Sectie met titel “Randgevallen en valkuilen”- De PKCS#11-token-ondertekenaar-constructor werpt een getypeerde operatie-uitzondering wanneer
ext-pkcs11niet is geladen. Controleer eerst de beschikbaarheid. - De token-ondertekenaar cachet één PKCS#11-module per bibliotheekpad per proces. Dit voldoet aan de “initialize once per module”-regel van de tokeninterface.
- ECDSA-tokenmechanismen retourneren een ruwe handtekening. De ondertekenaar zet die om naar de DER-gecodeerde vorm voor PDF- en OpenSSL-interoperabiliteit.
- De FIPS-guard weigert standaard een onbekend sleuteltype. Een niet-herkend sleuteltype wordt niet stilzwijgend geaccepteerd.
- Het post-quantum-ondertekeningspad is experimenteel, opt-in en standaard uitgeschakeld. Standaard PAdES-langetermijnarchiveringsprofielen herkennen nog geen post-quantum-suites. Schakel het niet in voor productie-AdES-handtekeningen.
Prestaties
Sectie met titel “Prestaties”De FIPS-guard-controles zijn constante-tijd hash-map-lookups. De power-on-zelftest draait eenmaal per proces; de kosten ervan worden geamortiseerd over de levensduur van het proces, niet per ondertekeningsaanroep. Een PKCS#11-ondertekeningsbewerking voegt één rondrit naar het token toe. Een netwerkgekoppelde HSM voegt de netwerklatentie van die rondrit toe.
Beveiligingsnotities
Sectie met titel “Beveiligingsnotities”- Het ondertekeningspad is fail-closed. Een primitieve fout of een beleidsgat werpt een getypeerde uitzondering. Het pad degradeert nooit stilzwijgend naar een zwakker algoritme.
- De token-PIN-parameter is gemarkeerd als gevoelig. Deze wordt niet gelogd en niet geserialiseerd.
- De privésleutel voor een PKCS#11-token blijft op het token. De ondertekeningsbewerking draait binnen de tokengrens.
- De power-on-zelftest zet de Enterprise-FIPS-guard in een foutstatus bij een known-answer-test-mismatch en weigert cryptografische diensten tot een reset.
- AES-GCM-gebruik vereist een unieke initialisatievector per sleutel, volgens NIST SP 800-38D §5.
Datalocatie en PII-mitigaties
Sectie met titel “Datalocatie en PII-mitigaties”De ondertekenings- en FIPS-beleidscode draait in-process. Geen documentinhoud verlaat de host voor de FIPS-beleidscontrole of de power-on-zelftest. Een PKCS#11-token ontvangt de te ondertekenen gegevens, niet ongerelateerde documentinhoud. Een netwerkgekoppelde HSM ontvangt die gegevens over het netwerkkanaal dat je configureert. Het sleutelmateriaal blijft binnen de token- of HSM-grens.
Veilige telemetrie en logopschoning
Sectie met titel “Veilige telemetrie en logopschoning”De token-PIN is een gevoelige constructorparameter en wordt uitgesloten van logs en serialisatie. Voeg de PIN, het tokenlabel of sleutelmateriaal niet toe aan je eigen applicatielogs. Behandel alle tokenreferenties als geheimen in je log- en tracingbeleid.
Dreigingsmodel
Sectie met titel “Dreigingsmodel”Dit is een cryptografische grens, dus het dreigingsmodel is expliciet. De te ondertekenen gegevens worden aan het token overhandigd; het token bewaart de sleutel. Een token- of HSM-fout werpt een getypeerde uitzondering; de ondertekenaar produceert geen ongetekend of gedeeltelijk getekend resultaat. Sleutelbescherming hangt af van het token of de HSM, de implementatie en de operator — niet van deze software alleen. Zie de implementatiegrens.
Conformiteit
Sectie met titel “Conformiteit”- Het power-on- en voorwaardelijke-zelftestmodel sluit aan op ISO/IEC 19790:2025 §7.10 en §7.10.3.
- De minimale RSA-handtekeningsleutellengte sluit aan op NIST SP 800-131A Rev.2 §3.
- De goedgekeurde ECDSA-curve en hash-pairing sluit aan op FIPS 186-5 §6.1.1.
- De PKCS#11-token-sign-operatie en sessielogin sluiten aan op PKCS#11 v3.1 §5.
- De verantwoordelijkheid voor sleutelbescherming sluit aan op NIST SP 800-57 Part 1 Rev.5 §5.5.2.
- De uniciteit van de AES-GCM-initialisatievector sluit aan op NIST SP 800-38D §5.
Elke normatieve bron is geparafraseerd. Er wordt geen normatieve tekst gereproduceerd op deze pagina. Deze pagina betreft cryptografisch ondertekenen.
FIPS-modusgedrag
Sectie met titel “FIPS-modusgedrag”Het FIPS-modusbeleid beperkt cryptografische keuzes tot de hierboven beschreven goedgekeurde set. Wanneer het is geconfigureerd tegen een FIPS-gevalideerde OpenSSL-provider, draait de onderliggende primitieve binnen die gevalideerde grens. NextPDF Enterprise zelf voert structurele assemblage, digestberekening en beleidshandhaving uit.
NextPDF Enterprise is geen FIPS-gevalideerde cryptografische module en maakt geen FIPS-certificeringsclaim. NextPDF Enterprise werkt alleen in een FIPS-compatibele modus wanneer het is geconfigureerd met een FIPS-gevalideerde cryptografische provider — bijvoorbeeld een FIPS-gevalideerde OpenSSL-provider — of een FIPS-gevalideerde HSM. Het FIPS-modusbeleid ondersteunt compliance; het is geen certificering.
Editie-grens
Sectie met titel “Editie-grens”NextPDF Core levert de software-ondertekenaar, RFC 3161-tijdstempelconsumptie, RFC 5280-padvalidatie en OCSP- en CRL-revocatiecontrole. Core produceert de PAdES B-B- en B-T-niveaus. NextPDF Pro voegt maskering, PII-detectie op de tekstlaag, sequentiële ondertekening door meerdere partijen en remote- en cloud-KMS-ondertekeningsstrategieën toe (AWS KMS, GCP Cloud KMS, Azure Key Vault). NextPDF Pro biedt geen PKCS#11-hardwaretoken-pad en biedt geen FIPS-modus-crypto-beleidsprofiel. De PKCS#11-hardwaretoken-ondertekenaar, het FIPS-modus-crypto-beleidsprofiel, de power-on-zelftestbewaking en de PAdES B-LT- en B-LTA-producer worden alleen geleverd in het nextpdf/enterprise-pakket. Een implementatie zonder de Enterprise-toekenning laadt de Enterprise-klassen niet.
Pro-terugval
Sectie met titel “Pro-terugval”In een Pro-only-implementatie is het ondersteunde hardware-gebaseerde en cloud-gebaseerde ondertekeningspad de Pro-cloud-KMS-strategie: een cloud-KMS of HSM-gebaseerde KMS bewaart de sleutel, en Pro stuurt de signed-attributes-digest, niet het document, naar de provider. Pro biedt KMS-integratie, niet de Enterprise-PKCS#11-tokenfabriek of het FIPS-modusprofiel. Een configuratie die B-LT, B-LTA, een PKCS#11-token of het FIPS-modusprofiel aanvraagt in een Pro-only-implementatie faalt gesloten met een bericht dat de ontbrekende Enterprise-component benoemt. Zie Security — NextPDF Pro voor het Pro-ondertekeningsoppervlak.
Core-terugval
Sectie met titel “Core-terugval”In een Core-only-implementatie produceert de software-ondertekenaar PAdES B-B en B-T met een lokale sleutel of een sleutel die via het Core-ondertekeningsstrategiecontract wordt aangeleverd. Core heeft geen hardwaretoken-pad en geen FIPS-modusprofiel. Zie Security — NextPDF Core.
Opmerking over de Enterprise-grens
Sectie met titel “Opmerking over de Enterprise-grens”De PKCS#11-tokenintegratie, de mechanisme-mapping ervan en de sessieafhandeling ervan worden alleen op gedragsniveau beschreven. De interne mechanisme-mappingtabel, de interne sessieherstellogica en het post-quantum-migratiemateriaal vallen buiten de scope van het publieke oppervlak en worden hier niet gereproduceerd.
Implementatiegrens
Sectie met titel “Implementatiegrens”NextPDF Enterprise integreert met een PKCS#11-token, een HSM of een KMS. Het slaat de ondertekeningssleutel niet zelf op, genereert die niet en garandeert de beveiliging ervan niet. Sleutelbeveiliging hangt af van het token, de HSM of de KMS, van de implementatie en van de operator — niet van NextPDF Enterprise alleen. De operator is verantwoordelijk voor token-provisioning, PIN-afhandeling, slotconfiguratie, netwerkbescherming van een netwerkgekoppelde HSM en de vertrouwensconfiguratie. De verantwoordelijkheid voor sleutelbescherming volgt NIST SP 800-57 Part 1 Rev.5 §5.5.2. NextPDF Enterprise stelt in deze documentatie geen token-PIN-afhandeling, slotconfiguratie-internals of leverancier-referentiemateriaal beschikbaar.
Juridische-compliancegrens
Sectie met titel “Juridische-compliancegrens”Deze pagina betreft cryptografisch ondertekenen en hardware-security-module-integratie. Het FIPS-modusbeleid is een compliance-ondersteunende functie. Het is geen juridisch oordeel en geen certificering. Raadpleeg je eigen compliance- en juridische adviseurs voor je regelgevingsverplichtingen.
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.
Gedragscontract
Sectie met titel “Gedragscontract”- De FIPS-guard asserteert elke hash, handtekening-OID, encryptiealgoritme en sleutelsterkte tegen de actieve preset en werpt een getypeerde overtreding bij een niet-toegestane keuze.
- De power-on-zelftest draait eenmaal per proces en weigert cryptografische diensten bij een known-answer-test-fout tot een reset.
- De PKCS#11-token-ondertekenaar vereist
ext-pkcs11; deze werpt een getypeerde operatie-uitzondering wanneer de extensie afwezig is. - Het ondertekeningspad is fail-closed en vervangt nooit door een zwakker algoritme.