Was ist eine kryptografische Hash-Funktion?

Inhaltsverzeichnis:

Was ist eine kryptografische Hash-Funktion?
Was ist eine kryptografische Hash-Funktion?
Anonim

Eine kryptografische Hash-Funktion (CHF) ist ein Algorithmus, der auf Daten wie einer einzelnen Datei oder einem Passwort ausgeführt werden kann, um einen Wert namens Prüfsumme zu erzeugen.

Der Hauptzweck eines CHF besteht darin, die Authentizität eines Datenstücks zu überprüfen. Zwei Dateien können nur dann als identisch angenommen werden, wenn die Prüfsummen, die von jeder Datei unter Verwendung derselben kryptografischen Hash-Funktion generiert werden, identisch sind.

Einige häufig verwendete kryptografische Hash-Funktionen umfassen MD5 und SHA-1, obwohl es auch viele andere gibt. Diese werden oft als "Hash-Funktionen" bezeichnet, aber das ist technisch nicht korrekt. Eine Hash-Funktion ist ein allgemeiner Begriff, der CHFs zusammen mit anderen Arten von Algorithmen wie zyklischen Redundanzprüfungen umfasst.

Kryptographische Hash-Funktionen: Ein Anwendungsfall

Angenommen, Sie laden die neueste Version des Firefox-Browsers herunter. Aus irgendeinem Grund mussten Sie es von einer anderen Website als der von Mozilla herunterladen. Da es nicht auf einer Website gehostet wird, der Sie vertrauen gelernt haben, möchten Sie sicherstellen, dass die Installationsdatei, die Sie gerade heruntergeladen haben, genau die gleiche ist, die Mozilla anbietet.

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

Image
Image

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

Kryptografische Hash-Funktionen sollen verhindern, dass die Prüfsummen, die sie erstellen, in den ursprünglichen Text rückgängig gemacht werden können. Obwohl sie praktisch nicht rückgängig gemacht werden können, ist der Schutz von Daten nicht zu 100 Prozent garantiert.

Hacker können eine Regenbogentabelle verwenden, um den Klartext einer Prüfsumme herauszufinden. Regenbogentabellen sind Wörterbücher, die Tausende, Millionen oder sogar Milliarden von Prüfsummen neben ihrem entsprechenden Klartextwert auflisten.

Obwohl dies den kryptografischen Hash-Algorithmus technisch nicht umkehrt, könnte es genauso gut sein, da es so einfach zu tun ist. Da keine Regenbogentabelle alle möglichen existierenden Prüfsummen auflisten kann, sind sie normalerweise nur für einfache Ausdrücke wie schwache Passwörter hilfreich.

Hier ist eine vereinfachte Version einer Regenbogentabelle, um zu zeigen, wie man arbeiten würde, wenn man die kryptografische Hash-Funktion SHA-1 verwendet:

Rainbow Table Beispiel
Klartext SHA-1 Prüfsumme
12345 8cb2237d0679ca88db6464eac60da96345513964
Passwort1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

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

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

Zum Beispiel, nachdem ein Passwort eingegeben und die Prüfsumme generiert wurde, kann es in mehrere Teile getrennt und neu angeordnet werden, bevor es in der Passwort-Datenbank gespeichert wird, oder bestimmte Zeichen können mit anderen vertauscht werden. Beim nächsten Authentifizierungsversuch des Benutzers, der sich anmeldet, macht der Server diese zusätzliche Funktion rückgängig und die ursprüngliche Prüfsumme wird erneut generiert, um zu überprüfen, ob das Passwort eines Benutzers gültig ist.

Diese Schritte schränken die Nützlichkeit eines Hacks ein, bei dem alle Prüfsummen gestohlen werden. Die Idee ist, eine unbekannte Funktion auszuführen. Wenn der Hacker also den kryptografischen Hash-Algorithmus kennt, aber nicht den benutzerdefinierten, dann ist es nicht hilfreich, die Prüfsummen des Passworts zu kennen.

Passwörter und kryptografische Hash-Funktionen

Eine Datenbank speichert Benutzerkennwörter ähnlich wie eine Regenbogentabelle. Bei der Eingabe Ihres Passwortes wird die Prüfsumme generiert und mit der hinterlegten mit Ihrem Benutzernamen verglichen. Sie erh alten dann Zugriff, wenn die beiden identisch sind.

