Mengapa menyalin ca.key ke setiap klien VPN merusak CA
Klien memverifikasi sertifikat publik CA; klien tidak pernah membutuhkan kunci yang menandatangani. Menyalin ca.key ke setiap perangkat menyerahkan wewenang penerbitan kepada siapa pun yang mengambil satu salinan.
Di suatu tempat dalam petunjuk penyiapan, sebuah direktori disalin seluruhnya ke setiap laptop karena itu lebih mudah daripada memutuskan berkas mana yang seharusnya ada di sana. Direktori itu berisi ca.key, dan begitu direktori itu mencapai perangkat kedua, otoritas sertifikat berhenti menjadi otoritas. Setiap pemegang kini dapat menerbitkan identitas yang akan dipercaya oleh seluruh jaringan.
Kebingungan ini layak diurai sekali, karena kedua berkas terlihat serupa tetapi melakukan hal yang berlawanan.
Bahan verifikasi dan bahan penandatanganan
Klien membutuhkan sertifikat publik CA untuk memeriksa bahwa sertifikat yang diajukan pihak lain ditandatangani oleh otoritas tersebut. Itu tugas verifikasi dan sama sekali tidak memerlukan rahasia. Menandatangani sertifikat pihak lain adalah tugas berbeda, dilakukan sekali oleh siapa pun yang menjalankan CA, dengan kunci privat yang tidak pernah meninggalkan penyimpanan terlindunginya. Memisahkan kedua tugas itulah seluruh alasan mengirimkan dua berkas.
Jadi ca.crt termasuk dalam profil dan ca.key tidak termasuk di mana pun dekatnya. Nama berkas hanyalah konvensi, bukan jaminan, karena itu jenisnya harus diperiksa dan bukan disimpulkan dari namanya.
Arsitektur dengan CA perantara atau layanan penerbitan daring bukan pengecualian. Itulah cara lazim menjauhkan kemampuan menandatangani dari titik akhir sambil tetap menerbitkan sertifikat perangkat dalam skala besar.
Apa yang harus dibuktikan klien dengan kuncinya sendiri
Setiap perangkat memperoleh pasangan kuncinya sendiri dan sertifikatnya sendiri, ditandatangani sekali oleh CA. Klien menyajikan sertifikat itu dan membuktikan kepemilikan kunci privat yang cocok, dan server memutuskan apakah akan menerimanya. Inilah identitas yang dicabut ketika sebuah laptop hilang.
Kontrasnya paling penting setelah pencurian. Dengan identitas per perangkat, satu klien yang terbuka dihapus melalui pencabutan atau penghapusan rekan, dan seluruh armada tetap berjalan.
Kunci otoritas yang bocor tidak dapat ditangani seperti itu. Setiap sertifikat yang pernah atau bisa ditandatanganinya menjadi mencurigakan, sehingga responsnya adalah penggantian kepercayaan, bukan satu pencabutan. Itu sebuah proyek, bukan tiket.
| File | Role | Belongs on |
|---|---|---|
ca.crt | Public certificate used to verify signatures | Every client profile |
ca.key | Private key that issues certificates | Protected CA storage only |
| client key pair | Proves one device's identity | That device alone |
Baca berkas sebelum menyalinnya ke mana pun
Dua perintah memberi tahu Anda jenis objek apa yang sedang Anda pegang tanpa mencetak rahasia apa pun. Yang pertama menyebut subjek dan tanda CA pada sertifikat; yang kedua memvalidasi kunci dan melaporkan jenisnya. Jalankan keduanya pada berkas dalam bundel yang akan Anda distribusikan. Apa pun yang tervalidasi sebagai kunci privat tidak termasuk dalam direktori klien.
openssl x509 -in ca.crt -noout -subject -ext basicConstraints openssl pkey -in ca.key -noout -check
Jika perintah kedua berhasil pada berkas yang berada di bundel klien, berhentilah dan anggap bundel itu telah disusupi. Keluaran yang menyatakan kunci valid juga menyatakan kunci itu hadir, dan kehadirannya adalah seluruh masalahnya.
Perhatikan juga arah sebaliknya: profil klien secara sah memuat kunci privat klien itu sendiri. Menghapus setiap kunci yang Anda temukan akan memutus koneksi tanpa memperbaiki apa pun, jadi objeknya harus diidentifikasi sebelum dihapus.
Membatasi kunci yang sudah Anda distribusikan
Jangan menganggap bahwa menghapus salinan lokal membalikkan paparan. Siapa pun yang pernah memegang berkas itu bisa menyalinnya, dan anggapan yang aman adalah mereka melakukannya. Ikuti proses insiden operator dan ganti jangkar kepercayaan, dengan menerbitkan ulang sertifikat perangkat di bawah CA baru.
Lalu ubah pengemasan yang menciptakan masalah itu. Kirimkan daftar direktori dengan daftar izin berkas yang eksplisit, simpan kunci CA pada mesin yang tidak pernah bergabung dengan armada klien, dan catat sistem mana yang menyimpannya.
Jika otoritas harus sering menerbitkan, pindahkan penandatanganan ke belakang layanan atau otoritas perantara dengan cakupan sempit dan masa berlaku pendek. Dengan begitu kesalahan di masa depan memaparkan sebagian penerbitan, bukan akar kepercayaan seluruh penyebaran.