Apakah pesan "keaslian host tidak dapat dibuat" di SSH mencerminkan risiko keamanan?

19

Setiap kali saya terhubung ke server SSH baru dari komputer saya, saya menerima pesan ini:

The authenticity of host '[censored]:censored ([0.0.0.0]:censored)' can't be established.
RSA key fingerprint is SHA256:censored.
Are you sure you want to continue connecting (yes/no)?

Mengapa SSH menanyakan hal itu kepada saya?

Apakah saya memiliki risiko terhubung ke server SSH acak?

Atau apakah ini hanya untuk memastikan server yang Anda hubungkan belum diretas?

Charles Duffy
sumber
Apakah Anda menggunakan kata sandi atau kunci untuk masuk?
kasperd
1
Ada beberapa cara yang lebih baik untuk mendistribusikan kunci host daripada trust-on-first-use; ini adalah alur kerja yang relatif tidak aman. Kunci host dapat didistribusikan melalui LDAP; melalui entri DNS yang ditandatangani; dapat ditandatangani dengan otoritas sertifikat SSH; dll Yang mengatakan - apa yang Anda lihat di sini menunjukkan bahwa situs Anda dikonfigurasi "cara malas" (yang hampir semua!), yang merupakan kurang aman daripada pergi ke panjang lebih lanjut untuk melakukan hal yang benar.
Charles Duffy

Jawaban:

29

Ia meminta Anda karena tidak pernah terhubung ke host ini sebelumnya.

Jika Anda berada di lingkungan yang aman, maka Anda akan tahu sidik jari host jarak jauh, dan akan membandingkannya pada koneksi pertama - jika sidik jari cocok dengan apa yang Anda tahu seharusnya, maka hebat. Jika Anda berada di lingkungan yang kurang aman, maka Anda bisa menerimanya pada koneksi pertama.

Setelah Anda mengatakan " Ya, saya percaya kunci host itu, dan ingin dikaitkan dengan nama host / IP itu ", klien SSH akan mengingat ini untuk Anda ... Jika karena alasan apa pun (instal ulang / kunci host baru / baru mesin / orang di tengah) kunci tidak cocok pada koneksi berikutnya, Anda akan melihat peringatan seperti di bawah ini:

$ ssh baloo
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:Su0uy/4BcRcpmyLfxO9ndlcda52F8uct6yWNp7Sa92M.
Please contact your system administrator.
Add correct host key in /home/attie/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/attie/.ssh/known_hosts:65
  remove with:
  ssh-keygen -f "/home/attie/.ssh/known_hosts" -R baloo
ECDSA host key for baloo has changed and you have requested strict checking.
Host key verification failed.

Dalam situasi ini, jika Anda tahu bahwa host jarak jauh memang telah diubah, maka Anda dapat melanjutkan ... mungkin memverifikasi bahwa sidik jari sudah benar.

Jika Anda tidak yakin, atau tahu bahwa host jarak jauh seharusnya tidak berubah, maka itu akan memberi Anda petunjuk tentang kemungkinan serangan.

Attie
sumber
4
Ini adalah prinsip TOFU: Trust On First Use
Patrick Mevzek
2
Setuju, TOFU bukan ide bagus - terutama jika Anda harus yakin ... Pendapat dan pendekatan Anda akan (harus) bergantung pada model utas Anda.
Attie
1
Namun, untuk efektivitas ini, lihat cs.auckland.ac.nz/~pgut001/pubs/defending.pdf , halaman 45-48.
Joker_vD
Slide yang menarik, terima kasih sudah berbagi @Joker_vD
Attie
1
@ PatrickMevzek Masalahnya adalah bahwa seluruh model komputer kita "kepercayaan" pada dasarnya adalah granularity dari boolean, sementara di dunia nyata model praktis kepercayaan (seperti apa yang secara intuitif kita gunakan dalam hubungan antar-manusia) lebih seperti sebuah probabilitas bersyarat: diberikan klaim dari suatu entitas, kami memiliki tingkat kepercayaan tertentu bahwa entitas akan mengikutinya, dan kami membatasi eksposur kami terhadap risiko sebanding dengan itu.
mtraceur
9

Ketika Anda menerima pesan ini SSH hanya mengatakan, "Saya belum pernah melihat komputer ini sebelumnya, jadi saya tidak yakin siapa yang mengatakannya. Apakah Anda mempercayainya?" Pada titik mana Anda dapat mengatakan bahwa Anda mempercayainya dan di masa depan komputer Anda akan mengingat dan tidak bertanya lagi.

Idealnya untuk mempercayainya, Anda harus membandingkan kunci yang diberikan secara manual dengan kunci di server (seperti Anda akan mempercayai kunci GPG dengan memeriksa bahwa orang yang Anda yakini miliknya benar-benar dapat menghasilkan kunci publik). Meskipun pada kenyataannya orang tidak peduli dengan ini (setidaknya dari pengetahuan saya).

Manfaat nyata datang dari setiap kali Anda terhubung ke server. Jika SSH mengeluh tentang server yang Anda percayai bukan server yang sama, maka ada kemungkinan Anda adalah korban serangan MiTM.

Secara keseluruhan, jika Anda berada di jaringan di mana Anda yakin tidak ada serangan Man in The Middle terjadi dan ini adalah pertama kalinya Anda terhubung ke komputer maka Anda harus aman untuk menerima kunci. (walaupun jika Anda sedang mengerjakan beberapa misi rahasia pemerintah maka mungkin minta administrator sistem Anda untuk memverifikasi sidik jari sebelum menghubungkan)

KNejad
sumber