Frage:
Ist es hilfreich, ein Captcha auf einem Anmeldebildschirm zu haben?
meda
2015-07-14 20:23:53 UTC
view on stackexchange narkive permalink

Ich habe recaptcha in den Anmeldebildschirm eines Systems eingeführt.

Mein Ziel waren Sicherheitsaspekte wie Wörterbuch- / Bots-Angriffe oder andere Dinge dieses Typs.

Die Benutzer jetzt Ich hasse es, einige haben es nicht einmal verstanden und ich musste es entfernen.

Wenn ich mich umsehe, sehe ich nicht viele Systeme damit auf dem Anmeldebildschirm, meistens auf anderen Formularen wie Kontaktieren Sie uns oder manchmal wie beim Stapeltausch, wenn Sie etwas veröffentlichen möchten.

Ich habe mich gefragt, ob es eine gute Idee ist, es auf dem Anmeldebildschirm zu haben.

Ich denke, Sie haben Ihre eigene Frage beantwortet: "Die Benutzer hassen es jetzt, einige haben es nicht einmal verstanden und ich musste es entfernen." Wenn Sie ein Captcha benötigen, setzen Sie es ein, wenn ein Benutzer etwas tut (z. B. eine Nachricht posten, Geld überweisen) anstatt sich nur anzumelden.
Zur Information, [Register 365] (http://www.register365.com/) hat ein CAPTCHA in der Anmeldung des Control Panels, daher ist dies nicht unbekannt. (Es ist einfach zu umgehen: Melden Sie sich stattdessen einfach auf der Hauptwebsite an und gehen Sie dann zum Control Panel. Es ist also nur sinnlos und nervig, aber trotzdem ist es da.)
Wenn Sie Wörterbuch- und Bot-Angriffe stoppen möchten, fügen Sie nach einer fehlgeschlagenen Anmeldung einfach eine Verzögerung hinzu: 1 Sekunde, 2 Sekunden, 4, 8, 16, 32 usw. Ein Mensch, der sein Passwort falsch eingibt, kümmert sich nicht um eine Verzögerung von 1, 2 oder sogar 4 Sekunden. Ein Bot wird * sauer * sein!
@bishop Worauf stützen Sie die Verzögerung? Der Benutzername führt zu einem trivialen DoS-Angriff und IPs funktionieren auch nicht so gut, wenn sie mit einem Botnetz konfrontiert werden, das aus vielen Zombies besteht.
@CodesInChaos Kein Benutzername. Normalerweise konfiguriere ich mein IDS so, dass es bei wiederholten Treffern nach IP drosselt, um sich anzumelden und Routen zurückzusetzen. Dies hat bisher bei allen Angriffen funktioniert. Sicher, wenn es ein Zombie-Netz mit 100.000 Knoten gäbe, könnten sie mit diesem Back-Off 600.000 Passwörter in den 60ern ausprobieren, aber für eine hochwertige Site könnte ich ein exponentielles Back-Off von 500% verwenden: 1, 6, 36 usw. Bei Auf jeden Fall sollte dies nicht die einzige Technik sein: Eine obligatorische 2FA oder sogar 2FA, die durch Anmeldefehler informiert wird, wäre eine gute Sache.
Captchas sind niemals hilfreich, sie sind immer ein Schmerz. Tu es einfach nicht.
@codesinChaos Wenn sie viele Zombies haben, ist dies kein trivialer DoS-Angriff mehr. Ich denke, ein Ziel ist es, die Messlatte hoch genug zu legen, damit es genug Lärm gibt, wo ein IDS einen Menschen alarmieren kann.
Was ist los mit Captchas? Sie scheinen gut zu funktionieren.
Neun antworten:
Bradley Kreider
2015-07-14 21:02:51 UTC
view on stackexchange narkive permalink

Ich habe gesehen, wie einige große Systeme dies tun, indem sie nur nach sequentiell fehlgeschlagenen Anmeldeversuchen ein Captcha benötigen (dh: Zurücksetzen der Anzahl nach einer gültigen Anmeldung). Wenn Sie sich Sorgen über automatisiertes Cracken machen, können Sie das Captcha auf eine hohe Anzahl von Fehlern wie 20, 50, 100 fehlgeschlagene Versuche setzen. Fast kein legitimer Benutzer wird das Captcha sehen, aber ein automatisierter Angriff wird davon getroffen.

Lohnt es sich, diese Komplexität hinzuzufügen? Sicherheit und UX sind Kompromisse. Sie müssen den richtigen Kompromiss für Ihr Risikoprofil finden.

"Ein automatisierter Angriff wird von ihm getroffen", verteilt einer auf mehrere Anmeldungen nicht.
Das ist meistens richtig. Der verteilte Angriff auf mehrere Anmeldungen wird nicht davon getroffen, es sei denn, sie schlagen N-mal für jede Anmeldung fehl. Wenn Sie befürchten, dass ein bestimmtes Konto unter N Versuchen geknackt werden kann, müssen Sie N senken.
Wenn nur automatisierte Angriffe Ihre Captcha jemals sehen, können Sie sie genauso gut verbieten, anstatt ihnen eine Captcha zu geben.
@immibis: Es kann schwierig sein, automatisierte Angriffe von legitimen Benutzern zu unterscheiden, deren Konten von einem Denial-of-Service-Angriff angegriffen werden. Wenn Freds Konto angegriffen wird, kann es weniger störend sein, von Fred zu verlangen, ein Captcha zu beantworten, als vollständig gesperrt zu werden.
@Cthulhu Das OP kann die Anmeldeversuche über Konten und Client-Footprint (IP usw.) hinweg zusammenstellen.
@supercat Ich dachte daran, die IP-Adresse und nicht den Benutzer zu verbieten. (Machen Sie es auch zu einem vorübergehenden Verbot; automatische dauerhafte Verbote sind ein Rezept für eine Katastrophe)
@immibis Zu viele Anbieter verwenden CGN. Das Blockieren einer IP-Adresse kann möglicherweise Hunderte legitimer Benutzer blockieren. Es könnte jedoch funktionieren, wenn alle Benutzer, die von dieser IP-Adresse aus zugreifen, ein Captcha ausfüllen müssen.
Ich habe gesehen, dass einige Websites die Browsersitzung spezifisch machen und wahrscheinlich so etwas wie ein Cookie verwenden, um den Überblick zu behalten. Auf diese Weise spielt es keine Rolle, wenn es verteilt wird, da es unabhängig vom Benutzernamen ist und keine Auswirkungen auf andere Benutzer hat, die möglicherweise dieselbe IP verwenden.
Tumblr macht das. Nach drei aufeinanderfolgenden fehlgeschlagenen Anmeldeversuchen wird auf der Anmeldeseite ein CAPTCHA angezeigt.
@Epicblood Ah, aber dann kann ich dieses Cookie löschen, um immer mehr Anmeldeversuche zu erhalten :)
Wir sperren Sie für 15 Minuten, wenn Sie zum 5. Mal das falsche Passwort eingeben, und sperren das Konto vollständig, wenn 100 falsche Vermutungen vorliegen.
@coderama Es ist also einfach, ein Konto zu erstellen, indem man 100 Mal darauf hämmert?
user1751825
2015-07-15 06:59:52 UTC
view on stackexchange narkive permalink

