Katakanlah saya memberikan seseorang dengan kunci SSH publik saya, id_rsa.pub dan dia menginstalnya di server yang dikompromikan, dan saya diminta untuk masuk.
Apakah proses login melibatkan pengiriman kunci pribadi saya ke server yang dikompromikan?
Jika ya, maka penyerang sekarang memiliki akses ke kunci SSH pribadi saya, dan itu menakutkan.
Jika tidak, lalu mengapa saya melihat baris ini di ssh -vvv output:
debug1: Server accepts key: pkalg ssh-rsa blen 277
Ini menyiratkan bahwa kunci pribadi dikirim ke server, dan itu menerimanya.
Apakah saya salah paham masalah?
sumber
debug1: Offering RSA public key: <$HOME>/.ssh/id_rsa
yang membuat orang berpikir bahwa kunci pribadi sedang dibagikan meskipun id_rsa.pub telah dibagikan.TIDAK , kunci pribadi Anda TIDAK PERNAH "dikirim" atau dikirim ke mana pun.
Kriptografi kunci publik tidak seperti otentikasi nama pengguna / kata sandi tradisional.
Kunci publik Anda hanya itu - publik. Sangat aman untuk membagikannya. Mengirim kunci publik Anda kepada seseorang dapat memberikan identitas Anda (orang-orang dapat mengetahui bahwa itu dari Anda karena ini nomor unik), tetapi itu tidak akan pernah memungkinkan orang lain menyamar sebagai Anda atau mengotentikasi Anda. Anda mungkin juga memposting kunci publik Anda di SuperUser atau di halaman web Anda melalui HTTP biasa; itu sangat aman, dan sama sekali tidak berguna jika seseorang tidak memiliki kunci pribadi Anda.
Kunci pribadi Anda hanya itu - pribadi. Ini hanya berada pada sistem yang Anda miliki dan percayai (semoga), dan harus selalu dienkripsi dengan kata sandi pembuka untuk keamanan maksimum, jika seseorang mendapatkan akses fisik ke sistem tempat penyimpanannya. Kunci privat tidak pernah dikirimkan oleh program keamanan yang diimplementasikan dengan baik yang berperilaku sesuai dengan aturan kriptografi kunci publik. Yaitu, kecuali Anda memiliki program pada sistem lokal Anda yang dikompromikan dan mampu membaca kunci pribadi Anda (dan kunci pribadi tidak dienkripsi dengan kata sandi), kunci pribadi Anda aman, selalu.
Pesan ditandatangani dengan kunci pribadi, di komputer Anda , sebelum dikirim ke server jarak jauh. Jadi, daripada mengirim kunci pribadi ke server jauh, Anda mengirim pesan yang dienkripsi dengan kunci pribadi. Tetapi kedua hal ini tidak sama: Anda tidak dapat memperoleh kunci pribadi dari pesan yang ditandatangani; itulah bagian dari titik kriptografi kunci publik.
Singkatnya, bahkan jika penyerang yang bermusuhan mendapatkan kunci publik Anda dan mendapatkan pesan yang ditandatangani oleh kunci pribadi Anda, mereka masih tidak akan dapat memperoleh kunci pribadi Anda yang sebenarnya, dan dengan demikian, mereka tidak dapat menyamar sebagai kredensial Anda atau menggunakan kunci pribadi Anda untuk mengotentikasi "sebagai kamu".
sumber
ssh
. Jawaban dari @ pjc50 tampaknya memberikan jaminan yang saya cari.