Login-System per Brute Force gehackt?

Ruediger

Erfahrenes Mitglied
Hallo zusammen,

ich habe eine Seite mit einem Shop am laufen. Dahinter steht auch eine User-Datenbank. Die User können sich mit Login und Passwort einloggen. Die Passwörter sind per md5 verschlüsselt gespeichert.

Jetzt habe ich von einem Bekannten gehört, dass man sich mittels "Brute Force" Zugriff zu jedem Account verschaffen kann.

Wie ist das? Wenn ein Coder jetzt ein Skript erstellt, dass ständig auf meine Login-Seiten zugreift und alle PWDs durchprobiert? Wie gehe ich da am besten vor um das auszuschließen?

Danke für die Antworten!
Grüße Ruediger
 
Indem Du die Scriptausführung um 3 Sekunden verzögerst ([phpf]sleep[/phpf]), nachdem eine falsche Kombination aus Benutzername und Kennwort eingegeben wurde oder Du die Fehlversuche einer IP logst und ggf. eine Warnmail an Dich versendest, wenn die Anzahl der Fehlversuche zu gross wird.

Theoretisch ist es natürlich möglich einen Account zu "hacken", indem man alle Kombinationen durchprobiert, aber praktisch erfordert das zu viel Zeit, wenn man ein Kennwort mit mehr als 7 Zeichen wählt und zudem Zahlen und Buchstaben mit verschiedener Großschreibung verwendet.

Die Benutzer Deines Shops könntest Du also bei der Anmeldung "zwingen" ein ausreichend langes Kennwort einzugeben.

Des Weiteren könntest Du Fehlversuche je IP / Account auf eine bestimmte Anzahl pro Tag begrenzen (meinethalben 50). Das sollte für einen normalen Nutzer locker reichen, ist aber für eine erfolgreiche Brute-Force-Attacke viel zu wenige.

snuu
 
Zuletzt bearbeitet:
Zusätzlich solltest du drüber nachdenken auch eine Sperre für die Passwortauswahl beim Anmelden einzubinden.

Es gibt eine Vielzahl an Leuten, die ihren Username als Passwort haben. Das ist mit das erste was versucht wird beim Bruteforce.
 
Für ein Login System halte ich das für sehr übertrieben. Ich sag mal, eine Zeitsperre nach der Eingabe von einem falschen Passwort, welche sich nach jeder weiteren falschen Eingabe verdoppelt macht viel mehr Sinn. Evtl IP bezogen, sonst könnte eine Person das ganze Shopsystem still legen indem alle möglichen Usernamen durchtestet.

1mal falsch eingegeben 5 Sekunden Sperre,
2te mal 10 Sekunden
3te mal 20 Sekunden
...



Damit ist BruteForce sogut wie ausgeschlossen.
 
Ich habe in meinem Login eine Sperre eingebaut. Jede Falsche Eingabe eines PW wird gespeichert (hochgezählt). Wurde mit einem User-Namen 3 mal das Falsche Kennwort einggeben, so ist der User gesperrt und kann sich nicht mehr einloggen. Um sich wieder Freischalten zu lassen, muss er sich an den Admin wenden.

Sind nur 2 Falsche eingaben gemacht worden, so erfährt der User nach erfolgreichen Login, wieviele Versuche mit seinem Namen gemacht worden sind. Hat er diese selbst verursacht, so kann er den Zähler selber wieder auf 0 zurück setzten. Ansonsten wird Ihm empfohlen das PW zu ändern bzw. sich an den Admin zu wenden, damit er einen neuen User-Namen erhält.
 
Schön und gut... aber was ist mit jemanden, der versucht deine Seite zu diskreditieren? Ich würde an seiner Stelle einfach ein kleines Programm schreiben das die gängisten Usernamen bei dir eingibt und wirre PW-Kombinationen testet... 3-4 mal.


Somit würde ich deinen Kundenstamm verärgern und den Admin,der das alles freischalten müsste ebenso. Daher halte ich den Ansatz für bedingt tauglich. Achja, was ist wenn jemand das Adminpasswort 3mal falsch eintippt. Wer schaltet das wieder frei? :p
 
Original geschrieben von Sway
Ich würde an seiner Stelle einfach ein kleines Programm schreiben das die gängisten Usernamen bei dir eingibt und wirre PW-Kombinationen testet... 3-4 mal.

Womit macht man das denn bzw. kann man das machen?
 
Womit macht man das denn bzw. kann man das machen?
Was? Das Programm schreiben? Mit sogut wie jeder Programmiersprache (wie z.B. C / C++ / Java).

Falls deine Frage sich auf die Datensätze bezieht: Es gibt nette Wörterbuch Datenbanken. In einigen Fällen braucht man nichtmal damit arbeiten, weil alle Usernamen auf der jeweiligen Seite zu finden sind (z.B. bei Foren)
 
@Lambda: Das kann man ja nun wirklich mit fast jeder Sprache schreiben ;-)

Für ein Login System halte ich das für sehr übertrieben. Ich sag mal, eine Zeitsperre nach der Eingabe von einem falschen Passwort, welche sich nach jeder weiteren falschen Eingabe verdoppelt macht viel mehr Sinn. Evtl IP bezogen, sonst könnte eine Person das ganze Shopsystem still legen indem alle möglichen Usernamen durchtestet.

1mal falsch eingegeben 5 Sekunden Sperre,
2te mal 10 Sekunden
3te mal 20 Sekunden

Halte ich für ein sehr sinnvolles und praktikablen Ansatz.

Der Zahlencode ist recht sicher doch ziemlich lästig für den User - je nachdem wie kompliziert der Zahlencode gestaltet ist (unterschiedliche Farbe,Formen,Schriften,Schriftgrößen,Muster,...)

Ansätze mit "3-Mal-Falsch" und dann sperren oder neues PW zuschicken oder Dinge dergleichen halte ich für sehr unpraktikabel, da einfach zuviel kaputt gemacht bzw. gestört werden kann.

Also ich würde an deiner Stelle die zeitlich gestaffelte Sperre je nach IP versuchen zu realisieren.
 
Zurück