Ein Captcha auf einem Anmeldebildschirm macht keinen Sinn. Ich bin nicht überrascht, dass Ihre Benutzer es hassten. Der Zweck von Captcha-Feldern in Formularen besteht darin, zu verhindern, dass sie von Bots gesendet werden. Ein Bot sollte sich nicht über Ihren Anmeldebildschirm anmelden können, da er keine gültigen Anmeldeinformationen haben sollte. Wenn ein Bot gültige Anmeldeinformationen erraten kann, müssen Sie die Kennwortstärke erhöhen.

Paradoxis
2015-07-14 21:17:20 UTC
view on stackexchange narkive permalink

Die Benutzer hassen es jetzt. Einige haben es nicht einmal verstanden und ich musste es entfernen.

Hier müssen Sie die Entscheidung zwischen Benutzerfreundlichkeit und treffen Sicherheit. Obwohl es nützlich ist, ein Captcha auf Ihren Anmeldeseiten zu haben, ist es unglaublich benutzerunfreundlich.

Mein bester Tipp wäre, jeden ungültigen Anmeldeversuch in einer Datenbank zu protokollieren und vor der Authentifizierung des Benutzers zu überprüfen, ob diese IP-Adresse vorhanden ist Ich habe versucht, mich innerhalb der letzten Stunde X-mal anzumelden.

