.NET Password Manager

  • Allgemein

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Kameo.

    .NET Password Manager

    Moin Männer!

    Ich bin gerade dabei nach einem guten Passwordmanager zu suchen (`ala Keepass) und als ich da so etwas herumgetestet habe, ist mir aufgefallen das man hinterlegte Passwörter ja wieder sichtbar machen kann (duh, ist ja auch der sinn hinter einem Passwort Manager)
    Nun habe ich leider absolut keine Ahnung wie sowas funktioniert, kennt sich jemand damit aus, und könnte es mir anhand einem VB.NET beispiel erklären.
    Denn soweit ich weis gibt es ja kein zurück mehr, nachdem man ein Password gehasht abgelegt hat, oder?
    Oder wie legen Passwort Manager die Passwörter sicher ab?
    Danke schonmal im vorraus.

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Ja weil Hash keine Verschlüsselung ist. Das würde bei einer solchen Anwendung keinen Sinn machen.
    Das gespeicherte Masterpasswort, könnte allerdings gehasht sein.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Hi,
    also bei meinem pasgen hab ich es so gemacht:
    beim ersten start wird ein Masterpassword verlangt, mit dem eingegebenen Kennwort verschlüssele ich einen String aus den Einstellungen.
    Wenn man nun das Programm erneut startet und das Masterpassword eingibt, wird damit versucht der String wieder zu entschlüsseln.
    Stimmt der entschlüsselte string mit dem original string überein, ist das Passwort richtig, ansonsten falsch.
    Das Masterpasswort selbst wird nirgends abgelegt....
    "Hier könnte Ihre Werbung stehen..."

    MichaHo schrieb:

    Wenn man nun das Programm erneut startet und das Masterpassword eingibt, wird damit versucht der String wieder zu entschlüsseln.
    Stimmt der entschlüsselte string mit dem original string überein, ist das Passwort richtig, ansonsten falsch.
    Das Masterpasswort selbst wird nirgends abgelegt....



    Sollte man nicht das Masterpassword mit Verfahren XY hashen/verschlüsseln und diesen Hash ablegen? Beim Login dann die Eingabe mit dem selben Verfahren hashen/verschlüsseln und die gehashten Werte vergleichen?
    Macht mit meinem Berufsschulwissen aus meiner Sicht am meisten Sinn :D


    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Ist beides OK.
    Ich sehe aber keine Vorteil darin das MasterPasswort irgentwo zu speichern.
    Das kann wärend der Sitzung verwendet werden und ist anschließend weg.
    Das ist doch perfekt.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    und wie legst du vor jeder Verwendung fest, ob der Benutzer überhaupt berechtigt ist? ^^
    Zudem wird atm ja mit diesem Masterpw verschlüsselt... denke ich ^^
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Hi,
    mit dem Masterpasswort, was beim allerersten Start vergeben wird, werden alle künftigen Kennwörter verschlüsselt.
    Masterpasswort weg = Passwortdatenbank unbrauchbar
    das mit dem Berechtigt hab ich nicht verstanden.
    Wer das Masterpasswort hat, hat Zugriff auf die Kennwörter.
    ob ich nun das Passwort hashe und ablege, oder irgendeinen String verschlüßel und ablege kommt aufs selbe raus. Denke ich.
    "Hier könnte Ihre Werbung stehen..."

    Kameo schrieb:

    Nun habe ich leider absolut keine Ahnung wie sowas funktioniert

    Das ist kein guter Anfang, wenn Du mit sensitiven Daten hantierst.
    Wie Verschlüsselung prinzipiell in .NET funktioniert, ist hier gezeigt: AES Verschlüsselung
    Und hier ein Beispiel, wie man sowas in Code gießt: PasswordList v2.2

    Dabei stellen sich dann einige wichtige Fragen:
    Was tut man, um die Längen der verschlüsselten Passwörter zu schützen?
    Behält man das Masterpasswort für die Dauer der Sitzung im RAM oder gibt man es bei jeder Verwendung ein?
    Macht man jeden Eintrag separat entschlüsselbar oder entschlüsselt man eine große Datenbank aufeinmal?
    Macht man sicht die Mühe, überall mit SecureString zu arbeiten oder verwendet man einfach normale Strings?
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils