Deutsch

Entwicklertools · SHA-Hash-Rechner

Hashing ist keine Verschlüsselung: Warum ein SHA-256-Hash nicht entschlüsselt werden kann

· Warum es wichtig ist

Kryptographie Sicherheit Kodierung

Eingabe, die in eine Hash-Funktion fließt, mit einem Pfeil, der zum Verdauen nach vorne zeigt, aber keinem Pfeil, der nach hinten zurückkehrt
Original-ToolAcre-Vektorillustration

Es gibt keinen Schlüssel und keine Umkehrung: Ein Hash ist eine Einwegfunktion. In diesem Beitrag wird der Unterschied zur Verschlüsselung erklärt, warum Hash-Lookup-Sites scheinbar Hashes umkehren und was das für das Hashing personenbezogener Daten bedeutet.

Bitte entschlüsseln Sie diese Hashes – das Ticket, das ein Missverständnis darüber aufdeckt, was Hashing ist

Es kommt ein Support-Ticket mit der Bitte, einige SHA-256-Hashes zu entschlüsseln. Der Entwickler, der es liest, vermutet ein Missverständnis darüber, was Hashing ist. Die Verwirrung macht Sinn – sowohl beim Hashing als auch bei der Verschlüsselung kommen kryptografische Algorithmen zum Einsatz, beide erzeugen eine Ausgabe, die verschlüsselt aussieht, und beide sind sicherheitsrelevant. Aber es sind grundsätzlich unterschiedliche Werkzeuge. Die Verschlüsselung ist umkehrbar; Hashing ist nicht. Diese Unterscheidung ist so wichtig, dass ihre Verwechslung tatsächliche Sicherheitssysteme zerstört hat. Das Ticket stellt eine häufige Verständnislücke dar, die sich auf das Systemdesign auswirkt.

Eine Hash-Funktion ist eine Einwegfunktion. Sie können eine Eingabe hashen, um einen Digest zu erhalten, aber es gibt keinen Schlüssel und keine umgekehrte Operation, die die Eingabe aus dem Digest wiederherstellt. Dies stellt keine Einschränkung oder einen Fehler dar; Es ist die definierende Eigenschaft eines Hashs. Der ToolAcre SHA-Hash-Rechner erstellt Zusammenfassungen des von Ihnen eingefügten Textes und es gibt keine Schaltfläche „Entschlüsseln“, da keine Schaltfläche vorhanden sein könnte. Die Operation ist durch Mathematik irreversibel, nicht durch Wahl. Das Fehlen einer Umkehrfunktion ist keine Funktion, die Sie anfordern können.

Die Verschlüsselung hat einen Schlüssel und eine Umkehrung; Hashing hat weder das eine noch das andere – den Definitionsunterschied im Klartext

Die Verschlüsselung funktioniert anders. Ein Verschlüsselungsalgorithmus verwendet Klartext und einen Schlüssel und erzeugt Chiffretext. Der Chiffretext ist verschlüsselt und ohne den Schlüssel nicht lesbar. Entscheidend ist, dass derselbe Schlüssel den Chiffretext wieder in Klartext entschlüsseln kann. Die Verschlüsselung ist von Natur aus umkehrbar. Sie verschlüsseln, um die Daten geheim zu halten; Sie entschlüsseln, um es erneut zu lesen. Die Sicherheit der Verschlüsselung hängt von der Geheimhaltung des Schlüssels ab. Nur der Inhaber des Schlüssels kann die Transformation rückgängig machen.

Hashing hat keinen Schlüssel und keine Umkehrung. Sie hashen etwas, um einen Digest mit fester Länge zu erstellen. Die gleiche Eingabe erzeugt immer den gleichen Digest. Eine andere Eingabe erzeugt einen anderen Digest – das ist die Kollisionswiderstandseigenschaft. Sie können jedoch keine Zusammenfassung erstellen und einen Input erstellen. Die Funktion funktioniert nur in eine Richtung. Wenn Sie Daten verschlüsseln müssen, um sie später entschlüsseln zu können, ist Hashing das falsche Werkzeug. Wenn Sie einen Fingerabdruck von Daten zur Verifizierung oder Adressierung von Inhalten benötigen, ist Hashing die richtige Lösung. Um das richtige Werkzeug auszuwählen, muss man den Unterschied verstehen.

Wie Hash-Suchseiten funktionieren – vorberechnete Wörterbücher allgemeiner Eingaben, keine Entschlüsselung

Diese Unterscheidung ist so wichtig, dass sie der Sicherheit der Passwortüberprüfung zugrunde liegt. Ein Server speichert keine Passwörter. Es speichert das Ergebnis des Hashings des Passworts. Wenn sich ein Benutzer anmeldet, hasht der Server seine Übermittlung und vergleicht sie mit dem gespeicherten Wert. Wenn der Server kompromittiert und seine Datenbank gestohlen wird, erhält der Angreifer nicht die Passwörter selbst, sondern nur die Hashes. Die einseitige Natur des Hashs bedeutet, dass der Angreifer die Passwörter nicht aus den Hashes zurückentwickeln kann. Von dieser Eigenschaft hängt die Sicherheit des Systems ab.

Würde der Server stattdessen Verschlüsselung verwenden – wenn er Passwörter verschlüsselte und entschlüsseln könnte –, würde ein Kompromittierungsprozess, der den Schlüssel stiehlt, jedes Passwort sofort preisgeben. Hashing wird speziell deshalb gewählt, weil es irreversibel ist. Aus diesem Grund verwenden Passwortsysteme Hashing und keine Verschlüsselung. Die Irreversibilität stellt keine Einschränkung dar; es ist das gesamte Sicherheitsmodell. Eine verschlüsselte Passwortdatenbank ist grundsätzlich schwächer als eine gehashte, da die Verschlüsselung umkehrbar ist.

Eingaben mit geringer Entropie sind die Schwäche – weshalb das Hashing einer E-Mail-Adresse, Telefonnummer oder Kurz-PIN wenig Schutz bietet

Es gibt Hash-Suchseiten, um die Illusion einer Entschlüsselung zu erzeugen. Diese Websites hosten vorberechnete Tabellen mit allgemeinen Eingaben und deren Hashes. „Regenbogentabellen“ sind vorgefertigte Wörterbücher: Eine Tabelle kann die Hashes der tausend häufigsten Passwörter oder alle alphanumerischen Kombinationen bis zu einer bestimmten Länge oder ganze Wortlisten in mehreren Sprachen enthalten. Der Seitenbetreiber hat die Hashing-Arbeit bereits durchgeführt und die Ergebnisse gespeichert. Wenn jemand einen Hash an eine Suchseite sendet, entschlüsselt die Seite nichts. Es sucht einfach nach dem Hash in seiner Tabelle. Wenn der Hash vorhanden ist – wenn ein Wörterbuchwort oder ein Passwortmuster zufällig übereinstimmt – gibt die Tabelle die ursprüngliche Eingabe zurück. Für jemanden, der mit der Technik nicht vertraut ist, sieht das wie eine magische Entschlüsselung aus, aber es handelt sich lediglich um eine Datenbanksuche. Die Site kehrt den Hash nicht um; es vergleicht es mit vorberechneten Werten.

Ausgearbeitetes Beispiel: Einen erratenen Wert hashen und zeigen, wie ein Wörterbuch ihn wiederherstellen würde, im Vergleich zu einem langen Zufallswert, den dies nicht konnte

Aus diesem Grund sind Eingaben mit niedriger Entropie anfällig. Wenn Sie ein allgemeines Passwort wie „Passwort“ oder einen vorhersehbaren Wert wie die E-Mail-Adresse einer Person hashen, besteht eine begründete Chance, dass eine Suchseite diesen Hash bereits berechnet und gespeichert hat. Die Suche gibt sofort den ursprünglichen Wert zurück. Wenn Sie eine zufällige Zeichenfolge mit 256 Zeichen hashen, wird dieser bestimmte Hash auf keiner Suchseite der Welt vorberechnet. Die Suchseite gibt nichts zurück, da die Eingabe nicht in ihrem Wörterbuch enthalten war. Die Sicherheit des Hash hängt vollständig von der Entropie der Eingabe ab.

Der ToolAcre SHA-Hash-Rechner demonstriert dies direkt. Hashen Sie ein gebräuchliches Wort, und ein entschlossener Angreifer könnte es nachschlagen, wenn er seinen eigenen Wörterbuchdienst betreibt. Hash ist ein langer Zufallswert, und selbst ein umfangreiches Wörterbuch würde ihn wahrscheinlich nicht enthalten. Der Determinismus des Hashings – identische Eingaben führen zu identischen Ausgaben – macht Wörterbuchangriffe möglich. Dies macht Hashes auch für die Verifizierung nützlich. Die gleiche Eigenschaft, die die Suche ermöglicht, ermöglicht auch die Überprüfung.

Wenn Sie tatsächlich eine Verschlüsselung wünschen – die Fälle, in denen Daten wieder herauskommen müssen und in denen ein Hash das falsche Werkzeug ist

Wenn Sie tatsächlich eine Verschlüsselung wünschen – wenn Sie geheime Daten senden und später wiederherstellen müssen – ist eine Verschlüsselung das richtige Werkzeug. AES ist der moderne Standard für symmetrische Verschlüsselung: Ein Schlüssel wird gemeinsam genutzt und verschlüsselt Klartext und entschlüsselt Chiffretext. Für die asymmetrische Verschlüsselung wird RSA oder Elliptische-Kurven-Kryptographie verwendet: Ein öffentlicher Schlüssel verschlüsselt und ein privater Schlüssel entschlüsselt. Diese Werkzeuge sind konstruktionsbedingt umkehrbar. Die Sicherheit beruht auf der Geheimhaltung des Schlüssels, nicht auf der Irreversibilität. Der Fehler besteht darin, Hashing dort zu verwenden, wo eine Verschlüsselung erforderlich ist. Wenn Sie eine Kreditkartennummer hashen, um sie später zu verifizieren, haben Sie keine Möglichkeit, sie zu entschlüsseln. Wenn Sie eine persönliche Kennung hashen und diese später wiederherstellen müssen, war Hashing die falsche Wahl. Dies sind Situationen, die eine Verschlüsselung erfordern.

