Die versteckten Stolperfallen von Multisig Wallets

Multisig Wallets sind die Königsklasse der Bitcoin Verwahrung. Doch die Funktion wird häufig auf unsichere bis gefährliche Weise genutzt.

15 „Gefällt mir“

Hammer Beitrag - sehr schön und kompakt zusammengefasst.

1 „Gefällt mir“

Super Beitrag, kann jemand bitte ergänzen warum man auf Basis einer MultiSig Adresse keine Nachrichten signieren kann?

Theoretisch ist das natürlich möglich, es gibt aktuell dafür nur keine Standards. Selbst wenn es einen gäbe, müsste es erstmal eine Software Wallet geben die das unterstützt, und, wenn man Hardware Wallets nutzt, müssen die das natürlich auch supporten.

Wenn man also Services wie Pocket oder Relai nutzen möchte, muss man einen Umweg über eine single-sig Wallet gehen.

Ist es sinnvoll drei gleiche Hardwarewallets zu nehmen oder sollte man lieber drei verschiedene Hardwarewallets (denen man allen vertraut) nehmen?

Bei dieser Frage scheiden sich die Geister. Es gibt Verfechter von gemischten multi-sig Setups um sich nicht von einem Hersteller abhängig zu machen (@skyrmion? :wink:).

Meine Meinung:

Das Argument, dass man einem einzelnen Hersteller nicht vertrauen und deshalb „diversifizieren“ möchte, ist alleine deshalb schon nicht schlüssig, weil man sowieso jedem Cosigner vertrauen muss, das ist die 1. Stolperfalle aus dem Beitrag. Die Sicherheit des Setups misst sich am schwächsten Cosigner.

Es macht also keinen Sinn eine Hardware Wallet zu verwenden, der man nicht genauso vertraut wie den anderen, denn diese eine Hardware Wallet ist schließlich alleine in der Lage das ganze Setup zu untergraben.

Dazu kommt noch, dass man erstmal drei unterschiedliche Hardware Wallets finden muss, die alle Cosigner registrieren und den eigenen im richtigen Format anzeigen können.

Ich persönlich würde also drei gleiche Hardware Wallets nehmen. Es spricht aber nichts dagegen auf unterschiedliche Anbieter zu setzen, sofern man sich darüber im Klaren ist was man damit (nicht) erreicht.

Siehe Diskussion im Forum: Multisig Setup - Tipps

1 „Gefällt mir“

Das ist das Hauptproblem - es ist glaube ich sehr schwer 3 passende Hersteller finden.

Hi, vielen Dank für deinen Beitrag. Ich denke auch gerade über Multisignatur nach und war bisher immer der Meinung, dass der Hauptvorteil darin liegt von den Herstellern unabhängig zu werden.
Das Argument ich muss jedem cosigner immer vertrauen sehe ich nicht so, daher würde mich gerne deine Meinung interessieren.
Wenn ich ein Setup mache aus keystone, coldcard und bitbox. Und alle 3 getrennt aufsetze, in sparrow die multisig anlege, alle xpubs gegenseitig gespeichert werden. Dann sind alle 3 wallets auf gleichem stand und gleichberechtigt.
Wenn nun in der Zukunft 1 wallet durch ein hacker update kompromittiert wird, dann würde sie mir zb eine falsche Empfangs Adresse anzeigen. Wenn ich auf der zweiten wallet dann eine andere Empfangs Adresse sehe, dann weiß ich es stimmt was nicht.
Dann hole ich die dritte wallet raus und sehe dann was die 2 echten Adressen sind und welches Gerät gehackt wurde.
Damit kann ich das schwarze Schaf aussortieren und meine coins retten und neue saubere wallets aufsetzen.
Wenn alle 3 bitbox sind. Dann würden alle 3 das Hacker update bekommen und mir gemeinsam die falsche Adresse anzeigen. Keine Chance das zu erkennen.
Schreibt mir gerne eure Meinungen, falls ich einen Denkfehler drinn habe.
Viele Grüsse
Florian

