Verwenden eines Bitcoin- oder Litecoin-Miners zum Angriff auf PBKDF2 / SHA-256 [Duplikat]

Ich frage mich, ob es möglich wäre, einen Bitcoin- oder Litecoin-Miner zu verwenden, um beispielsweise eine Passwortdatenbank anzugreifen, die PKBDF2 mit HMAC / SHA-256 verwendet. PBKDF2 verwendet mehrere Iterationen einer PRF – normalerweise HMAC-SHA1, aber manchmal HMAC-SHA-256 – zum Schutz von Passwörtern. Die Idee ist, dass diese Berechnungen für jedes Passwort durchgeführt werden müssen, was es einem Angreifer erschwert, alle Passwörter zu testen. Die PBKDF2-Methode ist in RFC 2898 definiert .

Manchmal werden Aussagen gemacht, dass diese Funktionen aufgrund von Angriffen mit ASICs unsicher sind, und oft wird die Gesamtmenge an Bitcoin SHA-256-Hashes als Beispiel dafür gezeigt, was getan werden kann. Jetzt frage ich mich, ob es möglich wäre, einen Bitcoin- oder Litecoin-Miner zu programmieren, um ein Passwort mit Brute Force oder einem Wörterbuchangriff zu finden.

Annahmen:

  • HMAC SHA-256
  • Das Salz ist bekannt
  • Die Ausgabe von PBKDF2 beträgt 256 Bit (die Ausgabe des Hashs) oder weniger
  • „hohe“ Anzahl von Iterationen, sagen wir 4K bis 40K

Dazu müssten Sie HMAC mit einem einzigen SHA-256 programmieren. Außerdem müssten Sie wahrscheinlich eine Methode haben, um die Iterationen durchzuführen. Die Iterationen verwenden den gleichen Schlüssel (abgeleitet vom Passwort) für HMAC, aber die Daten hängen vom vorherigen Wert ab. Natürlich muss es auch eine Möglichkeit geben, die Kandidatenpasswörter zu generieren oder abzurufen.

Wäre es möglich, einen Miner für diese Arbeit neu zu programmieren, oder sind alle aktuellen Miner zu spezialisiert, um solche Operationen durchzuführen? Gibt es einen - möglicherweise älteren - Miner, der für diese Arbeit umprogrammiert werden kann?


Beachten Sie, dass es bei dieser Frage um die Neuprogrammierung/Wiederverwendung eines Hardwaregeräts geht. Es ist keine allgemeine Frage, das Bitcoin-Netzwerk zu verwenden, um kryptografische Aufgaben auszuführen.


Ich habe Litecoin zu der Mischung hinzugefügt. Litecoin verwendet scrypt, das selbst bereits eine passwortbasierte Schlüsselableitungsfunktion ist, die PBKDF2 als zugrunde liegende PRF verwendet (hoffe, das ist in Ordnung, noch keine Antworten).

@NateEldredge Guter Link, habe diese Referenz nicht gefunden. Hier geht es jedoch nicht um das Bitcoin-Netzwerk, sondern um bestimmte Miner (wie in: dem Hardware-Gerät). Die Antworten auf die andere Frage scheinen nur für das Netzwerk selbst gültig zu sein.
Hmm, ich habe gerade beim Stöbern auf dieser Seite von Litecoin erfahren. Ich schätze, ich sollte wahrscheinlich Litecoin anstelle von Bitcoin betrachten. scryptverwendet PBKDF2 als primitiv und Asics scheinen verfügbar zu sein.
Beachten Sie sorgfältig das Argument, auf das Sie sich im zweiten Absatz beziehen – es behauptet nicht, dass Bitcoin ASIC-Miner selbst zum Knacken von SHA-256-Passwörtern verwendet werden können, sondern dass sie zeigen, dass jemand höchstwahrscheinlich ASIC SHA-256-Cracker mit vergleichbaren erstellen könnte Leistung zu vergleichbaren Kosten (oder weniger). Daher sollte die Sicherheitsplanung davon ausgehen, dass ein Angreifer Zugang zu solchen hypothetischen ASIC-Crackern hat.
@NateEldredge Ja, das ist der beängstigende Teil, denn bei den aktuellen Geschwindigkeiten wären viele Passwörter ein zu knackendes Gekritzel. Wenn Sie mit THash-Geschwindigkeiten pro Gerät arbeiten , ist es nicht mehr so ​​viel, 4K-Runden zu machen. Wenn man Wegwerf-Miner verwenden könnte, würde das nur Strom kosten – aber das scheint außer Frage zu stehen.

Antworten (1)

