Czy komunikat „nie można ustalić autentyczności hosta” w SSH odzwierciedla zagrożenie bezpieczeństwa?

19

Za każdym razem, gdy łączę się z nowym serwerem SSH z mojego komputera, pojawia się następujący komunikat:

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)?

Dlaczego SSH mnie o to pyta?

Czy mam jakiekolwiek ryzyko połączenia z losowym serwerem SSH?

A może po to, aby upewnić się, że serwer, z którym się łączysz, nie został zhakowany?

Charles Duffy
źródło
Czy używasz hasła lub klucza do logowania?
kasperd
1
Istnieje kilka lepszych sposobów dystrybuowania kluczy hosta niż zaufanie przy pierwszym użyciu; jest to stosunkowo niepewny przepływ pracy. Klucze hosta mogą być dystrybuowane za pośrednictwem LDAP; poprzez podpisane wpisy DNS; może być podpisany z urzędami certyfikacji SSH; itd. To znaczy, że to, co tu widzisz, wskazuje, że twoja strona jest skonfigurowana „leniwie” (co prawie wszyscy są!), co jest mniej bezpieczne niż dalsze wysiłki, aby zrobić wszystko dobrze.
Charles Duffy

Odpowiedzi:

29

Pyta Cię, ponieważ nigdy wcześniej nie był podłączony do tego hosta.

Jeśli jesteś w bezpiecznym środowisku, poznasz odcisk palca zdalnego hosta i porównasz go przy pierwszym połączeniu - jeśli odcisk palca pasuje do tego, co wiesz, że powinien być, to świetnie. Jeśli jesteś w mniej bezpiecznym środowisku, możesz to zaakceptować przy pierwszym połączeniu.

Gdy powiesz „ Tak, ufam temu kluczowi hosta i chcę, aby był on powiązany z tą nazwą hosta / IP ”, klient SSH zapamięta to dla ciebie ... Jeśli z jakiegokolwiek powodu (zainstaluj ponownie / nowe klucze hosta / nowe maszyna / człowiek w środku) klucz nie pasuje do kolejnego połączenia, zobaczysz ostrzeżenie jak poniżej:

$ 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.

W tej sytuacji, jeśli wiesz, że zdalny host rzeczywiście został zmieniony, możesz kontynuować ... prawdopodobnie sprawdzając, czy odcisk palca jest prawidłowy.

Jeśli nie masz pewności lub wiesz, że zdalny host nie powinien się zmienić, to skieruje Cię na potencjalny atak.

Attie
źródło
4
Oto zasada
TOFU
2
Uzgodnione, TOFU nie jest świetnym pomysłem - szczególnie jeśli musisz być pewien ... Twoja opinia i podejście będzie (powinno) zależeć od modelu twojego wątku.
Attie
1
Jednak, aby dowiedzieć się o skuteczności tego, patrz cs.auckland.ac.nz/~pgut001/pubs/defending.pdf , strony 45-48.
Joker_vD
Ciekawe slajdy, dzięki za udostępnienie @Joker_vD
Attie
1
@PatrickMevzek Problem polega na tym, że cały nasz model „komputerowego zaufania” polega zasadniczo na ziarnistości wartości logicznej, podczas gdy w prawdziwym świecie praktyczny model zaufania (taki, jaki intuicyjnie stosujemy w relacjach międzyludzkich) przypomina bardziej warunkowe prawdopodobieństwo: biorąc pod uwagę roszczenie od podmiotu, mamy do pewnego stopnia pewność, że podmiot go zrealizuje, i ograniczamy nasze narażenie na ryzyko proporcjonalnie do tego.
mtraceur
9

Kiedy pojawia się ten komunikat, SSH mówi po prostu: „Nigdy wcześniej nie widziałem tego komputera, więc nie mogę być pewien, czy to jest ten, o którym mówi. Czy ufasz?” W tym momencie możesz powiedzieć, że mu ufasz, aw przyszłości Twój komputer zapamięta i nie będzie Cię więcej pytał.

Najlepiej, aby mu zaufać, należy ręcznie porównać klucz dostarczony z kluczem na serwerze (podobnie jak w przypadku klucza GPG, sprawdzając, czy osoba, do której należy, może faktycznie wygenerować klucz publiczny). Chociaż w rzeczywistości ludzie nie przejmują się tym (przynajmniej z mojej wiedzy).

Prawdziwa korzyść wynika z każdego kolejnego połączenia z serwerem. Jeśli SSH skarży się, że serwer, któremu już zaufałeś, nie jest tym samym serwerem, istnieje szansa, że ​​jesteś ofiarą ataku MiTM.

Ogólnie rzecz biorąc, jeśli jesteś w sieci, w której masz pewność, że nie ma ataku Man in The Middle i to jest pierwszy raz, gdy łączysz się z komputerem, powinieneś być bezpieczny, aby zaakceptować klucz. (chociaż jeśli pracujesz nad ściśle tajną misją rządową, może poproś administratora systemu o zweryfikowanie odcisku palca przed połączeniem)

KNejad
źródło