Apakah masuk akal untuk memiliki beberapa kunci SSH?

44

Sejauh ini saya telah membuat kunci SSH terpisah untuk setiap server yang saya butuhkan untuk masuk (untuk setiap tujuan, agar lebih akurat). Saya melakukannya karena rasa aman, seperti kata sandi yang berbeda untuk situs yang berbeda.

Apakah memiliki beberapa kunci SSH sebenarnya meningkatkan keamanan? Semuanya digunakan dari mesin yang sama, terletak di ~ / .ssh yang sama, sebagian besar bahkan memiliki frasa sandi yang sama.

Jadi ... haruskah saya menyerahkan seluruh sistem dan hanya menggunakan satu kunci SSH untuk semuanya?

[UPDATE 2015-08-05] Github menerbitkan kunci publik Anda, dan klien SSH Anda dapat mengirim semua kunci publik Anda ke setiap server, tergantung pada konfigurasi , karenanya, jika Anda khawatir dengan server SSH pihak ke-3 yang mengetahui identitas Anda saat menghubungkan , Anda harus menggunakan beberapa kunci SSH, meskipun menurut saya itu paranoid.

Leonid Shevtsov
sumber
Pertanyaan ini mungkin lebih cocok pada Keamanan Informasi .
gerrit

Jawaban:

25

Kunci SSH menggunakan kriptografi kunci publik. Itu berarti apa yang Anda instal di semua server itu hanya kunci publik Anda , yang Anda ingin seluruh dunia tahu. Satu-satunya rahasia yang sebenarnya adalah kunci pribadi Anda yang dikunci di mesin Anda sendiri. Jadi ya, saya katakan Anda membuang-buang waktu.

Spiff
sumber
20
Saya pikir ada alasan yang sah untuk memiliki kunci terpisah, dan ini tidak akan membuang-buang waktu. Dalam kasus kunci yang dikompromikan, risiko dengan ini berkurang. Kata sandi harus berbeda untuk setiap tombol, saya setuju.
jfmessier
Apakah masuk akal untuk memiliki pasangan kunci yang berbeda pada mesin yang berbeda? Suka contoh berbeda dari VirtualBox OS?
Santosh Kumar
1
Jawaban ini mengabaikan konsep pertahanan secara mendalam, karena menempatkan ketergantungan pada "kunci pribadi Anda yang dikunci di mesin Anda sendiri". Pertimbangkan misalnya apa yang terjadi jika laptop Anda dicuri ketika (salah satu) kunci pribadi Anda digunakan oleh ssh-agent. Jika Anda memiliki beberapa kunci, maka semua yang masih dienkripsi aman. Saya tidak akan menyebut itu buang-buang waktu.
Jon Bentley
34

Pada akhirnya ini terserah Anda. Anda perlu mengevaluasi model ancaman Anda. Seberapa besar kemungkinan salah satu kunci Anda dikompromikan? Jika satu kunci dikompromikan, seberapa besar kemungkinan kunci lainnya akan dikompromikan? Apa konsekuensi dari kunci Anda dikompromikan? Berapa biaya (termasuk waktu) untuk mengelola beberapa kunci?

Mempertimbangkan faktor-faktor seperti ini akan membantu Anda memutuskan apakah Anda benar-benar membutuhkan kunci terpisah. Pada mesin pribadi saya di jaringan lokal saya, saya biasanya tidak repot-repot dengan overhead tambahan dalam mencoba mengelola beberapa kunci. Namun, di luar jaringan saya, saya akan menggunakan kunci yang berbeda masing-masing dengan frasa sandi yang unik. Tapi itu hanya pendapat pribadi saya.

astaga
sumber
7
+1 untuk "mengevaluasi model ancaman". Ini intinya.
sleske
21

Tidak, bukan buang-buang waktu untuk menggunakan lebih dari satu kunci.

Lebih banyak keragaman == lebih sedikit risiko.

Pernyataan Spiff itu salah.

Intinya adalah kunci publik memberikan akses ke pemegang kunci pribadi dan tidak ada orang lain.

Risiko yang perlu diperhatikan di sini adalah otentikasi. Situs jahat meneruskan permintaan otentikasi ke tugas agen Anda. Jika Anda hanya menggunakan satu kunci, maka bahkan ketika hanya satu kunci dimuat di agen Anda, semua situs terbuka untuk nakal.

Ini tidak ada hubungannya dengan frasa sandi , Anda dapat memiliki beberapa kunci dengan frasa sandi yang sama yang tidak akan membuat perbedaan di sini. Karena bukan frasa sandi yang dikompromikan.

Penyerang yang nakal menantang ke agen Anda dan dapat terhubung ke semua situs yang memuat kunci Anda . Dengan kunci yang berbeda, satu kunci dimuat -> satu situs berisiko .

