DNS CAA Membatasi Certificate Authority yang Boleh Menerbitkan untuk Domain

Sertifikat TLS yang dipercaya publik diterbitkan oleh certificate authority yang memenuhi requirement trust browser dan operating system. Operator domain biasanya memilih satu CA, tetapi ekosistem public trust dapat berisi banyak authority yang mampu menerbitkan sertifikat yang diterima client.

Record Certification Authority Authorization (CAA) menambahkan policy DNS pada saat issuance. Domain dapat menyatakan CA mana yang diizinkan menerbitkan sertifikat untuknya. RFC 8659 menetapkan model pemrosesan, termasuk lookup record, property tag, dan perilaku issuer.

CAA bukan pengganti validasi sertifikat. CAA membatasi issuance sebelum sertifikat ada; client tetap memvalidasi sertifikat yang dihasilkan saat TLS berlangsung.

Policy CAA dinyatakan di DNS

Resource record CAA berisi flags, property tag, dan property value. Dua tag utama adalah issue dan issuewild.

Zone sederhana dapat berisi:

example.com.  CAA 0 issue "ca.example"

Value mengidentifikasi CA menurut issuer-domain name yang didokumentasikan CA tersebut. Record itu menyatakan bahwa issuer terkait berwenang menerbitkan untuk domain, dengan tetap mengikuti validasi dan policy milik CA.

Beberapa record issue dapat mengizinkan beberapa CA:

example.com.  CAA 0 issue "ca-one.example"
example.com.  CAA 0 issue "ca-two.example"

CAA karena itu bertindak sebagai allowlist, bukan selector yang memberi tahu TLS client sertifikat mana yang harus dipilih.

Wildcard issuance dapat memiliki policy terpisah

Property issuewild mengendalikan authorization untuk wildcard certificate. Operator domain dapat memisahkan ordinary issuance dari wildcard issuance.

example.com.  CAA 0 issue "ca-one.example"
example.com.  CAA 0 issuewild "ca-two.example"

Dalam contoh ini, policy untuk sertifikat non-wildcard dan wildcard dapat menunjuk issuer yang berbeda.

Record issuewild memiliki precedence atas issue untuk authorization wildcard menurut aturan pemrosesan CAA. Perbedaan ini penting ketika deployment sengaja mengizinkan CA untuk nama biasa tetapi tidak ingin authorization yang sama otomatis meluas ke wildcard certificate.

Issuer value kosong dapat menolak suatu kelas issuance

CAA juga mendukung issuer value yang tidak mengizinkan CA mana pun. Bentuk yang umum adalah:

example.com.  CAA 0 issue ";"

Ini menyatakan bahwa tidak ada issuer yang diizinkan melalui property issue pada nama tersebut.

Efeknya perlu dievaluasi bersama seluruh record set CAA dan aturan lookup. Menyalin satu baris ke zone tanpa mempertimbangkan inherited policy, wildcard policy, dan certificate automation yang benar-benar digunakan domain dapat memblokir issuance yang sah.

Perubahan CAA karena itu merupakan perubahan konfigurasi pada lifecycle sertifikat, bukan sekadar metadata DNS.

Lookup dapat mewarisi policy dari parent name

CA tidak hanya memeriksa satu exact DNS owner name lalu berhenti. RFC 8659 menetapkan tree-climbing lookup. Jika tidak ada record CAA yang relevan pada suatu nama, pemrosesan dapat berlanjut menuju parent label sampai record set CAA ditemukan atau pencarian berakhir.

Hal ini memungkinkan parent domain menyediakan policy bagi descendant yang tidak memublikasikan record CAA sendiri.

Secara konseptual:

api.eu.example.com
        |
        | tidak ada CAA
        v
   eu.example.com
        |
        | tidak ada CAA
        v
     example.com
        |
        +-- policy CAA ditemukan

Publikasi record set CAA pada child dapat menetapkan policy pada titik tersebut alih-alih bergantung pada record set parent. Administrasi DNS karena itu perlu memperhitungkan delegated team dan kepemilikan subdomain, bukan menganggap satu policy apex selalu mengatur setiap nama.

CAA membatasi CA, bukan attacker pada TLS endpoint

CAA diperiksa sebagai bagian dari certificate issuance. CAA tidak ikut dalam TLS handshake dan biasanya bukan authorization check di sisi browser untuk sertifikat yang sudah diterbitkan.

Boundary tersebut penting:

policy DNS CAA
      |
      v
keputusan issuance CA
      |
      v
sertifikat
      |
      v
validasi sertifikat TLS

