Frasa sandi kunci SSH melindungi berkasnya, bukan rutenya
Frasa sandi mengenkripsi berkas kunci privat; frasa itu tidak mencabut identitas dan tidak mengamankan rute. Penyimpanan terpisah, masa hidup agen, dan penggunaan tanpa pengawasan.
Sebuah disk cadangan dari laptop lama masih berisi kunci privat SSH, dan seseorang bertanya apakah VPN melindunginya. Tidak, dan tidak pernah. VPN melindungi jalur antara dua jaringan; frasa sandi melindungi berkasnya; agen melindungi sesi yang sedang berjalan. Tiga mekanisme berbeda, tiga mode kegagalan berbeda, dan salinan yang dicuri hanya peduli pada dua yang pertama.
Frasa sandi milik berkasnya
Frasa sandi kunci SSH mengenkripsi materi kunci privat saat diam. Itu bukan kata sandi akun yang dikirim ke server, dan bukan kredensial yang dipakai untuk bergabung dengan VPN. Mencampuradukkan keduanya menghasilkan perubahan yang tidak menangani paparan.
Panduan ssh-keygen dari OpenSSH membahas penanganan frasa sandi, termasuk sakelar -p yang menetapkan frasa sandi baru pada kunci yang sudah ada.
Untuk kunci yang sudah ada, bentuk perintahnya sederhana, dan perintah itu menulis ulang berkasnya:
ssh-keygen -p -f ~/.ssh/id_ed25519
Gunakan proses pemeliharaan dan pemulihan yang disetujui pemilik kunci, karena ini penulisan, bukan pemeriksaan. Jangan menerbitkan berkas privat atau menaruh frasa sandi sungguhan pada baris perintah bersama. Mengubah frasa sandi tidak mengenkripsi ulang salinan yang diambil sebelumnya. Catat lokasi salinan lama di tiket agar pemilik dapat memutuskan apakah akan memusnahkannya.
Salinan hidup lebih lama daripada laptop dan terowongan
Setelah berkas kunci disalin, koneksi VPN aktif laptop tidak lagi mengatakan apa pun tentangnya. Yang penting adalah seberapa baik berkas itu sendiri dilindungi, dan server mana yang masih memercayai kunci publik yang cocok.
Mengubah frasa sandi pada berkas saat ini tidak menyentuh salinan, dan tidak menghapus kunci publik yang sama dari authorized_keys di sebuah server. Pencabutan dan enkripsi ulang adalah tindakan terpisah.
Jadi perlakukan kunci privat yang bocor sebagai peristiwa identitas, bukan peristiwa jaringan. Hapus atau ganti kunci yang diterima melalui server dan proses pendaftaran yang memilikinya. Menghentikan VPN membatasi satu rute pada satu saat; itu bukan pencabutan.
Membuka kunci memindahkan rahasia ke agen
Agen menyimpan identitas terdekripsi untuk autentikasi berikutnya, sehingga pengguna tidak mengetik ulang frasa sandi pada setiap koneksi. Itu fitur kenyamanan dengan batas keamanannya sendiri.
ssh-agent dapat membatasi berapa lama identitas tetap dimuat melalui opsi -t, dan pengaturan per identitas dapat melampaui batas itu. Pilih kebijakan untuk agen yang benar-benar Anda jalankan alih-alih menganggap pemutusan VPN melupakan setiap kunci yang dimuat.
Proses yang terkompromi setelah kunci dibuka adalah masalah berbeda dari berkas terenkripsi yang dicuri. Meneruskan agen ke host lain mendelegasikan kemampuan autentikasi tanpa menyalin berkas kunci, jadi aktifkan hanya untuk kebutuhan yang disetujui.
Daftar apa yang dipegang agen saat ini sebelum dan sesudah perubahan:
ssh-add -l
Pekerjaan tanpa pengawasan memerlukan rencananya sendiri
Tugas terjadwal tidak dapat menjawab permintaan. Tugas itu memerlukan pengaturan kredensial mesin yang disetujui, dan menyimpan rahasia pembuka kunci di direktori yang sama dengan kunci, dapat dibaca oleh akun yang sama, tidak menciptakan batas kedua.
Bekerja samalah dengan pemilik layanan untuk pengiriman rahasia yang didukung atau operasi berbasis perangkat keras, dan cakup pembaruan, kegagalan, serta pemulihan. Menginginkan manusia di keyboard mengubah bagaimana kegagalan terlihat dibandingkan dengan host yang menyala tanpa siapa pun mengawasi.
Pertahankan juga pemeriksaan identitas host di server dan pembatasan akunnya. Rute VPN memberi Anda jalur privat; itu tidak membuktikan bahwa setiap pendengar SSH yang Anda capai adalah host yang Anda maksud. Catat pendengar dan sidik jari kunci host dalam inventaris yang sama dengan kuncinya.
Verifikasi batas-batasnya secara terpisah
Uji setiap batas dengan pertanyaannya sendiri. Apakah berkas terbuka tanpa frasa sandi? Apakah agen masih memegang identitas setelah pemutusan? Apakah server masih menerima kunci publik?
Dua perintah menjawab yang pertama dan yang ketiga:
ssh-keygen -y -f ~/.ssh/id_ed25519
ssh -v [email protected]
Catat perlindungan berkas, penggunaan kunci yang diizinkan, dan penghapusan di sisi server sebagai tiga butir terpisah. Terowongan, frasa sandi, dan agen masing-masing menjaga bagian berbeda dari hubungan itu, dan hanya satu di antaranya tentang jaringan.