Angesichts der Tatsache, dass ein CHF eine nicht umkehrbare Prüfsumme erzeugt, ist es für Sie sicher, Ihr Passwort so einfach wie 12345 statt 12@34 zu machen $5, einfach weil die Prüfsummen selbst nicht zu verstehen sind? Nein, und hier ist der Grund.

Diese beiden Passwörter sind beide nicht zu entziffern, wenn man sich nur die Prüfsummen ansieht:

MD5 für 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 für 12@34$5: a4d3cc004f487b18b2ccd4853053818b

Auf den ersten Blick denken Sie vielleicht, dass es in Ordnung ist, eines dieser Passwörter zu verwenden. Dies trifft zu, wenn ein Angreifer versucht, Ihr Passwort herauszufinden, indem er die MD5-Prüfsumme errät, was niemand tut, aber nicht, wenn ein Brute-Force- oder Wörterbuchangriff durchgeführt wird, was eine gängige Taktik ist.

Ein Brute-Force-Angriff tritt auf, wenn mehrere zufällige Stiche unternommen werden, um ein Passwort zu erraten. In diesem Fall wäre es einfach, 12345 zu erraten, aber ziemlich schwierig, zufällig das andere 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) Passwörter ausprobieren kann, und 12345 ist eines dieser häufigen Passwörter.

Obwohl kryptografische Hash-Funktionen schwer bis unmöglich zu erratende Prüfsummen erzeugen, sollten Sie dennoch ein komplexes Passwort für alle Ihre Online- und lokalen Benutzerkonten verwenden.

Weitere Informationen zu kryptografischen Hash-Funktionen

Es mag den Anschein haben, dass kryptografische Hash-Funktionen mit Verschlüsselung verwandt sind, aber die beiden funktionieren auf unterschiedliche Weise.

Verschlüsselung ist ein bidirektionaler Prozess, bei dem etwas verschlüsselt wird, um unlesbar zu werden, und später wieder entschlüsselt wird, um wieder normal verwendet zu werden. Sie können Dateien verschlüsseln, die Sie gespeichert haben, damit jeder, der darauf zugreift, sie nicht verwenden kann, oder Sie können Dateiübertragungsverschlüsselung verwenden, um Dateien zu verschlüsseln, die über ein Netzwerk übertragen werden, wie z. B. die, die Sie online hochladen oder herunterladen.

Kryptografische Hash-Funktionen funktionieren anders, da die Prüfsummen nicht mit einem speziellen Dehashing-Passwort umgekehrt werden sollen. Der einzige Zweck von CHFs besteht darin, zwei Daten zu vergleichen, z. B. beim Herunterladen von Dateien, Speichern von Passwörtern und Abrufen von Daten aus einer Datenbank.

Es ist möglich, dass eine kryptografische Hash-Funktion dieselbe Prüfsumme für verschiedene Datenteile erzeugt. Wenn dies passiert, spricht man von einer Kollision, was ein großes Problem darstellt, wenn man bedenkt, dass der ganze Sinn der Funktion darin besteht, eindeutige Prüfsummen für jede Dateneingabe zu erstellen.

Kollisionen können auftreten, weil jeder CHF unabhängig von den Eingabedaten einen Wert fester Länge erzeugt. Beispielsweise generiert die kryptografische Hash-Funktion von MD5 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 und e10adc3949ba59abbe56e057f20f883e für drei völlig unterschiedliche Datenblöcke.

Die erste Prüfsumme ist von 12345. Die zweite wurde aus über 700 Buchstaben und Zahlen generiert, die dritte aus 123456. Alle drei Eingaben sind unterschiedlich lang, aber die Ergebnisse sind immer nur 32 Zeichen lang, da MD5-Prüfsumme verwendet wurde.

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

Deshalb wurden andere kryptografische Hash-Funktionen erstellt. Während MD5 einen 32 Zeichen langen Wert generiert, generiert SHA-1 40 Zeichen und SHA-2 (512) 128. Je mehr Zeichen die Prüfsumme hat, desto unwahrscheinlicher ist es, dass eine Kollision auftritt.

Empfohlen: