Datei verschlüsseln mit Login Passwort



  • Ich schreibe gerade ein Programm das Notizen speichert. Nun möchte ich die Notizen verschlüsseln, wenn der Benutzer das möchte. Das Programm liest zwei Dateien, in einer davon sind die Logindaten, hier steht der Benutzername in Klartext und das Passwort ist mit SHA512 verschlüsselt. Die andere Datei enthält die Notizen für den Benutzer.

    Die Logindaten werden am Programmstart abgefragt, an diesen Zeitpunkt habe ich auch das Passwort im Klartext, aber es wäre nicht sicher wenn ich das Passwort im Speicher lasse. Die Notizen will ich mit AES verschlüsseln, der Schlüssel soll der gleiche sein wie das Passwort.

    Die einzige Idee die ich habe ist, die Datei zu entschlüsseln mit dem eingegebenen Passwort und danach das Passwort aus dem Speicher zu löschen. Bei jeder Bearbeitung der Notizen müsste der Benutzer das Passwort erneut angeben, damit ich die Notizen verschlüsseln kann um sie zu speichern.

    Gibt es eine sichere Möglichkeit die Datei zu verschlüsseln, ohne dass der Benutzer bei jeder Sicherung das Passwort eingeben muss?



  • Ja, wenn du die Notizen mit Public-Key-Kryptografie, z.B. RSA, verschlüsselst. Der private Schlüssel kann dann mit dem Nutzerpasswort verschlüsselt werden und wird nur zum Entschlüsseln einer Notiz gebraucht. Der öffentliche Schlüssel zum Verschlüsseln einer Notiz kann im Speicher liegen, weil er nicht geheim gehalten werden muss.



  • unregistriert schrieb:

    aber es wäre nicht sicher wenn ich das Passwort im Speicher lasse.

    Warum denn genau, hast du Angst dass das OS es ins Pagefile schreibt oder wo liegt das Problem?



  • unregistriert schrieb:

    […] und das Passwort ist mit SHA512 verschlüsselt.

    Pro-Tipp: Wenn Du das „verschlüsseln“ nennst, dann erweckt das kein besonderes Vertrauen in Deine Fähigkeiten, was bei einer solchen Anwendung schon wichtig wäre.

    Und natürlich hast Du hier alle Anfängerfehler gemacht, die man machen kann. Ein einfacher Hash ist nicht besonders sicher gegen Wörterbuch- und Brute-Force Attacken. Du musst es dem Angreifer, der den Hash kennt, schon etwas schwieriger machen. Eine Überprüfung muss teuer sein, so dass der Angreifer nur eine kleine Zahl von Passwörtern pro Sekunde testen kann. Am besten ist der Hash auch noch speicherintensiv, damit man das nicht so gut parallelisieren kann. Dazu kommt noch, dass Du kein Salz verwendest. Hat ein Anfreiger mehrere solcher Hashes gesammelt, braucht er nur einmal alle möglichen Passwörter ausprobieren und kann diese Attacke gleich auf alle Hashes anwenden. Das Salz ist dazu da, genau dies zu verhindern. Mit gesalzenen Hashes müsste der Angreifer sich jeden Hash einzeln vornehmen.


Anmelden zum Antworten