Hashwerte und Hashfunktionen einfach erklärt

it-sicherheit 11
Fachbeitrag

In der IT-Sicherheit ist oft die Rede von Hashwerten und Hashfunktionen, von MD5 oder SHA. Diese Begriffe werden auch in Zusammenhang mit Verschlüsselung erwähnt oder auch miteinander verwechselt. In diesem Artikel wird anhand eines Beispiels erklärt, was Hashwerten und Hashfunktionen sind und welche Anwendungsfelder sie haben.

Hashfunktion

Um die Erklärung einfacher zu machen, fangen wir mit einem Bild an:

HashfunktionAuf der linken Seite sehen wir 4 Passwörter von beispielsweise 4 Mitarbeitern eines Unternehmens. Die Hashfunktion (=Algorithmus) wandelt nun diese Passwörter in eine Zeichenfolge (dem Hashwert) mit einer festen Länge (hier 3 Zeichen) um. Für das Passwort „Superman“ bekommt man den Hashwert 123, dem Passwort „Robocop“ wird der Hashwert 567 zugeordnet, genauso wie dem Passwort „Catwoman“ und „Terminator“ bekommt 785.

Hashfunktionen reduzieren zunächst nur Zeichen beliebiger Länge (unterschiedliche Passwörter) auf Zeichen fester Länge (hier immer 3 Zeichen), sie werden also in eine kleine, kompakte Form gebracht.

Hashwert

Der Hashwert stellt das Ergebnis dar, welcher mittels einer Hashfunktion berechnet wurde. Man definiert eine feste Länge, wie lang ein Hashwert immer sein darf. Oft wird der Hashwert als eine hexadezimale Zeichenkette codiert d.h. der Hashwert besteht aus einer Zahlen und Buchstaben-Kombination zwischen 0 und 9 sowie A bis F (als Ersatz für die Zahlen 10 bis 15). Ein Hashcode aus 10 hexadezimalen Zeichen könnte so aussehen: „3d180ab86e“.

Eigenschaften

Eine Hashfunktion sollte die folgenden Eigenschaften haben:

  • Einwegfunktion:
    Aus dem Hashwert darf nicht der originale Inhalt erzeugt werden können. In unserem Beispiel darf es nicht möglich sein, aus dem Hashwertes „123“ den Ursprungstext „Supermann“ zu erzeugen.
  • Kollisionssicherheit:
    Den unterschiedlichen Texte darf nicht derselbe Hashwert zugeordnet sein. Ist diese Voraussetzung erfüllt, so spricht man auch von kryptografischen Hashfunktionen. In unserem Beispiel liegt eine Kollision vor, da die Passwörter „Robocop“ und „Catwoman“ denselben Hashwert haben. Damit ist die Hashfunktion im Bild nicht kollisionssicher und es handelt sich nicht um eine kryptografische Hashfunktion.
  • Schnelligkeit:
    Das Verfahren zu Berechnung des Hashwertes muss schnell sein.

Anwendungsfelder

Hashfunktionen reduzieren eine große Datenmenge auf eine kleinere Zeichenfolge. Darüber hinaus können Hashfunktionen als Integritätsschutz dienen, indem ein elektronischer „Fingerabdruck“ berechnet wird (hier spielt die erwähnte Kollisionsresistenz eine wichtige Rolle). Im Einzelnen seien beispielhaft die folgenden Anwendungsfelder erwähnt:

Prüfsummen

Lädt man sich ein Programm aus dem Internet runter, möchte man sicher gehen, dass es sich um das Original und kein manipuliertes Programm handelt, welches Schadsoftware enthalten könnte bzw. während des Download manipuliert wurde. Auch hier können Hashwerte aushelfen. Man berechnet einmalig den Hashwert des Original-Programmes (manche Hersteller stellen diesen zur Verfügung) und hat somit einen Fingerabdruck des Programms. Ist das Programm heruntergeladen, kann man erneut einen Hashwert mit derselben Hashfunktion berechnen und nun beide Hashwerte miteinander vergleichen. Abweichungen deuten darauf hin, dass es sich um eine manipulierte Version handelt. Hashfunktionen ermöglichen damit das Aufdecken möglicher Manipulationen.

