Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03210.jsonl.gz/3286

- Dieses Thema hat 7 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 1 Jahr, 9 Monaten von cuoyi77372222.
-
AutorBeiträge
-
-
10. Dezember 2021 um 19:22 Uhr #285511root_s2yse8vtVerwalter::
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 verschiedenen 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 2 Bytes sein, man kann auch mehr aufbewahren, um einen größeren Pool an Seeds zu haben, das bleibt einem selbst ü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.
-
10. Dezember 2021 um 19:23 Uhr #285512matejcikGast::
Solide Idee. So wie sie geschrieben ist, hat sie einen Fehler: Die Firmware vergleicht den Hash des Bootloaders mit bekannten offiziellen Bootloadern. Das Flashen einer offiziellen Firmware und das anschließende Ausführen würde “Unknown bootloader detected” anzeigen und nichts Nützliches bewirken.
Man bräuchte einen Code im Bootloader, der die Gegenprobe im Firmware-Code findet und sie ausbessert oder seinen eigenen Hash in die Whitelist einträgt. Das ist machbar, aber der Bootloader ist derzeit stark platzbeschränkt. Ich schätze, man könnte Platz schaffen, indem man den gesamten Code, der sicherstellt, dass nur legitime Firmware auf dem Gerät läuft, rausschmeißt oder so 🙂
-
10. Dezember 2021 um 19:23 Uhr #285513
-
10. Dezember 2021 um 19:23 Uhr #285514
-
10. Dezember 2021 um 19:23 Uhr #285515
-
10. Dezember 2021 um 19:23 Uhr #285516fishaholic1234Gast::
Deshalb mag ich das manipulationssichere Siegel des Modells T auf dem Gerät selbst. Auf der Schachtel ist es einfacher, das zu tun, was Sie vorgeschlagen haben.
Eigentlich müssen diese Siegel billig sein, warum werden sie nicht bei allen Modellen sowohl auf der Schachtel als auch auf dem Gerät angebracht. Das würde es potenziellen Dieben viel schwerer machen, in das Gerät zu gelangen.
-
10. Dezember 2021 um 19:23 Uhr #285517
-
10. Dezember 2021 um 19:23 Uhr #285518cuoyi77372222Gast::
Überspringen Sie die Schritte 1,2,3,4,8.
Verwenden Sie einfach die Open-Source-Gehäuse und Elektronik Schaltpläne und, zusätzlich zu Schritt 9 der Replikation des Designs der Box, verwenden Sie eine Schaltung fab Service, um die Platine und jemand anderes zu professionellen 3D-Druck des Gehäuses zu bauen. Damit entfällt der Großeinkauf des Trezor, die Beschädigung des Gehäuses, das Aufschneiden des Gehäuses, das Auslöten des Chips usw.
Würde dies das Flashen für die seltenen Fälle überleben, in denen die Firmware ein Bootloader-Update der zweiten Stufe enthält?
Es sieht so aus, als ob die einzige Möglichkeit, diesen Hack zu verhindern, darin bestünde, dass Trezor von den Benutzern verlangt, nicht nur die Firmware selbst zu flashen, wie sie es derzeit tun, sondern auch den Bootloader.
Gibt es derzeit eine Möglichkeit, den Hash des Bootloaders (beide Stufen) zu überprüfen, ohne das Gehäuse zu öffnen?
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.