Dies ist weniger eine technische als vielmehr eine konzeptionelle Frage. Ich verstehe, dass die in einem SSH-Schlüssel verwendete Kryptografie weitaus sicherer ist als ein normales Kennwort, aber ich verstehe nicht, warum sie als sicherer angesehen wird.
In den meisten von mir gelesenen Tutorials wird die Verwendung der SSH-Schlüsselauthentifizierung anstelle der Kennwortauthentifizierung empfohlen. Ich verstehe jedoch, dass jeder, der Zugriff auf einen vorab genehmigten Clientcomputer hat, dann eine Verbindung zum Server herstellen kann, was bedeutet, dass die vom SSH-Schlüssel bereitgestellte Sicherheitsstufe nur so hoch ist wie die Sicherheitsstufe des physischen Computers Client-Maschine.
Wenn ich zum Beispiel einen SSH-Schlüssel für die Verbindung zu meinem Heimcomputer auf meinem Telefon einrichte, kann sich jemand mit meinem Heimcomputer verbinden, falls ich mein Telefon verliere und es entsperren kann. Ich weiß, dass ich den Schlüssel für mein Telefon von meinem Heimcomputer abziehen kann, aber ich bin so lange verwundbar, bis ich feststelle, dass das Clientgerät verloren gegangen ist / beschädigt wurde.
Habe ich etwas falsch verstanden oder sind das berechtigte Bedenken?
Antworten:
Wenn Ihr SSH-Dienst eine kennwortbasierte Authentifizierung zulässt, wird Ihr mit dem Internet verbundener SSH-Server Tag und Nacht von Bot-Netzen gehämmert, die versuchen, Benutzernamen und Kennwörter zu erraten. Das Bot-Netz benötigt keine Informationen, es kann nur beliebte Namen und beliebte Passwörter ausprobieren. Es gibt eine Menge Leute namens John mit dem Passwort qwerty123. Abgesehen von allem anderen verstopft dies Ihre Protokolle.
Wenn Ihr SSH-Dienst nur die Authentifizierung mit öffentlichem Schlüssel zulässt, benötigt ein Angreifer eine Kopie eines privaten Schlüssels, der einem auf dem Server gespeicherten öffentlichen Schlüssel entspricht. Sie können nicht nur zufällige Angriffe ausführen, sondern müssen über Vorkenntnisse Ihrer Benutzer verfügen und in der Lage sein, einen privaten Schlüssel vom PC eines autorisierten Benutzers Ihres SSH-Servers zu stehlen.
Die Tatsache, dass private Schlüssel häufig durch eine lange Passphrase geschützt sind, ist von untergeordneter Bedeutung.
Aktualisieren:
Wie aus den Kommentaren hervorgeht und wie ich erfahren habe, bewirkt das Verschieben Ihres SSH-Dienstes von Port 22 auf einen Port mit hoher Nummer einen dramatischen Unterschied in der Anzahl der nicht autorisierten Anmeldeversuche, die in Ihren Protokollen angezeigt werden. Dies lohnt sich, aber ich betrachte es als eine Form der Sicherheit durch Unbekanntheit (ein falsches Sicherheitsgefühl) - Bot-Netze implementieren früher oder später ein langsames, heimliches Port-Scannen, oder Sie werden gezielt angegriffen. Besser vorbereitet zu sein.
Ich verwende immer eine lange Passphrase, um meinen privaten Schlüssel zu schützen. Ich denke, dies ist besonders wichtig bei mobilen Geräten, die leichter verloren gehen oder gestohlen werden können.
Auch http://xkcd.com/538/
quelle
Die Logik ist, dass es viel mehr Kombinationen von SSH-Schlüsseln als Passwörter gibt, so dass es sehr viel schwieriger ist, sie zu erraten. Mithilfe von SSH-Schlüsseln können Sie auch die Kennwortauthentifizierung deaktivieren, sodass die meisten automatisierten Angriffe im Internet unbrauchbar werden.
In Bezug auf die physische Sicherheit gibt es keinen Unterschied zwischen dem Speichern eines Kennworts und dem Vorhandensein eines unverschlüsselten SSH-Schlüssels auf Ihrem Gerät, wenn es verloren geht oder gestohlen wird. Der einzige Vorteil ist, dass niemand Ihr Passwort hat und Sie theoretisch sicherstellen können, dass alle Geräte über unterschiedliche SSH-Zertifikate verfügen, sodass Sie das für Ihr Telefon deaktivieren können.
Ich glaube, es ist auch möglich, SSH-Schlüssel mit einem Passwort zu schützen.
quelle
Passwörter können auch kompromittiert werden, indem Ihre Tastatur "über die Schulter" überwacht wird. Darüber hinaus ist die Verwendung ähnlicher Kennwörter an vielen Stellen eine Schwachstelle, insbesondere wenn das Kennwort manchmal auf einem weniger sicheren Computer mit potenziellen Keyloggern verwendet wird.
Sie haben Recht, dass ein unverschlüsselter Schlüssel von der Festplatte gelesen werden kann, wenn der Computer gestohlen wird. Verschlüsseln Sie ihn daher mit einem Kennwort.
Wenn Ihr Computer von Malware befallen ist, sind Sie trotzdem voll. - Jemand kann den verschlüsselten Schlüssel erhalten und Ihr Kennwort protokollieren.
quelle