Digitale Signatur

Bei der digitalen Signatur (das Pendant zur handschriftlichen Unterschrift) werden Hashfunktionen dazu verwendet, um “Fingerabdrücke” von Nachrichten zu berechnen. Der Fingerabdruck wird zusammen mit der Nachricht an dem Empfänger als Beweis der Integrität gesendet.

Die digitale Signierung funktioniert wie folgt:

  1. Der Absender berechnet einen Hashwert aus seiner Nachricht.
  2. Diesen Hashwert verschlüsselt er mit seinem privaten Schlüssel (=digitale Signatur) und übermittelt die Nachricht zusammen mit dem verschlüsselten Hashwert an den Empfänger.
  3. Der Empfänger erstellt auf seiner Seite ebenfalls einen Hashwert der erhaltenen Nachricht (mithilfe derselben Hashfunktion).
  4. Zudem entschlüsselt er den erhaltenen Hashwert mit dem öffentlichen Schlüssel und vergleicht beide Werte miteinander.

Stimmen beide Werte überein, so kann der Empfänger davon ausgehen, dass die Nachricht bei der Übertragung nicht verändert wurde.

Wichtig ist zu beachten, dass die digitale Signatur nicht die Nachricht verschlüsselt, sondern die Integrität der Nachricht verifizieren soll. Ist die Nachricht vertraulich, sollte diese zusätzlich verschlüsselt werden.

Speichern von Passwörtern

Passwörter sollen verschlüsselt gespeichert werden, damit bei einem Angriff diese nicht im Klartext gelesen werden können. Aber wie können die Passwörter genutzt werden, wenn diese „verschlüsselt“ gespeichert werden? Die Passwörter werden mittels einer Hashfunktion in Hashwerte umgewandelt und nur diese Hashwerte werden gespeichert (nicht die Passwörter selbst). Gibt ein Nutzer bei einer Authentisierung sein Passwort ein, wird bei der Eingabe wieder mit derselben Hashfunktion der Hashwert berechnet und mit dem gespeicherten Hashwert verglichen. Bei Übereinstimmung gilt der Benutzer als authentifiziert.

Stand der Technik

Die verwendeten Hashfunktionen sollten auf den neusten Stand der Technik sein. Welche Algorithmen bereits „geknackt“ wurden, findet man z.B. in dieser Liste.

Immer wieder hört man, dass “Passwörter geknackt wurden. Vor einem Jahr sind z.B. die Passwörter der Plattform „Ashley Madison“ geknackt worden,dieses Jahr wurde bekannt, dass auch LinkedIn und Dropbox davon betroffen waren. Aber wie können Passwörter geknackt werden, wenn man wegen der Einweg-Eigenschaften der Hashfunktionen nicht auf den ursprünglichen Text zurückschließen kann?

Zunächst muss man wissen, dass fast alle Algorithmen „offen“ liegen, diese also auch von Angreifen genutzt werden können. Das hat zur Folge, dass der Hashwert z.B. von dem Passwort „Superman“ gleich ist, nämlich bei MD5 immer 527d60cd4715db174ad56cda34ab2dce (egal ob es die Plattform oder der Angreifer berechnet). Das kann man z.B. unter www.hashgenerator.de testen. Der Angreifer kann sich also eine Liste mit typischen unsichere Passwörter mit allen Superhelden und Kosenamen bis zu einfachen Zahlenkette wie 123 erstellen und durch den Hashgenerator jagen. Er erstellt sich damit eine enorme Liste mit Passwörtern und den dazugehörigen Hashwerten. Wenn er nun die Datenbank mit den Hashwerten der Plattform stiehlt, kann er die Hashwerte mit seiner Liste vergleichen. Findet er in der geklauten Liste den Hashwert 527d60cd4715db174ad56cda34ab2dce, so weiß er, dass dieser Hashwert dem Passwort „Superman“ zugeordnet ist. Solche Listen nennt man Regenbogentabellen (rainbow table). Für den Algorithmus MD5 gibt es z.B. unter http://www.md5online.org ein Tool, der auf solchen Regenbogenlisten basiert und anhand des Hashwertes der Ursprungstext herausgefunden werden kann.

