Frage:
Sicherheit von SHA256 und Bitcoins
Tom
2011-06-09 14:06:31 UTC
view on stackexchange narkive permalink

Das Bitcoin-Netzwerk verwendet SHA256 als Kernkomponente für sein Design. Ich bin kein Experte für Kryptografie, aber es scheint mir normalerweise nur eine Frage der Zeit zu sein, bis Sicherheitslücken entdeckt werden (z. B. MD5 und viele andere).

Wie hoch sind die Chancen ähnlicher Sicherheitslücken? werden irgendwann in SHA256 entdeckt und wie schädlich wäre es für das Bitcoin-Netzwerk?

Möglicherweise möchten Sie versuchen, dies auf den IT Security Stack Exchange zu übertragen. Sie sind ziemlich gut darin, sich mit solchen Fragen zu beschäftigen.
md5 ist keine Verschlüsselung, sondern ein Hashing-Algorithmus.
Sechs antworten:
Thomas Pornin
2011-09-30 01:47:32 UTC
view on stackexchange narkive permalink

Der einzige bekannte Weg, um die Sicherheit eines kryptografischen Algorithmus festzustellen, besteht darin, ihn mehrere Jahre lang Hunderten von Kryptographen unter die Lupe zu nehmen und zu sehen, was dabei herauskommt. Die richtige Perspektive ist hier also historisch.

MD5 wurde 1992 veröffentlicht; es wurde tatsächlich im Jahr zuvor (1991) entworfen. 1993 wurden zuerst Schwächen entdeckt, 1996 größere Schwächen (Kollisionen der Kompressionsfunktion, gefunden von Dobbertin). Es dauerte 8 Jahre, bis diese Schwächen 2004 von Wang in tatsächliche Kollisionen umgewandelt wurden. Sieben Jahre später, im Jahr 2011, können wir MD5-Kollisionen nach Belieben (und viel effizienter als mit Wangs ursprünglicher Methode) erstellen, jedoch vorab und zweitens. Die Vorbildwiderstände von MD5 sind nach wie vor so gut wie nie zuvor.

Daraus können wir schließen, dass Schwachstellen in der Hash-Funktion nicht über Nacht auftreten: Wir haben einige Zeit, um zu reagieren. Die ersten MD5-Schwachstellen wurden nur ein Jahr nach ihrer Veröffentlichung entdeckt, und das war in den frühen neunziger Jahren, als an der öffentlichen Forschung in der Kryptographie viel weniger Menschen beteiligt waren als heute.

Mal sehen, was dies für SHA- 256: erstmals 2001 veröffentlicht; Zehn Jahre später (2011) haben wir immer noch keine Ahnung von der geringsten Andeutung einer Schwäche. Dies würde darauf hindeuten, dass SHA-256 tatsächlich robust ist und Kollisionen für SHA-256 nicht gleich um die Ecke sind. Ich habe mir das Bitcoin-Protokoll auch nicht im Detail angesehen, aber es scheint, dass Kollisionen keine echte Gefahr für Bitcoin darstellen - es beruht eher auf Vorbildbeständigkeit, für die nicht nur SHA-256 absolut solide ist, sondern auch MD5 immer noch zuverlässig sein.

Es ist jedoch gefährlich, Statistiken zu einer einzelnen Kennzahl zu erstellen. 2007 wurde geschätzt, dass ein relativ hohes Risiko bestand, dass die Angriffe auf MD5 zu SHA-1 und dann zu SHA-256/512 transportiert werden könnten - dies veranlasste NIST, den SHA-3-Wettbewerb a zu organisieren >. Es stellte sich heraus, dass Angriffe auf SHA-1 irgendwie nicht mehr fortschreiten und es keinen Angriff auf SHA-2 gibt. Ob dies daran liegt, dass SHA-2 wirklich robust ist oder dass alle Kryptographen damit beschäftigt sind, die SHA-3-Kandidaten zu brechen, ist nicht bekannt (aber meine Meinung ist die erstere: SHA-2 ist ein sicherer Hash-Algorithmus).

Secure
2011-06-09 15:10:33 UTC
view on stackexchange narkive permalink

Sicherheitslücken können hier auf verschiedenen Ebenen auftreten.

1) Es kann ein theoretischer Angriff entdeckt werden, der die für einen erfolgreichen Angriff erforderliche Komplexität verringert, jedoch nicht niedrig genug ist, um praktisch zu sein. Das heißt, Aus technischer Sicht wird der Algorithmus als fehlerhaft angesehen, ist jedoch für jede praktische Verwendung sicher.

2) Es wird ein Angriff entdeckt, der die Komplexität auf ein Niveau reduziert, das von einem großen Verteilten praktisch ausgeführt werden kann Angriff innerhalb der realisierbaren Zeit. Der Algorithmus kann für bestimmte Zwecke weiterhin nützlich sein (z. B. MD5 zum Identifizieren von Downloadfehlern einer Datei), ist jedoch ein No Go für alles, was langfristige Sicherheit erfordert, wie z. B. digitale Signaturen.

3) Der Algorithmus ist völlig kaputt, jeder kann es auf seinem Heim-PC tun. Vergiss es und alles, was es als zentrale Komponente verwendet. Die Download-Überprüfung ist möglicherweise noch in Ordnung, aber nicht viel darüber hinaus.

Es gibt einige grundlegende Gesetze, die hier berücksichtigt werden sollten. Erstens können Sie nicht beweisen, dass ein Algorithmus sicher ist. Sie können nur beweisen, dass er unsicher ist, indem Sie ihn tatsächlich knacken. Zweitens werden Angriffe immer besser, sie werden nie schlechter. Das heißt, Nachforschungen über frühere Angriffe werden nicht vergessen.

Möglicherweise wird morgen eine Entdeckung gemacht. Oder in zwei Jahren. Oder in zwanzig Jahren. SHA-1 ist defekt (http://en.wikipedia.org/wiki/SHA-1) und irgendwo zwischen 1 und 2, und SHA256 verwendet eine ähnliche Grundstruktur. Es sind jedoch keine Angriffe gegen SHA256, AFAIK, bekannt.

Es ist zu beachten, dass der Ausdruck "SHA-1 ist kaputt" in der Kryptographie eine sehr spezifische Bedeutung hat. Dies bedeutet im Grunde, dass ein Kollisionsangriff entdeckt wurde, der schneller ist als ein Geburtstagsangriff. Dies bedeutet nicht, dass jemand einen Hash umkehren könnte, um die ursprüngliche Zeichenfolge zu erhalten.
@mulllhausen Sie wollen doch einen String bekommen, der den gleichen Hash erzeugt? Im Gegensatz zur "ursprünglichen" Zeichenfolge.
Michael
2011-08-21 18:38:47 UTC
view on stackexchange narkive permalink

Es sieht so aus, als ob das Innenleben von Bitcoin darin besteht, dass es mithilfe des ECDSA-Algorithmus den doppelt angewendeten SHA256-Hash der Transaktion signiert (der erste Hash wird erneut gehasht).

Es ist immer nur eine Frage der Zeit, bis Sicherheitslücken gefunden werden. Bei einer schlechten Implementierung des besten Algorithmus gibt es jedoch tendenziell mehr Sicherheitslücken als bei einer guten Implementierung eines akzeptablen Algorithmus.

Oder, das Schlimmste aus beiden Welten, eine schlechte Implementierung eines schlechten Algorithmus. Ein SQL-Injection-Angriff wurde verwendet, um Kontodetails auf dem Berg abzurufen. Gox Bitcoin Exchange, bei dem MD5-Hashes von Kennwörtern in ihrer Datenbank gespeichert wurden, einschließlich derjenigen von Exchange-Administratoren.

Dies hat absolut nichts mit der kryptografischen Sicherheit von SHA256 zu tun, war jedoch etwas schädlich zum Bitcoin-Netzwerk.

Robert David Graham
2011-08-24 11:04:10 UTC
view on stackexchange narkive permalink

Es gibt ein paar Dinge zu verstehen.

Das erste ist, die Stärke eines Hashing-Algorithmus zu verstehen. Um einen Hash zu replizieren, entspricht der Schwierigkeitsgrad der vollen Größe des Hash-Schlüssels. Wenn Sie also bereits einen MD5-Hash haben und ein passendes Muster finden möchten, ist es schwierig, volle 128 Bit zu verwenden. Aufgrund entdeckter Probleme können wir dies jedoch möglicherweise mit nur 100 Schwierigkeitsgraden tun. Aber das Maximum, das wir tun können, sind 60 Bit Schwierigkeitsgrad. Daher ist es mit dem heutigen Wissen / der heutigen Hardware immer noch unmöglich, MD5 auf diese Weise zu knacken.

Bei Hash-Algorithmen gibt es jedoch ein zweites Problem: das Erstellen von zwei Dingen, die einen neuen Wert haben. Es ist eine Art Meet-in-the-Middle-Angriff. Es ist die Hälfte der Schwierigkeitsgrade, für einen 128-Bit-Algorithmus sind es also nur 64-Bit-Schwierigkeitsgrade. Mit bekannten Fehlern in MD5 wird diese Schwierigkeit eher 50-Bit, was für moderne Computer von Vorteil ist.

Dieses Problem bedeutet, dass SHA-256 nur 128 Bit hat Schwierigkeit. Für Bitcoins bedeutet dies, dass zwei Transaktionen mit demselben Hash erstellt werden.

Wie bei MD5 werden wir nicht alles auf einmal brechen. Stattdessen werden die Leute jeweils ein paar Schwierigkeitsgrade rasieren, genau wie sie kürzlich zwei Schwierigkeitsgrade für AES rasiert haben. Somit wird es von 128-Bit-Schwierigkeitsgraden auf 125, auf 120, auf 115 und so weiter gehen.

Mit Moores Gesetz wird ein bisschen Cracking-Power hinzugefügt (60-Bit heute, 61-). Bits im nächsten Jahr, 62 Bits im Jahr danach) und SHA-256 verlieren jedes Jahr ein bisschen an Meet-in-the-Middle-Stärke, was bedeutet, dass wir noch etwa 30 Jahre Zeit haben, bevor es praktisch wird, Bitcoin-Transaktionen zu fälschen.

