Benutzer mit den meisten Antworten
Wo am besten sensible Benutzerdaten sicher speichern

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?
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.
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 15. September 2017 12:57
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 27. September 2017 14:11
-
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
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 15. September 2017 12:59
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 27. September 2017 14:11
-
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?
- Gruß Florian
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 15. September 2017 12:56
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 27. September 2017 14:12
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!
Cross Platform Canvas for UWP, Android, iOS
-
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.
-
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?
-
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.
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 15. September 2017 12:57
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 27. September 2017 14:11
-
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
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 15. September 2017 12:59
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 27. September 2017 14:11
-
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?
- Gruß Florian
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 15. September 2017 12:56
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 27. September 2017 14:12