none
Wo am besten sensible Benutzerdaten sicher speichern RRS feed

  • Frage

  • Hallo Leute,

    ich arbeite zurzeit an einer kleinen Anwendung. Ich kann mich einloggen mit Passwort & Username aber auch Daten speichern. Alles zurzeit in einer Textdatei.

    Meine Frage ist nun, lassen sich Daten wie Passwort & Co relativ sicher in einer Datei speichern oder lieber doch in einer Datenbank?

    Ist es überhaupt möglich so einfach z.B. mit dem Entity Framework eine Datenbank lokal zu erstellen ohne weitere Kosten oder sonst was?

    Montag, 11. September 2017 13:48

Antworten

  • Wenn du eine SQL Datenbank benutzt, kannst du die Benutzer einschränken die auf die Datenbank zugreifen dürfen. (Sollte SQLLite auch bieten).

    Bei der Datei kannst du für die Datei einen Hash Wert erzeugen und Speicher. Da kannst du dann feststellen ob die Datei außerhalb deines Programms geändert wurde.

    Ändern des Benutzernamens macht ja jetzt nicht, ohne Password kann er sich nicht anmelden.

    Ein gültiges Password kann er nur erzeugen, wenn er den Verschlüsselungsalgorithmus kennt und den SALT und seine Verwendung. Kann er aber im .NET mit einen Dekompiler relative einfach rausbekommen. 

    Wenn jemand direkten (Admin) zugriff auf das System hat, ist es fast unmöglich ihn abzuhalten das System zu hacken.

    Man kann es ihn nur so schwer wie möglich machen.  

    p.s.

    Ich würde glaube ich einfach einen KeyLogger verwenden.

    Dienstag, 12. September 2017 08:34
  • Vielleicht solltest du nicht nur das Passwort verschlüsseln, sondern die gesamte Textdatei. Alternativ nimmst du eine Passwort-geschützte Datenbank.

    Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP

    Dienstag, 12. September 2017 08:42
  • Das Passwort z.B. wird bei mir schon 256Bit verschlüsselt, das ist nicht das Problem. Nur kann ich in der Textdatei den Benutzername ändern oder einfach einen anderen Passwort-Hash eingeben. Das System ist damit leicht zu umgehen. Gibt es da Möglichkeiten gegenzuwirken?

    Signiere deine Textdatei, ist die Signatur ungültig wurde diese manipuliert.

    - Gruß Florian

    Dienstag, 12. September 2017 09:25

Alle Antworten

  • Hallo,

    sicher ist das Passwort erst hinterlegt wenn es verschlüsselt ist. Sobald es verschlüsselt ist, ist es egal wo es abgelegt wird.

    Eine kostenlose lokale Datenbank kannst Du mit EF und SQLite erstellen.

    Um dir besser helfen zu können, müsstest Du mir noch sagen welche Projektart Du nutz, WPF, Win Forms, UWP


    Gruß Thomas

    Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!

    Icon für UWP

    Cross Platform Canvas for UWP, Android, iOS

    UWP Community Toolkit Sample App

    Alle Größenangaben in UWP müssen durch 4 teilbar sein

    Montag, 11. September 2017 14:48
  • Mit SQLLite bekommst du eine einfache DB die du Lokal benutzen kannst und die auch mit EF funktioniert.

    Was das Password angeht, bekommst du hier einen einstig. Die in dem Artikel verwendete Hash Funktion SHA1 ist aber nicht mehr sicher. Hier solltest du zur Sicherheit mal schauen welche Hash Funktionen aktuell noch sicher sind.

    Für wenn du Daten wieder lesbar machen musst brauchst du eine 2 Wege Verschlüsselung. Hier mal der erste Eintrag den ich gefunden habe. Auch hier gilt, das du da mal schauen musst was der aktuelle Stand ist. Und 2 Wege Verschlüsselung sollte nicht für Passwörter eingesetzt werden.   

    Montag, 11. September 2017 14:54
  • Hallo,

    ich habe mich da vielleicht etwas falsch ausgedrückt.

    Erstmal, ich habe eine WPF-Anwendung.

    Das Passwort z.B. wird bei mir schon 256Bit verschlüsselt, das ist nicht das Problem. Nur kann ich in der Textdatei den Benutzername ändern oder einfach einen anderen Passwort-Hash eingeben. Das System ist damit leicht zu umgehen. Gibt es da Möglichkeiten gegenzuwirken?

    Dienstag, 12. September 2017 06:51
  • Wenn du eine SQL Datenbank benutzt, kannst du die Benutzer einschränken die auf die Datenbank zugreifen dürfen. (Sollte SQLLite auch bieten).

    Bei der Datei kannst du für die Datei einen Hash Wert erzeugen und Speicher. Da kannst du dann feststellen ob die Datei außerhalb deines Programms geändert wurde.

    Ändern des Benutzernamens macht ja jetzt nicht, ohne Password kann er sich nicht anmelden.

    Ein gültiges Password kann er nur erzeugen, wenn er den Verschlüsselungsalgorithmus kennt und den SALT und seine Verwendung. Kann er aber im .NET mit einen Dekompiler relative einfach rausbekommen. 

    Wenn jemand direkten (Admin) zugriff auf das System hat, ist es fast unmöglich ihn abzuhalten das System zu hacken.

    Man kann es ihn nur so schwer wie möglich machen.  

    p.s.

    Ich würde glaube ich einfach einen KeyLogger verwenden.

    Dienstag, 12. September 2017 08:34
  • Vielleicht solltest du nicht nur das Passwort verschlüsseln, sondern die gesamte Textdatei. Alternativ nimmst du eine Passwort-geschützte Datenbank.

    Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP

    Dienstag, 12. September 2017 08:42
  • Das Passwort z.B. wird bei mir schon 256Bit verschlüsselt, das ist nicht das Problem. Nur kann ich in der Textdatei den Benutzername ändern oder einfach einen anderen Passwort-Hash eingeben. Das System ist damit leicht zu umgehen. Gibt es da Möglichkeiten gegenzuwirken?

    Signiere deine Textdatei, ist die Signatur ungültig wurde diese manipuliert.

    - Gruß Florian

    Dienstag, 12. September 2017 09:25