Sicherheit oder bessere Benutzbarkeit?
Hallo,
ich habe eine Webanwendung programmiert und sehe mich nun mit einer Frage zur Benutzbarkeit konfrontiert.
Bei der Anmeldung gibt es die 3 Felder Benutzername, Kennwort und 2FA-Code.
Der 2FA-Code ist nur für die Benutzer relevant die dies aktiviert haben. Das sind ca. 50% der Anwender.
Ich prüfe alle 3 Felder gleichzeitig.
Wenn eines der 3 Felder nicht passt gibt es eine Fehlermeldung aus der man nicht schließen kann was falsch ist.
Denn sonst könnte ein Angreifer zumindest prüfen ob Benutzername und Kennwort korrekt sind.
(Es gibt auch einen Brute-Force-Schutz mit IP- und User-Blocking)
Nun haben doch relativ viele Kunden angemerkt, dass diese Anmeldung "doof" sein.
Die ohne 2FA meckern, dass sie nicht wüssten warum das Feld überhaupt da sei, da sie ja 2FA nicht aktiviert hätten.
Es soll doch bitte gar nicht sichtbar sein. (Genau wie der Hinweis nach der Anmeldung dass 2FA die Sicherheit erhöhen kann).
Die mit 2FA meckern, dass sie bei einer Fehleingabe nicht wüssten ob es am Kennwort oder 2FA-Code liegt.
Die Alternative 1 wäre die 2FA-Abfrage auf eine 2. Seite zu verlagern die nur angezeigt wird wenn man dies auch aktiviert hat.
Ist Sicherheitstechnisch eigentlich nicht gut, denn so kann ein Angreifer das Kennwort überprüfen. Wenn auch nicht anmelden.
Viele Webseiten handhaben das so. Selbst meine Bank macht das so.
Die Alternative 2 wäre die Fehlermeldung zu ändern, so dass dort steht ob der 2FA Code falsch ist oder fehlt.
Hat Sicherheitstechnisch den gleichen Nachteil.
Wie seht Ihr das?
Stefan
ich habe eine Webanwendung programmiert und sehe mich nun mit einer Frage zur Benutzbarkeit konfrontiert.
Bei der Anmeldung gibt es die 3 Felder Benutzername, Kennwort und 2FA-Code.
Der 2FA-Code ist nur für die Benutzer relevant die dies aktiviert haben. Das sind ca. 50% der Anwender.
Ich prüfe alle 3 Felder gleichzeitig.
Wenn eines der 3 Felder nicht passt gibt es eine Fehlermeldung aus der man nicht schließen kann was falsch ist.
Denn sonst könnte ein Angreifer zumindest prüfen ob Benutzername und Kennwort korrekt sind.
(Es gibt auch einen Brute-Force-Schutz mit IP- und User-Blocking)
Nun haben doch relativ viele Kunden angemerkt, dass diese Anmeldung "doof" sein.
Die ohne 2FA meckern, dass sie nicht wüssten warum das Feld überhaupt da sei, da sie ja 2FA nicht aktiviert hätten.
Es soll doch bitte gar nicht sichtbar sein. (Genau wie der Hinweis nach der Anmeldung dass 2FA die Sicherheit erhöhen kann).
Die mit 2FA meckern, dass sie bei einer Fehleingabe nicht wüssten ob es am Kennwort oder 2FA-Code liegt.
Die Alternative 1 wäre die 2FA-Abfrage auf eine 2. Seite zu verlagern die nur angezeigt wird wenn man dies auch aktiviert hat.
Ist Sicherheitstechnisch eigentlich nicht gut, denn so kann ein Angreifer das Kennwort überprüfen. Wenn auch nicht anmelden.
Viele Webseiten handhaben das so. Selbst meine Bank macht das so.
Die Alternative 2 wäre die Fehlermeldung zu ändern, so dass dort steht ob der 2FA Code falsch ist oder fehlt.
Hat Sicherheitstechnisch den gleichen Nachteil.
Wie seht Ihr das?
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 627778
Url: https://administrator.de/contentid/627778
Ausgedruckt am: 24.11.2024 um 05:11 Uhr
19 Kommentare
Neuester Kommentar
Ich würde das davon abhängig machen, welches Sicherheitsbedürfnis für die Anwendung und deren Daten notwendig oder gefordert ist.
Werden die Credentials noch woanders genutzt oder nur singulär für diese Anwendung?
lks
Hi,
einfach "absitzen".
Wenn Deine Anwendung gut genug ist, die Leute diese haben wollen, dann werden sie das mit der Anmeldung irgendwann akzeptieren.
Eine dritte Alternative hätte ich noch:
E.
einfach "absitzen".
Wenn Deine Anwendung gut genug ist, die Leute diese haben wollen, dann werden sie das mit der Anmeldung irgendwann akzeptieren.
Eine dritte Alternative hätte ich noch:
- Anmeldung mit Benutzername und Passwort
- Benutzer, welche 2FA aktiviert haben, bekommen eine Mail oder SMS mit einem Sicherheitscode. Diesen müssen sie dann innerhalb einer festgelegten Zeitspanne eingeben.
- Benutzer ohne 2FA kommen dann "schön bequem" ohne dies weiter.
E.
Zitat von @StefanKittel:
Hinweis: Wenn Benutzername und Kennwort nicht korrekt sind, erscheint nur die typische Meldung.
Zitat von @sabines:
die meisten Anwendungen machen das nach der Alternative 1 (gefühlt jedenfalls), die Alternative 2 ist, wie Du schon selbst sagst, nicht sinnvoll, weil dann der unerlaubte User schon mal erkennen kann wie "weit" er gekommen ist.
Aber bei Alternative ist doch das gleiche Problem. Wenn ich auf die 2. Seite komme weiß ich, dass Benutzername und Kennwort korrekt sind.die meisten Anwendungen machen das nach der Alternative 1 (gefühlt jedenfalls), die Alternative 2 ist, wie Du schon selbst sagst, nicht sinnvoll, weil dann der unerlaubte User schon mal erkennen kann wie "weit" er gekommen ist.
Hinweis: Wenn Benutzername und Kennwort nicht korrekt sind, erscheint nur die typische Meldung.
Mach es doch so, daß Du Variante 1 nimmst und bei denen die ein falsches Paßwort eingeben, auf jeden Fall noch eine 2FA-Abfrage hinterherkommt und erst dann die Fehlermeldung.
Dann weiß der Angreifer nicht, ob 2FA aktiviert ist und es daran liegt oder am Paßwort.
Der User sollte dann wissen, daß er ein falsches pwd eingegeben hat.
lks
Moin,
3. Alternative:
das 2FA Feld "ausgrauen" und nach dem Benutzernamen prüfen, ob dieser 2FA nutzt.
Wenn ja, dann sichtbar und beschreibbar.
Wenn nein, dann bleibt es grau.
Hätte für einen Angreifer "nur" den Vorteil, das er weiß ob ein User 2FA nutzt oder nicht.
Die Prüfung, ob Kennwort oder 2FA falsch eingeben wurden, würde ich nicht abfangen.
Konzentration ist alles
Gruß
Xolger
3. Alternative:
das 2FA Feld "ausgrauen" und nach dem Benutzernamen prüfen, ob dieser 2FA nutzt.
Wenn ja, dann sichtbar und beschreibbar.
Wenn nein, dann bleibt es grau.
Hätte für einen Angreifer "nur" den Vorteil, das er weiß ob ein User 2FA nutzt oder nicht.
Die Prüfung, ob Kennwort oder 2FA falsch eingeben wurden, würde ich nicht abfangen.
Konzentration ist alles
Gruß
Xolger
Moin zusammen,
oder Variante 4: nur ein Passwortfeld. Allerdings müssen die 2FA Benutzer den Token direkt hinter dem Passwort mit in das Feld eintragen. Quasi "TollesPasswort123456".
So läuft das zumindest bei Sophos mit OpenVPN und 2FA...
Den Hinweis, dass 2FA sicherer ist würde ich beibehalten. Wenn sie das nervt, können sie es ja aktivieren ;)
Viele Grüße
Hendrik
oder Variante 4: nur ein Passwortfeld. Allerdings müssen die 2FA Benutzer den Token direkt hinter dem Passwort mit in das Feld eintragen. Quasi "TollesPasswort123456".
So läuft das zumindest bei Sophos mit OpenVPN und 2FA...
Den Hinweis, dass 2FA sicherer ist würde ich beibehalten. Wenn sie das nervt, können sie es ja aktivieren ;)
Viele Grüße
Hendrik
Zitat von @chgorges:
Moin,
ich versteh die Diskussion nicht, weil 2FA kein Funfact ist.
Für mich alternativlos: Alle Benutzer müssen 2FA machen. Fertig.
VG
Moin,
ich versteh die Diskussion nicht, weil 2FA kein Funfact ist.
Für mich alternativlos: Alle Benutzer müssen 2FA machen. Fertig.
VG
Moin,
1. nichts ist alternativlos
2. Wenn es dem Benutzer zu kompliziert ist, schaltet er es ab.
3. Wenn du dem Benutzer eine unnötig negative Option gibst, wird er Sie nicht oder nur mangelhaft nutzen.
Am Ende läuft es darauf hinaus: Welche weiteren Optionen gibt es zur Absicherung? Welche Kreise betrifft es, was für ein Dienst ist es.
Soweit, so gut, es muss eben Anforderungssensitiv sein. Eine Ablage für sensible Internas verlangt andere Sicherheit als ein privater Smalltalk-Chatdienst.
Zitat von @chgorges:
ich versteh die Diskussion nicht, weil 2FA kein Funfact ist.
Für mich alternativlos: Alle Benutzer müssen 2FA machen. Fertig.
ich versteh die Diskussion nicht, weil 2FA kein Funfact ist.
Für mich alternativlos: Alle Benutzer müssen 2FA machen. Fertig.
Das kannst Du dort machen, wo die "Kundenbindung" nicht von der Kundenzufriedenheit abhängt, d.h. z.B. Du bist der Chef in einem betrieb udn alle User(=Angestellten) müssen mitziehen.
Wenn Kunden das System für zu umständlich halten und nicht mögen, wandern diese ab und werden dann ehmalige Kunden. Von daher muß die "Sicherheit" oft ein Kompromiß zwischen Erfordernissen und Bequemlichkeit sein.
Beispiele:
Wenn Du in einer Diskothek verlangst, daß die mal kurz zum Rauchen rausgehen sich jedesmal mit Ausweis und Eintrittskarte ausweisen statt nur mit dem Stempel auf der Hand, wirst Du deutlich weniger Kunden haben.
Bei dem Zutritt zu einer Waffenkammer sollte man hingegen nicht zu lasch sein und da außer Ausweis und Tagesparole vielleicht auch biometrische Daten abprüfen.
Solche Diskussionen sind immer dann notwendig, wenn die User genug "Marktmacht" haben, um Dich zu übergehen.
Abgesehen davon halte ich gut implementierte Paßwortverfahren für 0815-Zugänge als völlig ausreichend, sofern die User wohlerzogen sind. 2FA braucht man nur, wenn die User zu sorglos sind oder das zu schützende Gut wertvoll genug ist.
lks
Zitat von @ottinho:
Moin zusammen,
oder Variante 4: nur ein Passwortfeld. Allerdings müssen die 2FA Benutzer den Token direkt hinter dem Passwort mit in das Feld eintragen. Quasi "TollesPasswort123456".
Moin zusammen,
oder Variante 4: nur ein Passwortfeld. Allerdings müssen die 2FA Benutzer den Token direkt hinter dem Passwort mit in das Feld eintragen. Quasi "TollesPasswort123456".
Ich würde da noch ein Trennzeichen (@, #, / o.ö. mit reinpacken), damit der User das korrekt hinbekommt. Dem Parser dürfte es egal sein.
lks
Moin,
ich würde zur Benutzerfreundlichkeit tendieren, jedoch mit dem ein oder anderen Sicherheitsmechanismus:
- erste Seite nur zwei Felder: Benutzername und Passwort
- zur ersten Seite noch eine Captcha-Abfrage (vorzugsweise die von Google)
- Weitere Sicherheitsvorkehrungen: Schwieriges Passwort, min 8 Zeichen, Sonderzeichen, Großbuchstaben, Zahlen
- Wenn 2-Faktor-Auth aktiv ist, dann auf der nächsten Seite den Code abfragen, ansonsten Anmeldung durchführen.
Im Backend fängst du Mehrfacheingaben bzw. Mehrfachversuche ab. Bei jeder Fehleingabe erhöht sich ein Timer, bis zum nächsten Versuch, bis hin zum permanenten Ausschluss. Dass ein Angreifer das Passwort errät, ist dann eigentlich bei null, es sei denn, der Angreifer kennt das Passwort. Damit hat der Nutzer aber auch anderswo ein Problem. Außerdem kommt der Angreifer dann immer noch nicht rein, da der Code noch benötigt wird. Am Ende ist es doch eher unwahrscheinlich, dass da ein Schaden entstehen könnte. Du willst dich also für einen Fall absichern, der so nie eintritt, und wenn, dann wird es damit keinen Schaden geben können.
ich würde zur Benutzerfreundlichkeit tendieren, jedoch mit dem ein oder anderen Sicherheitsmechanismus:
- erste Seite nur zwei Felder: Benutzername und Passwort
- zur ersten Seite noch eine Captcha-Abfrage (vorzugsweise die von Google)
- Weitere Sicherheitsvorkehrungen: Schwieriges Passwort, min 8 Zeichen, Sonderzeichen, Großbuchstaben, Zahlen
- Wenn 2-Faktor-Auth aktiv ist, dann auf der nächsten Seite den Code abfragen, ansonsten Anmeldung durchführen.
Im Backend fängst du Mehrfacheingaben bzw. Mehrfachversuche ab. Bei jeder Fehleingabe erhöht sich ein Timer, bis zum nächsten Versuch, bis hin zum permanenten Ausschluss. Dass ein Angreifer das Passwort errät, ist dann eigentlich bei null, es sei denn, der Angreifer kennt das Passwort. Damit hat der Nutzer aber auch anderswo ein Problem. Außerdem kommt der Angreifer dann immer noch nicht rein, da der Code noch benötigt wird. Am Ende ist es doch eher unwahrscheinlich, dass da ein Schaden entstehen könnte. Du willst dich also für einen Fall absichern, der so nie eintritt, und wenn, dann wird es damit keinen Schaden geben können.
Meiner Meinung nach die beste Idee.
Fand/finde das bei Sophos VPN zB wirklich gut gelöst.
Hab allerdings von Programmierung keine Ahnung und weiß nicht ob sowas schwierig umzusetzen ist. Ist nur auffällig dass das sonst scheinbar niemand auf diese Art und Weise umsetzt.
Und bitte nix mit Mail oder SMS schicken... alles was sich nicht über einen (QR-)Code in einer Software einbinden lässt, ist meiner Meinung nach einfach nur lästig.
Fand/finde das bei Sophos VPN zB wirklich gut gelöst.
Hab allerdings von Programmierung keine Ahnung und weiß nicht ob sowas schwierig umzusetzen ist. Ist nur auffällig dass das sonst scheinbar niemand auf diese Art und Weise umsetzt.
Und bitte nix mit Mail oder SMS schicken... alles was sich nicht über einen (QR-)Code in einer Software einbinden lässt, ist meiner Meinung nach einfach nur lästig.
Zitat von @StefanKittel:
Die Alternative 1 wäre die 2FA-Abfrage auf eine 2. Seite zu verlagern die nur angezeigt wird wenn man dies auch aktiviert hat.
Ist Sicherheitstechnisch eigentlich nicht gut, denn so kann ein Angreifer das Kennwort überprüfen. Wenn auch nicht anmelden.
Viele Webseiten handhaben das so. Selbst meine Bank macht das so.
Wie seht Ihr das?
Die Alternative 1 wäre die 2FA-Abfrage auf eine 2. Seite zu verlagern die nur angezeigt wird wenn man dies auch aktiviert hat.
Ist Sicherheitstechnisch eigentlich nicht gut, denn so kann ein Angreifer das Kennwort überprüfen. Wenn auch nicht anmelden.
Viele Webseiten handhaben das so. Selbst meine Bank macht das so.
Wie seht Ihr das?
Ich würd das so machen wie Microsoft und fast jeder andere Cloud Anbieter, mehrere 2FA Optionen anbieten, da sollte eine Authenticator App und z.B. SMS oder Email dabei sein, das ist sehr einfach zu nutzen, und der zweite Faktor ist dann aber nur nötig, wenn ein neues Gerät sich anmeldet. Werden wir demnächst für alle Cloud Dienste so handhaben.
Heißt also du müsstest die 2FA Information auf dem Gerät das sich anmeldet als Cookie speichern, das kann ein ellenlanger Hashcode sein, der da hinterlegt ist, und von deiner 2FA Methode generiert wird.
So wird der User, wenn er immer das selbe Gerät bzw. Browser nutzt nur einmal genervt, aber Hacker auf anderen Geräten können sich nicht einfach mit Benutzername und Passwort anmelden.
Ob du das verpflichtend machst würde ich davon abhängig machen ob Daten verarbeitet werden, die unter DSGVO fallen, was aber eigentlich so gut wie immer der Fall ist.
Hallo,
Ich würde das auch ziemlich doof finden und hätte zudem kein Vertrauen. Der zweite Faktor sollte meiner Meinung nach erst dann angestupst werden, wenn der erste Faktor erfolgreich war. Ansonsten käme man ja irgendwann auch per BruteForce durch.
Gruß,
Jörg
Zitat von @StefanKittel:
Die ohne 2FA meckern, dass sie nicht wüssten warum das Feld überhaupt da sei, da sie ja 2FA nicht aktiviert hätten.
Die ohne 2FA meckern, dass sie nicht wüssten warum das Feld überhaupt da sei, da sie ja 2FA nicht aktiviert hätten.
Ich würde das auch ziemlich doof finden und hätte zudem kein Vertrauen. Der zweite Faktor sollte meiner Meinung nach erst dann angestupst werden, wenn der erste Faktor erfolgreich war. Ansonsten käme man ja irgendwann auch per BruteForce durch.
Gruß,
Jörg