Wann ist es schĂ€dlich fĂŒr Hash

Vorwort
Dieser Text wird eines der ĂŒberarbeiteten Kapitel des Handbuchs zum Informationsschutz des Departements fĂŒr Funktechnik und Steuersysteme sowie des Departements fĂŒr Informationsschutz des Moskauer Instituts fĂŒr Physik und Technologie sein. Das vollstĂ€ndige Tutorial ist auf github verfĂŒgbar (siehe auch Release- EntwĂŒrfe ). Auf Habrir habe ich vor, neue "große" StĂŒcke hochzuladen, um erstens nĂŒtzliche Kommentare und Beobachtungen zu sammeln und zweitens der Community mehr Überblicksmaterial zu nĂŒtzlichen und interessanten Themen zu geben.

Eine zuverlĂ€ssige kryptografische Hash-Funktion konvertiert Klartext in Text einer bestimmten LĂ€nge. Dies stellt die „Persistenz“ sicher: die Schwierigkeit, den ersten und den zweiten Prototypen wiederherzustellen. Oder im Klartext ĂŒber die erste Eigenschaft, die Schwierigkeit, einen solchen Text zu erhalten, wobei der Wert der Hash-Funktion dem angegebenen Wert entspricht.

Unter der KomplexitĂ€t der Wiederherstellung wird die Tatsache verstanden, dass zum Auffinden des ersten Prototyps [einer zuverlĂ€ssigen kryptografischen Hash-Funktion] mindestens ein Durchschnitt abgeschlossen werden muss 2n−1Hash-Operationen, bei denen n- Die Anzahl der Bits in der Ausgabe der kryptografischen Hash-Funktion. Bei einer modernen Hash-Funktion mit einer großen AusgabegrĂ¶ĂŸe (ab 256 Bit) ist der Informationssystementwickler sicher, dass es unmöglich ist, die ursprĂŒnglichen Daten aus dem Hash-Funktionswert wiederherzustellen. Meistens hat er recht.

Es gibt jedoch eine Reihe wichtiger FÀlle, in denen die Wiederherstellung des inversen Bildes oder sogar des Quelltextes trotz der ZuverlÀssigkeit der Hash-Funktion kein Problem darstellt. Dies ist der Fall, wenn die Verwendung einer Hash-Funktion sinnlos ist. Dies ist der Fall, wenn die Anzahl der Varianten des Quelltextes durchsuchbar ist .

Beispiel: Telefonnummer . Unterschiedliche Telefonnummern mit der Vorwahl "+7" und 10 Ziffern sind 1010 ca.233. Moderne GerĂ€te, die fĂŒr die Iteration ĂŒber Hash-Werte optimiert sind, sortieren Millionen von Hashes pro Sekunde. Dies bedeutet, dass die Berechnung der Werte der Hash-Funktionen fĂŒr alle möglichen Telefonnummern mit einer Vorwahl nicht lĂ€nger als einige Sekunden dauert.

Beispiel: Kreditkartennummer (PAN, Zahlungskartennummer ). HĂ€ufig ist die Kartennummer maskiert und zeigt die ersten 4 (6) und / oder letzten 4 Ziffern an, wĂ€hrend der Rest ausgeblendet wird. Die Karte besteht aus 16 Ziffern. Ist es möglich, die Kartennummern zu kreuzen, um sie vor dem Angreifer zu verbergen? Nein. Wenn ein Angreifer 8 Ziffern von 16 (die ersten 4 und letzten 4) sowie den Wert der Hash-Funktion von der vollstĂ€ndigen Kartennummer erhalten hat, kann er die vollstĂ€ndige Nummer in weniger als einer Sekunde wiederherstellen. Dazu muss er alles klĂ€ren 108 ca.226Anzahl Optionen.

