Certificate Transparency Membuat Penerbitan Sertifikat Dapat Diaudit Secara Publik
Certificate authority yang dipercaya publik dapat menerbitkan sertifikat yang secara sintaksis valid untuk sebuah domain meskipun penerbitan itu seharusnya tidak pernah terjadi. Validasi TLS path saja tidak dapat mengungkap kesalahan tersebut jika sertifikat berantai ke root tepercaya, cocok dengan nama yang diminta, masih dalam masa berlaku, dan memenuhi pemeriksaan kebijakan client lainnya.
Certificate Transparency mengubah bukti yang tersedia di sekitar peristiwa itu. Alih-alih hanya mengandalkan catatan privat CA dan pengungkapan insiden di kemudian hari, ekosistem dapat mewajibkan penerbitan sertifikat meninggalkan bukti yang dapat diverifikasi secara kriptografis dalam log append-only publik. Log tidak memutuskan apakah sebuah sertifikat diotorisasi. Log membuat penerbitan dapat diamati dan membuat bentuk tertentu dari equivocation log dapat dideteksi.
Perbedaan itu menentukan nilai keamanan mekanisme ini. Transparency menambahkan akuntabilitas ke public-key infrastructure; mekanisme ini tidak mengubah penerbitan sertifikat menjadi keputusan konsensus atau menghapus kebutuhan validasi CA.
Signed timestamp adalah janji, bukan inclusion proof
Ketika log Certificate Transparency menerima entry sertifikat atau precertificate, log mengembalikan Signed Certificate Timestamp, yang umum disingkat SCT. SCT mengikat log pada janji untuk memasukkan entry tersebut dalam maximum merge delay yang dinyatakan log.
Karena itu SCT merupakan janji bertanda tangan dari log tertentu. SCT bukan bukti kriptografis bahwa entry sudah berada dalam tree yang dipublikasikan. Inclusion dapat diverifikasi secara terpisah setelah entry digabungkan.
Pemisahan waktu ini penting secara operasional. Mewajibkan inclusion proof sinkron pada setiap penerbitan sertifikat atau koneksi TLS akan mengikat availability pada state merge log dan akses jaringan. Protokol justru mengizinkan janji segera dan audit kemudian. Monitor atau auditor selanjutnya dapat meminta bukti bahwa entry yang dijanjikan muncul dalam interval yang berlaku.
Jika log mengeluarkan SCT lalu gagal memasukkan entry terkait sebagaimana diwajibkan, janji bertanda tangan itu menjadi bukti yang terkait dengan kegagalan log. Properti akuntabilitas bergantung pada penyimpanan dan pemeriksaan bukti tersebut, bukan memperlakukan keberadaan SCT sebagai langkah audit terakhir.
Merkle root mengikat log pada riwayat yang terurut
Log Certificate Transparency menggunakan Merkle hash tree untuk membuat commitment ringkas terhadap kumpulan entry yang terurut. Leaf mengikat entry log, node internal mengikat hash child-nya, dan root mengikat state tree yang dihasilkan.
Signed tree head mengikat signature log ke ukuran tree dan root hash tertentu. Dua tree head dengan ukuran berbeda dapat merepresentasikan pertumbuhan yang sah, tetapi tree yang lebih baru harus memperpanjang riwayat sebelumnya, bukan diam-diam menggantikannya.
Merkle consistency proof membuat relasi append-only tersebut efisien untuk diverifikasi. Dengan state tree lama dan baru, verifier dapat memeriksa bahwa entry yang diikat root lama tetap menjadi prefix dari tree baru. Verifier tidak perlu mengunduh dan membandingkan setiap entry historis hanya untuk menetapkan relasi tersebut.
Properti ini mempersempit kebebasan log. Log tidak dapat menulis ulang prefix yang sudah diikat dan tetap menghasilkan consistency proof valid yang menghubungkan root lama dan baru, dengan asumsi konstruksi hash dan skema signature mempertahankan properti keamanan yang diharapkan.
Inclusion proof menjawab pertanyaan yang lebih sempit
Merkle inclusion proof menghubungkan satu leaf ke root tree tertentu menggunakan sibling hash yang diperlukan untuk menghitung ulang root tersebut. Verifikasi yang berhasil menetapkan bahwa leaf termasuk dalam tree yang direpresentasikan root itu.
Pernyataan tersebut presisi dan terbatas. Ia tidak menetapkan bahwa sertifikat diminta secara sah, bahwa CA melakukan validasi identitas dengan benar, bahwa sertifikat tetap dapat diterima menurut kebijakan browser, atau bahwa log menunjukkan tree yang sama kepada setiap pengamat.
Tree head itu sendiri juga harus diautentikasi sebagai pernyataan dari log yang diharapkan. Inclusion path yang valid terhadap root tanpa autentikasi memiliki sedikit makna keamanan karena pihak arbitrer dapat membuat Merkle tree yang berisi leaf apa pun.
Inclusion dan consistency karena itu mencakup properti berbeda. Inclusion mengikat entry ke satu state tree yang sudah di-commit. Consistency mengikat dua state tree yang sudah di-commit menjadi satu riwayat append-only.
Split view memindahkan masalah dari integritas ke koordinasi
Log yang malicious atau compromised dapat mencoba menyajikan satu riwayat yang konsisten secara internal kepada satu populasi dan riwayat konsisten lain kepada populasi berbeda. Masing-masing populasi dapat menerima signature log valid, inclusion proof valid, dan consistency proof valid dalam view-nya sendiri.
Merkle tree tidak secara otomatis memaksa populasi tersebut membandingkan observasi. Deteksi equivocation seperti ini membutuhkan tree head atau bukti terkait untuk melintasi boundary antara view yang sebelumnya terisolasi.
Ini merupakan keterbatasan inti sistem transparency. Cryptographic commitment membuat pernyataan yang saling bertentangan dapat dibuktikan ketika pernyataan tersebut bertemu; mekanisme itu tidak menjamin pengamat yang ditargetkan secara terpisah akan saling bertukar bukti. Monitoring, auditing, kebijakan browser, tata kelola daftar log, dan mekanisme distribusi observasi merupakan bagian dari sistem operasional di sekitar struktur Merkle.
Hasilnya tetap lebih kuat daripada database penerbitan tanpa audit. Log yang menandatangani riwayat tidak kompatibel menciptakan bukti kriptografis yang tahan lama. Namun latency dan cakupan deteksi bergantung pada jaringan observasi di sekitarnya, bukan hanya pada hash tree.
Logging publik mengubah failure model CA
Tanpa persyaratan transparency, sertifikat yang salah diterbitkan dapat hanya diketahui issuer, penerima, dan pihak yang kebetulan mengamatinya saat digunakan. Logging publik memberi operator domain dan monitor independen permukaan deteksi lain: sertifikat yang baru dicatat dapat diperiksa untuk nama atau issuer yang menjadi perhatian.
Hal ini tidak mencegah CA membuat kesalahan penerbitan. Yang berubah adalah biaya dan visibilitas kesalahan tersebut. Sertifikat yang harus muncul dalam log yang dipantau lebih sulit disembunyikan selama masa gunanya dibanding sertifikat yang dapat sepenuhnya berada di luar audit trail publik.
Boundary keamanan juga bergeser. Kepercayaan CA tidak lagi menjadi satu-satunya sumber bukti tentang riwayat penerbitan. Log mengatestasi entry yang dikirim, monitor memeriksa entry tersebut, client menegakkan kebijakan transparency yang berlaku, dan operator domain dapat bereaksi terhadap sertifikat yang tidak diharapkan.
Peran tersebut tidak boleh disatukan. Log yang mencatat sertifikat tidak berarti mendukung sertifikat itu. Monitor yang menandai sertifikat tidak mencabutnya. Kebijakan penerimaan client tetap berbeda dari integritas log, dan remediation masih bergantung pada proses CA dan platform.
Transparency sengaja menciptakan paparan informasi
Auditabilitas publik membutuhkan publikasi. Nama sertifikat dan metadata terkait yang dimasukkan ke log publik menjadi terlihat oleh pihak di luar CA dan pemegang sertifikat.
Untuk layanan Internet publik, trade-off ini dapat diterima dan sudah tertanam dalam ekosistem sertifikat publik, tetapi memiliki konsekuensi arsitektural. Hostname yang mengandung nama proyek internal, label staging, identifier pelanggan, atau detail operasional lain dapat menjadi enumerable secara eksternal ketika muncul dalam sertifikat yang dicatat publik.
Transparency karena itu bukan confidentiality. Tujuannya membutuhkan pengungkapan yang cukup untuk audit independen. Sistem yang membutuhkan penamaan privat tidak seharusnya menganggap memperoleh sertifikat yang dipercaya publik akan menjaga kerahasiaan nama tersebut.
Ketegangan ini bukan cacat dalam konstruksi Merkle. Ia mengikuti tujuan kebijakan: penerbitan yang dapat dideteksi secara eksternal membutuhkan bukti yang dapat diamati secara eksternal.
Bukti audit tetap membutuhkan respons operasional
Monitor transparency dapat mengidentifikasi sertifikat yang tidak diharapkan, tetapi deteksi saja tidak membatalkan sertifikat atau menghapusnya dari trust relying party. Respons dapat mencakup investigasi jalur penerbitan, menghubungi CA, mencabut credential yang terdampak bila sesuai, memperbaiki kelemahan account atau domain-control, dan menggunakan jalur insiden platform ketika peristiwa menunjukkan kegagalan CA yang lebih luas.
Nilai praktis monitoring karena itu bergantung pada ownership. Alert membutuhkan pemetaan nama sertifikat ke tim yang bertanggung jawab, konteks yang cukup untuk membedakan automation yang diharapkan dari penerbitan anomali, serta jalur respons yang dapat bertindak sebelum sisa masa berlaku sertifikat kehilangan relevansinya.
Certificate Transparency paling kuat ketika diperlakukan sebagai sistem bukti, bukan oracle kualitas sertifikat. Signed timestamp menciptakan janji yang dapat dimintai pertanggungjawaban, Merkle proof mengikat entry dan riwayat tree, dan monitoring publik mengekspos penerbitan yang sebaliknya tetap privat. Pekerjaan keamanan yang tersisa berada pada boundary di antara bukti tersebut: bertukar observasi, menafsirkan entry yang tidak diharapkan, dan bertindak atas bukti sebelum sertifikat valid tetapi tidak terotorisasi mempertahankan nilai operasional.