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:
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).
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.
scrypt
mit 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.
Maarten Bodewes
Maarten Bodewes
scrypt
verwendet PBKDF2 als primitiv und Asics scheinen verfügbar zu sein.Nate Eldredge
Maarten Bodewes