Ein interessantes Beispiel mit einer E-Mail-Adresse . Es scheint, dass es aufgrund des Werts einer zuverlĂ€ssigen Hash-Funktion unmöglich ist, die ursprĂŒngliche Adresse wiederherzustellen. Die Anzahl der verschiedenen Varianten von 8 lateinischen Buchstaben und 10 Ziffern gibt es bereits 368 ca.241Optionen fĂŒr die Namen von PostfĂ€chern ohne BerĂŒcksichtigung verschiedener DomĂ€nen von Mail-Diensten ( @mail.ru , @gmail.com usw.). Wenn Sie andere zulĂ€ssige Zeichen verwenden und die Adresse verlĂ€ngern, stehen noch mehr Optionen zur VerfĂŒgung. Aber ... Bis 2006 funktionierte das Projekt Blue Frog (Blue Frog), das seinen Nutzern Anti-Spam-Schutz bot. Er nutzte die automatische Benachrichtigung der Anbieter ĂŒber von ihren Servern gesendete Spam-Nachrichten, wodurch die Werbetreibenden gezwungen wurden, das Versenden von Spam-Nachrichten an mindestens die am Projekt beteiligten Adressen zu verweigern. Um zu verstehen, ob das Postfach dem Teilnehmer gehört oder nicht, wurde eine Datei mit einer Liste von Werten der kryptografischen Hash-Funktion von der Postfachadresse jedes Mitglieds verteilt.

Es wurde davon ausgegangen, dass Spammer jede ihrer Adressen ĂŒberprĂŒfen, um Werbung auf dieser Liste zu senden und gefundene Übereinstimmungen auszuschließen. Das Vorhandensein einer Datei mit den Werten der Hash-Funktion ermöglichte es Angreifern jedoch, genau das Gegenteil zu tun: Identifizieren Sie die Projektteilnehmer und senden Sie ihnen verstĂ€rkt bedeutungslose Nachrichten, um die Verwendung des Blue Frog-Projekts zu verweigern. Einige Zeit nach diesem Angriff (und auch nach anderen, einschließlich DDoS-Angriffen auf Server) stellte das Projekt seine Arbeit ein.

Nach wie vor wirkt sich die Verwendung von Salz, das mit dem Wert der Hash-Funktion geliefert wird, nicht auf die AufzĂ€hlungszeit aus (schĂŒtzt jedoch vor Wörterbuchangriffen).

Mögliche Lösungen fĂŒr die beschriebenen FĂ€lle.

  1. Hash nicht die Werte selbst, sondern die Verkettung des ursprĂŒnglichen Wertes und eines Geheimnisses getrennt gespeichert. Zum Beispiel nicht in der Datenbanktabelle (zusammen mit den Werten der Hash-Funktionen), sondern in der Anwendungsserverkonfiguration. Mit Ă€hnlichem Erfolg können Sie anstelle von Hashing die BlockverschlĂŒsselungsfunktion fĂŒr einen geheimen SchlĂŒssel verwenden.
  2. Verwenden Sie Hash-Funktionen, die nicht nur zuverlĂ€ssig, sondern auch langsam sind. Sowohl fĂŒr den Kryptoanalytiker als auch fĂŒr den legalen Nutzer. Ein Beispiel fĂŒr solche Funktionen ist PBKDF2, bcrypt, scrypt, Argon2, fĂŒr die wir beim Aufruf einer Funktion zusĂ€tzlich die Anzahl der Hash-Iterationen angeben. Wenn jedoch die LĂ€nge der Ausgabe der Hash-Funktion um nur ein Bit (von 256 oder 512) erhöht wird, erhöht sich die KomplexitĂ€t des Angriffs des Kryptoanalytikers um eine binĂ€re Ordnung (um den Faktor zwei), und die Anzahl der Iterationen fĂŒr die Hash-Funktion PBKDF2 verdoppelt sich die KomplexitĂ€t der Angriffe um nur zwei mal. Das heißt, das Erhalten eines Hash-Werts selbst durch einen legalen Benutzer wird hinsichtlich der Rechenressourcen und des Energieverbrauchs kostspielig.

Nachwort
Der Autor ist fĂŒr sachliche und sonstige Kommentare zum Text dankbar.

Source: https://habr.com/ru/post/de477416/


All Articles