Kaufen, öffnen, ersetzen, schließen, verkaufen … Gewinn!

Home Foren Trezor Wallet Kaufen, öffnen, ersetzen, schließen, verkaufen … Gewinn!

Ansicht von 0 Antwort-Themen
  • Autor
    Beiträge
    • #2659
      admin
      Mitglied
      Up
      0
      Down
      ::

      Ich habe mit einer Idee gespielt, wie man ein abtrünniges Trezor-Gerät bauen kann, das zwar echt aussieht, es dem Angreifer aber ermöglicht, die darauf gespeicherten Münzen zu stehlen. Da ich nicht vorhabe, den Angriff durchzuführen, werde ich sie hier teilen. Denn wenn ich eine solche Idee habe, kann es sein, dass jemand anderes sie bereits umsetzt, und die Leute sollten wissen, wie sie sich schützen können.

      Hier ist eine Schritt-für-Schritt-Anleitung für den Trezor One, aber etwas Ähnliches könnte wahrscheinlich auch mit dem Model T gemacht werden.

      Schritt 1: Kaufen Sie einen neuen Trezor One, oder mehrere davon.

      Schritt 2: Öffnen Sie die Schachtel, indem Sie entlang der Kante ohne Dichtung schneiden.

      Schritt 3: Schneiden Sie den Trezor auf, indem Sie die Naht einschneiden.

      Schritt 4: Entlöten Sie den STM32F2*-Chip. Kaufen Sie einen neuen Chip desselben Typs.

      Schritt 5: Flash eine modifizierte Version des offiziellen [bootloader](https://github.com/trezor/trezor-firmware/tree/master/legacy/bootloader) auf das Gerät. Sie brauchen nur eine kleine Änderung: Nachdem es die neue Firmware verifiziert hat, wird es den Anfang der Funktion `mnemonic_from_data` finden und sie so patchen, dass alles außer den ersten 2 Bytes des Parameters `data` auf Null gesetzt wird. Verschiedene Versionen der Firmware werden die Funktion wahrscheinlich an unterschiedlichen Offsets haben, aber ihr Anfang sollte immer gleich aussehen, es sei denn, er ändert sich in einer zukünftigen Version drastisch. Sie können die erste Anweisung einfach mit einem Aufruf einer eigenen Funktion im Bootloader überschreiben, die den Nullabgleich und die Anweisung, die Sie gerade überschrieben haben, durchführt und dann zurückkehrt.

      Schritt 6: Sperren Sie den Bootloader.

      Schritt 7: Löten Sie den Chip in den Trezor.

      Schritt 8: Klebe die Plastikteile wieder zusammen. Achte darauf, dass die Naht sauber aussieht.

      Schritt 9: Klebe die Schachtel wieder zusammen und übermale den geklebten Rand bei Bedarf mit schwarzer Farbe. Alternativ kannst du auch einen Designer beauftragen, das Design des holografischen Siegels nachzubilden und einige holografische Aufkleber aus China bestellen.

      Schritt 10: Verkaufen Sie es online als neues Gerät.

      IMO ist der schwierigste Teil, das Gerät und den Karton so aussehen zu lassen, als wären sie nicht geöffnet worden. Dazu braucht man etwas handwerkliches Geschick. Sie können schlampig löten, niemand wird es sehen, und der Softwareteil ist einfach. Das Beste daran ist, dass sich das Gerät am Ende nicht mehr vom Original unterscheiden lässt:

      * Es spricht ganz normal mit der Trezor Suite (oder anderer Software).
      * Es hat keine Firmware aufgespielt, wenn der Benutzer es zum ersten Mal anschließt.
      * Er akzeptiert offizielle Firmware, der Hack überlebt Reflashing und Upgrades.
      * Er erzeugt zufällig aussehende Seeds, die bei jedem Reset anders sind.
      * Er funktioniert in jeder anderen Hinsicht wie das Original.

      Wie kann der Angreifer Zugang zu den Münzen erhalten?

      Die Funktion `mnemonic_from_data` holt sich einen Puffer mit Zufallsdaten, die sowohl direkt auf dem Gerät als auch vom Host-Computer generiert wurden, durchläuft sha256 und das Ergebnis ist der neue Seed (der dann dem Benutzer als mnemonische Phrase präsentiert wird). Indem alles außer den ersten 2 Bytes der Zufallsdaten auf Null gesetzt wird, reduziert sich die Anzahl der Seeds, die erzeugt werden können, von 2^256 auf 2^16 = 65536. Bei jedem Zurücksetzen wird also einfach einer von 65536 Zufallswerten ausgewählt. Es müssen nicht unbedingt 2 Bytes sein, man kann auch mehr aufbewahren, um einen größeren Pool an Seeds zu haben, das bleibt einem überlassen. Vor allem, wenn der Angriff in großem Maßstab durchgeführt wird, möchte man nicht, dass zwei Benutzer denselben Seed erhalten und sich gegenseitig Münzen sehen – das würde schnell Verdacht erregen.

      Sie können dann ein einfaches Programm erstellen, das diese 65536 Seeds generiert, die erste Adresse für BTC, ETH und jede andere Münze, die Ihnen wichtig ist, ableitet und die Blockchains auf jede Transaktion zu diesen Adressen überwacht. Sobald Sie eine Transaktion entdecken, wissen Sie, dass der Seed in Gebrauch ist. Mit dem Seed haben Sie die volle Kontrolle über die Wallet, Sie können die Coins sofort transferieren oder warten, bis sich mehr ansammeln.

      Wie können sich die Nutzer verteidigen?

      * Kaufen Sie nicht bei unseriösen Anbietern.
      * Überprüfen Sie die Box und das Gerät gut.
      * **Verwenden Sie immer eine starke Passphrase!!!** Beachten Sie, dass eine beliebige Passphrase nicht ausreicht. Der Angreifer kann gängige Wörter und Passwörter mit jedem der 65536 Seeds ausprobieren. Das ist immer noch nicht sehr viel und kann ziemlich schnell und vollständig lokal mit einer heruntergeladenen Kopie der Blockchain überprüft werden, so dass niemand eine Ahnung hat, dass der Angreifer rät. Normalerweise ist es bei 2^256 möglichen Seeds unmöglich, irgendetwas zu erraten, aber mit 2^16 kann man es ziemlich schnell machen.
      * Sie können auch einige „Köder-Münzen“ in der Standard-Wallet ohne Passphrase hinterlassen und wenn diese plötzlich verschwinden, wissen Sie, dass Ihr Seed kompromittiert wurde. Zu diesem Zeitpunkt ist es nur noch Ihre Passphrase, die zwischen dem Angreifer und Ihren Münzen steht, verschieben Sie die Münzen woanders hin.

Ansicht von 0 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Zur Werkzeugleiste springen