1 „Gefällt mir“

Und was wenn ein Cosigner nicht „in Zukunft“, sondern von Anfang an kompromittiert ist? :slight_smile:

Das würde für ein ernsthaftes Problem ja schon reichen. Und mit unterschiedlichen Hardware Wallets vergrößert man hier die Angriffsfläche.

Wenn ich drei unterschiedliche Hardware Wallets nutze und eine davon (ob subjektiv oder nicht) weniger sicher ist, dann ist die Sicherheit des ganzen Setups von dieser weniger sicheren Hardware Wallet abhängig. Das ist alles was ich sage.

Wichtig ist das vor allem bei 2x Hardware Wallet + 1x Software Wallet Geschichten. Bei drei Hardware Wallets wird diese ganze Diskussion generell sehr spezifisch.

Doch…

  1. Die Sparrow Wallet würde widersprüchliche Adressen anzeigen, es sei denn die ist auch kompromittiert.
  2. Du hast beim Einrichten die xpubs der Cosigner doch sowieso in irgendeiner Form raus geschrieben, die müssen schließlich auf deinem Backup stehen.

Aber du hast natürlich schon Recht, das wäre eine mögliche Schwachstelle. Wenn man sich davor schützen will kann man seine xpubs in weitere unabhängige Wallets importieren und die Adressen abgleichen (oder eben mit einem vertrauenswürdigen Backup vergleichen).

1 „Gefällt mir“
  1. Grundsätzlich muss man anfangs von einem sauberen Setup ausgehen. Das gilt aber für jedes Setup egal ob Hardware wallet oder sonst was. Irgendwann muss man einrichten und in jeder Konstellation ist man darauf angewiesen dass die Installation der seeds auf den Wallets in sauberem Zustand passiert. Idealerweise mit neu aufgesetztem Linux Rechner, PGP verifiziertem Sparrow, und neu ausgepackten Hardware Wallets der Hersteller.

  2. Wenn alle 3 Bitbox das Hacker update haben, dann müsste die sparrow wallet auch noch gehackt werden, richtig. Das ist aber eben nur der Software Bereich in dem Sinne einfach, also nur ein kleiner Schutz. Außerdem ist die Frage: Wem vertraust du dann mehr? Der Sparrow wallet oder deinen 3 Bitboxen ? :slight_smile:

3.Beim Einrichten werden alle xpubs gesichert. Korrekt. Aber ja nicht alle Empfangsadressen, sondern die werden ja immer wieder neu generiert. Das heißt du kannst von Hand mit deinen ausgedruckten xpubs ja nicht verifizieren welche der angezeigten Adressen jetzt wirklich zu dir gehört oder welche eben nicht.

Einzige Lösung: 3 verschiedene Hersteller - 2 davon werden deine korrekten Adressen anzeigen, und die eine die gehackt wurde, wird aus der Reihe fallen und ist dadurch erkennbar.

Warum reite ich da so drauf rum ?

Ganz einfach weil ich denke, die größte Schwachstelle der Zukunft werden die Hardware Wallet Hersteller sein. Die Dinger sind meistens offline und extrem schwer einzeln zu hacken, also praktisch unmöglich. Es ist aber relativ leicht für einen internationalen Geheimdienst die Familie eines Entwicklers zu entführen und die Firma so zu Updates zu zwingen mit denen die Coins der Nutzer abgezogen werden.

Warum sollte Nordkorea einzelne Leute hacken, wenn sie 100 000 auf einmal haben können ?
Da lohnt sich dann auch der Aufwand.

Klar, der Punkt ist doch nur: Die Angriffsfläche ist bei drei unterschiedlichen Hardware Wallets größer.

Das ist aber wie gesagt auch gar nicht mein Hauptargument: Das große Problem (aktuell) sind fehlende, aber essenzielle, Funktionen bei den Hardware Wallets. Man kann halt nicht blind empfehlen unterschiedliche Anbieter zu nutzen, sondern muss sich mühsam solche zusammensuchen die aktuell alle Features mitbringen.