Ein ausgearbeitetes Beispiel trennt die beiden Verwendungszwecke klar. Sie verfügen über eine Liste von Benutzer-IDs, die voreinander und vor Ihren eigenen Mitarbeitern geheim gehalten werden müssen. Sie verschlüsseln sie mit AES und speichern das Ergebnis. Wenn Sie später einen Benutzer suchen müssen, entschlüsseln und lesen Sie ihn. Hashing würde nicht funktionieren; Sobald die IDs gehasht sind, gehen sie für immer verloren. Im Gegensatz dazu haben Sie Benutzerpasswörter. Sie hashen sie und speichern den Hash. Wenn sich ein Benutzer anmeldet, hashen Sie seine Übermittlung und vergleichen sie mit dem gespeicherten Wert. Sie müssen die Passwörter selbst nie wiederherstellen. Eine Verschlüsselung wäre falsch; Nach der Ersteinrichtung haben Sie keine Verwendung mehr für Klartext-Passwörter.

Was dies nicht abdeckt – Keyed- und Salted-Hashing-Designs, die die Messlatte höher legen, aber ein separates Thema sind

Salting und Keyed Hashing verdienen eine gesonderte Behandlung, da keines von beiden einen Digest in Verschlüsselung umwandelt. Ein Salt sorgt dafür, dass gleiche Eingaben mit niedriger Entropie unterschiedliche gespeicherte Datensätze erzeugen, und ein Schlüssel kann einschränken, wer einen gültigen Authentifizierungswert berechnet. Die Ausgabe bleibt nicht umkehrbar; Bei Wiederherstellungsversuchen werden immer noch Kandidateneingaben getestet, anstatt eine Umkehrung anzuwenden.

Passwort-Hashing verursacht bewusste Kosten und einen Salt, während HMAC Nachrichten mit einem geheimen Schlüssel authentifiziert. ToolAcre implementiert keine der beiden Operationen. Wenn man sie außerhalb dieses Artikels hält, vermeidet man die gefährliche Abkürzung, einfach SHA-256 plus ein improvisiertes Präfix als Äquivalent zu einem überprüften Passwort-Datensatz oder einer Nachrichtenauthentifizierungskonstruktion zu beschreiben.

Fazit: Nur in eine Richtung – der ToolAcre SHA-Hash-Rechner berechnet Digests; Es gibt keine Rückwärtstaste, da keine existieren kann

Der ToolAcre SHA-Hash-Rechner zeigt Ihnen das Hashing in Aktion: Text einfügen, Digest erstellen, fertig. Eine Rückabwicklung ist weder möglich noch beabsichtigt. Das Tool weigert sich korrekterweise, eine „Entschlüsselungs“-Funktion bereitzustellen, da eine solche nicht existieren kann. Wenn Sie eine Verschlüsselung benötigen, verwenden Sie eine geeignete Verschlüsselung. Das Fehlen einer Umkehrung stellt keine Einschränkung des Tools dar; Es ist eine mathematische Tatsache beim Hashing. Einwegfunktionen sind gerade deshalb leistungsstarke Werkzeuge, weil sie nicht rückgängig gemacht werden können. Sie übermitteln Daten auf eine Weise, die nicht zurückgenommen werden kann. Sie ermöglichen eine Verifizierung, ohne das Original preiszugeben. Sie ermöglichen Passwortsysteme, die auch dann sicher sind, wenn die Datenbank gestohlen wird. Gesalzene und richtig abgestimmte Passwort-Hashes können durch Raten nicht mehr rückgängig gemacht werden. Die Irreversibilität ist der Sicherheitsmechanismus.

Der ToolAcre SHA-Hash-Rechner berechnet Digests, die unidirektional und zielgerichtet sind und von der browsereigenen Web-Crypto-Implementierung ordnungsgemäß berechnet werden. Wenn Sie zur Überprüfung oder Integrität einen Hash benötigen, verwenden Sie ihn. Wenn Sie Daten geheim halten und später abrufen müssen, ist Verschlüsselung Ihr Werkzeug. Das Verständnis des Unterschieds zwischen irreversiblem Hashing und reversibler Verschlüsselung ist für die Sicherheit und den Aufbau von Systemen, die das tun, was Sie tatsächlich benötigen, von grundlegender Bedeutung.