- Offizieller Beitrag
Ich bin gerade dabei ein Programm zu schreiben, das Passwörter verschlüsselt ablegen soll (ähnlich wie Keypass, nur nicht so umfangreich).
Mir geht es jetzt darum, ob das so, wie ich das umgesetzt habe, sicher ist.
Ich beschreibe mal kurz den Ablauf:
1. Beim ersten Start des Programms wird ein Master-Passwort abgefragt (min. 6stellig).
2. Von diesem Master-Passwort erstellt das Programm eine Checksumme (SHA1) und speichert sie in eine Inidatei.
3. Beim "normalen" Start des Programms wird nun nach diesem Master-Passwort gefragt.
4. Der Benutzer gibt das Master-Passwort ein (das muss er bei jedem Start des Programms tun).
5. Das Programm generiert aus der Eingabe die Checksumme (SHA1) und vergleicht diese mit der Gespeicherten.
6. Wenn Übereinstimmung, wird das Programm gestartet, ansonsten beendet.
7. Nun kann man Benutzername-/Passwort-Einträge erstellen.
8. Beim speichern dieser Einträge werden die Daten mit AES (256 Bit) verschlüsselt (mit der Crypt-UDF). Der Key (_Crypt_DeriveKey) wird aus dem eingegebenen Passwort generiert.
Es wird also nirgendwo im Programm das Passwort gespeichert. Lediglich die Checksumme wäre angreifbar (Brute-Force).
Oder gibt es da eine Schwachstelle, die ich übersehen habe?
Wäre schön, wenn sich mal die Krypto-Experten melden würden.