Sie können jeder Anmeldeseite auch eine Art Cross Site Request Forgery-System hinzufügen. Dies bedeutet, dass bei jedem Anmeldeversuch ein verstecktes Feld mit einem Token generiert wird, was bedeutet, dass ein Angreifer zwei Anforderungen stellen müsste, um sich anzumelden.

MonkeyZeus
2015-07-14 23:07:24 UTC
view on stackexchange narkive permalink

Das Hinzufügen eines Captcha oder ReCaptcha ist keine Lösung, sondern lediglich ein Hindernis für Hacker und Benutzer.

Ich habe mit meiner Brille eine sehr gute Sicht und kann den Bildtext manchmal kaum erkennen. Ich würde mir vorstellen, dass jemand, der seine Vision leugnet, wütend wird.

Alles, was Sie implementieren, muss einen bestimmten Zweck haben, sonst werfen Sie einfach Kuchen mit Kotfüllung in den Himmel und diese Kuchen schließlich landen Sie direkt auf Ihren Benutzern.

Hier einige Denkanstöße:

1

Problem

Benutzerkonten werden aufgrund automatisierter Brute-Force-Versuche gehackt.

Lösung

Konten werden jetzt nach 3 fehlgeschlagenen Anmeldungen gesperrt.

2

Problem

Alle Benutzerkonten wurden aufgedeckt, und ein Bot versucht nun, alle Konten brutal zu erzwingen

Alle Konten werden aufgrund von 3 fehlgeschlagenen Anmeldungen innerhalb von Sekunden gesperrt.

Lösungen? Reichlich, aber mussten wir überhaupt zu diesem Schritt gelangen? Ist dies derzeit ein Problem?

Das Sperren von Konten nach drei Versuchen macht Denial-of-Service-Angriffe sehr einfach. Das Erfordernis, dass Konten mit mehreren falschen Versuchen an ein Captcha gesendet werden, würde bedeuten, dass jemand, der jemand anderem durch falsche Anmeldeversuche auf seinem Konto Unannehmlichkeiten bereiten möchte, dies tun könnte, aber die Unannehmlichkeiten wären auf die vom Captcha verursachten beschränkt.
fluxmodel
2015-07-15 15:41:56 UTC
view on stackexchange narkive permalink

Eine andere Möglichkeit, dies anzugreifen, könnte darin bestehen, einen "Honeypot" zu installieren. Dies ist ein gewöhnliches Eingabefeld, das zusammen mit den Anmeldefeldern (Benutzername, Kennwort) im HTML-Code enthalten ist. Dieses zusätzliche Feld wird jedoch mithilfe von CSS ausgeblendet.

In der Regel versuchen Bots, Text in alle Felder einzugeben Felder im HTML angezeigt, also habe ich in PHP überprüft, ob das Honeypot-Feld nicht leer ist - ich würde diese IP verbieten.

(Dies war für eine Homepage eines Fallschirmspringerclubs mit einer winzigen Administratorfunktion zum Aktualisieren Daten, an denen wir springen werden usw. Ich würde dies nicht für sensible Anwendungen empfehlen)

Das automatische Sperren von IPs ist möglicherweise nicht der beste Ansatz, da Benutzer, die Ihr CSS nicht laden können, oder Benutzer, die nur Spaß machen, sofort gesperrt werden.
Es ist richtig, dass es Schwächen hat. Aufgrund der kleinen Benutzerbasis für die bestimmte Site, für die ich dies gemacht habe, fand ich es jedoch in Ordnung.
Stephane
2015-07-14 21:00:50 UTC
view on stackexchange narkive permalink

CAPTCHA-Systeme dienen dazu, zwischen automatisierten Bots und echten Benutzern zu unterscheiden. Wie Sie bereits bemerkt haben, sind sie leider nicht sehr praktisch (insbesondere für behinderte Benutzer).

