Passwort in einen AES Schlüssel umwandeln (sicher)?

Mein Ziel: der Benutzer gibt ein Passwort beliebiger länge ein und kann damit ein AES verschlüsseltes Dokument entschlüsseln.

Meine Idee: Der SHA256 Hash (vom Wert den der Benutzer eingibt) ist das Passwort für die AES entschlüsselung. Mit dem Hash als Passwort wird dann versucht eine Testzeile zu entschlüsseln und wenn der entschlüsselte Wert dann den Wert des Benutzers ergibt, wird das Passwort als gültig erachtet.

Das sollte meiner Meinung nach ermöglichen, dass der einfachte Weg eine Bruteforce Attacke bleibt, selbst wenn man das System kennt.

Seht ihr schwächen in meinem System? Gibt es bessere/ übliche Verfahren?

Eine kleine Schwäche habe ich gefunden: Der Benutzer könnte selber alle Daten ändern (sprich die Testzeile zum entschlüsseln) und dann mit seinem eigenen Login zugriff auf das System erhalten. Dort kann er aber nichts lesen, da er ja seinen eigenen Schlüssel hat. Gibt es eine möglichkeit das er gar nicht erst ins System kommt? (selbst wenn er den Quellcode kennen würde)

Vielen Dank für eure Hilfe :)

Als Hilfestellung zum Verständnis:

string passwort_benutzereingabe

string entziffertes_passwort = AES decrypt testdokument.test key = hash SHA256 von passwort_benutzereingabe

if entziffertes_passwort == passwort_benutzereingabe
  ->Login erfolgreich... Datei wird mit dem Passwort nun vollständig entschlüsselt.
else 
  ->Fail

Computer, Technik, Programm, Programmieren, Passwort, Schlüssel, Kryptographie, Technologie, Verschlüsselung, aes
3 Antworten