Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Passwortschutz
Jacer - Sa 31.10.09 16:31
Titel: Passwortschutz
Moin allerseits,
ich möchte einen Teil in einem Programm (um genauer zu sagen ein TabSheet eines PageControls) mit einem Passwort schützen.
Also lediglich bei Aufruf eine Abfrage des Passwortes, danach Freigabe des TabSheets.
Da ich für den Benutzer ebenfalls die Funktion einbauen will, das Passwort ändern zu können, und aus Sicherheitsgründen möchte ich dass Passwort natürlich nicht hardcoded direkt im Quelltext stehen haben.
Ich habe jetzt als erstes daran gedacht eine Datenbank zu erstellen und über md5 ein Passwort einzutragen bzw abzufragen.
Ist das mit die sicherste Methode oder was habe ich für Alternativen mit Delphi?
gruß
jacer
Xion - Mo 02.11.09 22:22
Du hast an sich alle Möglichkeiten.
Ich würde es am einfachsten so machen:
Du verschlüsselst einfach dein Passwort und speicherst es in irgendeine Datei rein (ist ja dann verschlüsselt). Zum verschlüsseln kannst dir ja z.B. selbst was überlegen oder was fertiges angucken.
Wenn die Datei gelöscht wird (=das Programm kennt das richtige Passwort nichtmehr) ist das die selbe Frage wie, was passiert wenn der User das Passwort nichtmehr weiß.
Master-Passwort, dass nur du als Programmierer kennst?
dummzeuch - Di 03.11.09 21:21
Jacer hat folgendes geschrieben : |
Ich habe jetzt als erstes daran gedacht eine Datenbank zu erstellen und über md5 ein Passwort einzutragen bzw abzufragen.
|
Die Idee mit einem Hash ist schonmal gut, deutlich besser, als das Kennwort verschluesselt abzuspeichern. Dabei nicht vergessen, ein "salt" zu verwenden, so dass der Hash nicht so einfach geknackt werden kann.
Zur Kennwortaenderung kannst Du analog zu Windows die Eingabe des alten Kennworts verlagen, dieses gegen den aktuellen Hash pruefen und erst dann das neue setzen.
Haeufig gibt es noch weitere Anforderungen:
1. Ein Kennwort darf nicht mehrfach hintereinander verwendet werden. Das kann man erreichen, indem man die letzten n Hashes abspeichert und das neue Kennwort dagegen checkt.
2. Das neue Kennwort muss sich um mindestens n Zeichen vom alten unterscheiden. Das kann man durch Vergleich mit dem alten Kennwort erreichen,
das man bei der Kennwortaenderung ebenfalls abfragt.
3. Manchmal ist auch gefordert, dass sich das neue Kennwort von den letzten n in mindestens m Zeichen unterscheidet. Das laesst sich meines wissens leider nicht sicher (d.h. ohne speichern der alten Kennworte) erreichen. Deshalb wuerde ich versuchen den Auftraggeber davon abzubringen. (Was natuerlich nur dann notwendig ist, wenn es einen Auftraggeber gibt.)
twm
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!