Ob es "eine gute Idee" ist oder nicht, hängt wirklich von Ihrem Anwendungsfall ab, obwohl sie es nicht sind. t sehr effizient bei Benutzeranmeldungen: Sie sind nicht sehr nützlich, um Angriffe zum Erraten von Kennwörtern zu verhindern, und die Implementierung eines Ratenbegrenzers in der Anwendung ist für den Benutzer bequemer, während die Implementierung einer TOTP -PIN eine bessere Sicherheit bietet.

Es ist möglicherweise immer noch eine gute Idee, von Ihrem Client einen "Arbeitsnachweis" zu erhalten, wenn Sie Serverressourcen für ihn ausgeben und wenn diese Ressourcen begrenzt sind. Ein typischer Anwendungsfall für eine solche Abfrage ist ein System, das Arbeiten für anonyme Benutzer ausführt (z. B. könnte eine webbasierte WHOIS-Anwendung dies verwenden, um Ressourcen zu schonen).

Patrick M
2015-07-15 20:41:39 UTC
view on stackexchange narkive permalink

Denken Sie einen Moment darüber nach, was Ihr Captcha erreichen will. Hier ist das Ziel, an das ich denken kann:

  • Verhindern Sie, dass ein groß angelegter automatisierter Angriff in schwache Konten eindringt.

Hier ist eine Möglichkeit, das zu tun, was will Machen Sie Ihre Benutzer wahrscheinlich glücklicher:

  • Wenn sich ein Computer erfolgreich anmeldet (als Bob), setzen Sie ein Cookie auf diesem Computer, damit der Server weiß, dass der Computer 5 kostenlose Versuche erhält, sich bei Bob anzumelden Konto, ohne die Capcha zu benötigen.

  • Wenn der Computer, der versucht, sich anzumelden, von Bobs letzter bekannter IP stammt, geben Sie dieser IP 5 kostenlose Versuche, sich bei Bob anzumelden, ohne die Capcha zu benötigen.

Die Idee hier ist, dass das Erraten von Massenkennwörtern normalerweise von Computern oder IPs erfolgt, die sich nicht legitimerweise im Konto angemeldet haben.

Dies kann wahrscheinlich verbessert werden indem Sie es mit Ideen aus anderen Antworten kombinieren, bei denen Sie Konten oder ips ein paar "kostenlose Versuche" geben.

Nach den 5 Anmeldeversuchen muss kein Captcha-Feld eingefügt werden. Sperren Sie den Benutzer einfach für einen bestimmten Zeitraum. Alle Websites sollten eine Art Kennwortwiederherstellungsfunktion enthalten, sodass Benutzer niemals zufällig Kombinationen ausprobieren müssen.
DemonSlayer
2015-07-15 18:35:43 UTC
view on stackexchange narkive permalink

Das Hinzufügen eines Captchas nach 10 oder 100 fehlgeschlagenen Versuchen ist nutzlos, da die meisten aktuellen Bots über ein DeathbyCaptcha-Konto verfügen und die API für dbc sehr einfach zu verwenden ist. Ich denke, es ist eine gute Sache, jedes zweite Mal ein Captcha zu zeigen.

user1751825
2015-07-22 04:58:12 UTC
view on stackexchange narkive permalink

Um Brute-Force-Angriffe zu verhindern, sollten Sie Folgendes tun.

1) Stellen Sie sicher, dass die Kennwörter komplex genug sind. Wenn die Möglichkeit besteht, verwenden viele Benutzer extrem einfache Passwörter wie ihren Namen usw. Passwörter sollten mindestens 8 Zeichen lang sein und Zahlen, Buchstaben und Groß- und Kleinschreibung enthalten.

2) Aussperrung IPs nach 5 fehlgeschlagenen Anmeldeversuchen.

Es kann sinnvoll sein, dem Bildschirm zur Kennwortwiederherstellung ein Captcha-Feld hinzuzufügen. Stellen Sie sicher, dass Sie genügend Text einfügen, um den Benutzern die Funktionsweise zu erklären.

Das Sperren von IPs kann für Kunden sehr problematisch sein, wenn sie eine IP gemeinsam nutzen (Unternehmensbenutzer usw.).
Ja, das Sperren von IPs kann problematisch sein, aber es ist leider eine Notwendigkeit, die Sicherheit einer Website aufrechtzuerhalten. Die Sperrfrist muss nicht sehr lang sein. Selbst eine 15-minütige Sperrung behindert Brute-Force-Angriffe erheblich.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...