Randstorm / BitcoinJS

Randstorm: die Browser-Schwachstelle alter Bitcoin-Wallets

Welche Software belegt ist, welche Versionsstände zählen und wie du eine alte Wallet verlässt, ohne ihre gefährdeten Schlüssel mitzunehmen.

Letzte Aktualisierung 18.09.2026

Was technisch schiefging

Randstorm betrifft die Schlüsselerzeugung älterer Browser-Software. JSBNs SecureRandom() konnte eine unzureichende Zufallsquelle mit einem vorhersagbaren Math.random() des Browsers kombinieren. Unciphered veröffentlichte den Fund am 14. November 2023 und berichtete von gefährdeten Wallets aus 2011–2015. Das ist ein beobachteter Zeitraum, kein Urteil über jede Wallet aus diesen Jahren.

Math.random()Browserabhängige Ausgangswerte
SecureRandom()Ein Zufallspool speist einen PRNG
Privater SchlüsselGültiges Format, möglicherweise vorhersagbare Herkunft

Der Name SecureRandom ist kein Sicherheitsnachweis. Im untersuchten Coinpunk-Code füllt der Fallback einen 256-Byte-Pool mit Math.random(), mischt die Uhrzeit ein und speist damit einen Arcfour-Generator. Ein großer Pool erzeugt keine Unvorhersagbarkeit, die seinen Eingaben fehlt. Derselbe Code enthält auch stärkere Web-Crypto- und Node.js-Pfade: Entscheidend ist, ob der Fallback tatsächlich genutzt wurde.

Der Fehler liegt in der Auswahl des privaten Schlüssels. Bitcoins Signaturprüfung wird dadurch nicht gebrochen. Ein altes Backup in einer neueren App behält seine Schlüssel; erst eine Übertragung auf unabhängig erzeugte Schlüssel ändert, womit das Guthaben ausgegeben werden kann.

Wallets, Versionen und die Grenzen der Belege

Unterscheide Bibliotheksversion und Wallet-Version. Bei einer gehosteten Website zählt der am Tag der Schlüsselerzeugung ausgelieferte Code mehr als die heutige App-Version. Die Tabelle trennt einen dokumentierten Vorfall von Befunden im Quellcode.

Belege geprüft am 19. September 2026
ProjektVersion oder ZeitraumWas damit belegt ist
BitcoinJS / bitcoinjs-lib0.1.3In der Veröffentlichung als Beispiel genannt. JSBN wurde bis März 2014 verwendet; daraus folgt keine vollständige Liste betroffener Versionen aller Ableger.
Blockchain.info
Blockchain.com
Historische Web-Wallet; keine nummerierte betroffene Versionsspanne verifiziertEine Kunden-Wallet war der Ausgangspunkt von Unciphereds Untersuchung. Das betrifft nicht automatisch jede Blockchain.com-Wallet oder die aktuelle App.
bitaddress.org2.6.5 · 2.8.0
2013-12-01 · 2014-01-18
2.6.5 aktualisierte JSBN auf 1.4. 2.8.0 ergänzte die Initialisierung des gesamten Pools durch Web Crypto und verpflichtende Maus-/Tastaturentropie. Das sind belegte Änderungen, keine nachgewiesene Grenze „alle älteren Versionen gefährdet / alle neueren sicher“.
Coinpunk0.2.1
63ca325be538
Der untersuchte Repository-Stand bezeichnet sich als 0.2.1 und enthält neben stärkeren Pfaden einen Math.random()/Arcfour-Fallback. Das ist ein Codebefund, kein Nachweis, dass jede Installation diesen Pfad nutzte. Die Entwicklung wurde eingestellt.

Diese Übersicht erfasst die hier überprüften Implementierungen; sie ist keine vollständige Liste betroffener Wallets. Ein nicht genanntes Produkt ist nicht automatisch unbetroffen. Ein altes Erstellungsdatum oder eine mit 1 beginnende Adresse identifiziert den Generator nicht.

Das Ziel einmal vorbereiten

Die drei Wege unten nutzen eine neue Electrum-Desktop-Wallet als Ziel. Die Menünamen beziehen sich auf die für diesen Artikel geprüfte englische Desktop-Oberfläche 4.8.2. Lade die aktuelle Ausgabe von der offiziellen Website; 4.8.2 ist die Referenz der Anleitung, keine dauerhaft gültige Mindestversion.

Unsere Hardware-Wallet-Empfehlungen als neues Ziel →

Electrum — offizieller Download und Signaturprüfung ↗

  1. Lade Electrum auf einem vertrauenswürdigen, aktualisierten Rechner für dein Betriebssystem herunter. Folge vor der Installation der offiziellen Signaturprüfung und gleiche den Fingerabdruck des Signaturschlüssels unabhängig ab.
  2. Wähle File → New/Restore, nenne die Wallet randstorm-new und wähle Standard wallet → Create a new seed. Notiere die neuen Wörter auf Papier, bestätige sie und setze ein Passwort für die Wallet-Datei. Importiere nicht das alte Geheimnis.
  3. Erstelle vor der Einzahlung recovery-check über File → New/Restore → Standard wallet → I already have a seed, ausschließlich mit dem NEUEN Papier-Backup. Vergleiche in beiden Wallets die erste Empfangsadresse über View → Addresses und den Tab Addresses. Behalte beide Wallets während dieser Prüfung.
  4. Nutze in randstorm-new Receive → Request (Onchain bei aktiviertem Lightning). Kopiere die Bitcoin-Adresse. Der passende Wallet-Weg unten muss an diese Adresse senden; prüfe vor der Freigabe die Gebühr und die vollständige Zieladresse.

Blockchain.info: die Wallet mit den alten Adressen verwenden

Dieser Weg gilt für eine historische Blockchain.info-Wallet, auf die du über Blockchain.com noch zugreifen kannst. Die Sendeanleitung beschreibt die heutige Web-Oberfläche, keinen ungeprüften Bildschirm aus 2012. Ein Trading-Account-Guthaben gehört zu einem anderen Produkt.

  1. Bewahre das ursprüngliche verschlüsselte Backup und deine Zugangsdaten auf. Prüfe in der Web-Wallet Settings → Wallets & Addresses → Bitcoin auf separat importierte Adressen. Gleiche bekannte alte öffentliche Adressen mit den angezeigten Guthaben ab; gehe nicht davon aus, dass eine neue Wiederherstellungsphrase importierte Schlüssel mit sichert.
  2. Öffne Send im Wallet-Dashboard, wähle Bitcoin und trage die neue Electrum-Adresse als externes Ziel ein. Beginne mit einem kleinen Betrag, wähle Continue, prüfe Adresse, Betrag und Gebühr und bestätige mit Send.
  3. Warte in Electrums History auf die Bestätigung. Sende danach das verbleibende verfügbare Guthaben unter Berücksichtigung der Gebühr. Prüfe jede separat finanzierte importierte Adresse; der erfolgreiche Test allein leert die alte Wallet nicht. Verwende ausgemusterte Empfangsadressen nicht weiter.

Blockchain.com: aktuelle Sendeanleitung ↗

bitaddress.org: eine Papier-Wallet per Sweep übertragen

Ein bitaddress-Ausdruck steht üblicherweise für einen einzelnen Schlüssel, nicht für eine moderne Wiederherstellungsphrase. Bewahre das Papier und die ursprüngliche HTML-Datei auf: Dateiname oder Fußzeile können die Version erkennen lassen. Die Versionshistorie hilft bei der Einordnung, zertifiziert aber keinen einzelnen Schlüssel.

  1. Identifiziere den privaten Schlüssel, nicht die öffentliche Empfangsadresse. Ein Mainnet-WIF beginnt häufig mit 5, K oder L; ein BIP38-verschlüsselter Schlüssel beginnt mit 6P. Das Präfix ist nur ein Formathinweis. Behalte die ursprüngliche Komprimierungsform bei, denn sie bestimmt die zugehörige Adresse.
  2. Entschlüssele BIP38 zuerst lokal und offline mit einer verifizierten Kopie aus dem offiziellen bitaddress-Repository: Wallet Details → verschlüsselten Schlüssel eingeben → View Details → Passphrase eingeben → Decrypt BIP38. Vergleiche die ermittelte Adresse mit dem Papier, bevor du den zugehörigen WIF weiterverwendest. Gib den Schlüssel nie auf einer aktiven Website ein und erzeuge mit diesem alten Werkzeug keine Ersatz-Wallet.
  3. Öffne in der NEUEN Electrum-Ziel-Wallet Wallet → Private keys → Sweep. Gib den unverschlüsselten WIF nur in diesen lokalen Dialog ein. Prüfe, dass das Ziel zu randstorm-new gehört, und kontrolliere Transaktion und Gebühr vor dem Senden.
  4. Sweep überträgt das verfügbare Guthaben des eingegebenen Schlüssels in einer Transaktion. Es ist weder ein Import noch die Testzahlungsfolge von oben. Wiederhole den Vorgang für weitere Papier-Schlüssel mit Guthaben und behalte die Originale, bis alle erwarteten Eingänge bestätigt sind.