Deswegen finde ich die Empfehlung, gleiche Geräte zu nutzen, aktuell besser und universeller. Da kann man nämlich eine konkrete Hardware Wallet vorschlagen. Aber wie gesagt:

Diese Frage ist an der Stelle, zumindest in diesem Threat Model, nicht relevant, oder? :smiley:

Ich weiß dass mein Setup in irgendeiner Form kompromittiert ist und ich Adressen erstmal nicht vertrauen sollte bis ich die Ursache gefunden habe. Sollte der Verdacht wirklich auf die Hardware Wallets fallen, kann man diese sowieso nicht mehr sicher nutzen.

Jo, auch ein guter Punkt. Wie erwähnt kann man aber mit unabhängigen Wallets prüfen ob die Adressen passen. Wohl kaum sind alle Soft- und Hardware Wallets die man berührt kompromittiert… :sweat_smile:

Problem hier ist halt eher dass das keine Sau machen wird.

Relativ schwierig wenn die Firmware deiner Hardware Wallet open-source und reproduzierbar ist! :slight_smile:

1 „Gefällt mir“

Soweit so gut, noch 2 kleine Anmerkungen:

Das Argument es wäre zu aufwendig 3 gute Hersteller zu finden ist … naja … etwas an den Haaren herbeigezogen.
Entweder ich beschäftige mich mit dem Thema oder eben nicht. Es gibt genug Hersteller die gute Wallets anbieten. Das ist nichts das Problem. Nach meinem Kenntnisstand sind zb Bitbox, Keystone und Coldcard alle gut geeignet für Multisig, inclusive xpub speichern und anzeigen usw. Aber ich bin hier auch nicht allwissend.

Auch wenn die Walletsoftware Open source ist und reproduzierbar ist lässt sich der Erpressungsangriff gut durchführen. Die Wallets werden immer über die jeweilige Hersteller software ständig automatisch geupdated. Da compiliert kein Nutzer was selber. Das heißt bis die Nummer auffällt sind die ersten 100000 Hacker updates schon locker durch. Und danach ist es dann auch egal.

Doch, ich zum Beispiel. xD

Nicht jeder muss (oder wird) das natürlich machen. Es reicht wenn das eine Handvoll Leute wie ich machen die Spaß dran haben und dann den Finger heben wenn etwas nicht passt.

Dass sowas im absoluten worst case nicht jeden retten wird ist klar.

Da ist man dann als Nutzer aber auch nicht ganz unschuldig. Wenn man so ein Szenario befürchtet darf man einen neuen Firmware Release natürlich nicht direkt auf seine Hardware klatschen.

Da sind wir uns einig.

Aber es gibt immer genug Experten die das eben nicht tun. Wenn man pauschal empfiehlt „benutz halt drei BitBox02“ kann aus meiner Sicht halt weniger schief gehen, weil ich das Produkt gut kenne und weiß dass man entsprechend an die Hand genommen wird.

Einen Mix würde ich halt erst dann empfehlen wenn ich die Kompatibilität selber getestet habe. Dass man sich das selber anschauen kann bzw. soll ist natürlich klar und dann spricht da auch nichts dagegen.

Es geht ja nicht darum Power-usern zu sagen was sie falsch machen, sondern Anfänger davor zu schützen in Stolperfallen rein zu rennen. :slight_smile:

2 „Gefällt mir“

Zunächst einmal bin ich sehr froh, dass es so viele Möglichkeiten gibt Sats aufzubewahren und jeder auf Basis der eigenen Situation wählen kann. Natürlich setzt das voraus das man sich seiner Verantwortung bewusst ist. Ich halte sehr viel davon pragmatisch anzufangen und sein setup regelmäßig zu hinterfragen und an die persönliche Situation anzupassen.