Bitcoin macht einige Dinge, um dies zu erschweren, aber wahrscheinlich wird in den nächsten 30 Jahren jemand einen Weg finden, um diese Probleme zu umgehen. Daher würde ich beiläufig davon ausgehen, dass Bitcoins eine Lebensdauer von 30 Jahren haben.

Das ist mehr als die Währung für viele schlecht verwaltete Länder.

l0b0
2011-06-09 17:50:44 UTC
view on stackexchange narkive permalink

Die Zeit kann möglicherweise vage erraten werden, basierend darauf, wie lange andere weit verbreitete Algorithmen überlebt haben, bevor sie als fehlerhaft befunden wurden, aber das bedeutet natürlich nicht, dass Sie nützliche Vorhersagen treffen können.

Eine intelligente Lösung, die Ein Freund von mir erklärte für ein großes Projekt, einfach zwei Hashing-Algorithmen parallel zu verwenden (dh jeder Datei waren zwei Hashes zugeordnet) und dann einen auszutauschen, wenn sie fehlerhaft ist. Die Wahrscheinlichkeit, dass zwei Algorithmen ungefähr zur gleichen Zeit gebrochen werden und dass die Kombination der beiden auch zerbrechlich ist, ist wahrscheinlich 10 ^ Lose ^ Lose kleiner als die Wahrscheinlichkeit, dass eine bestimmte einzelne Der em> -Algorithmus wird immer defekt sein, und als Bonus haben Sie etwas Zeit, um sich um den Übergang zu einem neuen Hash zu kümmern, wenn einer von ihnen defekt ist.

Wie immer kann eine schlechte Implementierung bedeuten, dass das Brechen eines Hashs das Ziel erreicht und die Sicherheit verringert. Ein Beispiel ist die Passwortsperre für Android: http://forensics.spreitzenbarth.de/2012/02/28/cracking-pin-and-password-locks-on-android/. Ich habe auch irgendwo gesehen, dass md5 (sha1 (x)) die Komplexität auf die schwächste Funktion reduzieren würde, aber ich kenne nicht genug Details, um dies behaupten oder erklären zu können.
@domen geklärt - Sie haben keine Algorithmen verschachtelt, sondern zwei Hashes pro Datei erstellt.
Ich hatte nicht das im Sinn, was Sie beschrieben haben, nur einen allgemeinen Kommentar. Beachten Sie, dass dieses Schema für Datei-Hashes sehr gut geeignet ist, für Kennwörter jedoch das Aufbrechen erleichtert.
V4Vendetta
2011-06-09 15:07:25 UTC
view on stackexchange narkive permalink

MD5 ist ein 128-Bit-Hashwert, während SHA256 256 Bit ist. Daher ist die Möglichkeit einer sogenannten Kollision für SHA256 im Vergleich zu MD5 viel geringer.

Auch MD5 ist ein alter Veteran aus den 90ern, wie ich vermute, während SHA256 ungefähr ein Jahrzehnt alt ist und es einige großartige Computer brauchen würde, um eine Kollision zu bekommen. Aber falls es passieren sollte, würde es allmählich sein und ich glaube, es würde einige Zeit dauern ( SHA-3 würde bis dahin aus sein ) und sie (BitCoin) könnten dann migrieren, aber dann ist es so Eine Mammutaufgabe für sich und es gibt andere Leute mit dem Fachwissen, um diesen Teil zu analysieren (ich passe überhaupt nicht dazu)

Ich denke, es ist noch lange Zeit für einen solchen Kompromiss bei SHA256.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...