bitaddress.org — offizielles Repository und signierte Dateien ↗

Coinpunk: das Backup sichern, bevor du den alten Server anfasst

Coinpunk wurde selbst gehostet; es gibt deshalb keine allgemeingültige aktuelle Login-Seite oder Wiederherstellungsstelle. Diese Bezeichnungen stammen aus Repository-Stand 63ca325be538, dessen package.json Version 0.2.1 angibt. Eine angepasste Installation kann abweichen.

  1. Wenn deine ursprüngliche vertrauenswürdige Installation noch funktioniert, öffne Backup → Download und sichere mehrere Kopien der verschlüsselten Wallet. Bewahre auch Login-Kennung, Passwort und Server-Backup auf. Aktualisiere oder installiere nicht zuerst die einzige verbliebene Instanz neu.
  2. Das historische Formular Send Bitcoins enthält Bitcoin address to send to, Amount und eine angezeigte Gebühr. Nutze es nur, wenn die ursprüngliche Instanz noch zuverlässig funktioniert und das Zielformat unterstützt. Erzwinge keine bc1-Adresse in dieser alten Software; der untersuchte Adressparser verwendet Base58Check.
  3. Bei inkompatiblem Ziel oder abgeschaltetem Server sichere das Backup und stelle die Schlüssel lokal mit fachkundiger Hilfe für diese Coinpunk-Version wieder her. Das Wallet-Modell speichert keyPairs einschließlich Wechselgeldschlüsseln in verschlüsselten Nutzdaten. Das ist weder ein Electrum-Seed noch eine Bitcoin-Core-wallet.dat; Umbenennen konvertiert die Datei nicht.
  4. Sobald die wiederhergestellten WIF-Schlüssel den ursprünglichen Adressen zugeordnet sind, nutze Electrums Sweep-Verfahren von oben für jeden Schlüssel mit Guthaben. Prüfe den vollständigen Bestand einschließlich Wechselgeldadressen. Behalte das verschlüsselte Backup samt Passwort, bis die Eingänge am Ziel mit dem erwarteten Guthaben übereinstimmen.

Unsere Hardware-Wallet-Empfehlungen als neues Ziel

Für diesen Umzug empfehlen wir Trezor Safe 3, wenn du physische Tasten bevorzugst, oder Trezor Safe 5, wenn dir ein größerer Touchscreen die Adressprüfung erleichtert. Beide können die neuen Signaturschlüssel auf einem separaten Gerät halten. Der Kauf repariert keinen alten Schlüssel: Erstelle auf dem Gerät eine vollständig neue Wallet.

Als Amazon-Partner verdiene ich an qualifizierten Käufen.

Trezor Safe 3

Zwei Tasten und ein monochromes Display: unsere Empfehlung, wenn du bewusst per Tastendruck bestätigen möchtest. Prüfe die vollständige Empfangsadresse auf dem Gerät, bevor du das alte Guthaben überträgst.

Trezor Safe 3 bei Amazon ansehen

Trezor Safe 5

Ein 1,54-Zoll-Farb-Touchscreen mit haptischem Feedback: unsere Empfehlung, wenn dir Displaygröße und Touch-Bedienung besonders wichtig sind. Die bequemere Anzeige macht wiederverwendete oder offengelegte Schlüssel nicht sicher.

Trezor Safe 5 bei Amazon ansehen

