Warum sollte die überprüfung ein Falsches Passwort länger als die überprüfung der richtige?
Dieser Frage beunruhigt mich.
Unter Linux, wenn nach einem Passwort gefragt, wenn Sie Ihre Eingabe korrekt ist, überprüft er sofort, mit fast keiner Verzögerung. Aber auf der anderen Seite, wenn Sie geben ein Falsches Passwort eingegeben, es dauert länger, um zu überprüfen. Warum ist das so?
Ich beobachtet diese in allen Linux-Distributionen die ich je ausprobiert habe.
- Sie finden dieses, um wahr zu sein von Windows. Auch das ändern der Titel zu so etwas wie, "Warum haben falsche Passwörter länger dauern als richtigen sind." Würde es mehr Programmierung verwandt.
- Ich habe gerade angemeldet in meinem Ubuntu-system, das falsche Kennwort eingegeben und mir die selbe Frage gestellt. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eigentlich zu verhindern, dass brute-force-Attacken versucht, Millionen Passwörter pro Sekunde. Die Idee ist, zu begrenzen, wie schnell Passwörter überprüft werden können, und es gibt eine Reihe von Regeln, die befolgt werden sollten.
Dass Letzte ist besonders wichtig. Es bedeutet keine hilfreichen Meldungen wie:
oder:
Nicht einmal ein Zeit Unterschied in der Antwort zwischen "ungültige Benutzer-und Kennwort" und "gültige Benutzer aber ungültiges Kennwort" Gründe für Fehler.
Jeder scheitern sollte, um genau die gleichen Informationen, Text-und sonst.
Einigen Systemen ist es sogar noch weiter, steigt die Verzögerung bei jedem Versagen, oder erlauben, nur drei Ausfälle dann eine erhebliche Verzögerung, bevor ein erneuter Versuch.
Dies macht es länger dauern, die Kennwörter zu erraten.
Ich bin mir nicht sicher, aber es ist durchaus üblich, um zu integrieren, die eine Verzögerung nach Eingabe eines falschen Passworts, um die Angriffe härter. Das macht einen Angriff practicaly nicht machbar, denn es dauert eine lange Zeit zu überprüfen, nur ein paar Passwörter.
Einmal versuchen, ein paar Passwörter - Geburtsdaten, der name der Katze, und Dinge wie, dass - sich in den keinen Spaß.
123456
konnte auch machen Sie bis 30% (zum Beispiel) von kompromittierten accounts aber ist unwahrscheinlich, dass irgendwo in der Nähe, die signifikant über alle Konten.Grundsätzlich zum Schutz vor brute-force-und Wörterbuch-Attacken.
Vom Die Linux-PAM Application Developer ' s Guide:
Es ist eine sehr einfache, fast mühelos Weg, um deutlich erhöhen Sie die Sicherheit. Bedenken Sie:
System
A
hat keine Verzögerung. Hat ein Angreifer ein Programm, dass die erstellt von Benutzername/Passwort-Kombinationen. Bei einer rate von tausend versuche pro minute, es dauert nur ein paar Stunden, um zu versuchen, jede Kombination und Aufzeichnung aller erfolgreichen Anmeldungen.System
B
generiert eine 5-Sekunden Verzögerung nach jeder falschen Vermutung. Der Angreifer die Effizienz wurde reduziert auf 12 versuche pro minute, effektiv lähmt die brute-force-Angriff. Statt Stunden, es kann Monate dauern, zu finden, ein gültiges login. Wenn Hacker waren, dass die Patienten, Sie würden gehen legit. 🙂Fehlgeschlagen Authentifizierung Verzögerungen sind da, um zu verringern die rate der login-Versuch. Die Idee, dass, wenn jemand versucht, ein Wörterbuch-oder brute-force-Angriff gegen einen oder kann Benutzer-Konten, die Angreifer werden benötigt, um das warten der fail delay und so zwingt ihn, mehr Zeit in Anspruch nehmen und Ihnen mehr chance es zu erkennen.
Sie könnten auch interessiert sein, zu wissen, dass, je nachdem, was Sie verwenden als login-shell es ist in der Regel eine Möglichkeit zum konfigurieren dieser Verzögerung.
In der GDM, die Verzögerung liegt in der gdm.conf-Datei (normalerweise in /etc/gdm/gdm.conf). Sie müssen RetryDelay=x, wobei x ein Wert in Sekunden.
Meisten linux-distribution, die diesen Tag auch zu unterstützen FAIL_DELAY definiert in /etc/login.defs, in dem Sie die Wartezeit nach einem fehlgeschlagenen login-Versuch.
Schließlich PAM erlaubt Ihnen auch, eine nodelay-Attribut auf Ihren auth-Linie zu umgehen, um den fail delay. (Hier ist ein Artikel über PAM und linux)
Ich sehe nicht, dass es so einfach sein kann wie die Antworten vermuten lassen.
Wenn die Antwort auf eine richtige Passwort ist (etwas Wert) unmittelbare, nicht müssen Sie nur noch warten, bis mehr als das Wert zu wissen das das Passwort falsch ist? (zumindest wissen, probabilistisch, das ist gut für das knacken Zwecke) Und trotzdem wären Sie ausgeführt wird dieser Angriff im parallel... ist das alles ein großes DoS-welcome-mat?
Was ich versucht habe, bevor schien zu funktionieren, aber eigentlich nicht; wenn Sie die Pflege müssen Sie überprüfen die wiki Bearbeiten Geschichte...
Was hat Arbeit (für mich) ist, zu beide niedriger der Wert der pam_faildelay.so delay=X in /etc/pam.d/login (ich senkte es bis 500000, halbe Sekunde), und auch hinzufügen nodelay (mit vorangestelltem Leerzeichen) an das Ende der Zeile in common-auth, wie beschrieben durch Gabriel in seiner Antwort.
auth [success=1 default=ignore] pam_unix.so nullok_secure nodelay
Zumindest bei mir (debian sid), nur eine dieser änderungen nicht verkürzen Sie die Verzögerung deutlich unter die Vorgabe von 3 Sekunden, obwohl es möglich ist zu verlängern die Verzögerung nur durch Veränderung der Wert in /etc/pam.d/login.
Diese Art von Mist ist genug, um einen Erwachsenen Mann Weinen!
Ubuntu 9.10, und ich denke, dass die neuen Versionen auch die Datei die du suchst befindet sich auf
Bearbeiten Sie die Zeile:
änderung der Nummer 3 mit einer anderen, die Sie vielleicht wollen.
Beachten Sie, dass eine 'nodelay' Authentifizierung, ich DENKE, du solltest die Datei Bearbeiten
zu. Auf der Linie:
hinzufügen 'nodelay', um die endgültige (ohne Anführungszeichen).
Aber dieses endgültige Erklärung über die 'nodelay' ist, was ich denke.
Möchte ich hinzufügen, eine Notiz aus einer Entwickler-Perspektive. Obwohl dies nicht auf der Hand liegen, mit bloßem Auge ein smart-Entwickler ausbrechen würde, der eine match-Abfrage, wenn die übereinstimmung gefunden wird. In Zeugnis, ein erfolgreiches match vollständig wäre schneller als eine ausgefallene match. Da die matching-Funktion vergleichen Sie die Anmeldeinformationen auf alle bekannten Konten, bis Sie Sie findet das richtige Wort. In anderen Worten, sagen wir 1.000.000 Benutzer-accounts durch IDs; 001, 002, 003 und so weiter. Ihre ID ist 43,001. Also, wenn Sie einen korrekten Benutzernamen und Passwort, der scan Stoppt bei 43,001 und protokolliert Sie in. Wenn Sie Ihre Anmeldeinformationen nicht korrekt sind, dann durchsucht Sie alle 1.000.000 Datensätze. Der Unterschied in der Bearbeitungszeit auf einen dual-core-server in Millisekunden. Auf Windows Vista mit 5 Benutzer-accounts wäre es im Nanosekunden.
Stimme ich zu. Das ist eine willkürliche Programmierung Entscheidung. Setzen Sie die Verzögerung auf eine Sekunde anstelle von drei nicht wirklich weh crackability das Passwort, sondern ermöglicht es, mehr Benutzer-freundlich.
Technisch absichtliche Verzögerung ist zu verhindern, dass Angriffe wie der "Linearisierung Angriff" (es gibt auch andere Angriffe und Gründe).
Linearization.java.
Linearization.docx, sample-Ausgang
Viel geschrieben martial angepasst ist, von diese (übernommen von Mark Briefmarke ist die "Information Security: Principles and Practice"). Auch die Berechnungen berücksichtigen nicht die Menge der Vermutungen erforderlich, um herauszufinden, die richtige serielle Länge.