Enterprise edycja
Security — szczegółowa referencja (HSM, PKCS#11, tryb FIPS)
W skrócie
Dział zatytułowany „W skrócie”Ta strona to połączona szczegółowa referencja powierzchni bezpieczeństwa NextPDF Enterprise. Obejmuje podpisywanie tokenem sprzętowym przez PKCS#11, podpisywanie w podprocesie przez interfejs wiersza poleceń OpenSSL (CLI), ustawienia wstępne polityki kryptograficznej FIPS, zabezpieczenie FIPS w czasie wykonywania oraz zabezpieczenie autotestem przy uruchomieniu. Istnieją dwa dedykowane opracowania towarzyszące: HSM — szczegółowa referencja dla szczegółów modułu podpisującego oraz FIPS 140 — szczegółowa referencja dla szczegółów modułu FIPS. Ścieżka podpisywania postkwantowego jest wersją zapoznawczą bez deklaracji zgodności. NextPDF nie posiada żadnej certyfikacji i żadnej nie udziela; wsparcie nie oznacza zgodności, a zgodność nie oznacza certyfikacji.
Dostępność i licencjonowanie
Dział zatytułowany „Dostępność i licencjonowanie”Ta funkcjonalność jest dostarczana w NextPDF Enterprise (nextpdf/enterprise) i aktywuje się z kopertą licencyjną poziomu Enterprise. Wdrożenie bez tego uprawnienia nie ładuje klas tej funkcjonalności. Porównaj edycje i uzyskaj licencję.
Powierzchnia publicznego API
Dział zatytułowany „Powierzchnia publicznego API”composer require nextpdf/enterprise:^3Typy podpisywania znajdują się w NextPDF\Enterprise\Security\Signature\Hsm; typy FIPS znajdują się w NextPDF\Enterprise\Security\Fips; korzeń kompozycji znajduje się w NextPDF\Enterprise\Bootstrap. Oba moduły podpisujące implementują kontrakt Core NextPDF\Contracts\HsmSignerInterface. Polityka implementuje kontrakty Core NextPDF\Contracts\CryptoPolicyInterface oraz NextPDF\Contracts\PreOperationalSelfTestInterface.
| Symbol | Parametry | Zachowanie domyślne | Zwraca | Zgłasza lub kończy się niepowodzeniem z | Uwagi |
|---|---|---|---|---|---|
Pkcs11Signer::__construct() | string $libraryPath, int $slotId, string $pin, string $certLabel, ?string $keyLabel = null, array $chainDer = [], bool $enablePostQuantum = false, ?FipsSignatureEnforcer $fipsEnforcer = null | Otwiera bibliotekę dostawcy, loguje się do slotu, ładuje certyfikat i metadane algorytmu klucza | — | HsmOperationException, gdy brakuje ext-pkcs11 lub dostęp do tokenu zawodzi | PIN i etykiety są #[SensitiveParameter]; jeden uchwyt modułu jest buforowany na ścieżkę biblioteki na proces |
Pkcs11Signer::isAvailable() | Brak | Zgłasza, czy ext-pkcs11 jest załadowane | bool | Brak | Statyczna; sprawdź przed konstrukcją |
Pkcs11Signer::sign() | string $data, string $algorithm = 'sha256WithRSAEncryption' | Podpisuje na tokenie; surowe wyjście ECDSA jest konwertowane do DER ECDSA-Sig-Value | string surowe bajty podpisu | HsmOperationException (nie znaleziono klucza, awaria tokenu); InvalidArgumentException (nieodwzorowany algorytm); FipsViolationException / FipsModuleErrorStateException przed podpisaniem, gdy podłączono egzekutor | Zamknięty zbiór algorytmów; zobacz sekcję Kontrakt zachowania |
Pkcs11Signer::signPqs() | string $data, Pkcs11PqsAlgorithm $algorithm, string $context = '', bool $randomized = true | Odrzucane, jeśli nie ustawiono $enablePostQuantum; wywołuje tymczasowy postkwantowy mechanizm PKCS#11 | string surowe bajty podpisu | HsmOperationException (wyłączone, awaria tokenu, niezgodność długości podpisu); InvalidArgumentException (kontekst powyżej 255 bajtów) | Wersja zapoznawcza; brak deklaracji zgodności |
Pkcs11Signer powierzchnia akcesorów | Brak | Wyniki konstrukcji tylko do odczytu | bool / string / array<string> | Brak | isPostQuantumEnabled, getCertificateDer, getCertificateChainDer, getPublicKeyAlgorithm |
OpenSslCliSigner::__construct() | string $keyUri, string $certPath, string $pin, array $extraCertPaths = [], OpenSslCliBackend $backend = OpenSslCliBackend::Auto, string $opensslBinary = 'openssl', int $timeoutSeconds = 30, ?string $modulePath = null, ?string $configPath = null, bool $legacyPinDelivery = false, ?FipsSignatureEnforcer $fipsEnforcer = null | Weryfikuje proc_open, sonduje binarium, rozwiązuje backend, ładuje certyfikaty | — | HsmOperationException (proc_open wyłączone, brakujący plik modułu/konfiguracji/certyfikatu, brak backendu); InvalidArgumentException (pin-value wewnątrz $keyUri) | Auto preferuje dostawcę OpenSSL 3.x, następnie silnik |
OpenSslCliSigner::sign() | string $data, string $algorithm = 'sha256WithRSAEncryption' | Podpisuje w podprocesie openssl; PIN domyślnie przechodzi przez efemeryczny plik źródłowy PIN o uprawnieniach 0600 | string surowe bajty podpisu | HsmOperationException (przekroczenie limitu czasu, odrzucony PIN, nie znaleziono klucza, puste wyjście); InvalidArgumentException (nieodwzorowany algorytm); wyjątki bramki FIPS przed podpisaniem | Podproces jest zabijany po $timeoutSeconds; stderr jest redagowane |
OpenSslCliSigner powierzchnia akcesorów | Brak | Wyniki konstrukcji tylko do odczytu | string / array<string> / OpenSslCliBackend | Brak | getCertificateDer, getCertificateChainDer, getPublicKeyAlgorithm, getCertificatePem, getResolvedBackend, getOpensslVersion |
OpenSslCliBackend | — | Enum: Provider, Engine, Auto | — | Brak | Wybór backendu dla modułu podpisującego CLI |
Pkcs11PqsAlgorithm | — | Enum zestawów parametrów ML-DSA i SLH-DSA | — | Brak | Pomocnicze: isMlDsa, isSlhDsa, mechanismId, parameterSetId, signatureLength, nistCategory |
PqsCapabilityStatus::current() | Brak | Buduje rzetelną postawę postkwantową dla procesu | PqsCapabilityStatus | Brak | Każda wartość logiczna deklaracji zgodności jest zakodowana na sztywno jako false; żadna flaga nie może jej włączyć |
HsmSignerProviderAdapter | HsmSignerInterface $hsm, string $providerId, SignatureAlgorithm $algorithm = SignatureAlgorithm::Pkcs1v15 | Udostępnia konkretną implementację HSM jako ujednolicony SignerProviderInterface | Zgodnie z SPI | KeyManagementException (niepusta wersja klucza); SignatureFailedException (awaria sterownika, pusty podpis) | Identyfikatory dostawców: pkcs11-{module-id}, openssl-cli |
HsmOperationException | — | Typowane niepowodzenie dla każdej ścieżki podpisywania HSM | — | — | Rozszerza Core NextPdfException |
FipsCryptoPolicy::strict() / ::standard() | ?FipsSelfTest $selfTest = null | Ustawienia wstępne fabryki; strict to profil FIPS 140-3, standard dodaje AES-128-CBC | FipsCryptoPolicy | Brak | Niezmienne listy dozwolonych; zobacz Zachowanie w trybie FIPS |
FipsCryptoPolicy powierzchnia predykatów | wejścia string / int | Sprawdzenia przynależności do listy dozwolonych | bool / string | Brak | isHashAlgorithmAllowed, isSignatureAlgorithmAllowed, isEncryptionAlgorithmAllowed, isKeyStrengthAllowed, getPreferredHashAlgorithm, getName |
FipsCryptoPolicy::assertPreOperational() | Brak | Uruchamia (lub odtwarza) autotest przy uruchomieniu | void | FipsModuleErrorStateException | Sterowane przez szew egzekwowania Core przy pierwszej operacji kryptograficznej |
FipsModeGuard::__construct() | CryptoPolicyInterface $policy, ?FipsBootGuard $bootGuard = null, ?FipsAuditLogger $auditLogger = null | Opakowuje politykę granicami w stylu asercji | — | Brak | Bez zabezpieczenia rozruchowego bramka autotestu jest nieobecna (tylko polityka) |
FipsModeGuard powierzchnia asercji | wejścia string / int | Najpierw katalog odmów, następnie lista dozwolonych; rekord audytu przed jakimkolwiek zgłoszeniem | void | FipsViolationException; FipsModuleErrorStateException (podłączone zabezpieczenie rozruchowe) | assertHashAllowed, assertSignatureAlgorithmAllowed, assertEncryptionAllowed, assertKeyStrengthAllowed oraz getPolicy |
FipsBootGuard::report() / ::rerun() | Brak | Uruchamia baterię autotestów (buforowaną / wymuszoną) | FipsSelfTestReport | Brak | Raport ERROR blokuje proces; pomyślne ponowne uruchomienie nigdy nie zwalnia blokady |
FipsBootGuard::assertOperational() | Brak | Asercjonuje, że moduł jest OPERATIONAL | void | FipsModuleErrorStateException | Trwałe: zablokowany w procesie stan ERROR odrzuca nawet czystą instancję |
FipsBootGuard::status() | Brak | Zgłasza buforowany status | FipsSelfTestStatus | Brak | PRE_OPERATIONAL, OPERATIONAL lub ERROR |
FipsSelfTest::run() | Brak | Wykonuje pełną baterię testów znanej odpowiedzi; nigdy nie przerywa wcześniej | FipsSelfTestReport | Brak | Konstruktor przyjmuje wstrzykiwalnych dostawców skrótu i losowych bajtów do testów deterministycznych |
FipsSelfTestReport / FipsSelfTestResult / FipsSelfTestStatus | — | Obiekty wartości raportu oraz enum statusu | — | FipsSelfTestReport::assertOperational() zgłasza FipsModuleErrorStateException | results zawsze wymienia każdy wynik jako dowód audytowy |
FipsSignatureEnforcer::assertSignatureGenerationAllowed() | string $algorithm, string $certificatePem | Rozwiązuje OID podpisu oraz siłę klucza, następnie deleguje do zabezpieczenia | void | FipsViolationException (niedozwolone lub niesklasyfikowalne, fail-closed) | Punkt kontrolny, który oba moduły podpisujące wywołują na początku sign() w trybie FIPS |
FipsAuditLogger | CryptoPolicyInterface $policy, LoggerInterface $logger | Emituje rekordy ALLOW (INFO) / DENY (WARNING) na decyzję | bool na wywołanie logowania | Brak | logHashOperation, logSignatureOperation, logEncryptionOperation, logKeyStrengthCheck |
FipsTransitioningAlgorithms | wejścia string / int | Statyczny katalog odmów NIST SP 800-131A | bool / array | Brak | Warstwa jawnych odmów pod każdą granicą zabezpieczenia |
FipsBootstrap::boot() / ::lazy() | ?CryptoPolicyInterface $policy = null, ?FipsSelfTest $selfTest = null, ?LoggerInterface $auditLogger = null | Komponuje zabezpieczenie rozruchowe, politykę oraz zabezpieczenie trybu; boot() uruchamia autotest natychmiast, lazy() odracza go do pierwszej granicy | FipsModeGuard | boot(): FipsModuleErrorStateException przy nieudanym teście | Domyślnie polityka strict |
FipsBootstrap::signatureEnforcer() | ?CryptoPolicyInterface $policy = null, ?FipsSelfTest $selfTest = null | Uruchamia moduł i zwraca bramkę czasu generowania dla modułów podpisujących | FipsSignatureEnforcer | FipsModuleErrorStateException | Przekaż wynik do parametru $fipsEnforcer modułu podpisującego |
FipsBootstrap::selfTestReport() | ?FipsSelfTest $selfTest = null | Uruchamia baterię na żądanie i ją podsumowuje | array{status, operational, failed} | Brak | Przeznaczone dla punktów końcowych kondycji oraz podpolecenia CLI |
FipsViolationException / FipsModuleErrorStateException | — | Typowane niepowodzenia FIPS | — | — | Udostępniają odpowiednio policyName / violatingItem / reason oraz failedResults |
public function __construct(private readonly string $libraryPath, private readonly int $slotId, #[SensitiveParameter] private readonly string $pin, #[SensitiveParameter] private readonly string $certLabel, #[SensitiveParameter] private readonly ?string $keyLabel = null, array $chainDer = [], private readonly bool $enablePostQuantum = false, ?FipsSignatureEnforcer $fipsEnforcer = null)public static function isAvailable(): boolpublic function sign(string $data, string $algorithm = 'sha256WithRSAEncryption'): stringpublic function signPqs(string $data, Pkcs11PqsAlgorithm $algorithm, string $context = '', bool $randomized = true): stringpublic function __construct(private string $keyUri, string $certPath, #[SensitiveParameter] private string $pin, array $extraCertPaths = [], private OpenSslCliBackend $backend = OpenSslCliBackend::Auto, private string $opensslBinary = 'openssl', private int $timeoutSeconds = 30, private ?string $modulePath = null, private ?string $configPath = null, private bool $legacyPinDelivery = false, private ?FipsSignatureEnforcer $fipsEnforcer = null)public function sign(string $data, string $algorithm = 'sha256WithRSAEncryption'): stringpublic static function strict(?FipsSelfTest $selfTest = null): selfpublic static function standard(?FipsSelfTest $selfTest = null): selfpublic function assertPreOperational(): voidpublic function __construct(private CryptoPolicyInterface $policy, private ?FipsBootGuard $bootGuard = null, private ?FipsAuditLogger $auditLogger = null)public function assertHashAllowed(string $algorithm): voidpublic function assertSignatureAlgorithmAllowed(string $oid): voidpublic function assertEncryptionAllowed(string $algorithm): voidpublic function assertKeyStrengthAllowed(string $keyType, int $bitLength): voidpublic function getPolicy(): CryptoPolicyInterfacepublic static function boot(?CryptoPolicyInterface $policy = null, ?FipsSelfTest $selfTest = null, ?LoggerInterface $auditLogger = null): FipsModeGuardpublic static function lazy(?CryptoPolicyInterface $policy = null, ?FipsSelfTest $selfTest = null, ?LoggerInterface $auditLogger = null): FipsModeGuardpublic static function signatureEnforcer(?CryptoPolicyInterface $policy = null, ?FipsSelfTest $selfTest = null): FipsSignatureEnforcerpublic static function selfTestReport(?FipsSelfTest $selfTest = null): arrayKontrakt zachowania
Dział zatytułowany „Kontrakt zachowania”- Rozwiązywanie kontraktu. Oba moduły podpisujące implementują Core
HsmSignerInterface; polityka implementuje CoreCryptoPolicyInterface. Kod wywołujący zależy od kontraktów, więc uaktualnienie edycji zmienia kompozycję, a nie miejsca wywołań. - Piecza nad kluczem. Klucz prywatny nigdy nie opuszcza granicy tokenu.
Pkcs11Signerdeleguje operację do tokenu;OpenSslCliSignerprzekazuje do podprocesu odwołanie do klucza w postaci URI PKCS#11. NextPDF nie przechowuje, nie generuje ani nie gwarantuje bezpieczeństwa klucza podpisującego. Ochrona klucza jest obowiązkiem pieczy operatora (NIST SP 800-57 Part 1 Rev.5 §5.5.2). - Sesja i logowanie. Operacja podpisywania tokenu, sesja oraz logowanie użytkownika są zgodne z PKCS#11 v3.1 §5. Etykieta certyfikatu oraz etykieta klucza prywatnego mogą się różnić; konstruktor przyjmuje osobną etykietę klucza dla takich tokenów.
- Zamknięty zbiór algorytmów. Moduły podpisujące akceptują dokładnie: RSA PKCS#1 v1.5 z SHA-256/384/512, RSASSA-PSS z SHA-256/384/512 oraz ECDSA z SHA-256/384/512 (
Pkcs11Signerakceptuje dodatkowoecdsa-raw). Każdy inny identyfikator zgłaszaInvalidArgumentException; żaden zastępczy algorytm nigdy nie jest podpisywany. - Powiązanie soli PSS. Dla każdego wariantu PSS długość soli równa się długości skrótu — 32, 48 lub 64 bajty — a parametry skrótu i generowania maski odpowiadają wybranemu skrótowi (PKCS#11 v3.1 §5).
- Konwersja ECDSA. Mechanizmy tokenu ECDSA zwracają surowy podpis;
sign()konwertuje go do formyECDSA-Sig-Valuezakodowanej w DER na potrzeby interoperacyjności z PDF i OpenSSL. Generowanie podpisu jest zgodne z FIPS 186-5 §6.3.2. - Zawartość ustawień wstępnych. Ustawienie wstępne strict dopuszcza SHA-256/384/512; identyfikatory OID podpisu RSA i ECDSA z tymi skrótami; RSASSA-PSS; AES-256-CBC oraz AES-256-GCM; minimalne RSA 2048 oraz EC 256. Ustawienie wstępne standard dodatkowo dopuszcza AES-128-CBC dla starszej interoperacyjności. Każde użycie AES-GCM wymaga unikalnego wektora inicjującego dla każdego klucza (NIST SP 800-38D §5).
- Dwuwarstwowe egzekwowanie. Każda granica zabezpieczenia konsultuje najpierw jawny katalog odmów NIST SP 800-131A, a następnie listę dozwolonych polityki. Warstwa odmów wytwarza wyraźny w audycie sygnał „niedozwolone”; lista dozwolonych pozostaje rozstrzygająca.
- Autotest przy uruchomieniu. Bateria obejmuje SHA-256/384/512, HMAC-SHA-256, AES-256-CBC, AES-256-GCM, test parowej spójności ECDSA P-256 oraz kontrolę kondycji bitów losowych. Pierwsza operacja kryptograficzna pod polityką na ścieżce Core uruchamia ją raz na proces, w trybie fail-closed. Niepowodzenie wprowadza moduł w stan ERROR; usługi kryptograficzne są odmawiane do czasu zresetowania. Jest to zgodne z ISO/IEC 19790:2025 §7.10, §7.10.2, §7.10.3 oraz §7.10.3.p3.
- Trwały stan ERROR. Zaobserwowany stan ERROR blokuje cały proces. Skonstruowanie nowej polityki lub zabezpieczenia rozruchowego nie może go wyprać; pomyślne ponowne uruchomienie go nie zwalnia. Tylko ponowne uruchomienie procesu — prawdziwy cykl zasilania — resetuje stan.
- Tylko bramka generowania.
FipsSignatureEnforcerzarządza wytwarzaniem nowych podpisów. Walidacja istniejących wcześniej podpisów jest użyciem starszym i nigdy nie przechodzi przez egzekutor. - Ślad audytowy. Gdy zabezpieczenie jest skomponowane z rejestratorem audytu, każda granica emituje rekord ALLOW lub DENY przed zezwoleniem na operację lub jej odrzuceniem. Rejestrator konsultuje tę samą politykę, którą egzekwuje zabezpieczenie, więc zarejestrowana decyzja nie może się rozejść.
Przypadki brzegowe i tryby awarii
Dział zatytułowany „Przypadki brzegowe i tryby awarii”- Skonstruowanie
Pkcs11Signerbezext-pkcs11natychmiast zgłaszaHsmOperationException; rozszerzenie nie jest dołączane do standardowych dystrybucji PHP. - Etykieta certyfikatu lub klucza prywatnego niepasująca do żadnego obiektu tokenu zgłasza
HsmOperationExceptionz nazwą brakującej klasy obiektu. OpenSslCliSignerodmawia przy konstrukcji$keyUrizawierającegopin-value, w trybie fail-closed; PIN przechodzi zamiast tego przez bezpieczną ścieżkę źródła PIN.- W trybie FIPS identyfikator algorytmu, którego nie można odwzorować na znany OID podpisu, jest odrzucany w trybie fail-closed; tak samo certyfikat, którego siły klucza publicznego nie da się ustalić.
- Nieznany typ klucza jest domyślnie odrzucany; polityka nigdy nie cofa się do słabszego algorytmu.
- Nieudany test znanej odpowiedzi zgłasza
FipsModuleErrorStateExceptionniosący nieudane wyniki; każda późniejsza granica w procesie powtarza niepowodzenie aż do ponownego uruchomienia. - Zabezpieczenie skonstruowane bez zabezpieczenia rozruchowego egzekwuje listy dozwolonych, ale nie zapewnia bramki autotestu; produkcyjna kompozycja FIPS dostarcza ją przez bootstrap.
signPqs()odmawia uruchomienia, jeśli nie ustawiono opcjonalnego włączenia w konstruktorze. Ciąg kontekstu powyżej 255 bajtów zgłaszaInvalidArgumentException(FIPS 204 §5.4). Zwrócony podpis, którego długość w bajtach nie odpowiada wybranemu zestawowi parametrów, jest odrzucany, zanim dotrze do kodowania.
Zachowanie w trybie FIPS
Dział zatytułowany „Zachowanie w trybie FIPS”Dozwolone w FIPS w trybie strict: SHA-256/384/512; RSA PKCS#1 v1.5 oraz RSA-PSS z tymi skrótami; ECDSA z tymi skrótami; AES-256-CBC oraz AES-256-GCM; RSA co najmniej 2048 bitów, EC co najmniej 256 bitów. Odrzucane w FIPS w trybie strict: słabsze lub starsze skróty, niezatwierdzone identyfikatory OID podpisu, AES-128 (dozwolone wyłącznie w ustawieniu wstępnym standard) oraz każdy klucz poniżej minimalnej siły. Minimalna długość klucza RSA oraz status przejściowy są zgodne z NIST SP 800-131A Rev.2 §3. Dobór krzywej i skrótu ECDSA jest zgodny z FIPS 186-5 §6.1.1. Ścieżka działa w trybie fail-closed i nigdy nie zastępuje algorytmu słabszym.
NextPDF Enterprise nie jest modułem kryptograficznym zwalidowanym zgodnie z FIPS i nie wysuwa żadnej deklaracji certyfikacji FIPS. NextPDF Enterprise działa w trybie zgodnym z FIPS wyłącznie wtedy, gdy jest skonfigurowany z dostawcą kryptografii zwalidowanym zgodnie z FIPS — na przykład dostawcą OpenSSL zwalidowanym zgodnie z FIPS — lub z HSM zwalidowanym zgodnie z FIPS. Polityka trybu FIPS wspomaga zgodność; nie jest certyfikacją. W tym repozytorium nie istnieje żaden artefakt certyfikacji FIPS.
Zgodność
Dział zatytułowany „Zgodność”| Deklaracja | Standard | Klauzula |
|---|---|---|
| Semantyka operacji podpisywania tokenu, sesji oraz logowania użytkownika | PKCS#11 v3.1 | §5 (sign) |
| Długość soli PSS równa długości skrótu | PKCS#11 v3.1 | §5 (PSS sLen) |
| Generowanie podpisu ECDSA; dobór krzywej i skrótu | FIPS 186-5 | §6.3.2; §6.1.1 |
| Minimalna długość klucza RSA oraz status przejściowy generowania podpisu | NIST SP 800-131A Rev.2 | §3 |
| Kategoria autotestu, dokumentacja, wyzwalacz warunkowy, zbiór rozłączny | ISO/IEC 19790:2025 | §7.10, §7.10.2, §7.10.3, §7.10.3.p3 |
| Unikalność wektora inicjującego AES-GCM | NIST SP 800-38D | §5 |
| Ochrona klucza i obowiązki pieczy | NIST SP 800-57 Part 1 Rev.5 | §5.5.2 |
| Ciąg kontekstu podpisywania postkwantowego ograniczony do 255 bajtów | FIPS 204 | §5.4 |
Wszystkie klauzule są parafrazowane; nie odtworzono żadnego tekstu normatywnego. Są to deklaracje możliwości dotyczące kodu NextPDF, a nie certyfikacje. To, czy wytworzony podpis zostanie zweryfikowany, jest decyzją weryfikatora względem jego własnej konfiguracji zaufania. Polityka trybu FIPS to funkcja wspomagająca zgodność, a nie opinia prawna; skonsultuj się z własnymi doradcami ds. zgodności i prawnymi. Ten moduł dotyczy funkcjonalności kryptograficznej; traktuj go jako wrażliwy pod względem bezpieczeństwa we własnym przeglądzie.
Uwagi deweloperskie
Dział zatytułowany „Uwagi deweloperskie”- Komponuj tryb FIPS przez bootstrap:
boot()dla bramki przy starcie,lazy()do odroczenia baterii do pierwszej granicy oraz fabrykę egzekutora dla parametru$fipsEnforcermodułów podpisujących. Wdrożenia inne niż FIPS przekazująnulli zachowanie pozostaje bez zmian. - Podpolecenie
fips:self-testnarzędziabin/nextpdf-enterpriseuruchamia baterię na żądanie i kończy się kodem niezerowym w stanie ERROR; podłącz je do zadań konserwacyjnych lub punktów końcowych kondycji dostępnych wyłącznie dla administratora (autotesty na żądanie ISO/IEC 19790:2025). FipsBootGuard::resetProcessErrorLatchForTesting()jest@internali przeznaczone wyłącznie do testów; kod produkcyjny nigdy go nie wywołuje, ponieważ zniweczyłoby to trwały stan ERROR.- Skonstruuj moduły podpisujące raz i używaj ich ponownie; konstrukcja loguje się i odczytuje certyfikat, a bufor modułu na bibliotekę sprawia, że wielokrotna konstrukcja względem tej samej biblioteki jest bezpieczna.
- Dostarczaj PIN z menedżera sekretów. Jest to
#[SensitiveParameter], nigdy niezapisywany w logach ani nieserializowany; nie umieszczaj go w konfiguracji w repozytorium. - Operator odpowiada za dostarczanie tokenów, obsługę PIN, konfigurację slotu, ochronę sieciową HSM podłączonego do sieci oraz konfigurację zaufania. Ta strona nie ujawnia wewnętrznych szczegółów polityki PIN tokenu ani materiału poświadczeń dostawcy.
- Nie włączaj wersji zapoznawczej postkwantowej dla produkcyjnych podpisów AdES. Katalog pakietów kryptograficznych AdES nie rozpoznaje jeszcze pakietów postkwantowych, większość przeglądarek PDF odrzuca takie podpisy, a sprzętowa walidacja round-trip nie jest ukończona. Wewnętrzne szczegóły mechanizmów pozostają w wewnętrznej dokumentacji repozytorium źródłowego i są poza zakresem tego podręcznika.
Granica publikacji
Dział zatytułowany „Granica publikacji”Ta strona dokumentuje wyłącznie zewnętrznie obserwowalne zachowanie oraz obsługiwaną powierzchnię publicznego API. Wewnętrzne ścieżki przestrzeni nazw, klasy pomocnicze, tabele mechanizmów, nazwy plików runbooków oraz prefiksy zgłoszeń są poza zakresem.
Zobacz też
Dział zatytułowany „Zobacz też”- Security — NextPDF Enterprise — strona funkcjonalności dla tej powierzchni.
- Podpisywanie sprzętowym modułem bezpieczeństwa (PKCS#11) — kroki instalacji, konfiguracji i weryfikacji.
- Polityka kryptograficzna FIPS 140 — strona funkcjonalności FIPS.
- HSM — szczegółowa referencja — dedykowana referencja modułu podpisującego.
- FIPS 140 — szczegółowa referencja — dedykowana referencja modułu FIPS.
- Security — NextPDF Pro — powierzchnia bezpieczeństwa poziomu Pro.
- Security — NextPDF Core — bazowa linia bezpieczeństwa Core.