Stellt die Meldung "Authentizität des Hosts kann nicht hergestellt werden" in SSH ein Sicherheitsrisiko dar?

19

Immer wenn ich von meinem Computer aus eine Verbindung zu einem neuen SSH-Server herstelle, erhalte ich folgende Meldung:

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

Warum fragt mich SSH das?

Habe ich ein Risiko, mich mit einem zufälligen SSH-Server zu verbinden?

Oder soll dies nur sicherstellen, dass der Server, zu dem Sie eine Verbindung herstellen, nicht gehackt wurde?

Charles Duffy
quelle
Verwenden Sie ein Passwort oder einen Schlüssel, um sich anzumelden?
Kasperd
1
Es gibt mehrere bessere Möglichkeiten, Host-Schlüssel zu verteilen, als bei der ersten Verwendung vertrauenswürdig zu sein. Dies ist ein relativ unsicherer Workflow. Hostschlüssel können über LDAP verteilt werden. über signierte DNS-Einträge; kann mit SSH-Zertifizierungsstellen signiert werden; etc. , die zu sagen ist - was Sie sehen , hier zeigt an, dass Ihre Website „die faule Weise“ konfiguriert ist (das sind fast alle!), das ist , als sich bei weiteren Längen weniger sicher die Dinge richtig zu tun.
Charles Duffy

Antworten:

29

Es fragt Sie, weil es noch nie zuvor mit diesem Host verbunden war.

Wenn Sie sich in einer sicheren Umgebung befinden, kennen Sie den Fingerabdruck des Remote-Hosts und vergleichen ihn bei der ersten Verbindung. Wenn der Fingerabdruck mit dem übereinstimmt, von dem Sie wissen, dass er gut sein sollte. Wenn Sie sich in einer weniger sicheren Umgebung befinden, können Sie diese bei der ersten Verbindung akzeptieren.

Sobald Sie " Ja, ich vertraue diesem Hostschlüssel und möchte, dass er diesem Hostnamen / dieser IP zugeordnet wird " gesagt haben, merkt sich der SSH-Client dies für Sie maschine / mann in der mitte) der schlüssel stimmt bei einer nachfolgenden verbindung nicht überein, sie sehen eine warnung wie folgt:

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

Wenn Sie in dieser Situation wissen, dass der Remotehost tatsächlich geändert wurde, können Sie fortfahren ... und möglicherweise überprüfen, ob der Fingerabdruck korrekt ist.

Wenn Sie sich nicht sicher sind oder wissen, dass sich der Remote-Host nicht geändert haben sollte, werden Sie auf einen möglichen Angriff hingewiesen.

Attie
quelle
4
Dies ist das TOFU-Prinzip: Vertrauen bei der ersten Verwendung
Patrick Mevzek
2
Einverstanden, TOFU ist keine großartige Idee - besonders wenn Sie sicher sein müssen ... Ihre Meinung und Herangehensweise wird (sollte) von Ihrem Thread-Modell abhängen.
Attie
1
Zur Wirksamkeit siehe jedoch cs.auckland.ac.nz/~pgut001/pubs/defending.pdf , S. 45-48.
Joker_vD
Interessante Folien, danke für das Teilen von @Joker_vD
Attie
1
@PatrickMevzek Das Problem ist, dass unser gesamtes Modell des Computer- "Vertrauens" im Grunde genommen die Granularität eines Booleschen hat, während in der realen Welt ein praktisches Modell des Vertrauens (wie wir es intuitiv in zwischenmenschlichen Beziehungen verwenden) eher wie ein Bedingte Wahrscheinlichkeit: Bei einer Forderung eines Unternehmens haben wir ein gewisses Maß an Vertrauen, dass das Unternehmen dieser Forderung nachkommt, und wir begrenzen unser Risiko im Verhältnis dazu.
mtraceur
9

Wenn Sie diese Nachricht erhalten, sagt SSH einfach: "Ich habe diesen Computer noch nie gesehen, daher kann ich nicht sicher sein, wer er ist. Vertrauen Sie ihm?" An diesem Punkt können Sie sagen, dass Sie ihm vertrauen, und in Zukunft wird sich Ihr Computer an Sie erinnern und Sie nicht mehr danach fragen.

Idealerweise sollten Sie den Schlüssel, der mit dem Schlüssel auf dem Server bereitgestellt wird, manuell vergleichen, um ihm zu vertrauen (da Sie einem GPG-Schlüssel vertrauen würden, indem Sie prüfen, ob die Person, zu der er Ihrer Meinung nach gehört, tatsächlich den öffentlichen Schlüssel generieren kann). Obwohl sich die Leute in Wirklichkeit nicht darum kümmern (zumindest meines Wissens).

Der eigentliche Vorteil ergibt sich aus jeder weiteren Verbindung zum Server. Wenn SSH sich darüber beschwert, dass der Server, dem Sie bereits vertraut haben, nicht derselbe Server ist, besteht die Möglichkeit, dass Sie Opfer eines MiTM-Angriffs werden.

Wenn Sie sich in einem Netzwerk befinden, in dem Sie sicher sind, dass kein Man in The Middle-Angriff stattfindet, und Sie zum ersten Mal eine Verbindung zum Computer herstellen, sollten Sie sicher sein, den Schlüssel zu akzeptieren. (Wenn Sie jedoch an einer streng geheimen Regierungsmission arbeiten, bitten Sie Ihren Systemadministrator möglicherweise, den Fingerabdruck vor dem Herstellen der Verbindung zu überprüfen.)

KNejad
quelle