stefankittel
Goto Top

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

Content-Key: 627778

Url: https://administrator.de/contentid/627778

Printed on: April 23, 2024 at 12:04 o'clock

Member: Lochkartenstanzer
Solution Lochkartenstanzer Dec 03, 2020 at 07:13:18 (UTC)
Goto Top
Zitat von @StefanKittel:

Wie seht Ihr das?



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
Member: emeriks
Solution emeriks Dec 03, 2020 at 07:21:38 (UTC)
Goto Top
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:
  1. Anmeldung mit Benutzername und Passwort
  2. Benutzer, welche 2FA aktiviert haben, bekommen eine Mail oder SMS mit einem Sicherheitscode. Diesen müssen sie dann innerhalb einer festgelegten Zeitspanne eingeben.
  3. Benutzer ohne 2FA kommen dann "schön bequem" ohne dies weiter.

E.
Member: sabines
Solution sabines Dec 03, 2020 at 07:23:07 (UTC)
Goto Top
Moin,

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.

Gruss
Member: StefanKittel
StefanKittel Dec 03, 2020 at 07:31:09 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
Werden die Credentials noch woanders genutzt oder nur singulär für diese Anwendung?
Da habe ich keinen Einfluss drauf.
Die Nutzer haben einen Hinweis bei der Einrichtung erhalten ein gesondertes Kennwort zu verwenden.
A) Ob das Jemand macht bezweifel ich. Kann ich aber nicht prüfen.
B) Regelmäßige Kennwortänderungen haben die, die ich befragt habe, strikt abgelehnt.
C) Die zwangsweise Einführung von 2FA haben die, die ich befragt habe, strikt abgelehnt.

Stefan
Member: StefanKittel
StefanKittel Dec 03, 2020 at 07:33:01 (UTC)
Goto Top
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.

Hinweis: Wenn Benutzername und Kennwort nicht korrekt sind, erscheint nur die typische Meldung.

Stefan
Member: falscher-sperrstatus
Solution falscher-sperrstatus Dec 03, 2020 at 07:49:39 (UTC)
Goto Top
Moin Stefan,

Wie schon angemerkt. Es kommt auf die Webanwendung an. Um was geht es? Ansonsten, schlechte Fehlermeldungen sind schlechte Fehlermeldungen. Ganz generell kannst du hinzufügen, wenn sie 2fa aktiviert haben, geben sie bitte den Code ein.

Grüßt
Member: Lochkartenstanzer
Solution Lochkartenstanzer Dec 03, 2020 at 07:50:16 (UTC)
Goto Top
Zitat von @StefanKittel:

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.

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
Member: Xolger
Solution Xolger Dec 03, 2020 at 07:54:45 (UTC)
Goto Top
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 face-wink

Gruß
Xolger
Member: ottinho
Solution ottinho Dec 03, 2020 at 08:11:15 (UTC)
Goto Top
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
Member: chgorges
Solution chgorges Dec 03, 2020 at 08:21:33 (UTC)
Goto Top
Moin,
ich versteh die Diskussion nicht, weil 2FA kein Funfact ist.
Für mich alternativlos: Alle Benutzer müssen 2FA machen. Fertig.

VG
Member: falscher-sperrstatus
Solution falscher-sperrstatus Dec 03, 2020 at 08:55:18 (UTC)
Goto Top
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,

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.
Member: Lochkartenstanzer
Solution Lochkartenstanzer Dec 03, 2020 at 09:09:11 (UTC)
Goto Top
Zitat von @chgorges:

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
Member: Lochkartenstanzer
Solution Lochkartenstanzer Dec 03, 2020 at 09:11:02 (UTC)
Goto Top
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".

Ich würde da noch ein Trennzeichen (@, #, / o.ö. mit reinpacken), damit der User das korrekt hinbekommt. Dem Parser dürfte es egal sein.

lks
Member: Daemmerung
Solution Daemmerung Dec 03, 2020 at 11:45:18 (UTC)
Goto Top
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.
Member: ichbindernikolaus
Solution ichbindernikolaus Dec 03, 2020 at 13:36:37 (UTC)
Goto Top
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.
Member: rzlbrnft
Solution rzlbrnft Dec 03, 2020 updated at 14:50:56 (UTC)
Goto Top
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?

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.
Mitglied: 117471
117471 Dec 03, 2020 at 17:25:52 (UTC)
Goto Top
Hallo,

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.

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
Member: StefanKittel
StefanKittel Dec 03, 2020 at 23:11:37 (UTC)
Goto Top
Hallo,

ich hatten eben angefangen zu jedem Kommentar wieder ein Kommentar zu schreiben.
Ich lasse das mal aus Zeitgründen face-smile

Danke für die vielen Kommentare und Gedankenanstöße.

Ich habe mich (erstmal) für folgendes Entschieden
- Es bleiben 3 Felder für Benutzername, Kennwort und 2FA
- Wenn Benutzername und Kennwort korrekt sind aber der 2FA fehlt. erscheint ein Hinweis dass der 2FA fehlt
- Wenn Benutzername und Kennwort korrekt sind aber der 2FA falsch ist, erscheint ein Hinweis dass der 2FA falsch sei

Das reduziert die Sicherheit des Systems, aber nur geringfügig.
Denn es gibt einen Brute-Force-Schutz pro IP und pro Benutzer. Nach 5 falschen Eingaben innerhalb von 24h ist für 24h die IP oder der Benutzer gesperrt.

Es erhöht die Transparenz, da der Anwender weiß was er falsch eingegeben hat.

Zudem werde ich die Kunden anschreiben und dringend empfehlen 2FA als Vorraussetzung für ihre Mitarbeiter zu konfigurieren.

Btw. 2FA ist in diesem Fall TOTP oder Windows-Hello (Yubikey).

Viele Grüße

Stefan
Member: StefanKittel
StefanKittel Dec 03, 2020 at 23:14:18 (UTC)
Goto Top
Zitat von @117471:
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.
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.

Das verstehe ich nicht.
Wenn der 2FA erst als Abfrage erscheint wenn das System Benutzername und Kennwort geprüft haben, dann ist doch eine Bestätigung für den Angreifer dass das Kennwort korrekt war. Er hat damit mehr Informationen um gegen den Anwender vorzugehen.

Stefan