![]() |
Datenbank: SQL Server 2000 • Zugriff über: Delphi
Passwordverschlüsselung
Hallo,
ich muß für ein Programm ein gesondertes Password abfragen und möchte dieses in einer Tabelle auf dem SQL-Server verschlüsselt speichern. Wenn die Tabelle direkt über den Enterprise Manager aufgerufen wird, sollen nur * oder so erscheinen! Geht das? Oder wie programmiere ich es geschickter? :wiejetzt: |
Re: Passwordverschlüsselung
Herzlich wilkommen in der DP :dp: :party:
Am geschicktesten machst du das indem du das Passwort nicht als solches abspeicherst sondern nur den Hash des Passworts (MD, SHA was immer). Bei der eingabe des Passworts erstellst du dann den Hash davon und überprüfst ob er mit dem Hashwert in der DB übereinstimmt. Aus dem Hashwert kann das Passwort nicht rückberechnet werden. Somit kannst du das Passwort einigermaßen sicher in der DB ablegen! |
Re: Passwordverschlüsselung
Vielen Dank für den Hinweis! Hat prima funktioniert! :-D :-D :-D
Habe nur so lange gebraucht, ehe ich rausgefunden habe, wie das geht... :gruebel: |
Re: Passwordverschlüsselung
Diese Methode ist für Userverwaltungen eher ungeeignet, da man die Funktion "Passwort vergessen, bitte zuschicken!" nicht nutzen kann, da das PW, wie schon von Meflin gesagt, nicht wieder hergestellt werden kann. Das nur als kleinen Tip. ;)
MfG freak |
Re: Passwordverschlüsselung
In diesem Fall kann man ja eine der gebräuchlichen Verschlüsselungsalgorithem verwenden: 3DES, AES...
|
Re: Passwordverschlüsselung
Ist in diesem Fall nicht wichtig, weil es sich nur um einen sehr begrenzten Userkreis handelt. Es ging eher darum, dass eben niemand das PW ändern darf! (Auch keine ADMIN!)
|
Re: Passwordverschlüsselung
Ich würde MD5 nicht nehmen, weil MD5 nicht mehr sicher ist. Whirlpool oder RIPEMD-160 sind meiner Ansicht nach die bessere Wahl.
[edit]SHA-1 gestrichen.[/edit] Zitat:
Ben |
Re: Passwordverschlüsselung
Oder man bleibt beim Hash:
Wenn der User sein Passwort vergessen sollte dann wird ein neues ZufälligesPW erzeugt und von mir aus in einer anderen Tabelle abgespeichert. Dann wird des an seine email adresse geschickt und er hat 24h sich anzumelden bevor das neue PW seine gültigkeit verliert. Sobald er sich dann einloggt muss er ein neues PW angeben. Dies wird verhasht in der DB überschrieben und das zufällig erzeugt gelöscht. Ja ich weiss des ist ein bisschen aufwändiger dafür aber viel sicherer (oder hab ich einen Denkfehler?) //edit: @benst: Wieso ist MD5 nicht mehr sicher??? |
Re: Passwordverschlüsselung
Zitat:
|
Re: Passwordverschlüsselung
Zitat:
(Was meinst du mit BTW?) [edit]Ich Dummkopf: BTW: by the way[/edit] |
Re: Passwordverschlüsselung
Zitat:
|
Re: Passwordverschlüsselung
BTW: Ja, ist mir dann auch eingefallen (siehe mein edit).
@gsh: Ja, dein Lösungsvorschlag gefällt mir. |
Re: Passwordverschlüsselung
Zitat:
|
Re: Passwordverschlüsselung
|
Re: Passwordverschlüsselung
Zitat:
|
Re: Passwordverschlüsselung
Zitat:
|
Re: Passwordverschlüsselung
Zitat:
Desweiteren ist der Artikel Heise-typsich: man verstecke eine einigermaßen potentiell-tolle Nachricht unter einer reiserischen Überschrift und kläre dann im Artikel dass es eigentlich garnicht so schlimm sei... :roll: |
Re: Passwordverschlüsselung
Natürlich kenn amn auch längere Beiträge schreiben. Muß man aber nicht, wenn man in einem satz alles asgen kann, was man will.
Ich hatte ja geschrieben halb geknackt, da es noch nicht möglich ist einen kompletten Alternativtext mit identischen Hash zu erzeugen. Erfahrungsgemäß dauert es aber nicht mehr lange, bis die Angriffsmethoden verfeinert werden und dann effektivere Angriffe möglich werden. Längere Hashlängen bringen übrigens bei Passwörtern nicht so viel. (256Bit->32Zeichen) |
Re: Passwordverschlüsselung
Zitat:
|
Re: Passwordverschlüsselung
Zitat:
Abgesehen davon: das war dann auf jden Fall nichts anderes als ein Brute Force Verfahren, und 6 Zeichen sind ja auch nicht wirklich lang... |
Re: Passwordverschlüsselung
Hi,
sorry aber irgendwas versteh ich doch jetzt falsch, wenn jmd aus der DB den gespeicherten Hash auslesen kann (sonst kann man schlecht das PW aus den Rainbow Tables auslesen), dann hab ich doch eh schon ganz andere Probleme! Ich meine ist ja schön und gut für die Theorie, aber es wird ja hier schließlich auf einem fremden, entfernten Rechner der Hash des PW auf Gleichheit mit dem gespeicherten geprüft. Tauchen dabei Sicherheitslücken in der DB auf, so hat man natürlich den Vorteil, dass hier nur Hashes bekannt werden und mit Rechtzeitigem erkennen des Angriffs / auslesen der Hashes hat man dann reagieren. Zitat:
Gruß Der Unwissende |
Re: Passwordverschlüsselung
Zitat:
ABER! wenn man ein krytographisch korrektes Verfahren benutzt um das Passwort zu schützen dann funktionieren auch Rainbow Tables nicht mehr. Die Frage ist wie macht man es richtig ? 1.) ein Salt benutzen 2.) eine Hashfunktion benutzen Man erzeugt einen Salt, das sind Zufallsdaten. Diese sollten mindestens so groß sein wie die Hashfunktion, dh. wenn wir SHA1 benutzen dann sollte dieser Salt 160 Bits groß sein, weil SHA1 eben 160 Bit groß ist. Diesen Salt + das Passwort wird nun transformiert indem man damit die Hashfunktion füttert. Der Hashdigest + der Salt werden auf dem Server zur Verifikation gespeichert. Durch die Benutzung dieses Salts würde man also 2^160 Rainbow Tables benötigen statt nur EINER Tabelle ! Somit macht dieser simple Salt jedweige Form von Wörterbuch Angriffen unpraktikabel. Rainbow Tables sind eine relativ neue Erfindung die überwertet wird. Ja, sie sind eine interessante Methode um schlecht bzw. kryptographisch unmodern konstuierte Verfahren zu knacken, zb. Windows/UNIX-Passwörter oder WLAN Verschlüsslung die nicht WPA2 konform ist. Aber wenn man wie oben einen Salt + Password hasht dann funktinieren diese Angriffe nicht mehr. Fazit: immer mit Salts arbeiten. Einmal um ein Password für eine Verschlüsselung in einen sicheren Sessionkey umzuwandlen, und zweites ein Salt vor die Daten die man verschlüsseln möchte um zb. Known Plaintext Angriffe auf unsere Daten zu verhindern ! Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz