Frage Warum ist die SSH-Passwort-Authentifizierung ein Sicherheitsrisiko?


Die meisten Anleitungen für die OpenSSH-Konfiguration empfehlen, die Kennwortauthentifizierung zugunsten der schlüsselbasierten Authentifizierung zu deaktivieren. Aber meiner Meinung nach hat die Passwort-Authentifizierung einen wesentlichen Vorteil: die Möglichkeit, sich von überall her ohne Schlüssel zu verbinden. Wenn es immer mit einem starken Passwort verwendet wird, sollte dies kein Sicherheitsrisiko darstellen. Oder sollte es?


63
2017-11-24 12:12


Ursprung


Passwörter sind eine Ein-Faktor-Authentifizierung, die gekeyed, erraten und wiedergegeben werden kann. Schlüssel sind (möglicherweise) zwei-Faktor. Die Möglichkeit, sich von überall mit nur einem Faktor einzuloggen, ist auf manchen Systemen nicht akzeptabel. - Alex Holst


Antworten:


Es gibt Pro und Kontra für PW- oder Schlüssel-basierte Authentifizierung.

In einigen Fällen ist zum Beispiel die schlüsselbasierte Authentifizierung Weniger sicherer als Passwort-Authentifizierung. In anderen Fällen ist das Pw-basierte weniger sicher. In manchen Fällen ist einer bequemer, in anderen weniger.

Es läuft alles darauf hinaus: Wenn Sie Schlüssel-basierte Authentifizierung, Sie Muss Sichern Sie Ihren Schlüssel mit einer Passphrase. Wenn Sie keinen ssh-agent ausführen lassen, der Sie jedes Mal davon abhält, Ihre Passphrase einzugeben, haben Sie in Bezug auf die Bequemlichkeit nichts gewonnen. Sicherheit ist fraglich: Der Angriffsvektor wurde jetzt vom Server auf DICH oder Ihr Konto oder Ihren persönlichen Computer verschoben (...) - diese können leichter zu brechen sein oder auch nicht.

Denken Sie außerhalb der Box, wenn Sie dies entscheiden. Ob Sie in Bezug auf die Sicherheit gewinnen oder verlieren, hängt vom Rest Ihrer Umgebung und anderen Maßnahmen ab.

edit: Oh, habe gerade gesehen, dass du über einen Heimserver sprichst. Ich war in der gleichen Situation, "Passwort" oder "USB-Stick mit Schlüssel drauf" immer bei mir? Ich ging für die ehemalige aber änderte den SSH-Abhörport auf etwas anderes als 22. Das hält all diese lahmen Script-Kiddies davon ab, brutal ganze Netzwerkbereiche zu erzwingen.


23
2017-11-24 13:22



Das Ändern des SSH-Ports von 22 ist in vielen Fällen keine gute Idee. adayinthelifeof.nl/2012/03/12/ ... - Tymek


Die Verwendung von SSH-Schlüsseln hat eine einzigartige Funktion im Vergleich zur Passwort-Anmeldung: Sie können die erlaubten Befehle angeben. Dies kann durch Modifizieren erfolgen ~/.ssh/authorized_keys Datei auf dem Server.

Zum Beispiel,

command="/usr/local/bin/your_backup_script.sh", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...

