Schwächen der 3-Strike-Sicherheit


10

Ich habe einige Literatur zur Sicherheit gelesen, insbesondere zur Passwortsicherheit / -verschlüsselung, und eines habe ich mich gefragt: Ist die 3-Strike-Regel eine perfekte Lösung für die Passwortsicherheit? Das heißt, wenn die Anzahl der Kennwortversuche auf eine kleine Anzahl begrenzt ist, nach der nicht alle Authentifizierungsanforderungen berücksichtigt werden, schützt dies die Benutzer nicht vor dem Eindringen? Mir ist klar, dass der Zugriff oder die Kontrolle über etwas nicht immer bedeutet, das Authentifizierungssystem zu durchlaufen, aber macht diese Funktion Wörterbuch- / Brute-Force-Angriffe nicht überflüssig? Fehlt mir etwas?


3
Diese Frage wurde möglicherweise besser bei Security gestellt, damit Sie später darauf zurückgreifen können.
maple_shaft

1
Wie ich festgestellt habe, gibt es immer einen angemesseneren Ort zum Fragen. Danke, ich werde versuchen, mich daran zu erinnern.
Prelic

Antworten:


13

Ja, es macht Wörterbuchangriffe über den Anmeldemechanismus unmöglich . (Das bedeutet jedoch nicht viel, wenn sie Zugriff auf die Datenbank erhalten. Aus Sicherheitsgründen müssen Sie die Passwörter ordnungsgemäß hashen und salzen.)

Es ermöglicht auch die Möglichkeit eines DOS-Angriffs gegen einen bestimmten Benutzer. Angenommen, ich wollte verhindern, dass Sie sich anmelden. Ich muss lediglich drei falsche Anmeldeversuche für Ihr Konto ausführen und dies dann jedes Mal erneut tun, wenn Sie die erforderlichen Schritte zum Zurücksetzen der Anmeldung ausführen. Der Umgang mit diesem Thema ist etwas schwieriger.


1
Vielen Dank! Was wäre aus Neugier ein Ansatz, um mit dem von Ihnen beschriebenen letzteren Problem umzugehen? In einem realen Beispiel verwenden Tonnen von Online-Foren den öffentlichen Benutzernamen als Anmelde-ID (im Gegensatz zu einer E-Mail, die an das Konto angehängt ist, oder etwas anderem). Dies bedeutet, dass ich sehen kann, mit was sich jeder einzelne Benutzer anmeldet. Was hindert mich daran, jeden einzelnen Benutzer aus seinem Konto zu sperren? Ein guter Administrator? Es scheint trivial einfach zu sein, jeden einzelnen Benutzer von der Site auszuschließen.
Prelic

@prelic: Nun, um dieses Problem zu lösen, würde ich etwas implementieren wie "Wenn eine bestimmte IP-Adresse zu viele ungültige Anmeldeversuche macht, blockieren Sie sie." Das wird das von Ihnen erwähnte Szenario stoppen, aber es wird keinen ernsthaften Hack-Versuch wie ein Botnetz behandeln. Dafür brauchen Sie mehr Sicherheit.
Mason Wheeler

4
Die übliche Lösung besteht darin, die Rate der Versuche, die für einen bestimmten Benutzer von einer festen IP kommen, auf 5 pro Minute zu begrenzen. Es ist nicht perfekt, aber normalerweise verursachen Sie keine Probleme für andere Benutzer, es sei denn, Sie befinden sich zufällig hinter demselben Proxy
Andrea

Ein anderer Ansatz besteht darin, ein Captcha nach zwei fehlgeschlagenen Anmeldeversuchen von derselben IP-Adresse zu präsentieren. Ein entschlossener Angreifer kann jedoch zu diesem Zweck nur einen Captcha-brechenden mechanischen Türken mieten. Außerdem ist es ziemlich schwierig, ein gutes Captcha zu finden, das tatsächlich Maschinen hält aus.
tdammers

3

