sebkrause.de – willkommen!
Lexikon * Aktuelles * FAQ * Ich * Kontakt * Impressum * * english
Nerd-Lexikon für Nicht-Nerds: Begriffe aus diversen Fachgebieten, für Nichtfachmänner verständlich erläutert. Über das Lexikon: Über das Lexikon.
<< Hacker ... Index ... Heartbleed >>
HASH
(Kategorie: Computer)

Hash kommt von engl. to hash - etwa "zerhacken". Ein Hash ist ein Zahlenwert, der meist a) aus einer großen Datei oder b) aus einem Passwort gebildet wird, um die Korrektheit der Datei oder des Passwortes zu ermitteln.

Fangen wir mit dem ersten Fall an. Sie laden sich eine große Datei (sagen wir: eine Linux-Live-CD von 700 MB) herunter. Dann brennen Sie diese auf eine CD, starten den Rechner damit und - es hagelt Fehler. Daraufhin lesen Sie: "Eventuell wurde die Datei nicht richtig heruntergeladen; versuchen Sie es erneut", woraufhin Sie, während Sie das zweite Mal die 700 MB laden, sich fragen, wie Sie dies sich hätten sparen können. Die Antwort: Mit einem Hash!

Man sieht auf der Seite mit den Downloads nämlich oftmals neben Ihrer Datei (sagen wir: "linux.img") noch Dateien mit so kryptischen Namen wie "linux.img.md5sum" o.ä. Diese Dateien beinhalten im Grunde nichts als eine Zahl, die zwar viele Stellen hat, aber natürlich wesentlich kleiner als Ihre 700 MB ist. (Im Allgemeinen sind es nur ein paar Byte!) Diese Zahl wurde (in unserem Beispiel) mit einem Hash-Verfahren namens MD5 erzeugt. Dieses Verfahren nimmt die große Datei "linux.img", berechnet aus den einzelnen Bytes eine Prüfsumme - und schreibt diese in die Datei "linux.img.md5sum". Und der Clou: Sie können diese Berechnung auch zuhause mit Ihrer heruntergeladenen Datei wiederholen! Kommt dann dieselbe Prüfsumme heraus, dann ist es so gut wie sicher, dass es keine Downloadfehler gab. (Natürlich lassen Sie diese Berechnung und den Vergleich von einem Programm ausführen...) Neben MD5 gibt es hierfür auch noch CRC - "CRC-Fehler" deuten daher auch meist auf fehlerhafte Downloads hin...

Der Hash-Wert der großen Datei ist also gewissermaßen wie eine Art Fingerabdruck - es gibt nämlich (zumindest bei guten Hash-Verfahren) kaum Fälle, bei denen für zwei unterschiedliche Eingaben (also z.B. Dateien) derselbe Hashwert herauskommt! Daher spricht man auch vom Fingerprint einer Datei.

Kommen wir zum zweiten oben genannten Fall: dem sog. kryptologischen Hash-Verfahren.

Sie geben auf einer Website Ihr Passwort ein und sind daraufhin eingeloggt. - Wie wird denn intern geprüft, ob Ihr Passwort stimmt? Nun, man könnte denken: Mein Passwort steht eben irgendwo in einer Datei, und das, was ich eingab, wird eben verglichen. Aber: Würde man Ihr Passwort einfach so im Klartext abspeichern, dann wäre dies eine schwere Sicherheitslücke! Denn würde jemand bei dieser Website einbrechen und jene Passwort-Datei erbeuten, dann hätte er sofort Ihren Benutzernamen und Ihr Passwort - und könnte sehr viel Schaden anrichten. Daher macht man normalerweise etwas anderes.

Wenn Sie beim Erstellen Ihres Nutzerkontos Ihr Passwort festlegen, dann wird nicht Ihr Passwort gespeichert, sondern von diesem ein Hash gebildet - also wieder eine Prüfsumme. Und dieser Hash wird dann gespeichert! Geben Sie nun beim Einloggen Ihr Passwort ein, dann wird wieder der Hashwert berechnet und dieser mit dem gespeicherten verglichen.

Nun kommt es auf das Hash-Verfahren an, ob dieses Verfahren sicher ist. Es müssen eine Reihe von Anforderungen erfüllt werden:

Man sieht also, dass die Anforderungen an kryptologische Hashverfahren um ein Vielfaches höher sind; sie sind quasi ständig Gegenstand aktueller Forschung. Aber auch bei ihnen geht es letztlich darum, einen "Fingerabdruck" einer Datenmenge zu erzeugen. Nur dass dieser noch weitergehende Eigenschaften haben muss als beim Fingerabdruck einer Datei...

<< Hacker ... Index ... Heartbleed >>