Der Wintermute-Hack wurde auf einem einfachen Laptop in weniger als 48 Stunden repliziert, indem der Profanity-Fehler ausgenutzt wurde

Amber Group, ein Blockchain-Technologieanbieter, replizierte den Wintermute-Hack in weniger als 48 Stunden mit einem einfachen Laptop. In einem Bericht der Amber Group heißt es:

„Wir haben ein Macbook M1 mit 16 GB RAM verwendet, um einen Datensatz in weniger als vorzuberechnen 10 Stunden… Wir haben die Implementierung abgeschlossen und konnten den privaten Schlüssel von 0x0000000fe6a514a32abdcdfcc076c85243de899b in weniger als 48 Stunden knacken.“

Das hacken wurde Vanity-Adressen zugeschrieben, die mit dem Profanity-Tool erstellt wurden und es Benutzern ermöglichten, spezifische Ethereum-Adressen mit bestimmten Zeichen zu generieren. Im Fall von Wintermute enthielt die Adresse sieben führende Nullen. Vanity-Adressen ermöglichen es Konten, ähnliche Zeichen zu haben, was es einfacher macht, die öffentlichen Adressen in der Blockchain zu identifizieren.

Eine weitere Auswirkung einer Ethereum-Adresse mit mehreren führenden Nullen ist eine Reduzierung der Gasgebühren aufgrund des geringeren Platzbedarfs zum Speichern der Informationen in der Blockchain. Das Entfernen eines Elements der Zufälligkeit aus dem kryptografischen Prozess, der zum Generieren der Adresse verwendet wird, geht jedoch auf Kosten einer verringerten Sicherheit.

Erste Analysen deuteten darauf hin, dass 1,000 GPUs nur 50 Tage brauchen würden, um jeden möglichen privaten Schlüssel für Adressen zu generieren, die mit sieben führenden Nullen beginnen. Die Amber Group behauptet jedoch jetzt, dass dies mit nur einem einzigen Laptop in weniger als 48 Stunden erreicht werden kann.

Die Kryptografie erklärt

Profanität ist ein Adressgenerierungstool für das Ethereum-Ökosystem. Die Codebase kann einfach von GitHub heruntergeladen werden und ist seit 2017 verfügbar. Die aktuelle Codebase-Version enthält jedoch einen Warnhinweis, der von der Verwendung des Tools abrät. Der Schöpfer des Tools, Johguse, hat am 15. September 2022 die folgende Nachricht zur Datei readme.md hinzugefügt.

„Ich rate dringend davon ab, dieses Tool in seinem derzeitigen Zustand zu verwenden. Dieses Repository wird in Kürze mit zusätzlichen Informationen zu diesem kritischen Problem weiter aktualisiert.“

Darüber hinaus wurden Kernbinärdateien entfernt, um Benutzer daran zu hindern, die Codebasis zu kompilieren, „um eine weitere unsichere Verwendung dieses Tools zu verhindern“.

Die Profanity verwendet lokale „GPU-Leistung mit OpenCL durch einen einfachen Algorithmus“, um private und öffentliche Schlüssel von Ethereum zu generieren, bis sie eine Adresse findet, die den vom Benutzer festgelegten Regeln entspricht. Wenn ein Benutzer beispielsweise eine Ethereum-Adresse mit der Endung „AAA“ erstellen möchte, funktioniert diese so lange, bis eine Adresse mit diesen Zeichen als Suffix generiert wird.

Wenn eine Adresse generiert wird, die nicht den im Regelsatz aufgeführten Bedingungen entspricht, fügt Profanity „1 zum privaten Schlüssel hinzu und leitet eine neue Ethereum-Adresse ab, bis es diejenige findet, die den Regeln entspricht“.

Ethereum-Adressen werden normalerweise lokal mithilfe der Ellipsenkurven-Kryptografie generiert. Beim Generieren einer Ethereum-Adresse findet keine Berechnung statt, ob der private Schlüssel in der Vergangenheit für eine andere Adresse verwendet wurde. Dies liegt jedoch an der schieren Anzahl möglicher Ethereum-Adressen.

Dieses Video erklärt das wahre Ausmaß von 256-Bit-Verschlüsselung in der Kryptographie von Ethereum verwendet. Ein einfacher Vergleich lässt sich auch dadurch anstellen, dass es solche gibt rund 2^76 Sandkörner auf der Welt, aber 2^160 mögliche Ethereum-Adressen.

Wenn jedoch beliebige Zeichen der Ethereum-Adressen vorgegeben sind, wird die Berechnung zur Generierung des privaten Schlüssels deutlich einfacher und die Anzahl möglicher Adressen wird drastisch reduziert.

Der Exploit

Amber Grouped erklärte, dass der Fehler der Profanity-Methode auf die Verwendung eines 32-Bit-Seeds zur Generierung von Adressen zurückzuführen sei.

„Um einen zufälligen privaten Schlüssel zu generieren, verwendet Profanity zunächst das Zufallsgerät, um einen Seed zu generieren. Aber leider ist der Seed 32-Bit, was nicht direkt als privater Schlüssel verwendet werden kann.“

Der 32-Bit-Seed wird durch einen Pseudozufallszahlengenerator (PRNG) gespeist, der eine deterministische Funktion verwendet. Diese PRNG-Methode führt zu einer einfachen Methode, um alle lebensfähigen Public-Key-Seeds zu bestimmen, die in Profanity verwendet werden.

„Da es nur 2^32 mögliche Anfangsschlüsselpaare gibt (d_0,0, Q_0,0) und die Iteration in jeder Runde umkehrbar ist, ist es möglich, den privaten Schlüssel von jedem öffentlichen Schlüssel zu knacken, der von Profanity generiert wird.“

Die von Amber Group verwendete Methode bestand darin, den öffentlichen Schlüssel der Adresse zu erwerben, die möglichen öffentlichen Schlüssel von Profanity vorab zu berechnen, die öffentlichen Schlüssel mit OpenCL zu berechnen, die berechneten öffentlichen Schlüssel zu vergleichen und dann den privaten Schlüssel zu rekonstruieren, sobald eine Übereinstimmung gefunden wurde.

Aufgrund der Einfachheit der Methode empfiehlt die Amber Group, dass „Ihr Geld nicht sicher ist, wenn Ihre Adresse von Profanity generiert wurde“.

Bernsteingruppe erzählt CryptoSlate dass in Bezug auf die Frage, ob ein besserer kryptografischer Algorithmus benötigt wird, „die Antwort offensichtlich ja lautet … die Industrie kann sehen, wie anfällig diese Art von Design ist.“

Quelle: https://cryptoslate.com/wintermute-hack-replicated-on-simple-laptop-in-under-48-hours-by-exploiting-profanity-flaw/