würde nur den Befehl `/usr/local/bin/your_backup_script.sh 'mit diesem bestimmten Schlüssel erlauben.

Sie können auch die zulässigen Hosts für den Schlüssel angeben:

from="yourclient,yourotherclient", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...

Oder kombinieren Sie die beiden:

from="yourbackupserver", command="/usr/local/bin/your_backup_script.sh", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...

Mit Schlüsseln können Sie auch einem Benutzer (z. B. einem Berater) einen temporären Zugriff auf einen Server gewähren, ohne das Kennwort für diesen bestimmten Account preiszugeben. Nachdem der Berater seine Arbeit beendet hat, kann der temporäre Schlüssel entfernt werden.


73
2017-11-24 13:32



Sehr sehr nützlicher Tipp. - Sachin Divekar
Außerdem ist die Verwendung von Keys wie ein langes Passwort mit 2000 Zeichen (technisch gesehen sogar noch mehr Stärke) als das, was Sie manuell in einem Terminal eingeben können: D - Abhishek Dujari
Zwei sehr nützliche Tipps zur SSH-Authentifizierung, beantwortet die Frage aber wirklich nicht für mich ... - MikeMurko
Wenn Sie einen mit Passwort authentifizierten Benutzer zwingen möchten, einen bestimmten Befehl auszuführen, ändern Sie seine Login-Shell. Auch "temporären Zugriff zu gewähren, ohne das Passwort zu enthüllen" ist eine sehr schlechte Idee. Es gibt Hunderte von verschiedenen Möglichkeiten, den Zugriff für später zu behalten. - b0fh
Der letzte Absatz allein beantwortet die Frage IMO - Schlüssel ermöglichen granularen Widerruf, während mit Passwörtern Sie jeden informieren müssen, dass Sie es ändern. - Riking


Sie können das Beste aus beiden Welten herausholen, indem Sie nur die Kennwortauthentifizierung innerhalb Ihres Netzwerks zulassen. Fügen Sie Folgendes zum Ende Ihrer sshd_config:

PasswordAuthentication no
Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
    PasswordAuthentication yes

45
2017-11-24 13:31



das ist ein super handlicher Tipp. Ich habe ein paar Server, die ich damit machen könnte. - Sirex


Du hast deine Frage teilweise beantwortet - je mehr Orte ein Angreifer nutzen kann, desto mehr Möglichkeiten hat er, durch Brute-Force in deinen Server einzudringen (DDoS).

Vergleichen Sie auch die Länge Ihres Passworts mit der Schlüsselgröße (normalerweise Tausende von Bits).


6
2017-11-24 12:15



96 Bit Entropie bedeutet ein 80 Zeichen langes Passwort, wenn es englisch geschrieben ist; 15 Zeichen, wenn es zufälliges Kauderwelsch vom druckbaren Zeichensatz ist. Sind Sie sicher, dass Ihre SSH-Passwörter so lang / stark sind? - MadHatter
Wenn Sie mehrere Kennwörter mit 96-Bit-Entropie haben, die nicht anfällig für Dictionary-Angriffe sind, werden Sie wahrscheinlich sowieso eine Art von Passwort-Management-Software verwenden müssen, so dass Sie effektiv das überall verfügbare Element der Verwendung von Kennwörtern verlieren . - Nick Downton
@SachinDivekar das sind 96 Bits der Entropie nur, wenn zufällige Passwörter aus der Menge [a-zA-Z] verwendet werden, nicht, wenn es englische Wörter sind. - Jaap Eldering
@NickDownton - Sie können ein schönes langes Passwort haben, ohne auf die Keypass-Software zurückgreifen zu müssen. So etwas wie mywifesnameisangelaandshehasanicebutt ist gegen Wörterbuchangriffe inakzeptabel, ist sehr stark und sehr einfach zu merken, aber unmöglich zu erraten. Und es kommt mit dem Bonus, wenn Brownie Punkte, wenn Sie jemals Ihr Passwort an Ihre Frau geben müssen. - Mark Henderson♦
Entschuldigung, Mark, aber das ist falsch. Die Passphrase, die Sie angeben, hat 37 Zeichen und damit ungefähr 44 Bit Entropie, die schwächer als 7 zufällig druckbare Zeichen ist und hervorragend angreifbar ist. Lies Wikipedia's Artikel über die Arbeit von Claude Shannon für Details, aber das Ergebnis ist, dass geschriebenes Englisch sehr vorhersehbar ist - zB nach "mywifesname" ist das Wort "is" fast garantiert. Für starke Passwörter mit Wörtern, vier zufällig Wörter, die aus einem Wörterbuch zusammengefügt sind, ergeben 10 * 23 Möglichkeiten, was ungefähr 77 Bit Entropie entspricht; immer noch nicht großartig, aber nicht schlecht. - MadHatter


Wenn Sie sich mit einem Passwort anmelden, übermitteln Sie Ihr Passwort an den Server. Dies bedeutet, dass der Betreiber des Servers die SSHD ändern kann, um Zugang zu Ihrem Passwort zu erhalten. Bei der Authentifizierung mit öffentlichen Schlüsseln können sie Ihren privaten Schlüssel nicht erhalten, da nur Ihr öffentlicher Schlüssel auf den Server übertragen wird.


6
2017-07-09 08:10



Dies ist besonders relevant, wenn Sie wegen eines Tippfehlers eine Verbindung zum falschen Server herstellen. Zum Beispiel war .cg zu einem bestimmten Zeitpunkt ein Platzhalter, der auf einen einzelnen Computer mit ssh-Aktivierung zeigte. Jedes Mal, wenn Sie .cg für .ch falsch schreiben würden, würden Sie sich am Ende mit dieser Box verbinden und Ihr Passwort verlieren ... - b0fh


Es ist ein Kompromiss, wie @MartinVejmelka sagt.

Der Grund für die Verwendung der Schlüssel-basierten Authentifizierung ist, dass der Schlüssel so weit über dem aktuellen Wert liegt oder nahe Zukunft Brute zwingt, dass Sie entweder von Ihrem eigenen PC kommen, oder den Schlüssel auf einem USB-Stick oder ähnlichem haben.

Ein Passwort weist folgende Probleme auf:

  • Wenn es kurz ist, kann es brutal erzwungen werden
  • Wenn es lang ist, wird es leicht vergessen
  • Es könnte Schulter gesurft werden

Ein Schlüssel ist um Größenordnungen länger und wird zu keinem Zeitpunkt angezeigt, sodass diese drei Probleme vermieden werden.


5
2017-11-24 12:43



Durch die Verwendung einer Schlüsseldatei wird jedoch das Problem des Verlierens des USB-Sticks oder des von Ihnen verwendeten Speichers behoben. - João Portela
An diesem Punkt kann der verlorene Schlüssel entfernt und ein neuer Schlüssel hinzugefügt werden. Mit Passwörtern (vor allem geteilten Passwörtern) kann mir das einen großen Schmerz bereiten und viel Stöhnen mit sich bringen. - SplinterReality
Eines meiner (kürzlich zurückgezogenen) Passwörter: 08Forging2?seminal*^Rajas-(Posed/|. Es wird zufällig generiert, aber ich habe keine Probleme, mich daran zu erinnern. Und viel Glück beim Shoulder-Surfing oder Brute-Forcing. - finnw
@finnw Correct Horse Batterie Heftklammer :-) security.stackexchange.com/q/6095/485 - Rory Alsop


SSH-Schlüssel verhindern, dass der Mann in der Mitte Angriffe auf Ihr Passwort.

Wenn Sie versuchen, sich mit einem Schlüssel anzumelden, erstellt der Server eine Abfrage basierend auf Ihrem öffentlichen Schlüssel und sendet sie an Ihren Client. was es entschlüsseln und eine passende Antwort zum Senden erstellen wird.

Ihr privater Schlüssel wird niemals an den Server gesendet und jeder, der zuhört, kann nur diese einzige Sitzung abfangen.

Mit einem Passwort würden sie Ihre Anmeldeinformationen haben.

Meine Lösung ist, einen portablen SSH-Schlüssel in geeigneten Formaten auf einer verschlüsselten Partition auf einem USB-Schlüssel zu haben. Das erlaubt mir:
ziehen Sie diesen Schlüssel leicht zurück, falls er verloren geht.
schränken Sie ein, auf welche Server ich zugreifen darf
und trage es immer noch herum

obwohl die Installation der Mount-Software ein Schmerz ist (truecrypt)


5
2017-11-25 11:04



Das ist falsch. Sobald Sie den öffentlichen Schlüssel des Servers kennen (was Sie tun, wenn Sie ihn zu Ihrem Cache hinzugefügt haben und nicht MITM auf der ersten Verbindung erhalten haben), sind Sie immun gegen MITM-Angriffe. Schlüssel / Passwort-basierte Authentifizierung hat damit nichts zu tun. Das Passwort ist noch nie Über die Leitung wird eine sichere Verbindung mit der Authentifizierung auf Maschinenebene (was ist Ihr / mein öffentlicher Schlüssel) immer vor der Authentifizierung auf Benutzerebene eingerichtet (was ist Ihr Passwort / beweisen Sie mir, dass dieser öffentliche Schlüssel Ihr ist). - Thomas
Thomas, in Wirklichkeit ignorieren viele Menschen die Warnung vor einem Fingerabdruckwechsel. Die Pubkey-Authentifizierung garantiert den MITM-Schutz auch dann, wenn der private Schlüssel des Servers irgendwie kompromittiert wird oder ein Mensch abwesend "Ja" sagt: Der Angreifer muss wählen, ob er den Verkehr nicht sehen und einen öffentlichen Schlüssel senden kann, der sich nicht anmeldet Sieg. - Score_Under
Und an den Beantworter: Sie müssen nicht truecrypt verwenden, openssh private Schlüssel werden mit ihrer eigenen optionalen kennwortbasierten Verschlüsselung ausgeliefert. - Score_Under


Gute Punkte hier schon erwähnt.

Was ich als das größte Risiko ansehe, wenn man sich mit einem starken Passwort um die Grundlagen kümmert, ist, dass viele Computer Keylogger installiert haben, ohne dass der Benutzer es merkt. Es gibt sogar Leute, die ganze Seiten nützlicher Dienstprogramme erstellen, die Trojaner enthalten, also kann es den Besten von uns passieren. Ein Keylogger würde beispielsweise die Zugangsdaten an einen Hacker senden, der dann leicht auf den Server zugreifen kann.

Vor kurzem wurde ich von Norton gewarnt, dass ich das Zombee Mod-Installationsprogramm (nicht das Jar, das Installationsprogramm) heruntergeladen habe, um Flug zum Minecraft-Krug hinzuzufügen. Ich habe mir die Details angeschaut und Norton hat auf dieser Seite eine Menge Utilities aufgelistet, die als Trojaner markiert waren. Ich weiß nicht, ob das richtig ist oder nicht, aber es war ziemlich spezifisch mit Dateinamen. Es ist auch eine bekannte Tatsache, dass Trojaner in (einige) Waren platziert werden, bevor sie verteilt werden.


2
2017-11-24 19:28