Certificate Transparency Membuka Penerbitan Sertifikat untuk Audit Publik

Sertifikat TLS yang dipercaya publik merupakan pernyataan dari certificate authority. PKI tradisional memberi klien cara untuk memvalidasi pernyataan tersebut terhadap root tepercaya, tetapi keberhasilan validasi path saja tidak membuat penerbitan sertifikat terlihat secara publik.

Certificate Transparency, yang umum disingkat CT, menambahkan lapisan audit. Log yang berpartisipasi menerima entri sertifikat dan memasukkannya ke struktur data append-only. Bukti yang dihasilkan memungkinkan klien, operator domain, dan monitor mendeteksi sertifikat yang telah masuk ke Web PKI publik, termasuk sertifikat yang tidak diperkirakan ada oleh operator.

CT tidak menggantikan validasi sertifikat, revocation, atau kebijakan certificate authority. Perannya lebih sempit: penerbitan yang sebelumnya terutama terlihat oleh penerbit dan pemegang sertifikat dapat meninggalkan bukti pada log publik yang dioperasikan secara independen.

Log membuat penerbitan dapat diamati

Log CT menerima entri terkait sertifikat dan memasukkannya ke Merkle tree append-only. Setiap leaf mewakili entri yang dicatat. Node internal tree diturunkan dari hash child-nya, menghasilkan root hash ringkas untuk state tree saat itu.

Struktur tersebut mendukung dua proof penting. Inclusion proof dapat menunjukkan bahwa entri tertentu termasuk dalam tree yang direpresentasikan oleh sebuah root. Consistency proof dapat menunjukkan bahwa tree yang lebih baru memperluas tree lama tanpa menulis ulang entri sebelumnya.

Secara konseptual:

entri sertifikat
       |
       v
   Merkle leaf
       |
       v
append-only log tree
       |
       v
state tree bertanda tangan

Sifat append-only menjadi inti model audit. Log yang dapat diam-diam mengganti entri historis akan memberikan bukti yang jauh lebih lemah. Cryptographic proof membuat view yang bertentangan atau riwayat yang ditulis ulang dapat dideteksi ketika state tree yang relevan dibandingkan.

SCT adalah komitmen untuk memasukkan entri ke log

Saat log yang sesuai menerima submission sertifikat atau precertificate, log dapat mengembalikan Signed Certificate Timestamp, atau SCT. SCT adalah pernyataan bertanda tangan dari log yang berkomitmen memasukkan entri tersebut dalam batas maximum merge delay milik log.

SCT bukan bukti bahwa entri sudah ada dalam tree yang lebih baru. SCT merupakan komitmen dari log. Inclusion selanjutnya dapat diperiksa terhadap state tree yang dipublikasikan.

SCT dapat sampai ke klien melalui mekanisme yang didukung ekosistem TLS dan sertifikat di sekitarnya. Terlepas dari jalur pengirimannya, klien yang mengevaluasi kebijakan CT memerlukan bukti yang terkait dengan log yang diterima oleh kebijakan tersebut.

Hal ini memisahkan dua pertanyaan yang mudah tercampur:

validasi certificate path -> apakah certificate chain dapat diterima?
evaluasi kebijakan CT     -> apakah bukti transparansi yang diterima tersedia?

Lolos dari satu pemeriksaan tidak berarti pemeriksaan lainnya juga lolos.

Precertificate memungkinkan logging sebelum penerbitan final

Certificate authority dapat mengirim precertificate ke log CT sebelum menghasilkan sertifikat final. Precertificate membawa informasi yang berkaitan dengan sertifikat yang akan diterbitkan, dengan penanganan khusus CT yang membedakannya dari sertifikat end-entity biasa.

Log mengembalikan SCT untuk submission yang diterima. CA kemudian dapat menyematkan informasi SCT yang sesuai ke sertifikat final. Alur ini memungkinkan bukti transparansi disiapkan sebagai bagian dari proses penerbitan tanpa mengharuskan sertifikat final beredar lebih dahulu.

Precertificate dengan demikian merupakan bagian dari protokol logging, bukan sertifikat server kedua yang dapat dipakai secara independen. Pemrosesan yang benar bergantung pada aturan CT yang mengikat representasi precertificate dan sertifikat final.

Monitor mengubah catatan publik menjadi sinyal operasional

