Zum Inhalt springen
getnextpdf.com

Enterprise Edition

Certificate Transparency — Ausführliche Referenz

Diese Seite ist die ausführliche Referenz für die Certificate-Transparency-Oberfläche (CT) in NextPDF Enterprise. Die Oberfläche besteht aus einem einzigen unveränderlichen Wertobjekt: NextPDF\Enterprise\Security\CertificateTransparency\CtValidationResult. Es fasst den Signed-Certificate-Timestamp-Status (SCT) eines X.509-Signaturzertifikats zusammen. Es trägt das SCT-Erweiterungs-Flag, die Gesamt- und die gültige SCT-Anzahl sowie die Kennungen der ausstellenden Logs. Es stellt eine Richtlinienmethode bereit, meetsPolicy(), die eine Mindest-SCT-Schwellenwertprüfung ist. Der Typ repräsentiert ein Ergebnis; er extrahiert keine SCTs, verifiziert keine SCT-Signaturen und kontaktiert keine CT-Logs. Für den Leitfaden auf Workflow-Ebene siehe Certificate-Transparency-Richtlinie für Signaturzertifikate.

Diese Funktion wird mit NextPDF Enterprise (nextpdf/enterprise) ausgeliefert und aktiviert sich mit einer Lizenzhülle der Enterprise-Stufe. Eine Bereitstellung ohne diese Berechtigung lädt die Klassen der Funktion nicht. Editionen vergleichen und eine Lizenz erwerben.

SymbolParameterStandardverhaltenRückgabeWirft oder scheitert mitHinweise
CtValidationResultUnveränderliches Wertobjekt, das den SCT-Status eines Zertifikats zusammenfasstWirft nichtfinal readonly; alle vier konstruktorbeförderten Eigenschaften sind öffentlich
CtValidationResult::__constructbool $hasSctsExtension, int $totalScts, int $validScts, array<string> $logIdsSpeichert die übergebenen Werte unverändert, ohne Validierung oder AbgleichNeue CtValidationResult-InstanzKein deklariertes @throws; PHP löst unter strict_types bei nicht passenden Argumenttypen einen TypeError ausBeförderte öffentliche readonly-Eigenschaften
CtValidationResult::meetsPolicyint $minimumScts = 2Vergleicht die gültige SCT-Anzahl mit dem Schwellenwert: validScts >= $minimumSctsboolWirft nichtZählt nur gültige SCTs; prüft weder die Unterschiedlichkeit der Logs noch das Vorhandensein der Erweiterung
final readonly class CtValidationResult
public function __construct(
public bool $hasSctsExtension,
public int $totalScts,
public int $validScts,
public array $logIds,
) {}
public function meetsPolicy(int $minimumScts = 2): bool

Öffentliche readonly-Eigenschaften

