Was ist eine kryptografische Hash-Funktion?

click fraud protection

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

Die Hauptanwendung einer kryptografischen Hash-Funktion besteht darin, die Authentizität eines Datenelements zu überprüfen. Zwei Dateien können nur dann als identisch angenommen werden, wenn die aus jeder Datei mit derselben kryptografischen Hash-Funktion generierten Prüfsummen identisch sind.

Einige häufig verwendete kryptografische Hash-Funktionen umfassen MD5 und SHA-1, obwohl es auch viele andere gibt.

Kryptografische Hashfunktionen werden oft als "Hashfunktionen" bezeichnet, aber das ist technisch nicht korrekt. Eine Hash-Funktion ist ein allgemeiner Begriff, der kryptografische Hash-Funktionen zusammen mit anderen Arten von Algorithmen wie zyklischen Redundanzprüfungen umfasst.

Kryptografische Hash-Funktionen: Ein Anwendungsfall

Sagen Sie, Sie laden die. herunter neueste Version des Firefox-Browsers

. Aus irgendeinem Grund mussten Sie es von einer anderen Website als der von Mozilla herunterladen. Da es nicht auf einer Site gehostet wird, der Sie vertrauen können, möchten Sie sicherstellen, dass die gerade heruntergeladene Installationsdatei genau der von Mozilla angebotenen entspricht.

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 Mozilla-Site veröffentlichten. Wenn sie gleich sind, können Sie ziemlich sicher sein, dass der Download, den Sie haben, der ist, den Mozilla für Sie vorgesehen hat.

Foto von Formeln und Bildern auf einer Tafel
Yagi Studio / Digital Vision / Getty Images

Können kryptografische Hash-Funktionen umgekehrt werden?

Kryptografische Hash-Funktionen sollen verhindern, dass die von ihnen erstellten Prüfsummen wieder in die Originaltexte rückgängig gemacht werden können. Obwohl sie praktisch nicht rückgängig gemacht werden können, ist der Schutz der Daten jedoch nicht zu 100 Prozent gewährleistet.

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

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

Hier ist eine vereinfachte Version einer Rainbow-Tabelle, um zu zeigen, wie man mit der kryptografischen Hash-Funktion SHA-1 arbeiten würde:

Beispiel für eine Regenbogentabelle
Klartext SHA-1 Prüfsumme
12345 8cb2237d0679ca88db6464eac60da96345513964
Passwort1 e38ad214943daad1d64c102faec29de4afe9da3d
ich liebe meinen Hund 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 bieten einige Websites, die Benutzerpasswörter Führen Sie zusätzliche Funktionen für den kryptografischen Hash-Algorithmus aus, nachdem der Wert generiert wurde, aber bevor er gespeichert wird. Dieser Prozess erzeugt einen neuen Wert, den nur der Webserver versteht und der nicht mit der ursprünglichen Prüfsumme übereinstimmt.

Nachdem beispielsweise ein Passwort eingegeben und die Prüfsumme generiert wurde, kann es in mehrere Teile aufgeteilt werden und neu angeordnet, bevor es in der Passwortdatenbank gespeichert wird, oder bestimmte Zeichen könnten mit vertauscht werden Andere. Beim Versuch, sich bei der nächsten Anmeldung des Benutzers zu authentifizieren, macht der Webserver dies rückgängig zusätzliche Funktion, und die ursprüngliche Prüfsumme wird erneut generiert, um zu überprüfen, ob das Passwort eines Benutzers ist gültig.

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, ist es nicht hilfreich, die Passwort-Prüfsummen zu kennen.

Passwörter und kryptografische Hash-Funktionen

Eine Datenbank speichert Benutzerkennwörter ähnlich einer Regenbogentabelle. Wenn Ihr Passwort eingegeben wird, wird die Prüfsumme generiert und mit dem mit Ihrem Benutzernamen hinterlegten verglichen. Sie erhalten dann Zugriff, wenn beide identisch sind.

Da eine kryptografische Hash-Funktion eine nicht umkehrbare Prüfsumme erzeugt, ist es für Sie sicher, Ihr Passwort so einfach zu gestalten wie 12345, Anstatt von 12@34$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 gilt, wenn ein Angreifer versucht, Ihr Passwort durch Erraten der MD5-Prüfsumme herauszufinden, 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 Versuche unternommen werden, ein Passwort zu erraten. In diesem Fall wäre es leicht zu erraten 12345, aber es ist 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 weniger allgemeiner) Passwörter ausprobieren kann 12345 ist eines dieser gängigen Passwörter.

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

Weitere Informationen zu kryptografischen Hash-Funktionen

Es mag den Anschein haben, als ob kryptografische Hash-Funktionen mit der Verschlüsselung zusammenhängen, aber die beiden funktionieren auf unterschiedliche Weise.

Die Verschlüsselung ist ein Zwei-Wege-Prozess, bei dem etwas verschlüsselt wird, um unlesbar zu werden, und dann später entschlüsselt wird, um wieder normal verwendet zu werden. Du könntest Gespeicherte Dateien verschlüsseln damit jeder, der auf sie zugreift, sie nicht verwenden kann, oder Sie verwenden können Verschlüsselung der Dateiübertragung um Dateien zu verschlüsseln, die über ein Netzwerk übertragen werden, wie die, die Sie online hochladen oder herunterladen.

Kryptografische Hashfunktionen funktionieren anders, da die Prüfsummen nicht mit einem speziellen Dehashing-Passwort rückgängig gemacht werden sollen. Der einzige Zweck kryptografischer Hash-Funktionen besteht darin, zwei Daten zu vergleichen, beispielsweise 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 geschieht, wird dies als Kollision bezeichnet, was ein großes Problem darstellt, wenn man bedenkt, dass der Sinn einer kryptografischen Hash-Funktion darin besteht, für jede Dateneingabe eindeutige Prüfsummen zu erstellen.

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

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

Die Anzahl der Prüfsummen, die erstellt werden können, ist unbegrenzt, da jede winzige Ä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 kryptografische Hash-Funktionen erstellt. Während MD5 einen 32-stelligen Wert generiert, generiert SHA-1 40 Zeichen und SHA-2 (512) 128. Je mehr Zeichen die Prüfsumme hat, desto geringer ist die Wahrscheinlichkeit, dass eine Kollision auftritt.