Deutsch

Entwicklertools · SHA-Hash-Rechner

Kollision, Vorbild und zweites Vorbild: Die drei Hash-Sicherheitsziele

· Hintergrund

sha-256 Kryptographie Sicherheit

Drei Diagramme, die den Widerstand gegen das Vorbild, den Widerstand gegen das zweite Vorbild und den Kollisionswiderstand zeigen
Original-ToolAcre-Vektorillustration

In einer Empfehlung heißt es, dass ein Algorithmus Kollisionsprobleme hat und Sie wissen müssen, ob Ihre Nutzung davon betroffen ist. Dieser Beitrag definiert die drei Widerstandseigenschaften, zeigt, welche Anwendungsfälle von welchen abhängen, und wendet sie auf SHA-1 an.

Ist meine Nutzung beeinträchtigt? – die Frage, die ein Berater selten direkt beantwortet

Es kommt eine Meldung, die besagt, dass SHA-1 Kollisionsprobleme hat, sodass Ihr System aktualisiert werden muss. Was aber, wenn Ihr System SHA-1 nur zur Schlüsselableitung und nicht zur Authentifizierung von Nachrichten verwendet? Was wäre, wenn SHA-1 nur zum Deduplizieren identischer Dateien und nicht zum Nachweis der Authentizität verwendet würde? Die Frage „Ist mein System betroffen?“ kann nicht beantwortet werden, ohne zu verstehen, welche Eigenschaft der Hash-Funktion tatsächlich fehlerhaft ist und von welcher Eigenschaft Ihr Anwendungsfall abhängt.

Eine Hash-Funktion bietet mehrere Sicherheitseigenschaften: Widerstand gegen Vorbilder, Widerstand gegen zweite Vorbilder und Kollisionswiderstand. Eine Unterbrechung einer Eigenschaft führt nicht zur Zerstörung einer anderen Eigenschaft, und einige Anwendungsfälle hängen nur von Eigenschaften ab, die sicher bleiben. Der ToolAcre SHA-Hash-Rechner zeigt die Algorithmen und ihre Digest-Breiten an, Eigenschaften, die die Grenzen für jedes Sicherheitsziel bestimmen. Das Verständnis dieser Eigenschaften ist der erste Schritt bei der Entscheidung, ob eine Empfehlung Auswirkungen auf Ihr System hat.

Preimage-Widerstand – bei einem gegebenen Hash können Sie keine Eingabe finden, die ihn erzeugt

Preimage-Resistenz bedeutet, dass es bei einem gegebenen Digest unmöglich sein sollte, eine Eingabe zu finden, die diesen Digest erzeugt. Sie erhalten den Hash eines Passworts und möchten das Passwort erraten; Dies ist ein Preimage-Angriff. Second Preimage Resistance bedeutet, dass es bei gegebener Nachricht und ihrem Hash unmöglich sein sollte, eine andere Nachricht mit demselben Hash zu finden. Sie haben eine heruntergeladene Datei und ihre Prüfsumme SHA-256; Ein Angreifer möchte die Datei mit einer anderen Datei mit demselben Hash austauschen. Dies ist ein zweiter Preimage-Angriff.

Kollisionsresistenz bedeutet, dass es unmöglich sein sollte, zwei verschiedene Nachrichten mit demselben Hash zu finden. Sie unterschreiben ein Dokument; Ein Angreifer möchte ein anderes Dokument mit derselben Signatur erstellen. Das ist ein Kollisionsangriff. Diese drei Szenarien erfordern unterschiedlich viel Arbeit vom Angreifer und die Sicherheitsgrenzen sind unterschiedlich. Die Vorbildresistenz ist die stärkste Eigenschaft und wird selten gebrochen. Wenn ein Digest vorliegt, erfordert das Auffinden eines Vorbilds eine Brute-Force-Suche im Raum möglicher Eingaben. Die Digest-Breite wirkt sich auf den generischen Suchraum aus, aber in diesem Artikel wird keine Operationsanzahl angegeben, ohne sie abzuleiten und das Angriffsmodell zu definieren.

Zweiter Preimage-Widerstand – bei einer gegebenen Eingabe können Sie keine andere Eingabe mit demselben Hash finden

