SinglePageApp: Passwortabfrage beim ersten Login anderes als beim Folgelogin gute Idee?

  • C#

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von nogood.

    SinglePageApp: Passwortabfrage beim ersten Login anderes als beim Folgelogin gute Idee?

    Hi,
    ich hab seit meinem Einstieg vor 2 Jahren 90% Winforms Dinger programmiert. Jetzt bin ich dran auch Sachen fürs Netz zu machen via C# und Blazor UI .
    Ich hab ein paar kleine Ideen umgesetzt und möchte diese auf meiner Webseite laufen lassen. Mir stellt sich nun die Frage nach der Sicherheit.

    Ausgangslage Blazor ServerSide Single Side App SPA:
    Drei bis vier Desktops/Laptops und vielleicht 4-5 Tablets/Handys sollen auf die Webseite zu greifen, immer die gleichen Endgeräte. Es ist keine Webseite für die "Öffentlichkeit". Es soll schon sicher sein (das nichts wirklich sicher ist mir auch klar). Bequem soll das einloggen aber auch sein.

    Also folgende Idee: Ich nutz den BrowserStorage. Beim ersten Login auf einem Endgerät ist der BrowserStorage für diese Webseite ja leer/ungesetzt. Das Login kann dann nur mit dem Masterpasswort (starkes Passwort Sonderzeichen/Groß/Klein Zahlen über 20 Zeichen etc.) erfolgen. Danach wird im BrowserStorage gespeichert, dass das Masterpasswort okay war und ab nun wird auch ein leichteres Passwort akzeptiert.

    Konkret, wenn ich jetzt auf jedem Familien PC/Handy etc. einmal dieses Masterpwd eingetippt habe, kann doch danach jedes Familienmitglied mit einem einfachen Pwd z.B. 8 Zeichen weiter machen. Aber jeder andere im Internet müsste das Masterpasswort kennen oder wissen, dass er einen String im Browserstorage für diese Seite setzen muss und dann auch noch das "leichte" Passwort wissen. Die Hardware/der BrowserStorage ist ja nicht öffentlich zugänglich.

    Hoffentlich hab ich meine Idee vernünftig erklären können.

    Da mir nun die Erfahrung fehlt das richtig einzuschätzen, frag ich hier mal in die Runde nach eventuellen Problem dieser Vorgehensweise.


    ---- sorry das die Frage so verschwurbelt ist ----
    vielleicht nochmal so:
    Begrenzte Anzahl an Endgeräten die die Webseite erreichen sollen. Im BrowserStorage wird ein Wertepaar angelegt für diese Webseite. {MasterpasswordWarOkay : true/false} wenn hier true ausgelesen wird von der Webseite, dann würde auch ein einfacheres Password akzeptiert.
    codewars.com Rank: 4 kyu
    Deine Sicherheit ist am Ende immer nur so stark wie das schwächste Glied. Wenn du also an einer Stelle in schwaches Passwort akzeptierst, nachdem lediglich ein Boolean im Browser Storage gesetzt wurde, ist dein gesamtes System nur so stark wie das schwache Passwort, weil sich ja jeder diesen Boolean setzen kann, sobald er bemerkt, dass der ausgelesen wird. Wenn du wenigstens hingehst und einen zufälligen Token generierst, der dann statt dem Boolean auf dem Gerät gespeichert wird, und mit dem die Authentifizierung vor dem schwachen Passwort passiert, ist das ganze schon deutlich besser und auch dem typischen Vorgehen bei "eingeloggt bleiben"-Optionen einigermaßen nahe.
    @nafets Danke für Deine Antwort. Sehr gute Idee das mit Token zu machen. Hier mal in meinen Worten, um zu sehen, ob ich das richtig verstanden habe:
    Die erste Anmeldung mit Masterpasswort des User hat zur Folge, dass ein generierter Token( z.B. String 20 Zeichen) im BrowserStorage des Users gespeichert wird. Gleichzeitig speichere ich diesen Token in meiner Serverseitigen DB. Bei Besuchen von Usern wird dieser DB Eintrag abgefragt, falls der Token gefunden wird kann der User sich mit dem unsicheren Passwort anmelden. Sonst ist das Masterpasswort nötig.
    Ist das so in etwa richtig?

    Ich will im Grunde das nur 5 Leute die Webseite besuchen "können" mit immer den gleichen Endgeräten. Welche Möglichkeiten hätte ich das umzusetzen?

    ----
    Ich hatte als erste Idee daran gedacht eine Hardware Id des Users zu speichern (falls das über den Browser überhaupt geht). Aber da denke ich, dass das zu schwierig ist, da ja Windows PCs, Android Handy und Apple Table bedient werden sollen.
    ----

    codewars.com Rank: 4 kyu

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „nogood“ ()

    Jo, so hatte ich das gemeint. Ich würde den Token deutlich länger machen - schaden tut das definitiv nicht und die paar Byte mehr Speicher sind auch egal -, aber sonst ist das das, woran ich gedacht hatte. Eventuell würde es sich noch lohnen, den Tokens ne maximale Gültigkeitsdauer zu verpassen, nach der sie ablaufen, aber da du ja sowieso schon das zweite Passwort hast, ist das aus meiner Sicht eher nicht so wichtig.