EigenschaftTypBedeutung
$hasSctsExtensionboolOb das Zertifikat die SCT-Erweiterung enthält
$totalSctsintGesamtzahl der in der Erweiterung gefundenen SCTs
$validSctsintAnzahl der SCTs mit gültigen Signaturen, wie vorgelagert bestimmt
$logIdsarray<string>Log-Kennungen (SHA-256-Hashes) der CT-Logs, die die SCTs ausgestellt haben
  • CtValidationResult ist ein Ergebniswert. Es repräsentiert das Ergebnis der SCT-Extraktion und -Verifikation, die die Umgebung des Aufrufers durchgeführt hat. Es parst keine Zertifikate, verifiziert keine SCT-Signaturen, fragt keine Logs ab und übermittelt keine Zertifikate an Logs.
  • Die betreffende Erweiterung ist die eingebettete SCT-X.509v3-Zertifikaterweiterung, identifiziert durch die OID 1.3.6.1.4.1.11129.2.4.2 — RFC 6962 §3.3. Ein SCT trägt eine Version, eine Log-Kennung, einen Zeitstempel, Erweiterungen und die Log-Signatur über den Eintrag — RFC 6962 §3.2.
  • Jeder Eintrag in $logIds ist eine Log-Kennung gemäß RFC 6962 §3.2: der SHA-256-Hash des öffentlichen Log-Schlüssels über dessen DER-kodierte SubjectPublicKeyInfo. Der Typ speichert die Zeichenketten wie übergeben und berechnet oder validiert sie nicht neu.
  • meetsPolicy() implementiert genau einen Vergleich: die gültige SCT-Anzahl ist größer oder gleich dem Schwellenwert. Der Standardschwellenwert ist 2.
  • meetsPolicy() zieht $hasSctsExtension nicht heran. Eine Richtlinie, die bei einer fehlenden Erweiterung scheitern muss, prüft die Eigenschaft separat, vor oder neben der Schwellenwertprüfung.
  • meetsPolicy() dedupliziert $logIds nicht. Eine Richtlinie, die SCTs von unabhängigen Logs verlangt, prüft die Unterschiedlichkeit über $logIds selbst.
  • Der Konstruktor speichert die Eingaben wortgetreu. Er führt keine Bereichsprüfungen und keine feldübergreifenden Konsistenzprüfungen durch.
  • Instanzen sind unveränderlich (final readonly). Alle Lesevorgänge und die Schwellenwertprüfung sind deterministisch und nebenwirkungsfrei.
  • Der Schwellenwert ist die Richtlinienwahl des Betreibers; NextPDF schreibt keine Zahl vor. Die Paketquelle vermerkt einen Referenzpunkt des Ökosystems: Chromes CT-Richtlinie erwartet, Stand 2024, mindestens zwei SCTs von verschiedenen Logs für Zertifikate mit Laufzeiten bis zu 180 Tagen und drei für längerlebige Zertifikate. Das ist eine Browser-Programm-Richtlinie, keine IETF-Anforderung.
  • Die vorgesehene Platzierung ist ein Gate vor dem Signieren: ein Signatur-Workflow lehnt es ab, einen Signierer zu konstruieren, wenn die Prüfung fehlschlägt. Die Begründung folgt dem CT-Vertrauensmodell: ein SCT ist das Versprechen des Logs, das Zertifikat aufzunehmen, und vertrauende Parteien lehnen ein Zertifikat ab, dem ein gültiger SCT fehlt — RFC 6962 §3. CT-Version 2.0 behält dasselbe Modell bei: ein Log, das eine Einreichung annimmt, gibt einen SCT zurück, den der Einreicher validiert, bevor er sich darauf verlässt — RFC 9162 §3.
  • Schwellenwert null oder negativ. meetsPolicy(0) gibt für jeden nicht-negativen $validScts true zurück. Die Methode weist den Wert nicht zurück. Wählen Sie einen Schwellenwert von mindestens 1.
  • Erweiterung fehlt, Anzahlen positiv. Wenn $hasSctsExtension false ist, $validScts aber den Schwellenwert erreicht, gibt meetsPolicy() dennoch true zurück. Das Gate muss $hasSctsExtension ausdrücklich prüfen, wenn das Fehlen scheitern muss; die Funktionsseite zeigt dieses Muster.
  • Doppelte Log-Kennungen. N gültige SCTs von einem einzigen Log erfüllen einen Schwellenwert von N. Die Schwellenwertprüfung macht keine Unabhängigkeitsaussage. Richtlinien zur Log-Unterschiedlichkeit prüfen $logIds.
  • Inkonsistente Anzahlen. Ein $validScts größer als $totalScts oder eine negative Anzahl wird wie übergeben gespeichert. Es wird keine Ausnahme ausgelöst. Der vorgelagerte Extraktionsschritt verantwortet die Eingabekonsistenz.
  • Unvalidierte Log-Kennungszeichenketten. Der Typ erzwingt keine 32-Byte- oder hexadezimale Form für $logIds-Einträge. Fehlerhafte Kennungen werden unverändert durchgereicht.
  • Kein Ausnahmepfad. Keine Methode dieser Oberfläche wirft bei gültigen PHP-Typen. Der Fehlermodus der Richtlinienprüfung ist die Ablehnung (false), nicht eine Ausnahme. Nicht passende Argumenttypen lösen unter strict_types einen PHP-TypeError aus, wie bei jeder typisierten PHP-API.

