Ini bukan pertanyaan teknis tetapi konseptual. Saya memahami kriptografi yang digunakan pada kunci SSH jauh lebih kuat daripada kata sandi biasa, tetapi saya tidak mengerti mengapa itu dianggap lebih aman.
Kebanyakan tutorial yang saya baca menyarankan menggunakan otentikasi kunci SSH daripada otentikasi kata sandi. Tetapi pemahaman saya adalah bahwa siapa pun yang kemudian memiliki akses ke mesin klien yang disetujui sebelumnya akan dapat terhubung ke server, yang berarti bahwa tingkat keamanan yang diberikan oleh kunci SSH hanya sekuat tingkat keamanan fisik. mesin klien.
Misalnya, jika saya menyiapkan kunci SSH pada ponsel saya untuk terhubung ke mesin rumah saya, jika saya kehilangan telepon saya dan seseorang berhasil membukanya, mereka akan dapat terhubung ke mesin rumah saya. Saya tahu saya kemudian dapat menghapus kunci untuk telepon saya dari mesin di rumah saya, tetapi saya rentan sampai saya menyadari perangkat klien telah hilang / dilanggar.
Apakah saya salah paham akan sesuatu, atau apakah kekhawatiran itu sah?
Jawaban:
Jika layanan SSH Anda memungkinkan otentikasi berbasis kata sandi, maka server SSH Anda yang terhubung ke Internet akan dipalu siang dan malam oleh botnet yang mencoba menebak nama pengguna dan kata sandi. Bot net tidak memerlukan informasi, cukup coba nama populer dan kata sandi populer. Ada banyak sekali orang bernama john dengan kata sandi qwerty123. Terlepas dari hal lain, ini menyumbat log Anda.
Jika layanan SSH Anda hanya mengizinkan otentikasi kunci publik, penyerang memerlukan salinan kunci pribadi yang sesuai dengan kunci publik yang disimpan di server. Mereka tidak bisa begitu saja melakukan serangan acak, mereka harus memiliki pengetahuan sebelumnya tentang pengguna Anda dan harus mampu mencuri kunci pribadi dari PC pengguna resmi server SSH Anda.
Fakta bahwa kunci privat sering dilindungi oleh pass-phrase yang panjang adalah signifikansi sekunder.
Memperbarui:
Seperti yang ditunjukkan oleh komentar, dan seperti yang saya alami, memindahkan layanan SSH Anda dari port 22 ke port bernomor tinggi membuat perbedaan dramatis dalam jumlah upaya login tanpa izin yang muncul di log Anda. Ini layak dilakukan tetapi saya menganggapnya sebagai bentuk keamanan karena ketidakjelasan (rasa aman yang salah) - cepat atau lambat botnet akan menerapkan pemindaian port secara diam-diam atau Anda akan dengan sengaja ditargetkan. Lebih baik bersiap.
Saya selalu menggunakan kalimat sandi yang panjang untuk melindungi kunci pribadi saya, saya kira ini sangat penting pada perangkat seluler yang bisa lebih mudah hilang atau dicuri.
Juga, http://xkcd.com/538/
sumber
Logikanya adalah bahwa ada lebih banyak kombinasi kunci SSH daripada kata sandi sehingga jauh lebih sulit ditebak. Menggunakan kunci SSH juga memungkinkan Anda untuk menonaktifkan otentikasi kata sandi yang berarti bahwa sebagian besar serangan otomatis yang dilakukan di internet tidak akan berguna.
Berkenaan dengan keamanan fisik, tidak ada perbedaan antara menyimpan kata sandi dan memiliki kunci SSH yang tidak terenkripsi pada perangkat Anda jika hilang atau dicuri. Satu-satunya keuntungan yang Anda miliki adalah tidak ada yang memiliki kata sandi dan Anda secara teoritis dapat memastikan bahwa semua perangkat memiliki sertifikat SSH yang berbeda sehingga Anda dapat menonaktifkannya untuk ponsel Anda.
Saya percaya itu juga mungkin untuk melindungi kata sandi kunci SSH.
sumber
Kata sandi juga dapat dikompromikan dengan keyboard Anda dimonitor "over-your-shoulder". Selain itu, menggunakan kata sandi yang serupa di banyak tempat adalah kelemahan, terutama jika kata sandi tersebut kadang-kadang digunakan pada komputer yang kurang aman dengan potensi keylogger.
Anda benar bahwa kunci yang tidak terenkripsi dapat dibaca dari hard disk jika komputer dicuri - jadi enkripsi dengan kata sandi.
Jika komputer Anda dikompromikan oleh malware, Anda diisi terlepas .. - seseorang dapat memperoleh kunci yang dienkripsi dan keylog kata sandi Anda.
sumber