SSH: Aman bagi klien untuk meng-host kunci RSA pribadi?

10

Apakah aman untuk membuat pasangan kunci publik / pribadi di server, menambahkan kunci publik ke daftar Authorized_key, dan kemudian menyalin kunci pribadi ke setiap klien, seperti dijelaskan di sini ( http://www.rebol.com/docs/ ssh-auto-login.html ) Dengan anggapan Anda mempertahankan kontrol permanen atas setiap klien? (yaitu pengguna yang sama, banyak komputer).

Prosedur umum adalah untuk menghasilkan pasangan kunci publik / pribadi pada klien, dan kemudian menambahkan kunci publik klien ke daftar berwenang_keys pada server seperti yang dijelaskan di sini ( http://www.linuxproblem.org/art_9.html ). Dengan metode ini, jika Anda memiliki beberapa komputer klien, masing-masing komputer harus disatukan dengan daftar yang diotorisasi dan dipertahankan dari waktu ke waktu.

pengguna345807
sumber

Jawaban:

22

Selamat, Anda telah menemukan tutorial Internet dengan saran buruk.

Masalah dengan menggunakan keypair tunggal untuk banyak komputer terjadi ketika salah satu komputer terganggu. Maka Anda tidak punya pilihan selain mencabut keypair di mana - mana dan merekam kembali setiap komputer yang menggunakan keypair itu. Anda harus selalu menggunakan keypairs unik per mesin dan per pengguna, untuk membatasi kerusakan yang bisa dilakukan oleh kunci yang dikompromikan.

Adapun tutorial itu, saran yang sangat buruk untuk menghasilkan keypair di server dan menyalin kunci pribadi ke klien . Ini sepenuhnya terbelakang. Sebagai gantinya, keypair harus dibuat pada klien dan kunci publik disalin ke server. Bahkan ada skrip pembantu ssh-copy-idyang melakukan hal ini, dan sepanjang jalan memastikan semua izin benar, klien mendapatkan kunci host server, dll.

Mungkin memang ada situasi di mana Anda ingin mengelola kunci identitas pengguna secara terpusat, misalnya untuk skrip otomatis, tetapi dalam hal ini Anda benar-benar harus melakukan ini dari host ketiga, atau idealnya dari sistem manajemen konfigurasi seperti boneka.

Michael Hampton
sumber
2
Selain itu, pengguna mesin klien harus ingat bahwa kunci khusus ini tidak dapat digunakan dengan aman untuk tujuan lain, karena Anda tidak dapat mengetahui di mana kunci pribadi itu berada. Jika Anda tahu kunci rahasia dibuat pada klien dan tidak pernah meninggalkan klien, biasanya aman untuk menggunakan kunci yang sama untuk masuk ke sistem yang berbeda.
kasperd
7
Sebuah analogi dengan berbagi jarum terlintas dalam pikiran, tetapi saya benar-benar tidak yakin saya ingin pergi sejauh itu ...
Michael Hampton
Tidak yakin bagaimana Anda akan mendapatkan bagian asimetris dalam analogi itu.
kasperd
1
Nah ... tergantung ujung jarum yang mana Anda berada.
Mircea Vutcovici
3

Masalah terbesar dengan protokol yang dijelaskan dalam tutorial itu adalah bahwa itu tidak menentukan bagaimana Anda "mengunduh kunci pribadi ke mesin klien" dengan cara yang aman (yaitu, yang mencegah menguping). Jika Anda belum memiliki saluran aman, kuncinya mungkin akan ditransfer dengan jelas melalui Internet (HTTP, FTP, email, dll). Anda dapat menggunakan HTTPS, tetapi jika Anda tidak memiliki sertifikat asli, itu bisa menjadi MITM untuk mengendus kunci. Lakukan saja seperti yang seharusnya; buat keypair pada mesin klien, transfer kunci publik ke server, dan jangan lupa untuk memverifikasi checksum dari file untuk memastikan itu belum dimodifikasi dalam transfer.

Atsby
sumber