Skip to main content

Was ist eine kryptographische Hash-Funktion?

Kryptographie #50 - Hashfunktionen (Juni 2026)

Kryptographie #50 - Hashfunktionen (Juni 2026)
Anonim

Eine kryptografische Hashfunktion ist ein Algorithmus, der für Daten wie eine einzelne Datei oder ein Kennwort ausgeführt werden kann, um einen Wert zu erzeugen, der als Prüfsumme bezeichnet wird.

Eine kryptographische Hash-Funktion wird hauptsächlich zur Überprüfung der Authentizität eines Datenelements verwendet. Es kann angenommen werden, dass zwei Dateien nur dann identisch sind, wenn die Prüfsummen, die unter Verwendung derselben kryptografischen Hash-Funktion aus jeder Datei generiert werden, identisch sind.

Einige häufig verwendete kryptografische Hashfunktionen umfassen MD5 und SHA-1, obwohl viele andere auch existieren.

Kryptographische Hash-Funktionen werden oft als "Hash-Funktionen" bezeichnet, aber das ist technisch nicht korrekt. Eine Hash-Funktion ist ein Oberbegriff, der kryptographische Hash-Funktionen zusammen mit anderen Arten von Algorithmen wie z. B. zyklische Redundanzprüfungen umfasst.

Kryptografische Hashfunktionen: Ein Anwendungsfall

Nehmen Sie an, Sie laden die neueste Version des Firefox-Browsers herunter. Aus irgendeinem Grund mussten Sie es von einer anderen Site als Mozilla herunterladen. Da es nicht auf einer Site gehostet wird, der Sie vertrauen können, möchten Sie sicherstellen, dass die Installationsdatei, die Sie gerade heruntergeladen haben, mit der von Mozilla angebotenen identisch ist.

Mit einem Prüfsummenrechner berechnen Sie eine Prüfsumme mit einer bestimmten kryptografischen Hashfunktion wie SHA-2 und vergleichen diese mit der auf Mozilla-Site veröffentlichten. Wenn sie gleich sind, können Sie ziemlich sicher sein, dass der Download derjenige ist, den Mozilla für Sie vorgesehen hat.

Können kryptographische Hash-Funktionen rückgängig gemacht werden?

Kryptografische Hashfunktionen verhindern, dass die Prüfsummen, die sie erstellen, auf die ursprünglichen Texte zurückgesetzt werden. Obwohl sie praktisch unmöglich rückgängig gemacht werden können, ist der Schutz von Daten nicht zu 100 Prozent gewährleistet.

Hacker können einen Regenbogentisch verwenden, um den Klartext einer Prüfsumme herauszufinden.

Rainbow-Tabellen sind Wörterbücher, in denen neben dem entsprechenden Klartextwert Tausende, Millionen oder sogar Milliarden Prüfsummen aufgeführt sind.

Obwohl dies den kryptographischen Hash-Algorithmus technisch nicht rückgängig macht, könnte es genauso gut sein, wenn es so einfach ist. Da in der Regel keine Rainbow-Tabelle alle möglichen Prüfsummen auflisten kann, sind sie in der Regel nur für einfache Ausdrücke wie schwache Passwörter hilfreich.

Hier ist eine vereinfachte Version einer Rainbow-Tabelle, um zu zeigen, wie man arbeiten könnte, wenn man die SHA-1-Verschlüsselungs-Hash-Funktion verwendet:

KlartextSHA-1 Prüfsumme
123458cb2237d0679ca88db6464eac60da96345513964
Passwort1e38ad214943daad1d64c102faec29de4afe9da3d
ich liebe meinen Hunda25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny4007d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Ein Hacker muss wissen, welcher kryptographische Hash-Algorithmus verwendet wurde, um die Prüfsummen zu generieren, um die Werte herauszufinden.

Für zusätzlichen Schutz führen einige Websites, auf denen Benutzerkennwörter gespeichert sind, zusätzliche Funktionen für den kryptografischen Hash-Algorithmus aus, nachdem der Wert generiert wurde, aber noch bevor er gespeichert wurde. Dieser Prozess erzeugt einen neuen Wert, den nur der Webserver versteht und der nicht mit der ursprünglichen Prüfsumme übereinstimmt.

Nach der Eingabe eines Kennworts und der Generierung der Prüfsumme kann es beispielsweise in mehrere Teile aufgeteilt und neu angeordnet werden, bevor es in der Kennwortdatenbank gespeichert wird, oder bestimmte Zeichen können mit anderen Zeichen ausgetauscht werden. Wenn Sie versuchen, sich bei der nächsten Anmeldung des Benutzers zu authentifizieren, storniert der Webserver diese zusätzliche Funktion, und die ursprüngliche Prüfsumme wird erneut generiert, um zu überprüfen, ob das Kennwort eines Benutzers gültig ist.

Durch diese Schritte wird der Nutzen eines Hacks eingeschränkt, bei dem alle Prüfsummen gestohlen werden. Die Idee ist, eine Funktion auszuführen, die nicht bekannt ist. Wenn also der Hacker den kryptographischen Hash-Algorithmus kennt, nicht aber den benutzerdefinierten, ist es nicht hilfreich, die Kennwortprüfsummen zu kennen.

