Mengapa kunci publik SSH duduk di server dan tidak dengan klien?


12

Saya tidak begitu mengerti teori di balik menjaga kunci publik di server. Dalam analogi lockbox kunci publik / swasta, untuk membuka Alice kotak, Alice memegang kunci pribadi sedangkan kunci publik didistribusikan ke Bob. Tampaknya server memainkan peran lockbox, jadi mengapa ia memegang kunci publik?

Jawaban:


20

Perlu diingat bahwa server TIDAK memiliki kunci pribadi dan publik yang sepenuhnya terpisah dari keypair yang Anda hasilkan sebagai pengguna. Kunci pribadi untuk server biasanya disimpan dengan konfigurasi server dan kunci publik ditransmisikan oleh server ketika Anda mencoba untuk terhubung. Klien Anda membandingkan kunci publik server dengan file known_hosts Anda. Jika digunakan dengan benar, ini mencegah serangan MITM.

Anda memiliki kunci pribadi untuk akun pribadi Anda. Server memerlukan kunci publik Anda sehingga dapat memverifikasi bahwa kunci pribadi Anda untuk akun yang Anda coba gunakan sah.

Jadi, gunakan contoh Anda. Baik Bob dan Alice memiliki kunci pribadi dan kunci publik. Kunci publik yang telah dibagikan sebelumnya atau sebagai bagian dari koneksi digunakan untuk memverifikasi data yang dienkripsi oleh kunci pribadi adalah sah. Jika klien tidak memiliki kunci publik, atau memiliki kunci publik yang berbeda, Anda akan mendapatkan peringatan yang menakutkan. Jika server tidak memiliki kunci publik klien, Anda tidak akan diizinkan masuk.


1
Aha! Itu jauh lebih masuk akal. Saya tahu ada metode untuk melindungi terhadap serangan MITM, tapi saya tidak tahu ada keypair lain :) Terima kasih atas bantuannya!
Connor Glosser

5

Anda sebagai pengguna adalah orang yang memberikan informasi tentang diri Anda saat Anda masuk. Jadi, demi otorisasi, Anda memerlukan kunci pribadi karena server akan meminta siapa pun yang berpura-pura menjadi Anda (mencoba masuk dengan Anda nama) untuk membuktikannya.

Cara kerjanya adalah server mengirimi Anda sedikit teks, meminta Anda mengenkripsi dan mendekripsi dengan kunci publik Anda. Hanya orang dengan kunci pribadi Anda yang dapat melakukan ini.


1

Ini memegang kunci publik untuk kenyamanan. Kalau tidak, Anda harus membuat PKI - sesuatu yang mirip dengan SSL CA.

Idenya adalah untuk memeriksa sidik jari kunci publik ketika klien ssh meminta Anda untuk menerima kunci server jarak jauh.


1

Saya akan mengatakan bahwa analogi yang lebih baik adalah bahwa kunci publik server adalah kotak kunci terbuka dengan kait yang dapat Anda tutup (tetapi tidak terbuka), hanya server yang dapat membukanya. Pertanyaan sebenarnya adalah apakah Anda mempercayai kunci publik (apakah itu benar-benar Kotak Alice ?), Di mana pun Anda mendapatkannya, itu adalah publik menurut definisi, dan itu tentang PKI.


1

Kunci publik adalah angka yang sangat besar, secara matematis berasal dari kunci pribadi Anda.

Ini diturunkan sedemikian rupa sehingga dua angka dihubungkan,

tetapi agar kunci pribadi tidak dapat ditemukan oleh siapa pun yang hanya mengetahui kunci publik. Kunci publik adalah apa yang Anda kirim ke pihak lain, kepada siapa Anda ingin mengotentikasi diri Anda, atau kepada siapa Anda ingin mengirim pesan terenkripsi. Kunci publik tidak sensitif, dan tidak perlu dilindungi. Ini dapat disebarluaskan secara publik. babudilli98@gmail.com


1
Saya tidak merasa ada yang baru dalam jawaban ini dibandingkan dengan jawaban lain yang sudah disediakan lima tahun yang lalu.
kasperd
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.