Mengapa kunci pelayan dan kelayakan pengguna memerlukan pemilik berasingan
Identiti gerbang dan kebenaran pengguna ialah dua rahsia berbeza dengan kesan berbeza. Tiga soalan menentukan cara menyimpan, menyerahkan dan membatalkan setiap satu.
Kunci yang membuktikan gerbang anda ialah dirinya sendiri dan kelayakan yang menyatakan seseorang boleh menyertai kedua-duanya rahsia, dan di situlah persamaannya berakhir. Satu mengenal pasti perkhidmatan kepada setiap klien; satu lagi mengenal pasti seorang pengguna kepada perkhidmatan itu. Mencampurkannya menjimatkan satu langkah semasa persediaan dan memakan satu petang semasa insiden, kerana pemulihan bagi setiap satu bukan operasi yang sama. Pemisahan itu membosankan untuk disediakan dan mudah diingat untuk dilangkau.
Dua rahsia, dua pemilik berbeza
Gerbang menyimpan kunci peribadi atau sijil yang satu-satunya tugas ialah membuktikan identitinya semasa jabat tangan. Klien memerlukan bahan awam yang sepadan untuk mengesahkannya, dan mereka tidak pernah memerlukan separuh peribadi. Asimetri itulah yang membolehkan pengesahan pelayan tanpa memberikan setiap pengguna keupayaan menyamar sebagai pelayan.
Bahan pengguna bergerak ke arah bertentangan. Kunci peribadi klien, sijil klien atau kata laluan menunjukkan bahawa orang atau peranti tertentu ini telah diberi akses. Ia dijangka akan diagihkan, disalin antara peranti dan akhirnya dibatalkan.
WireGuard menjadikan pemisahan itu jelas kerana setiap peserta mempunyai pasangan kunci: kunci peribadi pelayan kekal di pelayan, dan fail konfigurasi yang anda berikan kepada pengguna mengandungi kunci peribadi mereka sendiri serta kunci awam pelayan. Profil yang mengandungi kunci peribadi pelayan bukan jalan pintas, ia adalah kompromi yang menunggu perkongsian fail.
Tiga soalan yang menentukan pemisahan
Tanya siapa yang mesti boleh membaca rahsia itu, apa yang boleh dilakukan penyerang jika ia terdedah, dan sama ada pembaikannya satu pembatalan atau pembinaan semula perkhidmatan.
Jika pengguna boleh membacanya dan ia membuktikan identiti gerbang, jawapan kepada soalan kedua ialah penyerang boleh menyamar sebagai pelayan anda di hadapan setiap klien — hasil terburuk, kerana klien direka untuk mempercayai identiti itu. Jika ia hanya membuktikan seorang pengguna, pendedahan itu memberi pengguna tersebut akses kepada satu rakan sebaya, dan pembatalan ialah operasi rutin. Jika ia kunci pihak berkuasa sijil, pendedahan lebih teruk daripada kedua-duanya, kerana penyerang boleh mencipta identiti yang dipercayai setiap titik akhir.
Ketiga-tiga jawapan itu menghasilkan peraturan penyimpanan: kunci CA hidup di luar talian atau dalam peti besi, kunci gerbang hidup pada gerbang, dan kunci pengguna hidup bersama pengguna. Sebarang susun atur yang meletakkan ketiga-tiganya dalam satu direktori demi kemudahan telah mengubah keputusan menjadi kemalangan.
Apa yang sebenarnya diperlukan oleh klien
Klien memerlukan sijil awam atau kunci awam rakan sebaya, bahan CA atau cap jari yang harus dipercayai, kunci peribadinya sendiri dan butiran titik akhir. Senarai itu tidak mengandungi apa-apa yang tergolong dalam identiti peribadi gerbang.
Dokumentasi ialah tempat ia bocor. Panduan yang menyatakan salin direktori pelayan dan hapuskan apa yang tidak perlu telah mengajar model yang salah, kerana fail yang tinggal selepas langkah penghapusan jarang diperiksa oleh sesiapa.
Batalkan seorang pengguna tanpa menyentuh gerbang
Oleh sebab identiti pengguna dikeluarkan secara berasingan, ia boleh ditarik balik secara berasingan. Penggunaan berasaskan sijil membatalkan sijil klien dan menerbitkan senarai pembatalan yang dikemas kini; penggunaan WireGuard mengeluarkan catatan rakan sebaya daripada konfigurasi pelayan. Kedua-dua operasi itu tidak mengubah kunci gerbang itu sendiri.
Simpan rekod pengeluaran, jika tidak anda tidak akan tahu identiti mana yang perlu ditarik balik. Hamparan sudah memadai, asalkan ia menamakan orang, peranti, nombor siri atau kunci awam dan tarikh, dan asalkan seseorang mengurusnya selepas orang yang membinanya pergi.
Arahan di bawah memeriksa sijil klien dan kemudian membatalkannya melalui pihak berkuasa gaya OpenSSL, iaitu aliran yang dibalut oleh easy-rsa:
openssl x509 -in client.crt -noout -subject -serial
openssl ca -config openssl.cnf -revoke client.crt
openssl ca -config openssl.cnf -gencrl -out crl.pemTerbitkan senarai baharu di tempat klien memeriksanya, jika tidak pembatalan itu hanya nota dalam fail yang tidak mengubah apa-apa. Jika gerbang anda menerima sijil klien tanpa merujuk senarai pembatalan, nyatakan itu secara eksplisit dan bukannya memberi gambaran bahawa pembatalan berfungsi.
Simpan sandaran seasing mungkin seperti rahsia
Arkib pembinaan semula secara sah mengandungi kunci gerbang dan bahan CA, kerana tanpanya pemulihan tidak dapat menghasilkan semula perkhidmatan. Pakej persediaan klien tidak boleh, dan kedua-duanya tidak boleh disimpan bersama. Labelkan setiap arkib mengikut siapa yang boleh menyimpannya, bukan mengikut tarikh ia dibuat. Label itulah yang dibaca oleh pentadbir yang letih pada pukul dua pagi.
Perbezaan itu juga menetapkan siapa yang boleh mendapatkan setiap satu. Mengurus gerbang, mengeluarkan identiti pengguna dan membaca sandaran ialah tiga kuasa berbeza, dan orang yang memerlukan satu tidak memerlukan yang lain secara automatik. Tuliskan kebenaran itu, kemudian semaknya terhadap apa yang sebenarnya dibenarkan oleh storan anda, kerana pewarisan direktori secara senyap memberikan lebih daripada yang dimaksudkan oleh dasar.