Die Amazon-Links öffnen eine regionale Produktsuche, kein geprüftes Händlerangebot. Vergleiche den Verkäufer mit Trezors offiziellen Amazon-Shops oder autorisierten Händlern. Nutze bei der Einrichtung die Echtheitsprüfung des Geräts; verwende niemals ein mitgeliefertes, bereits ausgefülltes Wallet-Backup.

  1. Beginne bei trezor.io/start und installiere Trezor Suite. Folge der Einrichtung und Echtheitsprüfung für dein Gerät, wähle Create a new wallet und schließe die Backup-Prüfung auf dem Gerät ab. Bewahre das Backup offline auf. Stelle weder die alte Wallet noch den Software-Wallet-Seed aus dem Beispiel oben auf diesem Gerät wieder her.
  2. Für eine normale Überweisung wählst du das Bitcoin-Konto in Trezor Suite, öffnest Receive und prüfst die vollständige Adresse auf dem angeschlossenen Gerät. Verwende im Blockchain.com-Ablauf diese Adresse anstelle der Software-Wallet-Adresse. Prüfe den Zahlungseingang und seine Bestätigungen in Trezor Suite statt in Electrums History.
  3. Für den Electrum-Sweep-Ablauf verbindest du den neu eingerichteten Trezor und erstellst eine Electrum-Wallet mit File → New/Restore → Standard wallet → Use a hardware device. Folge Trezors Electrum-Anleitung und verwende das passende Bitcoin-Konto und den passenden Adresstyp. Prüfe eine Empfangsadresse auf dem Trezor und nutze sie als Sweep-Ziel. Gib bei Sweep nur den ALTEN WIF-Schlüssel ein; tippe die Trezor-Backup-Wörter niemals in Electrum oder eine Website ein.

Trezor: Gerät mit Electrum verbinden ↗

Quellen und Einordnung

Diese Fallstudie behandelt historische Browser-Implementierungen und ihre unterschiedlichen Umzugswege. Den größeren Zusammenhang zwischen Entropie, Seed-Wörtern und Hardware-Wallets erklärt der Grundlagenartikel.

Grundlagen: Wie schwache Wallet-Seeds entstehen →

Am 19. September 2026 anhand von Originaldokumentation und Quellcode geprüft. Bei den Tests wurden weder echtes Guthaben noch private Schlüssel verwendet. Die Tabelle ist keine vollständige Liste und keine Diagnose deiner Wallet.

FAQ

Ist BitcoinJS 0.1.3 die Versionsnummer meiner Wallet?

Nein. Die Nummer bezeichnet ein Bibliotheksbeispiel aus der Randstorm-Veröffentlichung. Eine Wallet kann diese Bibliothek einbinden oder verändern, ohne ihre Version anzuzeigen. Der ursprüngliche Wallet-Stand und die Browser-Umgebung müssen weiterhin ermittelt werden.

Beweist bitaddress.org 2.8.0, dass meine Papier-Wallet sicher ist?

Die Versionshistorie dokumentiert eine verbesserte Entropiesammlung in 2.8.0. Sie bestätigt nicht, wie ein einzelner Schlüssel erzeugt wurde, welche Browser-Funktionen verfügbar waren oder ob die Datei verändert war. Der Artikel behandelt dies deshalb als belegte Änderung, nicht als allgemeine Sicherheitsgrenze.

Warum nutzt die Papier-Wallet-Anleitung Sweep statt Import?

Ein Import verwendet den ursprünglichen privaten Schlüssel weiter. Sweep erzeugt eine Transaktion, die dessen verfügbares Guthaben an die vorbereitete Ziel-Wallet überträgt. Die neue Wallet muss unabhängig erzeugte Schlüssel besitzen; Zieladresse und Gebühr sind vor dem Senden zu prüfen.

Kann Electrum ein Coinpunk-Backup direkt öffnen?

Die untersuchte Coinpunk-Version speichert verschlüsselte Wallet-Nutzdaten, keinen Electrum-Seed. Bewahre Backup, Login-Kennung und Passwort auf. Stelle die Schlüssel lokal mit Fachkenntnis für diese Version wieder her und ordne sie den ursprünglichen Adressen zu, bevor du den Sweep-Weg nutzt.