Der Artikel ist meiner Meinung nach aber recht stark auf Bitbox o. ä. Gemünzt, die sich meiner Meinung nach nicht wirklich für multi sig eignen. Es gibt aber auch Möglichkeiten die speziell für Multi sig entwickelt wurden und die schon sehr gut funktionieren vorausgesetzt man benutzt sie richtig.

Ich bin ein Fan vom seed signer. Hier kann ich mit einem Gerät z. B. 3 Schlüssel mit unterschiedlicher Memoric (Foto, Würfeln, Zettel aus einem Hut ziehen) erstellen und habe durch die eingebaute Kamera auch die Möglichkeit meine Adressen durch scannen des QR codes zu verifizieren. Viele dieser Stolperfallen entstehen also eigentlich nur durch das verwenden von Hardware Walles nicht aber beim benutzen von signing devices.

Bitte nicht falsch verstehen aber ich glaube man sollte aufpassen nicht der Glorifizierung der Bitbox zu verfallen und sich somit evtl. scheu klappen aufzusetzen. Die Kritik an Ledger z. B. Könnte ja eigentlich genau so auch auf die Bitbox zutreffen nur das man hier dem Unternehmen mehr vertraut. Aber eigentlich sollte doch auch für unsere Wallets don’t trust, verify gelten.

Hast du da auch ein Argument für?

Wo ist jetzt der Unterschied zwischen Signing Device und Hardware Wallet? xD

Ist ja schön und gut wenn du mit deinem SeedSigner Multisig Setup zufrieden bist. Aber für was benutzt du überhaupt Multisig, wenn du sowieso nur ein Gerät verwendest? Wo soll denn da der Vorteil z.B. gegenüber einer optionalen Passphrase sein? Damit machst du dir es doch nur komplizierter.

Beim SeedSigner wäre jedenfalls mein größter Kritikpunkt, dass ich kein Multisig Setup langfristig registrieren kann.

Das heisst, für jede Adresse die ich benutze, muss ich den kompletten Verifizierungs-Wahnsinn einmal durchgehen. Ich kann mir natürlich den Fingerprint der Schlüssel merken/aufschreiben. Manuell überprüfen muss ich trotzdem.

Bei der Bitbox02 weiß ich nach dem Einrichten: Adresse steht auf dem Display – Adresse authentisch.

Natürlich ist Shift Crypto Partner von Blocktrainer.de und es liegt entsprechend nahe, dass wir in so einem Beitrag auch die BitBox02 empfehlen.

Das ändert aber erstens nichts an den Aussagen im Beitrag, und zweitens ist die BitBox02 nunmal wirklich bestens geeignet für Multisig Setups. Da sehe ich jetzt keine Argumente die dagegen sprechen und bin mal gespannt wieso du das anders siehst.

Okay… und wo liest du das Gegenteil raus?

Die BitBox02 Firmware ist open-source und reproduzierbar, letzteres gilt für den SeedSigner übrigens nicht. (Das ist auch schwer umzusetzen, aber wenn du hier schon einen auf „Don’t trust verify“ machst wollte ich das erwähnt haben). :slight_smile:

1 „Gefällt mir“

Die Argumente wurden doch im Artikel bereits geliefert. Anschaffungskosten und Verifizierung der Empfangsadresse.

Der Unterschied zwischen Signing Device und Hardware Wallet ist, dass beim Hardware Wallet der Seed im Gerät gespeichert, beim Signing device wird der Seed unabhängig vom Gerät verwahrt.

Der Vorteil ist also, dass ich mit einem Gerät unendlich viele Schlüssel erstellen kann und diese an mehreren Orten lagern kann. somit kann ich auch in einem 2 von 3 setup einen Schlüssel verlieren und komme trotzdem noch an meine coins. Das geht mit einer Passphrase eben nicht.

Das verifizieren einer Adresse dauert für mich nur wenige Minuten, ich muss dafür lediglich die Adresse und den Descriptor scannen, ich brauche nicht mal Zugang zu einem Gerät auf dem ein Schlüssel gespeichert ist.