Saya katakan baik untuk Anda, Anda memilih privasi orang lain atas kemalasan Anda sendiri.

PS moral dari cerita ini adalah mewaspadai agen forwarding

pbernatchez
sumber
Misalkan saya menghasilkan tiga kunci SSH, satu untuk masing-masing dari tiga server yang saya masuki secara teratur. Suatu hari, setelah saya sudah login ke ketiganya (artinya ssh-agent telah men-cache passphrases untuk ketiga kunci), maka dengan argumen Anda, jika ssh-agent saya dikompromikan, ketiga log masuk dikompromikan. Dalam kasus seperti itu, memiliki beberapa kunci SSH belum melindungi saya. Sudahkah saya memahami Anda dengan benar?
sampablokuper
9

Saya pikir ada satu kasus penggunaan yang baik untuk beberapa kunci publik, dan itu jika Anda memiliki kunci pribadi yang disimpan di komputer di berbagai bidang kepercayaan. Jadi saya biasanya menyimpan satu kunci yang merupakan kunci "pekerjaan" saya, dan yang lainnya adalah kunci "rumah" saya, hanya karena kunci pribadi untuk barang-barang "rumah" saya tidak disimpan di komputer kerja saya dan sebaliknya.

krosenvold
sumber
Jawaban bagus, jika Anda memiliki mesin yang berbeda dengan kunci yang berbeda, sempurna. Jika satu (atau beberapa) mesin memiliki kunci yang sama, Anda tidak melindungi diri Anda dari hal-hal ekstra vs hanya memiliki satu kunci. Jika seseorang dikompromikan, semua sisanya pada mesin itu juga.
xref
3

Saya pikir masuk akal dapat dianggap dari dua sudut yang berbeda: keamanan dan kenyamanan .

Saat kami membuat pasangan kunci SSH, kami diminta memberikan frasa sandi untuk menambahkan lebih banyak lapisan untuk melindungi kunci pribadi, seperti berikut:

$ ssh-keygen -t rsa -b 4096 -C 'With_OR_Without_Passwd'
Generating public/private rsa key pair.
Enter file in which to save the key (/Your/HomeDir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

Meskipun ada permintaan eksplisit yang meminta frasa sandi, tetapi beberapa (atau banyak) orang masih lebih fokus pada informasi dalam tanda kurung: (kosong tanpa frasa sandi) , dan mengikuti saran itu.

Menggabungkan apakah atau tidak menggunakan beberapa pasangan kunci SSH dan apakah atau tidak masukkan passwd tambahan , kami memiliki setidaknya empat cara untuk pergi. Dan mari kita asumsikan semua pasangan kunci dan configfile disimpan ~/.ssh/.

Sekarang jangan mempertimbangkan keamanan dulu.

Tabel berikut memberikan peringkat sederhana tentang keamanan (jumlah yang lebih besar berarti lebih aman):

Security     Ways to go
   1         One   SSH key-pair  (NO passwd)
   1         Multi SSH key-pairs (NO passwd)
   2         One   SSH key-pair  (WITH passwd)
   2         Multi SSH key-pairs (WITH passwd) (SAME passwd)
   3         Multi SSH key-pairs (WITH passwd) (DIFF passwds)

Tanpa passwd , jika sistem kami diganggu oleh seseorang, maka pemutus bisa mendapatkan semua kunci pribadi dan konfigurasi kami, juga otentikasi server jarak jauh. Jadi dalam situasi ini, Satu pasangan kunci dan Pasangan kunci multi adalah sama. Cara paling aman adalah dengan menggunakan passwds yang berbeda untuk pasangan kunci ssh yang berbeda.

Maka jangan pikirkan kenyamanan .

Tetapi lebih banyak pasangan kunci dan lebih banyak passwds juga membuat hidup kita kurang nyaman, tabel berikut memberikan peringkat sederhana tentang keamanan (jumlah yang lebih besar berarti lebih aman):

Convenient  Security  Ways to go
   5           1      One   SSH key-pair  (NO passwd)
   4           2      One   SSH key-pair  (WITH passwd)
   3           1      Multi SSH key-pairs (NO passwd)
   2           2      Multi SSH key-pairs (WITH passwd) (SAME passwd)
   1           3      Multi SSH key-pairs (WITH passwd) (DIFF passwds)

Jadi, dalam situasi umum, jika kita harus menukar dengan keamanan dan kenyamanan pada saat yang sama, kita dapat mengalikan dua skor, dan mungkin Satu pasangan kunci SSH (DENGAN passwd) adalah yang baik untuk dipilih.

YaOzI
sumber