CtValidationResult führt keine kryptografische Berechnung durch. Es berechnet keinen Digest und verifiziert keine Signatur. Ob eine SCT-Signatur als gültig gezählt wurde, wird vorgelagert entschieden, von der Komponente, die die Verifikation durchgeführt hat, bevor das Ergebnis konstruiert wurde. Das Enterprise-FIPS-140-3-Krypto-Richtlinienprofil, das mit dem Sicherheitsmodul dokumentiert ist, ändert daher das Verhalten dieses Typs nicht.

AussageStandardKlausel
Ein SCT ist das Versprechen des Logs, das Zertifikat aufzunehmen; vertrauende Parteien lehnen ein Zertifikat ab, dem ein gültiger SCT fehlt.RFC 6962§3
Ein SCT trägt eine Version, eine Log-Kennung, einen Zeitstempel, Erweiterungen und die Log-Signatur über den Eintrag.RFC 6962§3.2
Die Log-Kennung ist der SHA-256-Hash des öffentlichen Log-Schlüssels über dessen DER-kodierte SubjectPublicKeyInfo.RFC 6962§3.2
Eingebettete SCTs reisen in einer X.509v3-Zertifikaterweiterung, identifiziert durch die OID 1.3.6.1.4.1.11129.2.4.2.RFC 6962§3.3
In CT-Version 2.0 gibt ein Log, das eine Einreichung annimmt, einen SCT zurück, den der Einreicher validiert, bevor er sich darauf verlässt.RFC 9162§3

Alle Klauseln sind paraphrasiert; NextPDF gibt keinen normativen Text wieder. NextPDF erhebt keinen Anspruch auf Certificate-Transparency-Konformität oder -Zertifizierung. NextPDF Enterprise ist kein CT-Log, kein Auditor und kein Monitor. Es übermittelt keine Zertifikate an Logs und behauptet kein CT-Verifikationsergebnis. Der Typ repräsentiert Anzahlen und Kennungen, die die Umgebung des Aufrufers erzeugt hat, und er bewertet einen vom Aufrufer gewählten Schwellenwert. Browser-CT-Programme, wie das von Chrome, sind Ökosystem-Richtlinien statt IETF-normativer Anforderungen; die Auswahl und Erfüllung einer solchen Richtlinie liegt in der Verantwortung des Betreibers.

  • Das Wertobjekt hat keine Abhängigkeiten und kein I/O. Konstruieren Sie Instanzen direkt in Unit-Tests.
  • Empfohlene Grenzfalltests: gültige Anzahl genau am Schwellenwert, eine unter dem Schwellenwert, Erweiterung fehlt bei Anzahlen am Schwellenwert und doppelte Log-Kennungen gegen eine Unterschiedlichkeitsrichtlinie.
  • Die Klasse ist unter strict_types=1 mit typisierten beförderten Eigenschaften deklariert. Falsche Argumenttypen lösen im Aufrufer einen PHP-TypeError aus.
  • Die Klasse trägt eine Paket-@since-Annotation von 1.0.0 und verweist in ihrer Quelldokumentation auf RFC 6962 und RFC 9162.
  • Der Parameter $logIds ist als array<string> dokumentiert; die statische Analyse behandelt die Eigenschaft als Array von Zeichenketten. Bewahren Sie diese Form beim Konstruieren von Ergebnissen.
  • Platzieren Sie Ihre vorgelagerte CT-Verifikation und dieses Schwellenwert-Gate vor der Konstruktion des Signierers, damit ein unzureichend geloggtes Zertifikat niemals eine Signaturoperation erreicht. Die Funktionsseite dokumentiert den Workflow und ein ausgearbeitetes Gate-Beispiel.

Diese Seite dokumentiert ausschließlich extern beobachtbares Verhalten und die unterstützte öffentliche API-Oberfläche. Interne Namespace-Pfade, Hilfsklassen, Mechanismustabellen, Runbook-Dateinamen und Ticket-Präfixe sind außerhalb des Geltungsbereichs.