Anda sampai di halaman sertifikat sebuah penyiapan VPN, melihat opsi mandiri gratis di samping CA publik berbayar, dan pertanyaannya terdengar seperti pilihan keamanan. Sebenarnya ini pilihan audiens. Kedua opsi mengenkripsi terowongan dengan primitif yang sama, dan keduanya menjadi tidak berguna jika kunci privat bocor. Yang memisahkan keduanya adalah siapa yang membuat klaim tentang identitas server, dan siapa yang berada dalam posisi untuk memeriksa klaim itu.

Sertifikat melakukan dua pekerjaan yang sering tertukar

Sertifikat mengikat kunci publik ke sebuah nama, dan kunci itulah yang melakukan pekerjaan enkripsi dan penandatanganan. Tanda tangan pada sertifikat adalah pernyataan terpisah: suatu otoritas telah memeriksa bahwa nama itu milik pemegang kunci ini. Sertifikat mandiri membuat pernyataan itu tentang dirinya sendiri, yang sama sekali bukan klaim pihak ketiga.

Situs web publik membutuhkan versi pihak ketiga, karena pengunjung datang tanpa hubungan sebelumnya dan mengandalkan penyimpanan kepercayaan peramban. Klien VPN bukan orang asing. Anda memberinya sertifikat CA, atau menyematkan sertifikat server, di dalam profil yang dipasangnya, sehingga verifikasi berjalan terhadap otoritas yang persis Anda pilih. Tidak ada CA komersial yang perlu terlibat agar pemeriksaan itu berarti.

Kekuatan sesi yang dihasilkan berasal dari ukuran kunci dan rangkaian sandi, bukan dari penanda tangan. Karena itu menyebut sertifikat mandiri "kurang terenkripsi" jelas salah; ia kurang dijamin secara luas, yang merupakan sifat berbeda.

Di mana CA publik memperoleh bayarannya

Kasus paling jelas adalah halaman administrasi. Jika kolega, kontraktor, atau siapa pun tanpa profil siap harus membuka antarmuka web server VPN tanpa peringatan peramban, sertifikat yang tepercaya secara publik menghilangkan hambatan itu. Peramban sudah memercayai penanda tangan, jadi tidak ada yang perlu diimpor dan tidak ada yang perlu dijelaskan.

Kenyamanan itu punya biaya yang layak disebut sebelum membeli. Pembaruan harus diotomatiskan atau situs rusak sesuai jadwal, sertifikat publik mengekspos nama host di log transparansi sertifikat, dan batas laju penerbitan menghukum skrip yang terlalu bersemangat mencoba ulang. Tidak satu pun dari itu alasan menghindari CA publik, tetapi itu pekerjaan operasional yang dipindahkan CA privat ke tempat lain.

Yang tidak dilakukan sertifikat publik adalah mengautentikasi pengguna Anda. Identitas klien adalah keputusan terpisah, diambil dengan sertifikat klien, kata sandi, atau faktor kedua, dan CA yang menandatangani server tidak mengatakan apa pun tentang siapa yang boleh terhubung ke sana.

Di mana CA privat cocok untuk VPN

Untuk VPN privat dengan sekumpulan klien yang diketahui, menjalankan CA sendiri adalah pilihan konvensional. Anda membuat CA sekali, menandatangani sertifikat server dengan nama yang akan dipakai klien, dan mendistribusikan sertifikat CA di dalam setiap profil. Setiap klien kemudian memverifikasi server terhadap otoritas Anda, dan tidak ada pihak luar yang mengetahui nama host.

Biayanya nyata tetapi terbatas. Peramban akan memperingatkan ketika seseorang membuka halaman admin secara langsung, karena peramban tidak punya alasan memercayai CA Anda. Distribusi profil menjadi bagian dari orientasi, dan merotasi CA berarti menyentuh setiap klien. Itu harga yang wajar untuk layanan dengan sepuluh atau lima puluh pengguna yang diketahui dan menyakitkan untuk titik akhir publik dengan ribuan.

Satu syarat membuat seluruh pengaturan sah: verifikasi harus terjadi. Klien yang dikonfigurasi mengabaikan kesalahan sertifikat menerima server mana pun yang menyajikan sertifikat apa pun, sehingga jaminan identitas hilang sementara enkripsi tetap ada. Pengaturan itulah kelemahan sebenarnya dalam sebagian besar kisah "mandiri itu tidak aman".

Kunci privat CA menentukan apa yang dapat Anda lakukan nanti

Kejutan biasanya datang berbulan-bulan kemudian, ketika Anda ingin menambah perangkat. Menerbitkan sertifikat klien memerlukan kunci privat CA, begitu pula membuat daftar pencabutan. Jika Anda mewarisi server yang memiliki berkas sertifikat dan kunci tetapi bukan kunci CA, Anda tidak dapat menandatangani apa pun yang baru. Pilihan Anda adalah membangun ulang PKI dan memberi setiap klien sertifikat CA baru, atau beralih ke autentikasi kata sandi, yang merupakan model keamanan berbeda dan tidak memulihkan apa yang hilang.

Dua jebakan lebih kecil hidup di wilayah yang sama. Skrip easy-rsa mengasumsikan Anda berdiri di direktori yang memuatnya, jadi kesalahan berkas tidak ditemukan biasanya berarti lokasi yang salah, bukan pemasangan yang rusak. Dan desain yang hanya memakai sertifikat sepenuhnya sah: Anda dapat mewajibkan sertifikat klien tanpa kunci yang dibagikan sebelumnya, asalkan setiap klien punya satu dan server memverifikasi rantainya.

Terbitkan satu sertifikat per perangkat, bukan satu sertifikat klien bersama untuk seluruh tim. Laptop yang hilang kemudian membuat Anda menanggung satu pencabutan alih-alih penerbitan ulang untuk semua orang.

Periksa apa yang Anda warisi

Sebelum merencanakan perubahan apa pun, baca sertifikat yang sudah Anda miliki:

$ openssl x509 -in server.crt -noout -subject -issuer -dates
subject=CN = vpn.example.net
issuer=CN = vpn.example.net
notAfter=Nov  3 09:00:00 2027 GMT
$ openssl verify -CAfile ca.crt server.crt
server.crt: OK

Jika penerbit sama dengan subjek, sertifikat itu mandiri, yang merupakan pilihan desain, bukan cacat. Tanggalnya memberi tahu Anda kapan pembaruan menjadi masalah seseorang, dan verifikasi yang berhasil terhadap CA yang hendak Anda kirim memastikan rantainya bekerja sebelum satu klien mencobanya.

Lalu pilih berdasarkan audiens dan distribusi: CA publik ketika peramban yang tidak dikenal harus memercayai halaman admin, CA privat ketika setiap klien menerima profil yang Anda kendalikan. Tidak ada jawaban yang lebih terenkripsi daripada yang lain.

Artikel terkait