Przejdź do głównej zawartości
getnextpdf.com

Enterprise edycja

Polityka Certificate Transparency dla certyfikatów podpisujących

NextPDF Enterprise pozwala procesowi podpisywania uwzględnić postawę Certificate Transparency (CT) certyfikatu podpisującego przed podpisaniem. CT to ekosystem dzienników publicznych, w którym rejestrowane są certyfikaty, tak aby błędne wystawienie było wykrywalne; certyfikat zalogowany w CT niesie jeden lub więcej znaczników czasu Signed Certificate Timestamp (SCT). NextPDF Enterprise reprezentuje postawę CT certyfikatu jako wartość wynikową — czy rozszerzenie SCT jest obecne, ile SCT jest obecnych i ważnych oraz które dzienniki je wystawiły — i oferuje sprawdzenie progu minimalnej liczby SCT. Ta strona jest na poziomie zachowania: stwierdza, co niesie wynik, jak działa sprawdzenie progu oraz co NextPDF rozstrzyga, a czego nie.

NextPDF Enterprise reprezentuje wynik CT i sprawdza go względem progu; nie jest dziennikiem CT, audytorem dziennika ani monitorem. Tę granicę opisano w sekcji Bezpieczeństwo i zgodność.

Wymagania wstępne podano w nagłówku (front matter) i powtórzono w sekcji Wymagania wstępne.

Ta możliwość jest dostarczana w NextPDF Enterprise (nextpdf/enterprise) i aktywuje się wraz z kopertą licencyjną poziomu Enterprise. Wdrożenie bez tego uprawnienia nie ładuje klas tej możliwości. Porównaj edycje i uzyskaj licencję.

Certyfikat zalogowany w CT niesie SCT. SCT niesie wersję, identyfikator dziennika, znacznik czasu oraz podpis dziennika nad wpisem certyfikatu, zgodnie z RFC 6962 §3.1. Dziennik zwraca SCT jako swoją obietnicę włączenia certyfikatu do swojego dziennika typu tylko-do-dopisywania, a strony ufające odrzucają certyfikat, któremu brakuje ważnego SCT, zgodnie z RFC 6962 §3. Certificate Transparency w wersji 2.0 zachowuje ten sam model: dziennik zwraca SCT przy zgłoszeniu, które zgłaszający waliduje, zanim na nim polegnie, zgodnie z RFC 9162 §3.

NextPDF Enterprise reprezentuje postawę CT certyfikatu jako wartość wynikową niosącą:

  • czy certyfikat zawiera rozszerzenie SCT;
  • całkowitą liczbę znalezionych SCT;
  • liczbę SCT, których podpisy są ważne;
  • identyfikatory dzienników — skróty SHA-256 — dzienników, które wystawiły SCT.

Wynik udostępnia sprawdzenie progu minimalnej liczby SCT: raportuje, czy liczba ważnych SCT spełnia lub przekracza wymagane minimum. Ustawiasz minimum tak, aby pasowało do Twojej polityki. Powszechna polityka oczekuje co najmniej dwóch SCT z różnych dzienników dla certyfikatów o krótszym okresie ważności i więcej dla tych o dłuższym; wartość progu wybierasz Ty.

Użyj sprawdzenia progu jako bramy w procesie podpisywania: wymagaj certyfikatu zalogowanego w CT (wystarczającej liczby ważnych SCT) przed podpisaniem, a w przeciwnym razie odmów.

Certificate Transparency odpowiada na wąskie pytanie: czy ten certyfikat jest publicznie zalogowany i przez ile niezależnych dzienników. NextPDF Enterprise modeluje tę odpowiedź jako zwykłą wartość wynikową, a nie werdykt. Wynik raportuje flagę rozszerzenia SCT, liczby SCT oraz identyfikatory wystawiających dzienników, a następnie się zatrzymuje. Nie rozstrzyga, czy ta postawa jest wystarczająco dobra, ponieważ próg zaufania to polityka strony ufającej, która zmienia się w zależności od okresu ważności certyfikatu i ryzyka. Dlatego minimalna liczba SCT pozostaje po Twojej stronie do ustawienia, a NextPDF pozostaje poza rolami operatora dziennika, audytora i monitora. Certificate Transparency to jedno z kilku sprawdzeń w rozsądnej decyzji o podpisaniu, a ta strona czyni z niego jawną bramę przed skonstruowaniem podpisującego.