Bei der Bitbox ist soweit ich weiß nur ein Teil open source. Oder haben sie das mit 02 geändert? Mit Don’t trust verify meine ich, das ich bei der Bitbox die Software nicht selber auf der Bitbox installiere und nicht wissen kann, ob wirklich die veröffentlichte Software installiert wurde oder ob diese nachträglich modifiziert wurde.

Beim Seedsigner scheinst du falsch informiert zu sein. Ich lade dort denn quellcode direkt von github und schreibe es auf eine SD Karte. Diese SD karte fungiert dann als Betriebssystem für meinen signer. Das Betriebssystem wiederum kann ich über einen hash und eine Signatur verifizieren. Ich bin also sicher, dass nachträglich nichts modifiziert wurde. Kannst du das auch bei der Bitbox auch überprüfen?

Okay, da hast du Recht. Kann man so machen.

Auch wenn das mit einem Mnemonic Split immer noch einfacher wäre.

Aber das ist halt nicht der eigentliche Anwendungsfall von multi-sig auf den der Beitrag eingeht. Finde das also etwas seltsam wenn du das als Argument nutzt warum generell die BitBox02 nicht geeignet sein soll… Das mag für dich so sein, aber darum geht es ja nicht.

Nein, vollständig open-source, sowohl Firmware als auch BitBoxApp.

Du kannst über die BitBoxApp nachvollziehen dass tatsächlich die veröffentlichte Binary auf der BitBox02 installiert wird. Vorher kannst du durchs Reproduzieren nachvollziehen dass in der veröffentlichten Binary tatsächlich der Quellcode enthalten ist, und zwar nur der Quellcode.

Auf der BitBox02 kannst du dann auch den Firmware Hash beim Start anzeigen lassen, dem musst du natürlich vertrauen, aber das ist out of scope und gilt für jede Hardware Wallet.

Nein, du schreibst nicht „den Quellcode“ auf eine microSD Karte, sondern das kompilierte Image. Da kann theoretisch noch mehr drin stecken, das siehst du von außen nicht.

Du kannst dieses Image nicht Bit für Bit aus dem Quellcode reproduzieren. Mit der BitBox02 Firmware schon.

Ich würde das normalerweise auch gar nicht so gegeneinander ausspielen, da wir hier von einer purpose-built Hardware Wallet und einem DIY Gerät mit Serienhardware sprechen, aber du hast damit angefangen…

Habe übrigens selbst einen SeedSigner und finde das Projekt ziemlich cool. Ich will hier also kein SeedSigner bashing betreiben, sondern nur darstellen warum ich die BitBox02, gerade bei diesem Thema, für die bessere Option halte.

Nein, das bist du eben nicht. :sweat_smile:

Alleine schon weil du auf einem RasPi Zero unterwegs bist, dessen Authentizität nicht, wie bei der BitBox02, zusammen mit der Software auf dem Rechner sichergestellt werden kann.

Du kannst dir nie sicher sein was tatsächlich auf deiner Hardware Wallet passiert. In Kombination mit einer open-source Desktop App, die mit der Hardware Wallet direkt kommuniziert allerdings schon. Denn was die auf deinem Rechner macht kannst du sehr wohl nachvollziehen.

Sehr guter Beitrag dazu, ich weiß, von Shift Crypto, aber die Argumente sind auch ohne Bias valide:

Aber ich bin ja derjenige der „falsch informiert“ ist lol…

2 „Gefällt mir“

Beim Mnemonic Split muss ich doch aber dann die Wörter wieder jedes mal manuell eingeben, und kann nicht einfach einen QR Code scannen, außerdem muss ich jedes mal die zwei Zettel an einem Ort haben um Bitcoins verschicken zu können.

Bei Multisig kann ich eine PSBT erstellen, die mit einem Key unterschreiben und an einen anderen Ort gehen und dort mit dem zweiten Key unterschrieben. Die Keys müssen also niemals zusammen an einem Ort sein.