Der zweite Urbild-Widerstand ist der zweitstärkste und wird auch isoliert selten durchbrochen. Bei gegebener Nachricht und ihrem Hash erfordert das Finden einer anderen Nachricht mit demselben Hash ebenfalls exponentielle Arbeit in der Digest-Größe. Second-Preimage- und Kollisionssuchen bieten dem Angreifer unterschiedliche Auswahlmöglichkeiten, sodass ihre generischen Grenzen nicht austauschbar sind. Hier genügt die qualitative Unterscheidung; Ohne eine Inline-Ableitung wird keine numerische Grenze geltend gemacht. Ein Algorithmus verliert die Resistenz gegen das zweite Vorbild, wenn es einen strukturellen Angriff gibt, der keine rohe Gewalt erfordert.

Die Kollisionsbeständigkeit ist die schwächste der drei Eigenschaften und diejenige, die am häufigsten gebrochen oder verbogen wird. Bei einer Kollisionssuche kann der Angreifer im Gegensatz zu den anderen beiden Zielen beide Eingaben auswählen, sodass eine andere generische Grenze vorliegt. In diesem Artikel werden Geburtstagszahlen und Hardware-Zeitpläne absichtlich weggelassen, da deren Ableitung und Beschaffung außerhalb des verifizierten Materials liegt.

Kollisionsresistenz – Sie können keine zwei Eingaben mit demselben Hash finden und warum dies die schwächste der drei ist

Die Zuordnung der drei Sicherheitseigenschaften zu Anwendungsfällen zeigt, welche Eigenschaft für jede Aufgabe erforderlich ist. Die Deduplizierung basiert auf der Annahme, dass es sich bei zwei Dateien, die denselben Hash haben, um dieselbe Datei handelt. Dies erfordert Kollisionsresistenz: Wenn Kollisionen möglich sind, kann ein Angreifer zwei verschiedene Dateien mit demselben Hash erstellen und die Deduplizierungsinvariante zerstören. Dies ist jedoch eine schwache Anforderung, da Kollisionen in der Praxis äußerst selten sind, auch wenn sie theoretisch möglich sind.

Digitale Signaturen erfordern Kollisionsresistenz in einer starken Form. Wenn ein Unterzeichner eine Signatur für den Hash eines Dokuments erstellt und ein Prüfer später die Signatur überprüft, müssen beide denselben Hash überprüfen. Wenn es zu Kollisionen kommt, kann ein Angreifer eine Signatur für ein anderes Dokument fälschen, indem er eine Kollision mit dem signierten Dokument feststellt. Dies ist der Angriff, der das Upgrade von SHA-1 auf SHA-256 in Zertifikaten motivierte. Ein von einer Zertifizierungsstelle signiertes Zertifikat und ein gefälschtes Zertifikat mit derselben Signatur bestehen beide die Überprüfung, wenn der Hash eine Kollision aufweist.

Die Kollisionsbeständigkeit unterscheidet sich von den Zielen des Vorbilds. Ohne Ableitung erscheinen keine Geburtstagsfiguren

Content-adressierter Speicher verwendet Hashes als Suchschlüssel. Wenn eine Datei an dem durch ihren Hash bestimmten Speicherort gespeichert und später mit demselben Hash abgerufen wird, müssen die beiden Vorgänge dieselbe Datei erreichen. Dies erfordert Kollisionsresistenz, wenn es aktive Angreifer gibt, aber nur einen zweiten Preimage-Widerstand, wenn Angreifer passiv sind. Ein passiver Angreifer kann keine Kollision herbeiführen; Sie können lediglich beobachten, ob legitime Dateien zufällig kollidieren.

Die Download-Überprüfung verwendet eine Prüfsumme, um zu bestätigen, dass eine aus dem Internet abgerufene Datei nicht beschädigt ist. Die Prüfsumme wird normalerweise zusammen mit der Datei von einer vertrauenswürdigen Quelle veröffentlicht. Ein Angreifer, der die heruntergeladene Datei verändert, kann die Prüfsumme ohne Zugriff auf die vertrauenswürdige Quelle nicht aktualisieren. Dieser Anwendungsfall erfordert eine zweite Preimage-Resistenz: Angesichts der Originaldatei und ihrer Prüfsumme sollte der Angreifer nicht in der Lage sein, eine andere Datei mit derselben Prüfsumme zu erstellen. SHA-1 Der zweite Preimage-Widerstand ist trotz der Kollisionsunterbrechungen immer noch solide.

Integrität und Benennungsverwendungen den erforderlichen Eigenschaften zuordnen; Einfache Hashes sind keine Passwortspeicherung