Kennwörter und kryptografische Hashfunktionen

Eine Datenbank speichert Benutzerkennwörter auf ähnliche Weise wie eine Regenbogentabelle. Wenn Sie Ihr Passwort eingegeben haben, wird die Prüfsumme generiert und mit der registrierten mit Ihrem Benutzernamen verglichen. Sie erhalten dann Zugriff, wenn beide identisch sind.

Da eine kryptographische Hash-Funktion eine nicht umkehrbare Prüfsumme erzeugt, ist es sicher, dass Sie Ihr Kennwort so einfach wie möglich machen 12345, anstatt 12@34$5, einfach weil die Prüfsummen selbst nicht verstanden werden können? Nein, und hier ist warum.

Diese beiden Passwörter lassen sich nicht einfach anhand der Prüfsummen entschlüsseln:

MD5 für 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 für 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

Auf den ersten Blick denken Sie vielleicht, dass es gut ist, eines dieser Passwörter zu verwenden. Dies trifft zu, wenn ein Angreifer versucht hat, das Kennwort zu ermitteln, indem er die MD5-Prüfsumme erraten hat, was niemand tut, aber nicht, wenn ein Brute-Force- oder Wörterbuch-Angriff ausgeführt wird. Dies ist eine übliche Taktik.

Ein Brute-Force-Angriff tritt auf, wenn beim Erraten eines Kennworts mehrere Stichproben ausgeführt werden. In diesem Fall wäre es leicht zu erraten 12345, aber ziemlich schwierig, den anderen zufällig herauszufinden. Ein Wörterbuchangriff ist insofern ähnlich, als der Angreifer jedes Wort, jede Zahl oder jeden Satz aus einer Liste gängiger (und nicht so üblicher) Kennwörter und ausprobieren kann12345 ist eines dieser gebräuchlichen Passwörter.

Obwohl mit kryptografischen Hash-Funktionen nur schwer zu ermittelnde Prüfsummen erstellt werden können, sollten Sie dennoch ein komplexes Kennwort für alle Ihre Online- und lokalen Benutzerkonten verwenden.

Weitere Informationen zu kryptographischen Hash-Funktionen

Es scheint, als würden kryptographische Hash-Funktionen mit der Verschlüsselung zusammenhängen, aber beide funktionieren auf unterschiedliche Weise.

Verschlüsselung ist ein bidirektionaler Prozess, bei dem etwas verschlüsselt wird, um unlesbar zu werden, und später entschlüsselt wird, um wieder normal verwendet zu werden. Sie können die von Ihnen gespeicherten Dateien verschlüsseln, sodass jeder, der auf sie zugreift, sie nicht verwenden kann, oder Sie können die Dateiübertragungsverschlüsselung verwenden, um Dateien zu verschlüsseln, die sich über ein Netzwerk bewegen, z. B. solche, die Sie online hochladen oder herunterladen.

Kryptografische Hash-Funktionen arbeiten insofern unterschiedlich, als die Prüfsummen nicht mit einem speziellen Entschlüsselungskennwort storniert werden sollen. Die einzigen kryptografischen Hash-Funktionen dienen dazu, zwei Daten zu vergleichen, beispielsweise beim Herunterladen von Dateien, beim Speichern von Kennwörtern und beim Abrufen von Daten aus einer Datenbank.

Es ist möglich, dass eine kryptographische Hash-Funktion dieselbe Prüfsumme für verschiedene Datenelemente erzeugt. Wenn dies geschieht, wird dies als Kollision bezeichnet. Dies ist ein großes Problem, wenn man bedenkt, dass eine kryptographische Hash-Funktion eine eindeutige Prüfsumme für jede Dateneingabe enthält.

Kollisionen können auftreten, weil jede kryptographische Hash-Funktion unabhängig von den Eingangsdaten einen Wert fester Länge erzeugt. Die kryptografische MD5-Hashfunktion generiert beispielsweise für drei völlig unterschiedliche Datenblöcke 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 und e10adc3949ba59abbe56e057f20f883e.

Die erste Prüfsumme stammt von 12345. Der zweite wurde aus über 700 Buchstaben und Zahlen erstellt, der dritte stammt aus 123456.

Alle drei Eingaben sind unterschiedlich lang, aber die Ergebnisse sind immer nur 32 Zeichen lang, seit die MD5-Prüfsumme verwendet wurde.

Es gibt keine Begrenzung für die Anzahl der Prüfsummen, die erstellt werden könnten, da jede kleine Änderung der Eingabe eine völlig andere Prüfsumme erzeugen soll. Da die Anzahl der Prüfsummen, die eine kryptografische Hash-Funktion erzeugen kann, begrenzt ist, besteht immer die Möglichkeit, dass Sie auf eine Kollision stoßen.

Aus diesem Grund wurden andere kryptographische Hashfunktionen erstellt. Während MD5 einen 32-stelligen Wert generiert, generiert SHA-1 40 Zeichen, und SHA-2 (512) generiert 128. Je größer die Anzahl der Zeichen, die die Prüfsumme enthält, desto geringer ist die Wahrscheinlichkeit, dass eine Kollision auftritt.