Tło projektowe: Prawidłowa weryfikacja podpisu.

  1. Zainstaluj NextPDF Core oraz pakiet Enterprise i utrzymuj aktywną licencję Enterprise.
  2. Miej certyfikat podpisujący, którego postawę CT chcesz egzekwować, wraz z danymi SCT, które Twoje środowisko z niego wyodrębnia.
  3. Zdecyduj o progu minimalnej liczby SCT wymaganym przez Twoją politykę.
  • Próg minimalnej liczby SCT — liczba ważnych SCT, którą certyfikat musi nieść, aby przejść Twoją politykę. Przekaż ją do sprawdzenia progu.
  • Umiejscowienie polityki — zdecyduj, gdzie w Twoim procesie podpisywania uruchamia się brama: przed skonstruowaniem podpisującego, tak aby niedostatecznie zalogowany certyfikat nigdy nie dotarł do operacji podpisywania.
  1. Uzyskaj wynik CT dla swojego certyfikatu podpisującego, niosący flagę rozszerzenia SCT, całkowitą i ważną liczbę SCT oraz identyfikatory dzienników.
  2. Zdecyduj o progu minimalnej liczby SCT dla swojej polityki.
  3. Uruchom sprawdzenie progu; potraktuj zaliczenie jako „polityka CT spełniona”, a niezaliczenie jako „odmowa podpisania tym certyfikatem”.
  4. Uzależnij proces podpisywania od wyniku, zanim podpisujący zostanie skonstruowany.
examples/enterprise/ct-policy-gate.php
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Enterprise\Security\CertificateTransparency\CtValidationResult;
use Psr\Log\LoggerInterface;
final readonly class CtSigningPolicy
{
/**
* @param int<1, max> $minimumScts The minimum count of valid SCTs your policy requires.
*/
public function __construct(
private int $minimumScts,
private LoggerInterface $logger,
) {}
/**
* Decide whether a certificate's CT posture satisfies the policy.
*
* The gate runs before the signer is constructed, so an under-logged
* certificate never reaches a signing operation. A missing SCT extension
* is treated as a policy failure, not an exception.
*
* @param CtValidationResult $result The CT posture of the signing certificate.
*
* @return bool True when the certificate meets the minimum-SCT threshold.
*/
public function isAcceptable(CtValidationResult $result): bool
{
if (! $result->hasSctsExtension) {
$this->logger->warning('Signing certificate carries no SCT extension; CT policy not met.');
return false;
}
$acceptable = $result->meetsPolicy($this->minimumScts);
if (! $acceptable) {
$this->logger->warning('Signing certificate has too few valid SCTs for the CT policy.', [
'validScts' => $result->validScts,
'minimumScts' => $this->minimumScts,
]);
}
return $acceptable;
}
}
  1. Zbuduj wynik z obecnym rozszerzeniem SCT i liczbą ważnych SCT równą Twojemu progowi i potwierdź, że sprawdzenie progu jest zaliczone.
  2. Zbuduj wynik o jeden poniżej Twojego progu i potwierdź, że sprawdzenie jest niezaliczone.
  3. Zbuduj wynik z nieobecnym rozszerzeniem SCT i potwierdź, że brama odmawia niezależnie od liczby.
  4. Potwierdź, że Twój proces podpisywania nie konstruuje podpisującego, gdy brama odmawia.
  • NextPDF reprezentuje i sprawdza względem progu; nie obsługuje dzienników. NextPDF Enterprise ujawnia postawę CT oraz sprawdzenie minimalnej liczby SCT. Nie jest dziennikiem CT, audytorem ani monitorem i nie zgłasza certyfikatów do dzienników.
  • Próg to Twoja polityka. Wartość minimalnej liczby SCT ustawiasz Ty; NextPDF nie narzuca liczby. Brak rozszerzenia SCT to wyraźne niezaliczenie polityki.
  • Brama przed podpisaniem. Uruchom sprawdzenie przed skonstruowaniem podpisującego, tak aby niedostatecznie zalogowany certyfikat nigdy nie dotarł do operacji podpisywania.
  • Semantyka SCT jest zgodna ze standardami. SCT to obietnica dziennika, którą strony ufające oczekują, że będzie obecna i ważna (RFC 6962 §3; §3.1 struktura; CT v2 RFC 9162 §3).

Ta strona dotyczy zaufania do certyfikatów. Każde źródło normatywne jest sparafrazowane; żaden tekst normatywny nie jest odtwarzany.

  • Brak rozszerzenia SCT. Potraktuj wynik bez rozszerzenia SCT jako niezaliczenie polityki; odmów podpisania.
  • Zbyt mało ważnych SCT. Liczba ważnych SCT poniżej Twojego progu powoduje niezaliczenie sprawdzenia; odmów podpisania.
  • Umiejscowienie polityki. Uruchom bramę przed skonstruowaniem podpisującego; późne sprawdzenie, które uruchamia się po podpisaniu, nie chroni wytworzonego dokumentu.

Ta strona dokumentuje wyłącznie zewnętrznie obserwowalne zachowanie oraz wspieraną publiczną powierzchnię API. Wewnętrzne ścieżki przestrzeni nazw, klasy pomocnicze, tabele mechanizmów, nazwy plików runbooków oraz prefiksy zgłoszeń są poza zakresem.