Die Passwortspeicherung ist der einzige Anwendungsfall, bei dem eine Hash-Funktion nicht das richtige Werkzeug ist. Wenn Passwörter als SHA-256-Hashes gespeichert werden und die Hash-Datenbank durchgesickert ist, kann ein Angreifer einen Wörterbuchangriff ausführen: Hashen Sie Millionen von Vermutungen und prüfen Sie, ob sie mit den gespeicherten Hashes übereinstimmen. Der Angreifer benötigt nur ein Preimage für jedes Passwort und eine schnelle Funktion bietet dem Angreifer eine effiziente Offline-Vergleichsschleife ohne Begrenzung der Anwendungsrate.

Passwörter benötigen eine absichtlich langsame, speicherintensive, pro Benutzer gesalzene Funktion wie Argon2id, scrypt oder bcrypt. Ein einzigartiger Salt pro Benutzer führt dazu, dass identische Passwörter unterschiedliche gespeicherte Datensätze erzeugen, während die konfigurierten Speicher- und Zeitkosten der Passwortfunktion jeden Kandidaten bewusst teurer machen. Genaue Parameter erfordern ein lokales Benchmarking und werden hier nicht vorgeschrieben. Der ToolAcre SHA-Hash-Rechner führt kein Passwort-Hashing durch und in der Anleitungsdokumentation wird erklärt, warum SHA-256 für diesen Anwendungsfall ungeeignet ist.

Funktioniertes Beispiel – Anwenden der Zuordnung auf SHA-1 in einem Git-Repository im Vergleich zu SHA-1 in einem Zertifikat

Ein funktionierendes Beispiel: SHA-1 in einem Git-Repository. Jeder Git-Commit hat einen SHA-1-Hash als Objekt-ID. Ist ein Git-Repository anfällig, wenn der Kollisionswiderstand von SHA-1 gebrochen ist? Die Antwort lautet: vielleicht. Ein Angreifer könnte einen Commit mit demselben SHA-1 wie ein bestehender Commit erstellen und ihn an einen Repository-Server übertragen, der dann möglicherweise unterschiedliche Commits für verschiedene Clients bereitstellt. Dies erfordert jedoch die Auswahl eines bestimmten Ziels und die Berechnung einer Kollision, was selbst bei defektem SHA-1 teuer ist.

Mitglieder des Git-Projekts haben eine Roadmap für die Migration auf SHA-256 veröffentlicht, die Dringlichkeit ist jedoch moderat, da der praktische Angriff sowohl Kollisionstechniken als auch eine Serverkompromittierung erfordert. Für einen Entwickler, der fragt: „Hängt die Sicherheit meines Git-Repositorys von der Kollisionsresistenz SHA-1 ab?“ Die Antwort lautet „Ja“, aber das praktische Risiko ist im Vergleich zu anderen Sicherheitsbedrohungen gering. Der ToolAcre SHA-Hash-Rechner stellt sowohl SHA-1 als auch SHA-256 mit entsprechender Beschriftung bereit, sodass Entwickler beides berechnen und den Unterschied verstehen können.

Takeaway: Benennen Sie die Eigenschaft, bevor Sie in Panik geraten – mit dem ToolAcre SHA-Hash-Rechner können Sie die Digest-Längen sehen, die die Grenzen jedes Algorithmus festlegen

Für jedes System, das SHA-1 verwendet, hängt die Entscheidung für ein Upgrade davon ab, ob der Anwendungsfall die spezifische Eigenschaft erfordert, die fehlerhaft ist. Wenn es sich bei dem Anwendungsfall um digitale Signaturen oder Deduplizierung gegen aktive Angreifer handelt, ist Kollisionsresistenz erforderlich und SHA-1 ist defekt, also aktualisieren Sie sofort auf SHA-256. Wenn es sich bei dem Anwendungsfall um inhaltsadressierten Speicher oder Prüfsummen handelt, ist ein zweiter Preimage-Widerstand erforderlich, und SHA-1 ist für diesen Zweck immer noch sicher, obwohl SHA-256 für die Zukunftssicherheit vorzuziehen ist.

Wenn der Anwendungsfall die Schlüsselableitung oder die Passwortüberprüfung ist, ist Preimage-Widerstand erforderlich, und nichts in diesem Toolkit sollte überhaupt verwendet werden, da schnellere Funktionen für die Schlüsselableitung besser sind. Mit dem ToolAcre SHA-Hash-Rechner können Entwickler Digests berechnen und die Eigenschaften in Aktion sehen. Das Verständnis dieser drei Eigenschaften und deren Zuordnung zu Anwendungsfällen ist die Grundlage für sichere kryptografische Entscheidungen in realen Systemen.