Sicherheit

Um die Passwörter nicht anhanand einer Regenbogentabelle zu knacken, sollten keine veralteten Algorithmus wie MD5 oder SHA-1 genutzt werden. Außerdem sollten die Passwörter regelmäßig geändert werden, da auch die Plattformen bei unsicher gewordenen Hashfunktionen auf neue Techniken umstellen und nur bei einer Passwortwechsel diese genutzt werden kann.

Aber auch bei den als „sicher“ geltenden Hashfunktionen kann keine 100 % Sicherheit erwartet werden. Zum einen kann ein manipulierter Hashwert als Prüfsumme an eine Nachricht oder im Internet veröffentlicht werden. Zum anderen ist es nur eine Frage der Zeit, wann die „sicheren“ kryptografischen Hashfunktionen geknackt werden. Denn der Erfolg eines Angriffes ist auch bei den „sicheren“ Hashfunktionen nicht auszuschließen und hängt eher von dem hohen Aufwand ab (der sich mit der steigenden Rechenleistung relativieren wird). Ein erfolgreicher Angriff ist derzeit zwar unwahrscheinlich aber nicht unmöglich. Deswegen sollte man immer auf dem neusten Stand der Technik sein und die Entwicklungen im Auge behalten.

Sie haben Fragen?

Die Bestellung eines externen Datenschutzbeauftragten bietet Ihrem Unternehmen zahlreiche Vorteile. Bei der Zusammenarbeit mit unseren Beratern können Sie folgendes erwarten:

  • Praxisnahe und wirtschaftsorientierte Datenschutzorganisation für Ihr Unternehmen
  • Hochqualifizierte Berater mit interdisziplinären Kompetenzen in Recht und IT
  • Klar kalkulierbare Kosten und hohe Flexibilität

Informieren Sie sich hier über unser Leistungsspektrum: Externer Datenschutzbeauftragter

5 Kommentare zu diesem Beitrag

  1. Ich kann mich da nur anschließen: toller Artikel!!

    Was die Sicherheit betrifft:
    “Um die Passwörter nicht anhand einer Regenbogentabelle zu knacken, sollten keine veralteten Algorithmus wie MD5 oder SHA-1 genutzt werden.”
    Ich denke der zitierte Satz führt in die Irre. Man wägt sich mit Hashwerten, welche mit einem aktuell nicht geknackten Algorithmus erstellt wurde, auf der sicheren Seite. Aber auch bei diesen können Rainbowtables erstellt werden. Hier ist vor allem das serverseitige “Salzen” und “Pfeffern” (siehe Wikipedia -> Salt (Kryptologie)) vor Anwendung der Hashfunktion oder bei Fehlen dieser Anpassungen ein entsprechend langes Kennwort (mittlerweile 13-stellig, besser noch mehr) mit entsprechender Variation (aA1,) eine absolute Notwendigkeit. Ansonsten sind selbst Kennwort-Hashwerte, die mit als sicher geltenden kryptographischen Algorithmen erstellt wurden, durch das schwache Kennwort angreifbar.
    Eine Kette ist halt immer nur so stark, wie ihr schwächstes Glied!

    • Vielen Dank für das positive Feedback.
      Das sehe ich genauso. Eine 100 % Sicherheit wegen „noch nicht geknackter Algorithmen“ sollte man nicht erwarten. Deswegen muss von dem Benutzer immer ein „sicheres Passwort“ gewählt werden.

    • Korrekt. Derzeit ist Robocop und Catwoman der Hashwert 567 zugeordnet. Das stellt die Kollision da.
      Wenn Robocop dem Hashwert 324 zugeordnet wäre, läge keine Kollision vor. Statt 324 kann auch eine andere Zahl gewählt werden, die noch nicht verwendet wird (also nicht 123 oder 785 die schon vergeben sind).

Hinterlassen Sie einen Kommentar

Die von Ihnen verfassten Kommentare erscheinen nicht sofort, sondern erst nach Prüfung und Freigabe durch unseren Administrator. Bitte beachten Sie auch unsere Nutzungsbedingungen und unsere Datenschutzerklärung.