Ga naar inhoud
getnextpdf.com

Enterprise editie

Certificate Transparency-beleid voor ondertekeningscertificaten

NextPDF Enterprise laat een ondertekeningsworkflow rekening houden met de Certificate Transparency (CT)-positie van een ondertekeningscertificaat voordat deze ondertekent. CT is het publieke-log-ecosysteem waarin certificaten worden vastgelegd zodat onterechte uitgifte detecteerbaar is; een certificaat dat in CT is gelogd, draagt een of meer Signed Certificate Timestamps (SCTs). NextPDF Enterprise geeft de CT-positie van een certificaat weer als een resultaatwaarde — of de SCT-extensie aanwezig is, hoeveel SCTs aanwezig en geldig zijn, en welke logs ze hebben uitgegeven — en biedt een minimum-SCT-drempelcontrole. Deze pagina is op gedragsniveau: ze beschrijft wat het resultaat draagt, hoe de drempelcontrole werkt, en wat NextPDF wel en niet beslist.

NextPDF Enterprise geeft een CT-resultaat weer en controleert het op een drempel; het is geen CT-log, log-auditor of monitor. De grens wordt beschreven onder Beveiliging en compliance.

De vereisten staan in de frontmatter en worden herhaald onder Vereisten.

Deze capaciteit wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en wordt geactiveerd met een licentie-envelop van het Enterprise-niveau. Een deployment zonder dat recht laadt de klassen van de capaciteit niet. Vergelijk edities en verkrijg een licentie.

Een certificaat dat in CT is gelogd, draagt SCTs. Een SCT draagt een versie, een log-identifier, een tijdstempel en de handtekening van de log over de certificaatvermelding, volgens RFC 6962 §3.1. Een log retourneert een SCT als belofte om het certificaat op te nemen in zijn alleen-toevoegen log, en relying parties wijzen een certificaat af dat geen geldige SCT bevat, volgens RFC 6962 §3. Certificate Transparency versie 2.0 houdt hetzelfde model aan: een log retourneert een SCT bij indiening, die de indiener valideert voordat erop wordt vertrouwd, volgens RFC 9162 §3.

NextPDF Enterprise geeft de CT-positie van een certificaat weer als een resultaatwaarde die draagt:

  • of het certificaat de SCT-extensie bevat;
  • het totale aantal gevonden SCTs;
  • het aantal SCTs waarvan de handtekeningen geldig zijn;
  • de log-identifiers — SHA-256-hashes — van de logs die de SCTs hebben uitgegeven.

Het resultaat biedt een minimum-SCT-drempelcontrole: het rapporteert of het aantal geldige SCTs een vereist minimum haalt of overschrijdt. Je stelt het minimum in om aan jouw beleid te voldoen. Een gangbaar beleid verwacht ten minste twee SCTs van verschillende logs voor certificaten met een kortere levensduur en meer voor die met een langere levensduur; de drempelwaarde is aan jou om te kiezen.

Gebruik de drempelcontrole als een poort in een ondertekeningsworkflow: vereis een CT-gelogd certificaat (een voldoende aantal geldige SCTs) voordat je ondertekent, en weiger anders.

Certificate Transparency beantwoordt een nauwe vraag: is dit certificaat publiekelijk gelogd, en door hoeveel onafhankelijke logs. NextPDF Enterprise modelleert dat antwoord als een gewone resultaatwaarde, geen oordeel. Het resultaat rapporteert de SCT-extensievlag, de SCT-aantallen en de identifiers van de uitgevende logs, en stopt dan. Het beslist niet of die positie goed genoeg is, omdat de vertrouwensdrempel een relying-party-beleid is dat varieert per certificaatlevensduur en risico. Zo blijft het minimum-SCT-aantal aan jou om in te stellen, en blijft NextPDF buiten de rollen van log-operator, auditor en monitor. Certificate Transparency is een van meerdere controles in een gedegen ondertekeningsbeslissing, en deze pagina maakt er een expliciete poort van voordat de signer wordt geconstrueerd.

Ontwerpachtergrond: Een handtekening correct valideren.

  1. Installeer NextPDF Core en het Enterprise-pakket, en houd een actieve Enterprise-licentie aan.
  2. Beschik over het ondertekeningscertificaat waarvan je de CT-positie wilt afdwingen, samen met de SCT-gegevens die jouw omgeving eruit haalt.
  3. Beslis over de minimum-SCT-drempel die jouw beleid vereist.
  • Minimum-SCT-drempel — het aantal geldige SCTs dat een certificaat moet dragen om jouw beleid te halen. Geef het door aan de drempelcontrole.
  • Plaatsing van het beleid — beslis waar in jouw ondertekeningsworkflow de poort draait: vóór het construeren van de signer, zodat een onvoldoende-gelogd certificaat nooit een ondertekeningsoperatie bereikt.
  1. Verkrijg het CT-resultaat voor jouw ondertekeningscertificaat, met de SCT-extensievlag, het totale en geldige aantal SCTs en de log-identifiers.
  2. Beslis over de minimum-SCT-drempel voor jouw beleid.
  3. Voer de drempelcontrole uit; behandel een pass als “CT-beleid voldaan” en een fail als “weiger te ondertekenen met dit certificaat”.
  4. Plaats de ondertekeningsworkflow achter een poort op basis van het resultaat voordat de signer wordt geconstrueerd.
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. Bouw een resultaat met de SCT-extensie aanwezig en een geldig-SCT-aantal op jouw drempel, en bevestig dat de drempelcontrole slaagt.
  2. Bouw een resultaat één onder jouw drempel en bevestig dat de controle faalt.
  3. Bouw een resultaat met de SCT-extensie afwezig en bevestig dat de poort weigert ongeacht het aantal.
  4. Bevestig dat jouw ondertekeningsworkflow geen signer construeert wanneer de poort weigert.
  • NextPDF geeft weer en controleert op een drempel; het beheert geen logs. NextPDF Enterprise toont de CT-positie en een minimum-SCT-controle. Het is geen CT-log, auditor of monitor, en het dient geen certificaten in bij logs.
  • De drempel is jouw beleid. De minimum-SCT-waarde is aan jou om in te stellen; NextPDF legt geen getal op. Een ontbrekende SCT-extensie is een duidelijke beleidsfout.
  • Plaats de poort voordat je ondertekent. Voer de controle uit voordat je de signer construeert, zodat een onvoldoende-gelogd certificaat nooit een ondertekeningsoperatie bereikt.
  • SCT-semantiek volgt de standaarden. Een SCT is de belofte van een log waarvan relying parties verwachten dat deze aanwezig en geldig is (RFC 6962 §3; §3.1 structuur; CT v2 RFC 9162 §3).

Deze pagina betreft certificaatvertrouwen. Elke normatieve bron is geparafraseerd; er wordt geen normatieve tekst gereproduceerd.

  • Geen SCT-extensie. Behandel een resultaat zonder de SCT-extensie als een beleidsfout; weiger te ondertekenen.
  • Te weinig geldige SCTs. Een geldig-SCT-aantal onder jouw drempel faalt de controle; weiger te ondertekenen.
  • Plaatsing van het beleid. Voer de poort uit voordat de signer wordt geconstrueerd; een late controle die na het ondertekenen draait, beschermt het geproduceerde document niet.

Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde openbare API-oppervlak. Interne namespace-paden, hulpklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten de scope.