it-swarm.com.de

Ist es hilfreich, ein Captcha auf einem Anmeldebildschirm zu haben?

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

Mein Ziel war alles über Sicherheitsdinge wie Wörterbuch-/Bots-Angriffe oder andere Dinge dieser Art.

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

Wenn ich mich umsehe, sehe ich auf dem Anmeldebildschirm nicht viele Systeme mit diesen, meistens auf anderen Formularen wie Kontakt oder manchmal wie beim Stapelaustausch, wenn Sie etwas veröffentlichen möchten.

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

28
meda

Ich habe gesehen, dass einige große Systeme dies tun, indem sie nur nach sequentiell fehlgeschlagenen Anmeldeversuchen ein Captcha benötigen (dh: die Anzahl nach einer gültigen Anmeldung zurücksetzen). 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.

46
Bradley Kreider

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.

6
user1751825

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 Sicherheit treffen. 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 innerhalb der letzten Stunde X-mal versucht hat, sich 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.

5
Paradoxis

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, Passwort) im HTML-Code enthalten ist. Dieses zusätzliche Feld wird jedoch mithilfe von CSS ausgeblendet.

Normalerweise versuchen Bots, Text in alle im HTML angezeigten Felder einzugeben. Daher 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 Verwaltungsfunktion, um die Daten zu aktualisieren, an denen wir springen werden usw. Ich würde dies nicht für sensible Anwendungen empfehlen.)

4
fluxmodel

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 manchmal kann ich den Bildtext 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 landen schließlich 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 das derzeit ein Problem?

4
MonkeyZeus

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 Ihre Benutzer wahrscheinlich glücklicher macht:

  • 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, 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 dabei 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.

3
Patrick M

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 von Ihrem Anwendungsfall ab, obwohl sie bei Benutzeranmeldungen nicht sehr effizient sind: Sie sind nicht sehr nützlich, um Angriffe auf das Erraten von Passwörtern zu verhindern, und die Implementierung eines Ratenbegrenzers in der Anwendung ist bequemer Der Benutzer beim Implementieren eines TOTP PIN bietet eine bessere Sicherheit.

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 (beispielsweise könnte eine webbasierte WHOIS-Anwendung dies verwenden, um Ressourcen zu schonen).

3
Stephane

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.

2
DemonSlayer

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

1) Stellen Sie sicher, dass die Passwö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) Sperr-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.

0
user1751825