Generell nicht geeignet war von mir etwas hart ausgedrückt ich meine viel mehr, das das nicht so praktikabel ist und eben viele Stolpersteine bietet.

ich dachte immer das secure Element sei nicht open source, wieder was gelernt.

Das stimmt, werde ich mal als Kritik an die Seedsigner community weitergeben, vielleicht lässt sich das ja auch noch irgendwie verifizieren, wobei mir bei einem stateless device keine möglichen Angriffspunkte einfallen, wie man das ausnutzen könnte aber es ist trotzdem nicht ideal.

sehe ich ähnlich, wobei Seedsigner halt entwickelt wurde um Multisig zu vereinfachen und ich meinte ja auch das ich sehr froh bin, dass es so viele Möglichkeiten gibt Sats aufzubewahren. Ich bin deiner Meinung, wir sollten uns bei der Diskussion auf den Multisig part konzentrieren.

warum genau findest du die Bitbox jetzt besser für Multisig?

Den Artikel kenne ich bereits aber da geht es ja eher um airgap. Das besondere am Seedsigner ist ja das die Seeds nicht auf dem Gerät gespeichert werden.

Hier übrigens die Antwort von einem seedsigner Entwickler:

Hello, is there a way to verify the source code against the image? If I don’t verify this it could be possible that there ist bad code in the image that is not in the source code no?

This would entail reproducibility, which we will hopefully be able to achieve over time but currently the builds aren’t reproducible. That said, it is reasonably simple to build your own SeedSignerOS release image using Docker. Once you have Docker set up, it is something like 3-4 commands. Only tricky part is making sure you have Docker Compose installed. More info here:

Das ist dann halt ein Problem dass man mit einem SeedSigner hat… :smiley:

Ist er auch nicht. Deshalb wird er auch nur als zusätzliche Sicherheitsmaßnahme verwendet. Sollte der Secure Chip komplett Schrott sein ist die Sicherheit nicht beeinträchtigt.

Hier ausführlich erklärt:

Die Firmware ist aber wie gesagt vollständig open-source.

Ist glaube ich eher schwierig: https://twitter.com/SeedSigner/status/1553913276387495939?s=20

Natürlich kann man wie du grade verlinkt hast das Image selbst bauen. Aber wie du selber gesagt hast macht das fast niemand. Solange es keine Reproduzierbarkeit gibt benutzen die meisten das bereitgestellte Image welches eben nicht gegen den Source Code verifiziert werden kann.

  • Weil es ganz allgemein die in meinen Augen beste Hardware Wallet ist (Reproduzierbare Firmware, Clevere Architektur, Zusammenspiel mit der BitBoxApp, Innovative Features wie Anti-Klepto etc.).

  • Anzeigen des eigenen xpubs und der Cosigner xpubs. Bei den meisten Hardware Wallets ist das zwar möglich, aber oft etwas versteckt, z.B. beim Trezor. Die BitBox02 zeigt die xpubs nicht nur passiv an, sondern als aktiven Prompt den man bestätigen muss. Der Nutzer muss also gar nicht zwingend wissen was er alles verifizieren muss, da er an die Hand genommen wird.

  • Registrierung von Multisig Setups → Einfache und praktikable Verifizierung von Adressen – auch Wechseladressen ohne Aufwand.

  • xpubs werden im korrekten Format (Zpub, Ypub, …), wie in der Software auf dem Rechner angezeigt. Vor allem bei Electrum relevant und soweit ich weiß ein Feature dass so nur die BitBox02 hat.

Es gibt da aber auch nicht „richtig“ und „falsch“. Das ist halt meine Meinung. Die BitBox02 hat alles was sie haben muss, und ist in meinen Augen, selbst für multi-sig, die Anfängerfreundlichste Option. Also kann man sie auch guten Gewissens empfehlen. Das hat dann auch nichts mit „Glorifizierung“ zu tun wie du das oben genannt hast.

Eine Empfehlung bedeutet nicht dass alles nicht-empfohlene Schrott ist.