Wäre es möglich, einen Miner für diese Arbeit neu zu programmieren, oder sind alle aktuellen Miner zu spezialisiert, um solche Operationen durchzuführen?

Ein Bitcoin-Mining-ASIC kann nur eine einzige Aufgabe ausführen, das Mining, es kann nichts weiter tun, als einen 80-Byte-Header zu nehmen, ihn zu hashen und eine Nonce zurückzugeben, wenn er groß genug mit Null-Bits ist. Hinsichtlich der Anwendbarkeit auf allgemeine SHA256-Rechenaufgaben hat es keinerlei Relevanz. Sie können kein einzelnes SHA256 ausführen, unter keinen Umständen nur einen niedrigen Hash zurückgeben und können keine beliebigen Daten hashen. Scrypt-basierte ASICs existieren, aber sie sind auf dumm niedrige Parameter fest codiert, die niemand für das Passwort-Hashing in der realen Welt verwenden würde, die anderen Einschränkungen gelten ebenfalls.

Gibt es einen - möglicherweise älteren - Miner, der für diese Arbeit umprogrammiert werden kann?

Ein FPGA kann neu programmiert werden, um fast jede Aufgabe zu erledigen, für die Sie sich die Zeit nehmen, einen Bitstream zu erstellen. Unter bestimmten Umständen wäre es möglich, FPGA zum Angriff auf Hashes zu verwenden. Die um 2013 verwendeten Bitcoin-Mining-FPGAs haben jedoch keine große Relevanz, da sie nie für eine hohe Bandbreitenleistung zwischen Host und Chip ausgelegt waren. Möglicherweise haben Sie über eine serielle Verbindung mit 9600 Baud kommuniziert, die zu langsam ist, um eine nennenswerte Datenmenge zu übertragen.

GPUs werden im Allgemeinen stattdessen für diese Art von Aufgaben verwendet, bei denen Sie extrem schnelle und latenzarme Verbindungen zur CPU und ein hohes Maß an Parallelität für die Berechnung von Hashes haben. Die Effizienz ist nicht so hoch wie bei dedizierter Hardware (FPGA oder ASIC), aber es handelt sich um handelsübliche Geräte, die für viel mehr dieser Art von Aufgaben verwendet werden können. Eine High-End-Karte kann in der Größenordnung von einer halben Milliarde SHA256-Hashes pro Sekunde rechnen, wenn die Eingabe nur einige Kompressionsrunden lang ist, obwohl sie dabei mehr als 400 W verbraucht.

Also, wenn ich das richtig verstehe, wäre fest codiert ROM oder tatsächliche Schaltkreise, oder? Nicht EEPROM, Flash oder andere Dinge, die mit Firmware aktualisiert werden können.
Ein ASIC besteht buchstäblich aus in Silizium geätzten Transistoren.
OK, das ist klar, ich war mir nur unsicher über das Niveau der Schnittstelle. Ich nehme an, dass sogar die ASICs eine Art CPU haben, die Verteilungsaufgaben usw. durchführt. Ich war mir über die tatsächliche Funktionalität des ASIC selbst nicht sicher. Wenn es nur scryptmit den Parametern für Litecoin auskommt, dann endet die Suche. Wenn Sie dies bestätigen können, werde ich die Antwort akzeptieren. Beachten Sie, dass die Brute-Force-Passwortgenerierung nicht viel CPU-Leistung erfordern würde und möglicherweise lokal durchgeführt werden könnte.
Es gibt keinen nennenswerten Prozessor an Bord, es gibt Register, die Eingaben über eine serielle Schnittstelle entgegennehmen, und Hunderte von Hashing-Kernen in jedem Chip, die das eigentliche Hashing durchführen, sie geben entweder eine Nonce zurück oder eine Anforderung für neue Daten zum Hashen, je nachdem, was Ergebnis sie haben. In fertig gebauten Maschinen bedient ein kleiner Computer die Chips, von denen es insgesamt Hunderte geben kann. Auf der Chipoberfläche ist jedes der rosa Quadrate SHA256, ausgelegt in diskreten Transistoren. s.zeptobars.ru/bitfury-Si-HD.jpg Ein mit Chips gefülltes Hashing Board, das auf Arbeit wartet. i.imgur.com/6CJAhwv.jpg
Ah super, das klärt alle Zweifel, die ich hatte. Das erste Bild wäre übrigens eine interessante Ergänzung zur Antwort. Ich muss anscheinend ein neues Tower-Rig mit Grafikkarten kaufen, wenn ich ein paar White-Hat-Recherchen in Bezug auf das Hashing von Passwörtern durchführen möchte.