Warum dauert ein Anmeldefehler über ssh länger als ein erfolgreicher?
7
Das ist etwas, das mich seit Jahren nervt, und ich bin gespannt, ob einer von euch über Admins es mir erklären kann.
Wenn ich in eine meiner Linux-Boxen ssh und die richtigen Anmeldeinformationen gebe, erfolgt meine Authentifizierung fast sofort. Wenn ich im selben Feld das falsche Kennwort eingebe, dauert es einige Sekunden, bis die fehlgeschlagene Anmeldemeldung angezeigt und erneut aufgefordert wird. Was passiert auf dem Server, für dessen Fehlschlagen ein falsches Kennwort so lange dauert?
Dies ist eine Sicherheitsfunktion, die vom PAM-Modul implementiert wird und Ihre Kennwörter überprüft.
Wenn Sie die Manpage für pam_unix (8) lesen, wird die Option "nodelay" angezeigt. pam_unix wird von ssh verwendet, um Passwörter zu überprüfen, sich anzumelden und alles andere, was Ihr Passwort überprüft. "Die Standardaktion besteht darin, dass das Modul eine Verzögerung bei einem Fehler in der Größenordnung von zwei Sekunden anfordert."
Es gibt eine Funktion, die alle Pam-Module aufrufen können, um die Verzögerung des Haupt-Pam-Materials anzufordern. pam_fail_delay. Diese Funktion benötigt die längste Verzögerung, die ein Modul aufgerufen hat, und ändert sie zufällig um bis zu 25%. Sie wartet so lange, bis sie zur Anwendung zurückkehrt (sshd, login usw.).
Auf vielen Systemen ist es eine übliche Sicherheitsmaßnahme, dass ein Fehler (z. B. der Versuch, das Kennwort für einen nicht vorhandenen Benutzer zu überprüfen) einen kleinen Ruhezustand einfügt. Dies verhindert Timing-Angriffe, da andernfalls eine nicht erfolgreiche Anmeldung bei einem gültigen Konto etwas länger dauern kann (Verschlüsselung des Kennworts, Statistiken im Ausgangsverzeichnis usw.) als der Versuch, sich bei einem nicht vorhandenen Konto anzumelden. Andere Begriffe hierfür sind verdeckter Kanal , Timing-Kanal oder Seitenkanalangriff . Es rät auch von Brute-Force-Angriffen ab (aber nicht sehr gut, öffnen Sie einfach mehr Verbindungen). Eine leichte Randomisierung des Schlafes hilft auch.
Ihre Antwort ist gut, aber siehe verdeckter Kanal vs. Seitenkanalangriff ; "verdeckter Kanal" scheint sich auf Verstöße von innen zu beziehen.
Andrew
1
@ Andrew: aber der Seitenkanal scheint in erster Linie auf Krypto beschränkt zu sein ... Das Timing-Datenleck, das diese PAM-Mechanismen maskieren, könnte Zeit sein, potenzielle Passwörter zu hashen, es könnte sein, welche Teile des PAM-Stacks ausgeführt werden oder ob oder es wird keine Netzwerksuche durchgeführt ... Ich werde sie jedoch bearbeiten ...
freiheit
+1 interessant, wusste nichts über die Randomisierung. Ich dachte, es wäre nur, um Brute-Force-Angriffe zu unterbinden.
Sleske
9
Obwohl ich mit der Funktionsweise von OpenSSH nicht vertraut bin, liegt es nahe, dass dies ein Sicherheitsmerkmal ist. Ohne Verzögerung wäre es für einen (automatisierten) Angreifer einfach, innerhalb kürzester Zeit zahlreiche Passwörter zu versuchen. Jede Art von "Schlammfaktor" macht diese Art von Angriff weniger machbar.
Abgeordnet. Ich glaube das ist wahr. Gleiches gilt für Logins in den meisten Linux-Distributionen (zumindest GNOME-basiert).
Luke hat keinen Namen
1
Es scheint, dass @freheit eine spezifischere Antwort geliefert hat.
Skyhawk
1
Dies hängt von der Authentifizierungskonfiguration Ihres Servers ab. Bei den meisten Linux-Boxen (einfache Vanille von der Stange) wird PAM für lokale Konten verwendet. Es wird jedoch wahrscheinlich auch nach einem NIS-Dienst gesucht. Dies kommt nie zum Tragen, wenn Sie sich erfolgreich bei einem lokalen Benutzerkonto anmelden. Wenn dies jedoch nicht funktioniert, tritt bei der Suche nach dem NIS-Server (oder den Anmeldeinformationen auf dem NIS-Server, falls vorhanden) eine Zeitüberschreitung auf.
Natürlich gibt es viele andere mögliche Szenarien, in denen ähnliche Prinzipien gelten. Um eine detaillierte Antwort zu erhalten, müssen Sie weitere Details zum Authentifizierungssetup Ihres Servers angeben (z. B. /etc/nsswitch.conf und /etc/pam.conf oder den Inhalt von Dateien in /etc/pam.d).
Hat dies nicht auch etwas mit den Fallback-Mechanismen zu tun? Was passiert, wenn Sie sich mit ausführlicher Ausgabe anmelden und wenn Sie Ihre Anmeldeinformationen richtig eingeben, muss nicht auf eine andere Form der Authentifizierung zurückgegriffen werden.
Obwohl ich mit der Funktionsweise von OpenSSH nicht vertraut bin, liegt es nahe, dass dies ein Sicherheitsmerkmal ist. Ohne Verzögerung wäre es für einen (automatisierten) Angreifer einfach, innerhalb kürzester Zeit zahlreiche Passwörter zu versuchen. Jede Art von "Schlammfaktor" macht diese Art von Angriff weniger machbar.
quelle
Dies hängt von der Authentifizierungskonfiguration Ihres Servers ab. Bei den meisten Linux-Boxen (einfache Vanille von der Stange) wird PAM für lokale Konten verwendet. Es wird jedoch wahrscheinlich auch nach einem NIS-Dienst gesucht. Dies kommt nie zum Tragen, wenn Sie sich erfolgreich bei einem lokalen Benutzerkonto anmelden. Wenn dies jedoch nicht funktioniert, tritt bei der Suche nach dem NIS-Server (oder den Anmeldeinformationen auf dem NIS-Server, falls vorhanden) eine Zeitüberschreitung auf.
Natürlich gibt es viele andere mögliche Szenarien, in denen ähnliche Prinzipien gelten. Um eine detaillierte Antwort zu erhalten, müssen Sie weitere Details zum Authentifizierungssetup Ihres Servers angeben (z. B. /etc/nsswitch.conf und /etc/pam.conf oder den Inhalt von Dateien in /etc/pam.d).
quelle
Hat dies nicht auch etwas mit den Fallback-Mechanismen zu tun? Was passiert, wenn Sie sich mit ausführlicher Ausgabe anmelden und wenn Sie Ihre Anmeldeinformationen richtig eingeben, muss nicht auf eine andere Form der Authentifizierung zurückgegriffen werden.
quelle