FIPS 140-2/3 – Kryptorichtlinie und Selbsttest
Auf einen Blick
Abschnitt betitelt „Auf einen Blick“NextPDF Enterprise begrenzt die kryptografischen Auswahlentscheidungen, die bei einer Signier- oder Verschlüsselungsoperation zulässig sind, auf einen nach den Federal Information Processing Standards (FIPS) zugelassenen Satz und verweigert jede abweichende Auswahl. Ein Laufzeit-Guard prüft jeden Hash, jede Signaturalgorithmus-Kennung, jeden Verschlüsselungsalgorithmus und jede Schlüsselstärke, bevor die Operation ausgeführt wird. Eine Power-on-Selbsttest-Batterie wird einmal beim Prozessstart ausgeführt und versetzt das Modul in einen Fehlerzustand, falls ein Known-Answer-Test fehlschlägt. Diese Seite beschreibt das Verhalten: was die Richtlinie erlaubt, was der Guard verweigert, was der Selbsttest abdeckt und welche ausdrückliche Zertifizierungshaltung gilt.
NextPDF Enterprise ist ein Compliance-Unterstützungswerkzeug, kein zertifiziertes kryptografisches Modul. Die ausdrückliche Nicht-Zertifizierungs-Haltung wird unter Sicherheit und Compliance genannt.
Die Voraussetzungen sind im Front Matter aufgeführt und werden unter Voraussetzungen wiederholt.
Edition und Lizenzierung
Abschnitt betitelt „Edition und Lizenzierung“Das FIPS-Modus-Kryptorichtlinienprofil, der Laufzeit-Guard und der Power-on-Selbsttest-Guard sind im Paket nextpdf/enterprise enthalten und werden über das Lizenz-Feature-Flag enterprise freigeschaltet. NextPDF Core und NextPDF Pro stellen kein FIPS-Modus-Profil bereit. Der Guard und der Selbsttest laufen im Prozess; während der Richtlinienprüfung oder des Selbsttests verlässt kein Dokumentinhalt den Host. Editionen vergleichen.
Was diese Funktion leistet
Abschnitt betitelt „Was diese Funktion leistet“Die Funktion besteht aus drei Teilen: einer Kryptorichtlinie, einem Laufzeit-Guard und einem Power-on-Selbsttest.
Die Kryptorichtlinie begrenzt kryptografische Auswahlentscheidungen auf einen zugelassenen Satz mit zwei Voreinstellungen:
- Strict (an der FIPS 140-3-Generation ausgerichtet) — SHA-256-, SHA-384- und SHA-512-Hashes; RSA- und ECDSA-Signaturobjektkennungen (OIDs) mit diesen Hashes; AES-256-CBC-Verschlüsselung; sowie Mindestschlüsselgrößen von RSA 2048 und Elliptic-Curve 256.
- Standard (an der FIPS 140-2-Generation ausgerichtet) — identisch mit strict, erlaubt jedoch zusätzlich AES-128-CBC für Legacy-Interoperabilität.
Ein RSA-Schlüssel von mindestens 2048 Bit und eine ECDSA-Ordnung von mindestens 224 Bit sind gemäß NIST SP 800-131A Rev.2 §3 die akzeptablen Mindestwerte für die Signaturerzeugung; die 2048/256-Untergrenzen der Voreinstellung strict liegen auf oder über diesen Mindestwerten. Ein unbekannter Schlüsseltyp wird standardmäßig abgelehnt — die Richtlinie akzeptiert einen nicht erkannten Typ nicht stillschweigend.
Der Laufzeit-Guard umschließt die Richtlinie und stellt Assert-Methoden für einen Hash, eine Signatur-OID, einen Verschlüsselungsalgorithmus und eine Schlüsselstärke bereit. Eine unzulässige Auswahl löst eine typisierte Verletzung aus, die die Richtlinie und das beanstandete Element benennt, und stoppt die Operation. Der Pfad ist fail-closed: Die Richtlinie lockert sich niemals selbst und ersetzt niemals einen Algorithmus durch einen schwächeren. Bei einer RSASSA-PSS-Signatur bindet das Erzeugungs-Gate den Message-Digest ausdrücklich: Da jede PSS-Variante dieselbe Signatur-OID verwendet — der Hash liegt in den PSS-Parametern, nicht in der OID —, kann die OID-Allowlist allein den wirksamen Digest nicht nachweisen. Deshalb prüft das Gate, ob dieser Digest FIPS-zugelassen ist (SHA-256/384/512), und lehnt ein PSS-Token, dessen Digest unbekannt oder nicht zugelassen ist, zum Beispiel SHA-1 PSS, vor jedem Signierer-Dispatch fail-closed ab (FIPS 186-5 §5.4(b)).
Der Power-on-Selbsttest führt einmal beim Prozessstart eine Known-Answer-Test-Batterie (KAT) aus, die die zugelassenen Hash-, Nachrichtenauthentifizierungs-, Verschlüsselungs-, Authenticated-Encryption-, Signatur- und Zufallsbitfunktionen abdeckt. Ein Known-Answer-Test schlägt gemäß ISO/IEC 19790:2025 §7.10.4.2 fehl, wenn die berechnete Ausgabe nicht der bekannten Antwort entspricht. Bei einem Fehlschlag wechselt das Modul in einen Fehlerzustand und verweigert kryptografische Dienste (ISO/IEC 19790:2025 §7.2.4.3). Der Fehlerzustand ist prozessgebunden: Sobald irgendein Boot-Guard im Prozess einen Fehler feststellt, bleibt der gesamte Prozess während seiner gesamten Lebensdauer fail-closed. Das Erstellen eines frischen Boot-Guards oder einer frischen Richtlinie kann diesen Zustand nicht bereinigen, und ein anschließender bestandener Wiederholungslauf des Selbsttests setzt einen verriegelten Fehler nicht zurück — dies leistet nur ein Prozessneustart (ein echter Power-Cycle), gemäß ISO/IEC 19790:2025 §7.10.2. Das Ergebnis wird für die Prozesslebensdauer zwischengespeichert; ein On-Demand-Wiederholungslauf ist für einen Admin-Endpunkt oder einen Befehl verfügbar, dient aber der Pflicht zum periodischen Selbsttest, nicht der Fehlerbehebung.
Die Verwendung von Authenticated Encryption im Rahmen der Richtlinie erfordert gemäß NIST SP 800-38D §5.2.1 einen eindeutigen Initialisierungsvektor (IV) pro Schlüssel.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Installieren Sie NextPDF Core und das Enterprise-Paket und halten Sie eine aktive Enterprise-Lizenz bereit.
- Um einen FIPS-kompatiblen Betrieb zu beanspruchen, konfigurieren Sie NextPDF so, dass es einen FIPS-validierten kryptografischen Provider — zum Beispiel einen FIPS-validierten OpenSSL-Provider — oder ein FIPS-validiertes HSM verwendet. NextPDF Enterprise führt die strukturelle Zusammenstellung, die Digest-Berechnung und die Richtliniendurchsetzung aus; die zugrunde liegende Primitive läuft innerhalb der validierten Grenze, die Sie bereitstellen.
- Entscheiden Sie sich für die Voreinstellung: strict für eine an FIPS 140-3 ausgerichtete Durchsetzung oder standard, wenn AES-128-CBC-Interoperabilität erforderlich ist.
Konfiguration
Abschnitt betitelt „Konfiguration“- Voreinstellung — wählen Sie strict oder standard. Strict erlaubt nur AES-256-CBC; standard erlaubt zusätzlich AES-128-CBC.
- Guard — erstellen Sie den Guard mit der gewählten Richtlinie. Der Guard ist die Grenze, an der Sie jede kryptografische Auswahl prüfen.
- Selbsttest-Verdrahtung — binden Sie den Boot-Guard beim Anwendungs-Bootstrap ein, sodass jeder Worker-Prozess seinen eigenen Selbsttest-Zyklus durchläuft. Mehrere Prozessinstanzen führen jeweils ihren eigenen Power-on-Selbsttest aus.
Schritt für Schritt
Abschnitt betitelt „Schritt für Schritt“- Führen Sie beim Anwendungs-Bootstrap den Power-on-Selbsttest über den Boot-Guard aus und stellen Sie sicher, dass das Modul betriebsbereit ist. Stoppen Sie den Prozess, falls dies nicht der Fall ist.
- Konstruieren Sie den Guard mit der Richtlinie strict oder standard.
- Prüfen Sie vor jeder kryptografischen Operation den Hash, die Signatur-OID, den Verschlüsselungsalgorithmus und die Schlüsselstärke mit dem Guard.
- Fangen Sie die typisierte Verletzung ab, protokollieren Sie eine strukturierte Meldung und verweigern Sie die Operation — greifen Sie nicht auf eine schwächere Auswahl zurück.
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Enterprise\Security\Fips\FipsBootGuard;use NextPDF\Enterprise\Security\Fips\FipsCryptoPolicy;use NextPDF\Enterprise\Security\Fips\FipsModeGuard;use NextPDF\Enterprise\Security\Fips\FipsSelfTest;use NextPDF\Enterprise\Security\Fips\FipsModuleErrorStateException;use Psr\Log\LoggerInterface;
/** * Run the power-on self-test, then build a guard on the strict policy. * * The self-test runs once per process. A known-answer failure raises a * module-error-state exception; the caller must stop rather than proceed * with an unverified crypto path. * * @param LoggerInterface $logger Structural diagnostics only — never secrets. * * @throws FipsModuleErrorStateException When a power-on known-answer test fails. * * @return FipsModeGuard A guard ready to assert each cryptographic choice. */function bootFipsGuard(LoggerInterface $logger): FipsModeGuard{ $bootGuard = new FipsBootGuard(new FipsSelfTest());
try { $bootGuard->assertOperational(); } catch (FipsModuleErrorStateException $e) { $logger->critical('FIPS power-on self-test failed; refusing crypto services.', [ 'reason' => $e->getMessage(), ]);
throw $e; }
return new FipsModeGuard(FipsCryptoPolicy::strict());}<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Enterprise\Security\Fips\FipsModeGuard;use NextPDF\Enterprise\Security\Fips\FipsViolationException;use Psr\Log\LoggerInterface;
final readonly class FipsCheckedSigning{ public function __construct( private FipsModeGuard $guard, private LoggerInterface $logger, ) {}
/** * Assert the signing choices against the active policy before signing. * * A disallowed hash, signature OID, or key strength raises a typed * violation; the operation is refused rather than downgraded. * * @param string $hash The hash algorithm name (e.g. 'sha256'). * @param string $signatureOid The signature algorithm OID. * @param string $keyType The key type (e.g. 'rsa', 'ec'). * @param positive-int $keyBits The key length in bits. * * @throws FipsViolationException When any choice is not approved. */ public function assertApproved( string $hash, string $signatureOid, string $keyType, int $keyBits, ): void { try { $this->guard->assertHashAllowed($hash); $this->guard->assertSignatureAlgorithmAllowed($signatureOid); $this->guard->assertKeyStrengthAllowed($keyType, $keyBits); } catch (FipsViolationException $e) { $this->logger->error('FIPS policy violation', ['reason' => $e->getMessage()]);
throw $e; } }}Verifizierung
Abschnitt betitelt „Verifizierung“- Führen Sie den Power-on-Selbsttest aus und bestätigen Sie, dass er Betriebsbereitschaft meldet. Bestätigen Sie, dass jede zugelassene Algorithmusklasse — Hash, Nachrichtenauthentifizierung, Verschlüsselung, Authenticated Encryption, Signatur und Zufallsbit — ausgeführt wird.
- Prüfen Sie eine zugelassene Auswahl (zum Beispiel SHA-256, RSA 2048) und bestätigen Sie, dass sie erfolgreich ist; prüfen Sie eine unzulässige Auswahl (zum Beispiel SHA-1, RSA 1024) und bestätigen Sie, dass sie eine typisierte Verletzung auslöst.
- Injizieren Sie einen absichtlich defekten Hash oder eine absichtlich defekte Zufallsquelle in den Selbsttest und bestätigen Sie, dass das Modul in den Fehlerzustand eintritt und Dienste verweigert.
- Bestätigen Sie, dass ein unbekannter Schlüsseltyp standardmäßig abgelehnt statt akzeptiert wird.
Sicherheit und Compliance
Abschnitt betitelt „Sicherheit und Compliance“- Fail-closed. Eine unzulässige kryptografische Auswahl löst eine typisierte Verletzung aus und stoppt die Operation. Die Richtlinie lockert sich niemals selbst und ersetzt niemals einen Algorithmus durch einen schwächeren.
- Selbsttest verweigert bei Abweichung. Ein Known-Answer-Test-Fehlschlag versetzt das Modul in einen prozessgebundenen Fehlerzustand. Der gesamte Prozess bleibt fail-closed; ein frischer Boot-Guard oder eine frische Richtlinie kann ihn nicht wiederherstellen, und ein bestandener Wiederholungslauf hebt die Verriegelung nicht auf — nur ein Prozessneustart setzt sie zurück (ISO/IEC 19790:2025 §7.10.4.2; §7.10.2).
- Schlüsselstärke. Die Voreinstellung strict erzwingt Mindestwerte von RSA 2048 und Elliptic-Curve 256, die auf oder über den akzeptablen Untergrenzen von NIST SP 800-131A Rev.2 §3 liegen.
- IV-Eindeutigkeit. Die Verwendung von Authenticated Encryption erfordert einen eindeutigen IV pro Schlüssel (NIST SP 800-38D §5.2.1).
Diese Seite ist mit export_control_class: legal-review-required gekennzeichnet, weil sie kryptografische Richtlinien betrifft. Jede normative Quelle ist paraphrasiert; kein normativer Text wird wiedergegeben. Eine rechtliche Freigabe ist erforderlich, bevor das Flag publish gesetzt wird.
NextPDF Enterprise ist kein FIPS-validiertes kryptografisches Modul und erhebt keinen FIPS-Zertifizierungsanspruch. Es arbeitet nur dann in einem FIPS-kompatiblen Modus, wenn es mit einem FIPS-validierten kryptografischen Provider — zum Beispiel einem FIPS-validierten OpenSSL-Provider — oder einem FIPS-validierten HSM konfiguriert ist. Die FIPS-Modus-Richtlinie unterstützt die Compliance; sie ist keine Zertifizierung und kein Rechtsgutachten. Konsultieren Sie zu Ihren regulatorischen Pflichten Ihre eigenen Compliance- und Rechtsberater.
Fehlerbehandlung
Abschnitt betitelt „Fehlerbehandlung“- Selbsttest-Fehlschlag beim Boot. Der Boot-Guard löst eine Module-Error-State-Ausnahme aus. Stoppen Sie den Prozess; fahren Sie nicht mit einem nicht verifizierten Kryptopfad fort.
- Richtlinienverletzung. Der Guard löst eine typisierte Verletzung aus, die die Richtlinie und das beanstandete Element benennt. Verweigern Sie die Operation; nehmen Sie kein Downgrade vor.
- Unbekannter Schlüsseltyp. Die Richtlinie lehnt ihn standardmäßig ab. Bilden Sie den Schlüsseltyp ausdrücklich ab, wenn er tatsächlich zugelassen ist.
- Selbsttest-Wiederholungslauf. Ein Wiederholungslauf ist bei Bedarf für einen Admin-Endpunkt oder einen Befehl verfügbar und erfüllt die Pflicht zum periodischen On-Demand-Selbsttest. Er ist kein Wiederherstellungsmechanismus: Ein fehlgeschlagener Wiederholungslauf verriegelt den Prozess ebenfalls, und ein bestandener Wiederholungslauf hebt eine bestehende Verriegelung nicht auf. Die Wiederherstellung eines Moduls im Fehlerzustand erfordert einen Prozessneustart.
Kommerzieller Kontext
Abschnitt betitelt „Kommerzieller Kontext“NextPDF Core liefert den Software-Signierer und die Verschlüsselung ohne FIPS-Modus-Profil. NextPDF Enterprise ergänzt das FIPS-Modus-Kryptorichtlinienprofil, den Laufzeit-Guard und den Power-on-Selbsttest-Guard, sodass ein Deployment kryptografische Auswahlentscheidungen auf einen zugelassenen Satz begrenzen und bei einer Selbsttest-Abweichung fail-closed fehlschlagen kann. Kombinieren Sie es mit HSM-Signierung, um die Primitive innerhalb eines FIPS-validierten Geräts auszuführen. Editionen vergleichen.
Siehe auch
Abschnitt betitelt „Siehe auch“- Sicherheit — NextPDF Enterprise — die kombinierte Enterprise-Sicherheitsoberfläche.
- HSM-Signierung — NextPDF Enterprise — PKCS#11-Hardware-Schlüsselverwahrung.
- Signatur — NextPDF Enterprise — der Langzeiterzeuger für PAdES B-LT und B-LTA.
- Sicherheit — NextPDF Core — die Kern-Verschlüsselungs- und -Signaturoberfläche.
- FIPS-Modus · KAT · AEAD — Glossarbegriffe.