Ich stimme auch zu, dass Wörterbuchangriffe dadurch weniger effektiv werden, da ohne die entsprechende Berechtigung auf ein Konto zugegriffen werden kann. Jedoch:

  • Dieser Ansatz könnte einen Wörterbuchangriff in einen DOS-Angriff gegen das System verwandeln, der den Zugriff verhindert, wenn er schlecht implementiert ist. Beispielsweise könnte ein Server mit Authentifizierungsversuchen überflutet werden. Eine Möglichkeit, dies zu umgehen, besteht darin, dass der Authentifizierungsdienst den Fluss nachfolgender Zugriffe auf ein gesperrtes Konto steuert. Wenn beispielsweise ein Konto gesperrt ist, geben Sie vor jedem nachfolgenden Anmeldeversuch eine Verzögerung an. Man könnte jedoch eine Verzögerung zwischen einem Anmeldeversuch und einem "Zugriff verweigert" setzen, die die Tür für einen verteilten Denial-of-Service-Angriff offen hält, bei dem ein Angreifer viele gleichzeitige Authentifizierungsversuche startet.

  • Wie in der anderen Antwort erwähnt, könnte dies auch einen Wörterbuchangriff in ein grobes DOS gegen den legitimen Eigentümer des angegriffenen Kontos verwandeln. Zu den Möglichkeiten, die Auswirkungen auf den rechtmäßigen Eigentümer zu mindern, gehören:

    • Verlangsamen Sie die Ausführung von Benutzernamen, indem Sie keine Hinweise darauf geben, ob der Benutzername oder das Kennwort falsch ist. Dies macht Angriffe, bei denen der Täter Benutzernamen errät, für Administratoren sichtbarer und weniger effektiv.
    • Anstatt ein Konto nach einer festgelegten Anzahl fehlgeschlagener Versuche zu sperren, sperren Sie lediglich diesen Authentifizierungsmodus. Mit anderen Worten, ein Benutzer, dessen Konto angegriffen wird, muss sich mit einer anderen (möglicherweise komplizierteren, aber weniger leicht angreifbaren) Methode authentifizieren. Ein gutes Beispiel ist, wie ein Android-Telefon von einem Benutzer verlangt, seine Google-Anmeldeinformationen zu verwenden, nachdem er sich nicht mit einem Bildschirm-Entsperrmuster oder einer PIN authentifiziert hat. Theoretisch bedeutet dies, dass ein angegriffener Benutzer verlangen muss, dass sein Konto entsperrt wird. Es ist jedoch kein sofortiges Eingreifen eines Systemadministrators erforderlich.
    • Anstatt ein Konto zu sperren (oder zusätzlich zum Sperren eines Kontos für diesen bestimmten Authentifizierungsmodus - siehe oben), versuchen Sie, sich von dem Ort aus zu authentifizieren, an dem der Angriff ausgelöst wurde. Wenn die Authentifizierung beispielsweise über einen Benutzernamen und ein Kennwort über das Netzwerk erfolgt, können Sie nach drei fehlgeschlagenen Authentifizierungsversuchen verhindern, dass sich weitere Versuche von Benutzern mit derselben IP-Adresse oder demselben Subnetz mit einem Benutzernamen oder Kennwort anmelden. Wenn die Wahrscheinlichkeit groß ist, dass mehrere Benutzer (einschließlich des Angreifers) dieselbe IP-Adresse oder dasselbe Subnetz verwenden, können Sie die Authentifizierung von Benutzername und Kennwort für die IP-Adresse oder das Subnetz lediglich für einen bestimmten Zeitraum deaktivieren, sodass die beteiligten Authentifizierungsmethoden für unschuldige Personen offen bleiben Benutzer in der Nähe des Angreifers.
  • Wenn Ihre Angst einen vergesslichen Benutzer versehentlich bestraft, als wäre er ein Angreifer, anstatt den Ablauf fehlgeschlagener Anmeldeversuche nach einer festgelegten Anzahl fehlgeschlagener Versuche zu steuern , können Sie die Häufigkeit der Anmeldeversuche als Beweis dafür verwenden, dass ein Konto angegriffen wird. Wenn Sie beispielsweise innerhalb einer Sekunde 10 Authentifizierungsversuche sehen, können Sie entweder eine der oben genannten Methoden verwenden, um weitere ähnliche Authentifizierungsversuche zu verhindern. Alternativ können Sie diese schnelle Flut von Anmeldeversuchen als Signal verwenden, um den Fluss zu steuern. Diese Methode wird in Foren immer beliebter, während nach einer bestimmten Anzahl fehlgeschlagener Anmeldeversuche von einer bestimmten IP-Adresse die Authentifizierung dieser IP-Adresse für einen kurzen Zeitraum verhindert wird.

  • Ein guter Weg, um zu verhindern, dass ein Benutzer wiederholt von einem DOS-Angriff angegriffen wird, besteht darin, ihm zu erlauben, sowohl sein Passwort als auch seinen Benutzernamen zurückzusetzen . Mit anderen Worten, behandeln Sie sowohl den Benutzernamen als auch das Passwort als Geheimnisse. Wenn der Benutzername an anderer Stelle verwendet wird (z. B. in einem Forum, wenn der Benutzername der Anzeigename des Benutzers ist), behandeln Sie diesen Anzeigenamen einfach als etwas Separates. Dieser Ansatz wird normalerweise von sozialen Netzwerken verwendet, bei denen der bei der Authentifizierung verwendete Benutzername die E-Mail-Adresse ist - etwas, das geändert werden kann, aber nur selten geteilt wird -, während der auf der Site verwendete Anzeigename benutzerdefiniert ist oder nicht verändert sein.

Wie auch immer, ich hoffe, ein oder eine Kombination dieser Ansätze wird sich als nützlich erweisen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.