Enterprise edisi
Certificate Transparency — Referensi Mendalam
Sekilas
Bagian berjudul “Sekilas”Halaman ini adalah referensi mendalam untuk permukaan Certificate Transparency (CT) di NextPDF Enterprise. Permukaan ini berupa satu value object yang immutable: NextPDF\Enterprise\Security\CertificateTransparency\CtValidationResult. Ia merangkum posture Signed Certificate Timestamp (SCT) dari sebuah sertifikat penandatanganan X.509. Ia membawa flag ekstensi SCT, jumlah SCT total dan yang valid, serta identifier log penerbit. Ia mengekspos satu metode policy, meetsPolicy(), yang merupakan pemeriksaan ambang batas minimum-SCT. Tipe ini merepresentasikan sebuah hasil; ia tidak mengekstrak SCT, tidak memverifikasi tanda tangan SCT, dan tidak menghubungi CT log. Untuk panduan di level workflow, lihat Kebijakan Certificate Transparency untuk sertifikat penandatanganan.
Ketersediaan & lisensi
Bagian berjudul “Ketersediaan & lisensi”Kapabilitas ini hadir di NextPDF Enterprise (nextpdf/enterprise) dan aktif dengan envelope lisensi tier Enterprise. Deployment tanpa entitlement tersebut tidak memuat class-class kapabilitas ini. Bandingkan edisi dan dapatkan lisensi.
Permukaan API publik
Bagian berjudul “Permukaan API publik”| Simbol | Parameter | Perilaku default | Mengembalikan | Melempar atau gagal dengan | Catatan |
|---|---|---|---|---|---|
CtValidationResult | — | Value object immutable yang merangkum posture SCT sebuah sertifikat | — | Tidak melempar | final readonly; keempat properti yang dipromosikan lewat konstruktor bersifat public |
CtValidationResult::__construct | bool $hasSctsExtension, int $totalScts, int $validScts, array<string> $logIds | Menyimpan nilai yang diberikan apa adanya, tanpa validasi atau rekonsiliasi | Instance CtValidationResult baru | Tidak ada @throws yang dideklarasikan; PHP memunculkan TypeError pada tipe argumen yang tidak cocok di bawah strict_types | Properti public readonly yang dipromosikan |
CtValidationResult::meetsPolicy | int $minimumScts = 2 | Membandingkan jumlah SCT valid terhadap ambang batas: validScts >= $minimumScts | bool | Tidak melempar | Hanya menghitung SCT valid; ia tidak memeriksa kekhasan log maupun keberadaan ekstensi |
final readonly class CtValidationResultpublic function __construct( public bool $hasSctsExtension, public int $totalScts, public int $validScts, public array $logIds,) {}public function meetsPolicy(int $minimumScts = 2): boolProperti public readonly
| Properti | Tipe | Makna |
|---|---|---|
$hasSctsExtension | bool | Apakah sertifikat memuat ekstensi SCT |
$totalScts | int | Jumlah total SCT yang ditemukan dalam ekstensi |
$validScts | int | Jumlah SCT dengan tanda tangan valid, sebagaimana ditentukan di sisi upstream |
$logIds | array<string> | Identifier log (hash SHA-256) dari CT log yang menerbitkan SCT |
Kontrak perilaku
Bagian berjudul “Kontrak perilaku”CtValidationResultadalah sebuah nilai hasil. Ia merepresentasikan hasil ekstraksi dan verifikasi SCT yang dilakukan oleh lingkungan pemanggil. Ia tidak mem-parse sertifikat, tidak memverifikasi tanda tangan SCT, tidak melakukan query ke log, dan tidak mengirimkan sertifikat ke log.- Ekstensi yang dimaksud adalah ekstensi sertifikat X.509v3 embedded-SCT, diidentifikasi oleh OID
1.3.6.1.4.1.11129.2.4.2— RFC 6962 §3.3. Sebuah SCT membawa sebuah versi, sebuah identifier log, sebuah timestamp, ekstensi, dan tanda tangan log atas entry tersebut — RFC 6962 §3.2. - Setiap entry dalam
$logIdsadalah identifier log sebagaimana didefinisikan oleh RFC 6962 §3.2: hash SHA-256 dari kunci publik log atasSubjectPublicKeyInfoyang ter-encode DER. Tipe ini menyimpan string apa adanya sebagaimana diberikan dan tidak menghitung ulang maupun memvalidasinya. meetsPolicy()mengimplementasikan tepat satu perbandingan: jumlah SCT valid lebih besar dari atau sama dengan ambang batas. Ambang batas default adalah2.meetsPolicy()tidak berkonsultasi dengan$hasSctsExtension. Sebuah policy yang harus gagal saat ekstensi tidak ada memeriksa properti tersebut secara terpisah, sebelum atau bersamaan dengan pemeriksaan ambang batas.meetsPolicy()tidak melakukan deduplikasi$logIds. Sebuah policy yang mensyaratkan SCT dari log-log independen memeriksa kekhasan melalui$logIdsitu sendiri.- Konstruktor menyimpan input secara verbatim. Ia tidak melakukan pemeriksaan rentang maupun pemeriksaan konsistensi antar-field.
- Instance bersifat immutable (
final readonly). Semua pembacaan dan pemeriksaan ambang batas bersifat deterministik dan bebas efek samping. - Nilai ambang batas adalah pilihan policy operator; NextPDF tidak menetapkan angka. Sumber package mencatat satu titik referensi ekosistem: kebijakan CT Chrome, per 2024, mengharapkan setidaknya dua SCT dari log yang berbeda untuk sertifikat dengan masa berlaku hingga 180 hari, dan tiga untuk sertifikat berumur lebih panjang. Itu adalah kebijakan program browser, bukan persyaratan IETF.
- Penempatan yang dimaksudkan adalah sebagai gerbang pra-penandatanganan: sebuah workflow penandatanganan menolak membangun signer ketika pemeriksaan gagal. Rasionalnya mengikuti model kepercayaan CT: sebuah SCT adalah janji log untuk memasukkan sertifikat, dan relying party menolak sertifikat yang tidak memiliki SCT valid — RFC 6962 §3. CT versi 2.0 mempertahankan model yang sama: sebuah log yang menerima submission mengembalikan sebuah SCT, yang divalidasi oleh submitter sebelum mengandalkannya — RFC 9162 §3.
Edge case & mode kegagalan
Bagian berjudul “Edge case & mode kegagalan”- Ambang batas nol atau negatif.
meetsPolicy(0)mengembalikantrueuntuk$validSctsnon-negatif berapa pun. Metode ini tidak menolak nilai tersebut. Pilih ambang batas setidaknya1. - Ekstensi tidak ada, jumlah positif. Ketika
$hasSctsExtensionbernilaifalsetetapi$validSctsmemenuhi ambang batas,meetsPolicy()tetap mengembalikantrue. Gerbang harus memeriksa$hasSctsExtensionsecara eksplisit ketika ketiadaannya harus menyebabkan kegagalan; halaman kapabilitas menunjukkan pola ini. - Identifier log duplikat. N SCT valid dari sebuah log tunggal memenuhi ambang batas N. Pemeriksaan ambang batas tidak membuat klaim independensi apa pun. Policy kekhasan log memeriksa
$logIds. - Jumlah yang tidak konsisten. Sebuah
$validSctsyang lebih besar dari$totalScts, atau jumlah negatif, disimpan sebagaimana diberikan. Tidak ada exception yang dimunculkan. Langkah ekstraksi upstream memiliki tanggung jawab atas konsistensi input. - String identifier log yang tidak divalidasi. Tipe ini tidak menerapkan bentuk 32-byte atau heksadesimal pada entry
$logIds. Identifier yang malformed diteruskan tanpa perubahan. - Tidak ada jalur exception. Tidak ada metode pada permukaan ini yang melempar di bawah tipe PHP yang valid. Mode kegagalan dari pemeriksaan policy adalah penolakan (
false), bukan sebuah exception. Tipe argumen yang tidak cocok memunculkanTypeErrorPHP di bawahstrict_types, sebagaimana pada API PHP bertipe mana pun.
Perilaku mode FIPS
Bagian berjudul “Perilaku mode FIPS”CtValidationResult tidak melakukan komputasi kriptografis apa pun. Ia tidak menghitung digest dan tidak memverifikasi tanda tangan. Apakah tanda tangan SCT dihitung sebagai valid diputuskan di sisi upstream, oleh komponen yang melakukan verifikasi sebelum membangun hasil. Profil crypto-policy FIPS 140-3 Enterprise, yang didokumentasikan bersama modul security, karena itu tidak mengubah perilaku tipe ini.
Konformansi
Bagian berjudul “Konformansi”| Klaim | Standar | Klausa |
|---|---|---|
| Sebuah SCT adalah janji log untuk memasukkan sertifikat; relying party menolak sertifikat yang tidak memiliki SCT valid. | RFC 6962 | §3 |
| Sebuah SCT membawa sebuah versi, sebuah identifier log, sebuah timestamp, ekstensi, dan tanda tangan log atas entry tersebut. | RFC 6962 | §3.2 |
Identifier log adalah hash SHA-256 dari kunci publik log atas SubjectPublicKeyInfo yang ter-encode DER. | RFC 6962 | §3.2 |
SCT embedded menumpang pada ekstensi sertifikat X.509v3 yang diidentifikasi oleh OID 1.3.6.1.4.1.11129.2.4.2. | RFC 6962 | §3.3 |
| Pada CT versi 2.0, sebuah log yang menerima submission mengembalikan sebuah SCT, yang divalidasi oleh submitter sebelum mengandalkannya. | RFC 9162 | §3 |
Seluruh klausa diparafrasekan; NextPDF tidak mereproduksi teks normatif. NextPDF tidak membuat klaim konformansi atau sertifikasi Certificate Transparency apa pun. NextPDF Enterprise bukan sebuah CT log, bukan auditor, dan bukan monitor. Ia tidak mengirimkan sertifikat ke log dan ia tidak menyatakan suatu hasil verifikasi CT. Tipe ini merepresentasikan jumlah dan identifier yang dihasilkan oleh lingkungan pemanggil, dan ia mengevaluasi ambang batas yang dipilih pemanggil. Program CT browser, seperti milik Chrome, adalah kebijakan ekosistem alih-alih persyaratan normatif IETF; memilih dan memenuhi kebijakan semacam itu adalah tanggung jawab operator.
Catatan pengembangan
Bagian berjudul “Catatan pengembangan”- Value object ini tidak memiliki dependensi dan tidak melakukan I/O. Bangun instance secara langsung dalam unit test.
- Test batas yang direkomendasikan: jumlah valid tepat di ambang batas, satu di bawah ambang batas, ekstensi tidak ada dengan jumlah di ambang batas, dan identifier log duplikat terhadap sebuah policy kekhasan.
- Class ini dideklarasikan di bawah
strict_types=1dengan properti dipromosikan yang bertipe. Tipe argumen yang salah memunculkanTypeErrorPHP di sisi pemanggil. - Class ini membawa anotasi package
@sincebernilai1.0.0dan merujuk RFC 6962 serta RFC 9162 dalam dokumentasi sumbernya. - Parameter
$logIdsdidokumentasikan sebagaiarray<string>; analisis statis memperlakukan properti tersebut sebagai array of string. Pertahankan bentuk itu saat membangun hasil. - Tempatkan verifikasi CT upstream Anda dan gerbang ambang batas ini sebelum konstruksi signer, sehingga sertifikat yang under-logged tidak pernah mencapai operasi penandatanganan. Halaman kapabilitas mendokumentasikan workflow dan contoh gerbang yang dikerjakan.
Lihat juga
Bagian berjudul “Lihat juga”- Kebijakan Certificate Transparency untuk sertifikat penandatanganan — halaman kapabilitas: workflow, konfigurasi, dan contoh gerbang policy yang dikerjakan.
- Security — NextPDF Enterprise — permukaan security Enterprise gabungan.
- Signature — Referensi Mendalam — produser jangka panjang PAdES B-LT dan B-LTA.
- Security / Signing (Core) — signer CMS Core dan kontrak signing-strategy.
- Certificate Transparency · SCT — istilah glosarium.
Batas publikasi
Bagian berjudul “Batas publikasi”Halaman ini mendokumentasikan hanya perilaku yang dapat diamati secara eksternal dan permukaan API publik yang didukung. Path namespace internal, class helper, tabel mekanisme, nama file runbook, dan prefix tiket berada di luar cakupan.