Enterprise editie
Certificate Transparency — Diepe referentie
In één oogopslag
Sectie met titel “In één oogopslag”Deze pagina is de diepgaande referentie voor het Certificate Transparency (CT)-oppervlak in NextPDF Enterprise. Het oppervlak is één onveranderlijk value object: NextPDF\Enterprise\Security\CertificateTransparency\CtValidationResult. Het vat de Signed Certificate Timestamp (SCT)-houding van een X.509-ondertekeningscertificaat samen. Het bevat de SCT-extensievlag, de totale en geldige SCT-aantallen, en de identifiers van de uitgevende logs. Het stelt één beleidsmethode beschikbaar, meetsPolicy(), wat een minimum-SCT-drempelcontrole is. Het type vertegenwoordigt een resultaat; het extraheert geen SCT’s, verifieert geen SCT-handtekeningen en neemt geen contact op met CT-logs. Voor de gids op workflowniveau, zie Certificate Transparency-beleid voor ondertekeningscertificaten.
Beschikbaarheid en licentiëring
Sectie met titel “Beschikbaarheid en licentiëring”Deze mogelijkheid wordt geleverd in NextPDF Enterprise (nextpdf/enterprise) en activeert met een licentie-envelop op Enterprise-niveau. Een deployment zonder die toekenning laadt de klassen van de mogelijkheid niet. Vergelijk edities en verkrijg een licentie.
Publiek API-oppervlak
Sectie met titel “Publiek API-oppervlak”| Symbool | Parameters | Standaardgedrag | Retourneert | Werpt of faalt met | Opmerkingen |
|---|---|---|---|---|---|
CtValidationResult | — | Onveranderlijk value object dat de SCT-houding van een certificaat samenvat | — | Werpt niet | final readonly; alle vier constructor-promoted eigenschappen zijn public |
CtValidationResult::__construct | bool $hasSctsExtension, int $totalScts, int $validScts, array<string> $logIds | Slaat de aangeleverde waarden op zoals ze zijn, zonder validatie of afstemming | Nieuwe CtValidationResult-instantie | Geen gedeclareerde @throws; PHP werpt TypeError bij niet-overeenkomende argumenttypen onder strict_types | Promoted public readonly eigenschappen |
CtValidationResult::meetsPolicy | int $minimumScts = 2 | Vergelijkt het aantal geldige SCT’s met de drempel: validScts >= $minimumScts | bool | Werpt niet | Telt alleen geldige SCT’s; het controleert geen log-onderscheidbaarheid of aanwezigheid van de extensie |
final readonly class CtValidationResultpublic function __construct( public bool $hasSctsExtension, public int $totalScts, public int $validScts, public array $logIds,) {}public function meetsPolicy(int $minimumScts = 2): boolPublic readonly eigenschappen
| Eigenschap | Type | Betekenis |
|---|---|---|
$hasSctsExtension | bool | Of het certificaat de SCT-extensie bevat |
$totalScts | int | Totaal aantal SCT’s dat in de extensie is gevonden |
$validScts | int | Aantal SCT’s met geldige handtekeningen, zoals stroomopwaarts bepaald |
$logIds | array<string> | Log-identifiers (SHA-256-hashes) van de CT-logs die de SCT’s hebben uitgegeven |
Gedragscontract
Sectie met titel “Gedragscontract”CtValidationResultis een resultaatwaarde. Het vertegenwoordigt de uitkomst van SCT-extractie en -verificatie die de omgeving van de aanroeper heeft uitgevoerd. Het parseert geen certificaten, verifieert geen SCT-handtekeningen, bevraagt geen logs en dient geen certificaten in bij logs.- De extensie in kwestie is de embedded-SCT X.509v3-certificaatextensie, geïdentificeerd door OID
1.3.6.1.4.1.11129.2.4.2— RFC 6962 §3.3. Een SCT bevat een versie, een log-identifier, een tijdstempel, extensies en de log-handtekening over het entry — RFC 6962 §3.2. - Elke vermelding in
$logIdsis een log-identifier zoals gedefinieerd door RFC 6962 §3.2: de SHA-256-hash van de publieke sleutel van het log over zijn DER-gecodeerdeSubjectPublicKeyInfo. Het type slaat de strings op zoals aangeleverd en herberekent of valideert ze niet. meetsPolicy()implementeert precies één vergelijking: het aantal geldige SCT’s is groter dan of gelijk aan de drempel. De standaarddrempel is2.meetsPolicy()raadpleegt$hasSctsExtensionniet. Een beleid dat moet falen bij een ontbrekende extensie controleert de eigenschap afzonderlijk, vóór of naast de drempelcontrole.meetsPolicy()ontdubbelt$logIdsniet. Een beleid dat SCT’s van onafhankelijke logs vereist, controleert de onderscheidbaarheid via$logIdszelf.- De constructor slaat de invoer letterlijk op. Het voert geen bereikcontroles en geen kruisveld-consistentiecontroles uit.
- Instanties zijn onveranderlijk (
final readonly). Alle leesbewerkingen en de drempelcontrole zijn deterministisch en zonder neveneffecten. - De drempelwaarde is de beleidskeuze van de operator; NextPDF legt geen getal op. De pakketbron annoteert één referentiepunt uit het ecosysteem: het CT-beleid van Chrome verwacht, per 2024, ten minste twee SCT’s van verschillende logs voor certificaten met een levensduur tot 180 dagen, en drie voor langerlevende certificaten. Dat is een beleid van een browserprogramma, geen IETF-vereiste.
- De beoogde plaatsing is een pre-signing-gate: een ondertekeningsworkflow weigert een signer te construeren wanneer de controle faalt. De motivatie volgt het CT-vertrouwensmodel: een SCT is de belofte van het log om het certificaat op te nemen, en vertrouwende partijen wijzen een certificaat af dat geen geldige SCT bevat — RFC 6962 §3. CT versie 2.0 behoudt hetzelfde model: een log dat een indiening accepteert, retourneert een SCT, die de indiener valideert voordat hij erop vertrouwt — RFC 9162 §3.
Randgevallen en foutmodi
Sectie met titel “Randgevallen en foutmodi”- Nul of negatieve drempel.
meetsPolicy(0)retourneerttruevoor elke niet-negatieve$validScts. De methode wijst de waarde niet af. Kies een drempel van ten minste1. - Extensie afwezig, aantallen positief. Wanneer
$hasSctsExtensionfalseis maar$validSctsde drempel haalt, retourneertmeetsPolicy()tochtrue. De gate moet$hasSctsExtensionexpliciet controleren wanneer afwezigheid moet falen; de mogelijkheidspagina toont dit patroon. - Dubbele log-identifiers. N geldige SCT’s van één enkel log voldoen aan een drempel van N. De drempelcontrole doet geen onafhankelijkheidsclaim. Beleid voor log-onderscheidbaarheid inspecteert
$logIds. - Inconsistente aantallen. Een
$validSctsgroter dan$totalScts, of een negatief aantal, wordt opgeslagen zoals aangeleverd. Er wordt geen uitzondering geworpen. De stroomopwaartse extractiestap is verantwoordelijk voor de consistentie van de invoer. - Ongevalideerde log-identifier-strings. Het type dwingt geen 32-byte- of hexadecimale vorm af op vermeldingen in
$logIds. Misvormde identifiers worden ongewijzigd doorgegeven. - Geen uitzonderingspad. Geen enkele methode op dit oppervlak werpt onder geldige PHP-typen. De foutmodus van de beleidscontrole is weigering (
false), geen uitzondering. Niet-overeenkomende argumenttypen werpen een PHPTypeErroronderstrict_types, net als bij elke getypeerde PHP-API.
FIPS-modusgedrag
Sectie met titel “FIPS-modusgedrag”CtValidationResult voert geen cryptografische berekening uit. Het berekent geen digest en verifieert geen handtekening. Of een SCT-handtekening als geldig werd geteld, wordt stroomopwaarts beslist, door het component dat de verificatie uitvoerde voordat het resultaat werd geconstrueerd. Het Enterprise FIPS 140-3 crypto-beleidsprofiel, gedocumenteerd bij de security-module, wijzigt daarom het gedrag van dit type niet.
Conformiteit
Sectie met titel “Conformiteit”| Claim | Standaard | Clausule |
|---|---|---|
| Een SCT is de belofte van het log om het certificaat op te nemen; vertrouwende partijen wijzen een certificaat zonder geldige SCT af. | RFC 6962 | §3 |
| Een SCT bevat een versie, een log-identifier, een tijdstempel, extensies en de log-handtekening over het entry. | RFC 6962 | §3.2 |
De log-identifier is de SHA-256-hash van de publieke sleutel van het log over zijn DER-gecodeerde SubjectPublicKeyInfo. | RFC 6962 | §3.2 |
Embedded SCT’s zitten in een X.509v3-certificaatextensie geïdentificeerd door OID 1.3.6.1.4.1.11129.2.4.2. | RFC 6962 | §3.3 |
| In CT versie 2.0 retourneert een log dat een indiening accepteert een SCT, die de indiener valideert voordat hij erop vertrouwt. | RFC 9162 | §3 |
Alle clausules zijn geparafraseerd; NextPDF reproduceert geen normatieve tekst. NextPDF doet geen enkele Certificate Transparency-conformiteits- of certificeringsclaim. NextPDF Enterprise is geen CT-log, auditor of monitor. Het dient geen certificaten in bij logs en het beweert geen uitkomst van CT-verificatie. Het type vertegenwoordigt aantallen en identifiers die de omgeving van de aanroeper heeft geproduceerd, en het evalueert een door de aanroeper gekozen drempel. Browser-CT-programma’s, zoals dat van Chrome, zijn ecosysteembeleid en geen IETF-normatieve vereisten; het selecteren en voldoen aan een dergelijk beleid is de verantwoordelijkheid van de operator.
Ontwikkelnotities
Sectie met titel “Ontwikkelnotities”- Het value object heeft geen afhankelijkheden en geen I/O. Construeer instanties rechtstreeks in unit-tests.
- Aanbevolen grenstests: geldig aantal precies op de drempel, één eronder, extensie afwezig met aantallen op de drempel, en dubbele log-identifiers tegen een onderscheidbaarheidsbeleid.
- De klasse is gedeclareerd onder
strict_types=1met getypeerde promoted eigenschappen. Verkeerde argumenttypen werpen een PHPTypeErrorbij de aanroeper. - De klasse draagt een pakket-
@since-annotatie van1.0.0en verwijst naar RFC 6962 en RFC 9162 in de brondocumentatie. - De
$logIds-parameter is gedocumenteerd alsarray<string>; statische analyse behandelt de eigenschap als een array van strings. Behoud die vorm bij het construeren van resultaten. - Plaats je stroomopwaartse CT-verificatie en deze drempel-gate vóór de constructie van de signer, zodat een onvoldoende gelogd certificaat nooit een ondertekeningsoperatie bereikt. De mogelijkheidspagina documenteert de workflow en een uitgewerkt gate-voorbeeld.
Zie ook
Sectie met titel “Zie ook”- Certificate Transparency-beleid voor ondertekeningscertificaten — de mogelijkheidspagina: workflow, configuratie en een uitgewerkte beleids-gate.
- Security — NextPDF Enterprise — het gecombineerde Enterprise security-oppervlak.
- Signature — diepgaande referentie — de PAdES B-LT- en B-LTA-producent voor de lange termijn.
- Security / Signing (Core) — de Core CMS-signer en het ondertekeningsstrategiecontract.
- Certificate Transparency · SCT — woordenlijsttermen.
Publicatiegrens
Sectie met titel “Publicatiegrens”Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde publieke API-oppervlak. Interne namespace-paden, hulpklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten de scope.