Jika sertifikat valid sudah diterbitkan, perubahan CAA tidak melakukan revocation terhadapnya. Revocation, expiration, key rotation, dan certificate replacement tetap merupakan mekanisme lifecycle yang terpisah.

CAA juga tidak melindungi private key yang tersimpan di server, menegakkan application authorization, atau mencegah endpoint terkompromi memakai sertifikat yang private key-nya sudah dimiliki.

Integritas DNS memengaruhi nilai kontrol

Karena policy dipublikasikan melalui DNS, integritas dan availability jalur DNS yang relevan ikut menentukan nilainya. CA wajib memproses CAA sesuai specification yang berlaku dan prosedur issuance mereka, termasuk penanganan lookup error.

DNSSEC dapat menyediakan data DNS yang terautentikasi ketika validation diterapkan dengan benar sepanjang lookup path, tetapi CAA tidak mengharuskan setiap domain memakai DNSSEC. Security property deployment tertentu karena itu bergantung pada pemrosesan CAA sekaligus kontrol DNS di sekitar zone.

Keamanan administratif juga penting. Attacker yang dapat mengubah authoritative DNS mungkin dapat mengubah policy CAA selain record lain yang dipakai oleh metode domain validation. CAA sebaiknya diperlakukan sebagai satu layer dalam kontrol domain dan sertifikat, bukan sebagai isolasi dari kompromi DNS.

Certificate automation harus sesuai dengan issuer yang dipublikasikan

Renewal sertifikat otomatis dapat gagal ketika policy CAA dan CA yang dikonfigurasi tidak lagi selaras. Kondisi ini sering baru terlihat ketika renewal attempt mencapai CA, sehingga policy yang stale dapat menimbulkan biaya operasional.

Urutan perubahan yang lebih aman bersifat eksplisit:

konfirmasi issuer aktif
        |
        v
publikasikan policy CAA yang dituju
        |
        v
verifikasi authoritative DNS
        |
        v
uji jalur issuance atau staging
        |
        v
monitor renewal

Selama migrasi CA, issuer lama dan baru mungkin sama-sama perlu diizinkan dalam periode overlap jika sertifikat masih dapat diperbarui atau diterbitkan melalui salah satu jalur. Penghapusan authorization lama sebaiknya mengikuti state migrasi aktual, bukan tanggal cutover yang diasumsikan.

Disiplin yang sama berlaku untuk issuer disaster recovery. CA cadangan yang tidak tercantum dalam CAA tidak dapat menjadi fallback langsung sampai policy mengizinkannya dan perubahan terlihat sesuai perilaku DNS serta pemrosesan CA.

Critical flag memerlukan penanganan cermat

Record CAA menyertakan issuer-critical flag. Ketika critical bit ditetapkan untuk property tag yang tidak dikenali issuer, issuer tidak boleh menerbitkan berdasarkan record set tersebut.

Mekanisme ini memungkinkan property CAA baru menyatakan bahwa ketidaktahuan terhadap property tersebut tidak aman. Mekanisme yang sama juga menciptakan requirement kompatibilitas: memasang flag pada property tanpa memastikan dukungan issuer dapat secara sengaja mengubah ketiadaan dukungan menjadi penolakan issuance.

Untuk record issue dan issuewild biasa, operator sebaiknya mengikuti syntax dan parameter yang didokumentasikan CA yang dipilih, bukan membuat value sendiri. Parameter account binding khusus CA dapat mempersempit authorization lebih jauh ketika didukung, tetapi semantiknya bersifat issuer-specific.

Monitoring perlu mencakup policy dan jalur issuance aktual

Monitoring CAA paling berguna ketika membandingkan intended policy dengan authoritative DNS dan certificate automation yang bergantung padanya. Record yang valid secara syntax masih dapat mengizinkan issuer yang salah, menghilangkan jalur wildcard yang dibutuhkan, atau bertentangan dengan migrasi CA yang direncanakan.

Pemeriksaan yang berguna mencakup effective CAA record set untuk nama production, issuer yang dikonfigurasi pada renewal tooling, requirement wildcard, perubahan DNS delegation, dan renewal sertifikat yang akan datang.

CAA menyediakan kontrol sempit dengan posisi yang jelas dalam lifecycle PKI. CAA membatasi authority yang boleh membuat sertifikat baru untuk domain dalam proses public issuance. Menjaga policy tersebut selaras dengan kepemilikan DNS dan certificate automation mengubah record dari metadata pasif menjadi issuance boundary yang dapat ditegakkan.

Referensi