|
| |

Visual-Basic Einsteiger| Re: Haschwert (MD5) - eine kleine Verständnisfrage.. | |  | | Autor: Preisser | | Datum: 23.09.13 01:44 |
| Hallo,
zunächst: MD5 sollte ja eigenltich nicht mehr verwendet werden, weil er unsicher ist (es ist mit überschaubarem Aufwand möglich, zwei gleiche Hashes zu erzeigen, die aus unterschiedlichen Nachrichten generiert werden). Stattdessen sollte SHA-1 oder besser SHA-2 verwendet werden.
Sophus schrieb:
| Zitat: |  | Hallo Leute,
vorweg: Bevor einige jetzt komplizierte Gedankengänge
entwickeln und sich jetzt fragen "Ouh Gott, will der mir
jetzt mit solch einer komplexen und komplizierten Aufgabe in
einem Anfänger-Forum kommen?" möchte ich erwähnen, dass
es hier erst einmal um die Metaebene geht, sprich, es geht
mir mehr um eine Verständnisfrage.
Mich beschäftigt das Thema MD5 (Hashwert) schon eine Weile.
Damit wir mein Anliegen, bzw. meine Gedanken sehr gut
nachvollziehen können, möchte ich ein Szenario konstruieren.
Wir stellen uns vor, in VB6 wurde ein Programm entwickelt,
welches sich mit dem MySQL verbindet, Datensätze hinzufügt,
bearbeitet, löscht und auch Datensätze suchen kann. Nun, mit
dem Programm können sich Benutzer in der Datenbank
registrieren, es werden also Benutzerkonten angelegt.
Beispiel:
Benutzer: Test
Passwort: test123 (Hashwert: ADhsdDf54545DdfdfSDf34) - den
Wert habe ich mir mal ausgedacht.
Wenn sich jetzt ein Benutzer sich mit dem Passwort
registiert, ermitteln das VB6 Programm per md5 den Hashwert
des Passwort und speichert dann nur den Hashwert in die
Datenbank. Wenn sich der Benutzer über das VB6 Programm im
Anschluss einloggen möchte, gibt er sein Passwort ein, daraus
ermittelt das VB6 Programm wieder den Hashwert, und wenn der
Hashwert vom Login der gleiche ist wie der gespeicherte Wert,
dann hat der Benutzer das richtige Passwort eingegeben, sonst
nicht.
Was mich hierbei aber etwas verwirrt, ist, dass, wenn man den
Hashwert des Passwortes (ADhsdDf54545DdfdfSDf34) kennt, dann
ist das Benutzerkonto ja auch nicht mehr sicher, richtig? Man
weiß vielleicht das Passwort nicht, weil man den Hashwert
nicht "entschlüsseln" kann, aber man hätte jedoch
einen Zugriff. Wie ich das meine? |  |
Wenn nicht das urpsrüngliche Passwort, sondern nur der Hash über die Leitung geht, dann ja: Mit dem Hash kann sich der Benutzer unter diesem Konto einloggen.
Allerdings weiß er das ursprünliche Passwort nicht. Und meistens ist es ja so, dass viele Benutzer aus Bequemlichkeit überall das gleiche Passwort einsetzen. Wenn es im Klartext gespeichert wäre, wüsste er das Passwort nun und könnte nun versuchen, sich mit diesem bei anderen Diensten einzuloggen.
| Zitat: |  | Wieder ein Szenario:
Jemand kommt auf die Idee, und sagt sich "Cool, ich habe
jetzt den Hashwert" und bastelt entweder per PHP oder
VB6 ein kleines Programm, mit einem LogIn-Formular, worüber
er dann eine Verbindung zur Datenbank aufbauen will, und mit
dem Konto sich einloggen will. Er baut aber keinen MD5 ein,
sondern nimmt den Hashwert als Passwort. Dies würde dann so
aussehen:
Beispiel:
Benutzername Test
Passwort: ADhsdDf54545DdfdfSDf34
Und somit hätte er dann Zugang zum Konto, denn für die MySQL
Datenbank ist unter dem Benutzer Test der Wert (hier der
Hashwert) im Passwort-Feld das eigentliche Passwort. Die
Datenbank verhält sich in diesem Punkt neutral, sie weiß ja
nicht, was es sich mit dem Wert auch sich hat.
|  |
Ja.
| Zitat: |  |
Fazit meinerseits wäre dann, man könnte das Passwort ja auch
gleich im Klartext abspeichern. Denn so oder so, hätte man
dann auch Zugang. Das wäre mein Gedanke.
Liege ich rein gedanklich total falsch oder habe ich damit
Recht? |  |
S.o.: Durch Speichern des Hashes statt des Passworts kann ein Angreifer nicht das ursprüngliche Passwort ermitteln, um mit diesem zu versuchen, sich bei anderen Diensten einzuloggen.
Allerdings können bspw. durch Rainbowtables aus solchen Hashes schnell die Orginaldaten (Passwörter) ermitteln, falls es kurze Passwörter sind. Deshalb kann man an das ursprüngliche Passwort einen Salt anhängen (also bestimmte Daten, die nicht nach außen sichtbar sind) und aus diesem dann den Hash generieren. Man könnte beispielsweise auch das Hashen mehrfach anwenden, um es einem Angreifer schwieriger zu machen, aus dem Hash das Passwort zu rekonstruieren. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevAniGif (VB/VBA) 
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|