Ditandatangani Sendiri vs CA Awam untuk VPN: Apa yang Sebenarnya Berubah
Sijil tandatangan sendiri dan awam menyulitkan terowong VPN dengan cara yang sama. Perbezaan sebenar ialah siapa yang menjamin pelayan, dan siapa yang perlu mempercayai dakwaan itu.
Anda sampai ke halaman sijil sesuatu persediaan VPN, melihat pilihan tandatangan sendiri percuma di sebelah CA awam berbayar, dan soalan itu berbunyi seperti pilihan keselamatan. Ia sebenarnya pilihan audiens. Kedua-dua pilihan menyulitkan terowong dengan primitif yang sama, dan kedua-duanya menjadi tidak berguna jika kunci peribadi bocor. Yang memisahkan mereka ialah siapa yang membuat dakwaan tentang identiti pelayan, dan siapa yang berada dalam kedudukan untuk memeriksa dakwaan itu.
Sijil melakukan dua kerja yang dikelirukan
Sijil mengikat kunci awam kepada nama, dan kunci itu melakukan kerja penyulitan dan penandatanganan. Tandatangan pada sijil ialah pernyataan berasingan: sesuatu pihak berkuasa telah memeriksa bahawa nama itu milik pemegang kunci ini. Sijil tandatangan sendiri membuat pernyataan itu tentang dirinya sendiri, yang sama sekali bukan dakwaan pihak ketiga.
Laman web awam memerlukan versi pihak ketiga, kerana pelawat datang tanpa hubungan terdahulu dan bergantung pada stor kepercayaan pelayar. Klien VPN bukan orang asing. Anda memberinya sijil CA, atau menyematkan sijil pelayan, di dalam profil yang dipasangnya, jadi pengesahan berjalan terhadap pihak berkuasa yang tepat yang anda pilih. Tiada CA komersial perlu terlibat agar pemeriksaan itu bermakna.
Kekuatan sesi yang terhasil datang dari saiz kunci dan suite penyulitan, bukan dari penandatangan. Itulah sebabnya memanggil sijil tandatangan sendiri "kurang disulitkan" semata-mata salah; ia kurang dijamin secara meluas, yang merupakan sifat berbeza.
Di mana CA awam memperoleh bayarannya
Kes paling jelas ialah halaman pentadbiran. Jika rakan sekerja, kontraktor atau sesiapa sahaja tanpa profil sedia perlu membuka antara muka web pelayan VPN tanpa amaran pelayar, sijil yang dipercayai secara awam menghapuskan geseran itu. Pelayar sudah mempercayai penandatangan, jadi tiada apa yang perlu diimport dan tiada apa yang perlu dijelaskan.
Kemudahan itu mempunyai kos yang wajar disebut sebelum membeli. Pembaharuan mesti diautomasikan atau laman akan rosak mengikut jadual, sijil awam mendedahkan nama hos dalam log ketelusan sijil, dan had kadar pengeluaran menghukum skrip yang terlalu bersemangat mencuba semula. Tiada satu pun daripada itu sebab untuk mengelakkan CA awam, tetapi ia kerja operasi yang dipindahkan CA persendirian ke tempat lain.
Apa yang sijil awam tidak lakukan ialah mengesahkan pengguna anda. Identiti klien ialah keputusan berasingan, diambil dengan sijil klien, kata laluan atau faktor kedua, dan CA yang menandatangani pelayan tidak mengatakan apa-apa tentang siapa yang dibenarkan menyambung kepadanya.
Di mana CA persendirian sesuai untuk VPN
Untuk VPN persendirian dengan set klien yang diketahui, menjalankan CA sendiri ialah pilihan lazim. Anda mencipta CA sekali, menandatangani sijil pelayan dengan nama yang akan digunakan oleh klien, dan mengedarkan sijil CA di dalam setiap profil. Setiap klien kemudian mengesahkan pelayan terhadap pihak berkuasa anda, dan tiada pihak luar mengetahui nama hos.
Kosnya nyata tetapi terhad. Pelayar akan memberi amaran apabila seseorang membuka halaman pentadbiran secara terus, kerana pelayar tiada sebab untuk mempercayai CA anda. Pengedaran profil menjadi bahagian onboarding, dan memutar CA bermakna menyentuh setiap klien. Itu harga yang boleh diterima untuk perkhidmatan dengan sepuluh atau lima puluh pengguna yang diketahui dan menyakitkan untuk titik akhir awam dengan beribu-ribu.
Satu syarat menjadikan keseluruhan susunan sah: pengesahan mesti berlaku. Klien yang dikonfigurasikan untuk mengabaikan ralat sijil menerima mana-mana pelayan yang membentangkan mana-mana sijil, jadi jaminan identiti hilang sementara penyulitan kekal. Tetapan itulah kelemahan sebenar dalam kebanyakan kisah "tandatangan sendiri tidak selamat".
Kunci peribadi CA menentukan apa yang boleh anda lakukan kemudian
Kejutan biasanya datang berbulan-bulan kemudian, apabila anda mahu menambah peranti. Mengeluarkan sijil klien memerlukan kunci peribadi CA, begitu juga menghasilkan senarai pembatalan. Jika anda mewarisi pelayan yang mempunyai fail sijil dan kunci tetapi bukan kunci CA, anda tidak boleh menandatangani apa-apa yang baharu. Pilihan anda ialah membina semula PKI dan memberi setiap klien sijil CA baharu, atau beralih kepada pengesahan kata laluan, yang merupakan model keselamatan berbeza dan tidak memulihkan apa yang hilang.
Dua perangkap lebih kecil hidup di wilayah yang sama. Skrip easy-rsa menganggap anda berdiri di direktori yang mengandunginya, jadi ralat fail tidak ditemui biasanya bermaksud lokasi yang salah, bukan pemasangan yang rosak. Dan reka bentuk hanya dengan sijil sepenuhnya sah: anda boleh mewajibkan sijil klien tanpa kunci yang dikongsi terlebih dahulu, dengan syarat setiap klien mempunyai satu dan pelayan mengesahkan rantai itu.
Keluarkan satu sijil bagi setiap peranti dan bukannya satu sijil klien dikongsi untuk seluruh pasukan. Komputer riba yang hilang kemudian kos anda satu pembatalan dan bukannya pengeluaran semula untuk semua orang.
Periksa apa yang anda warisi
Sebelum merancang apa-apa perubahan, baca sijil yang anda sudah ada:
$ 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 pengeluar sama dengan subjek, sijil itu tandatangan sendiri, yang merupakan pilihan reka bentuk dan bukan kecacatan. Tarikh memberitahu anda bila pembaharuan menjadi masalah seseorang, dan pengesahan berjaya terhadap CA yang anda niatkan untuk dihantar mengesahkan rantai itu berfungsi sebelum seorang klien mencubanya.
Kemudian pilih mengikut audiens dan pengedaran: CA awam apabila pelayar tidak dikenali mesti mempercayai halaman pentadbiran, CA persendirian apabila setiap klien menerima profil yang anda kawal. Tiada jawapan yang lebih disulitkan daripada yang lain.