Log publik baru berguna ketika isinya diperiksa. Monitor dapat mengonsumsi entri log dan mencari sertifikat yang terkait dengan domain atau pola nama tertentu.

Bagi operator domain, sertifikat tercatat yang tidak diperkirakan merupakan sinyal untuk investigasi. Penyebabnya dapat berupa sistem resmi yang belum masuk inventaris monitoring, kesalahan konfigurasi penerbitan, atau penerbitan yang semestinya tidak terjadi. Log menyediakan visibilitas; log tidak mengklasifikasikan kejadian tersebut dengan sendirinya.

Perbedaan itu penting. CT dirancang untuk mengekspos bukti, bukan menentukan legitimasi setiap sertifikat yang diamati.

Monitoring juga memiliki batas waktu. Logging dan observasi merupakan langkah terpisah, sehingga deteksi tidak sama dengan pencegahan. Proses respons tetap memerlukan kepemilikan, routing alert, inventaris sertifikat, prosedur kontak issuer, dan penanganan revocation jika relevan.

Auditor dapat menguji perilaku log

Desain Merkle tree CT mendukung verifikasi tanpa mewajibkan setiap peserta menyimpan setiap node internal tree. Auditor dapat meminta bukti bahwa suatu entri termasuk di bawah signed tree head dan memverifikasi hash path menuju root.

Consistency proof menyediakan pemeriksaan lain. Dengan ukuran tree lama dan baru, proof yang valid menunjukkan bahwa tree baru memasukkan tree lama sebagai prefix, bukan menyajikan riwayat yang telah ditulis ulang.

Proof tersebut tidak membuat log bebas dari kegagalan. Proof membuat bentuk penyimpangan tertentu dapat dibuktikan secara kriptografis ketika peserta memperoleh dan membandingkan bukti yang diperlukan. Kebijakan ekosistem, monitoring, dan tata kelola log tetap menjadi bagian dari model keamanan.

Logging publik mengubah batas privasi

Transparansi menciptakan pengungkapan yang disengaja. Sertifikat dan precertificate yang dikirim ke log publik dapat mengekspos nama domain yang terdapat dalam identifier sertifikat. Operator tidak boleh memperlakukan nama yang ditempatkan dalam sertifikat yang dicatat secara publik sebagai inventaris rahasia.

Hal ini memiliki konsekuensi praktis bagi hostname yang tampak internal tetapi tetap dimasukkan ke sertifikat yang dipercaya publik. Layanan monitoring CT dapat mengamati nama yang tercatat, dan log memang dirancang untuk inspeksi publik.

CT dengan demikian menukar kerahasiaan catatan penerbitan dengan akuntabilitas dalam ekosistem sertifikat publik. Pertukaran tersebut merupakan sifat mekanisme, bukan efek samping yang tidak disengaja.

CT melengkapi kontrol PKI lain

Certificate Transparency menjawab pertanyaan yang berbeda dari beberapa kontrol di sekitarnya. Validasi certificate path membentuk chain menuju trust anchor dan menerapkan aturan pemrosesan sertifikat. Mekanisme revocation mengomunikasikan status sertifikat. Record CAA memungkinkan domain memublikasikan certificate authority yang diizinkan menerbitkan sertifikat untuknya, sesuai aturan pemrosesan CA. CT mencatat bukti penerbitan untuk audit publik.

Kontrol tersebut dapat saling memperkuat tanpa menjadi mekanisme yang dapat saling menggantikan:

validasi path -> memvalidasi trust path dan constraint sertifikat
CAA           -> menyatakan kebijakan otorisasi penerbitan kepada CA
CT            -> mengekspos bukti penerbitan untuk audit publik
revocation    -> mengomunikasikan status sertifikat

Sertifikat yang tercatat tidak otomatis tepercaya hanya karena muncul di CT. Log mencatat sertifikat dan entri terkait; log tidak mendukung klaim identitas di dalamnya. Sebaliknya, certificate chain yang valid tidak menghilangkan nilai bukti transparansi.

Manfaat keamanan muncul dari penerbitan yang dapat diamati dan diperiksa melintasi batas organisasi. Certificate authority tetap menerbitkan sertifikat, klien tetap menegakkan trust policy, dan operator tetap merespons penerbitan mencurigakan. CT menambahkan catatan publik serta mekanisme audit kriptografis yang membuat penerbitan diam-diam lebih sulit tetap tersembunyi.