Kann ein cleverer Hacker trotzdem das Geld aller aus dem Wallet von blockchain.info stehlen?

Blockchain.info behauptet :

Wir können (und wollen nicht):

  • Zeigen Sie Ihr Guthaben an
  • Zeigen Sie Ihr Adressbuch an
  • Machen Sie Transaktionen in Ihrem Namen
  • Konfiszieren Sie Ihre Brieftasche
  • Sperren Sie sich in unseren Service ein.

Sie tun dies, indem sie nur die verschlüsselte Brieftaschendatei mit den privaten Schlüsseln speichern und den Webclient die Entschlüsselung und Signierung mit den privaten Schlüsseln durchführen lassen, ohne sie jemals über den Server zu kommunizieren. Das bedeutet, dass blockchain.info tatsächlich keine Transaktionen in Ihrem Namen durchführen kann.

Früher dachte ich, das bedeutet auch, dass ein Hacker, wenn er in ihre Server eindringt, nicht in der Lage wäre, die Bitcoins aller zu stehlen, weil die privaten Schlüssel dort nicht gespeichert sind.

Allerdings bin ich mir jetzt nicht so sicher. Könnte der Hacker nicht einfach den Servercode ändern, um Javascript an den Webclient zu senden, der bei der Ausführung diese privaten Schlüssel entschlüsselt und an den (jetzt gehackten) Server zurücksendet?

Es würde länger dauern, da sich alle anmelden müssten, um kompromittiert zu werden … aber sie könnten immer noch ein paar Bitcoins stehlen.

Übersehe ich etwas oder ist das tatsächlich der aktuelle Stand der Dinge bei blockchain.info?

(Beachten Sie, dass dies keine Ausgrabung dieser speziellen Website sein soll; es ist wirklich eher eine Sicherheitsfrage im Allgemeinen.)

Antworten (2)

Ja, der von Ihnen beschriebene Angriff ist möglich.

Dies ist jedoch weder spezifisch für blockchain.info noch für Online-Geldbörsen.

Wenn es einem Angreifer gelingt, Code auf Ihrem Computer auszuführen, werden Sie pwned.

Solange es einem Angreifer gelingt, Code einzuschleusen, der mit den privaten Schlüsseln in ihrer unverschlüsselten Form umgeht, kann der Angreifer ihn veranlassen, die Schlüssel an sich zurückzusenden.

Eine Möglichkeit, wie ein Angreifer dies tun kann, besteht darin, wie Sie beschreiben, die Website von Online-Wallet zu kompromittieren und bösartiges Javascript einzuschleusen.

Eine andere Möglichkeit wäre, die Binärdatei eines Bitcoin-Clients (im Client gespeicherte Brieftasche) zu kompromittieren, die Sie auf Ihrem lokalen Computer installieren.

Die „zusätzliche Sicherheit“, die blockchain.info zu bieten behauptet, ist, dass es für einen Angreifer nicht ausreicht, sich einfach die Schlüsseldatenbank zu beschaffen, um Ihr Geld zu stehlen.

Ist Spoofing beim lokalen Client möglich? -- Ich meine, dass die Bitcoin-Schnittstelle als lokale App gespooft ist und den echten Bitcoin-Client als Schnittstelle zur Blockchain verwendet. Auch hier kein Problem mit Blockchain per se, aber Blockchain würde keine Sicherheit garantieren.
@PhilipStern: Ja, das ist sicherlich möglich.

Sie haben diese Art von Angriff erwartet und überwachen ihre JavaScript-Dateien, überprüfen Sie diese Website von ihnen http://blockchain-status.com/javascript_verifier

Außerdem kann CloudFlare (der von ihnen verwendete Reverse-Proxy) das Javascript im laufenden Betrieb ändern (CloudFlare befindet sich am anderen Ende der Verschlüsselung für Ihren Browser, daher sichert SSL hier nur die Verbindung zwischen Ihnen und den CloudFlare-Maschinen und optional zwischen CloudFlare und Blockchain .info, Sie verbinden sich nicht direkt mit Blockchain)

Es ist wahr, dass das Client-seitige Skript das Passwort nicht an den Server sendet, aber Sie müssen Ihr Wallet-Passwort tatsächlich senden , um ihre alte Wallet-API zu verwenden (sie ist veraltet) und wenn ein Hacker ihre Server irgendwie kontrollieren kann, ist es möglich dass die Hacker die unverschlüsselte Brieftasche aus dem Speicher lesen können, ohne bösartige Client-Skripte einschleusen zu müssen, selbst wenn wir davon ausgehen, dass sie sie nicht auf der Festplatte speichern.