Hardware Wallets werden immer als besonders sicher empfohlen. Und es wird empfohlen, das Wallet immer nur vom Hersteller direkt zu kaufen. Warum: weil das Wallet manipuliert sein könnte.
Wer kann mir garantieren, dass selbst beim Kauf von einem Hersteller das Wallet nicht manipuliert wurde. Die kriminelle Aktivität muss schließlich nicht vom Unternehmen, sondern kann von einzelnen Personen ausgehen.
Fragen:
Gibt es eine Möglichkeit, zweifelsfrei zu überprüfen, ob eine Hardware Wallet nicht manipuliert sein kann?
sind Fälle bekannt, dass Hardwarewallets manipuliert waren?
Das kann natürlich keiner garantieren. Die Frage ist, wie sehr du wem bei deinem Setup vertrauen möchtest. Die gute Nachricht ist, dass du hier sehr viele Möglichkeiten hast.
Die Sicherheitsmechanismen beginnen bei versiegelten und extrem schwer zu öffnenden Verpackungen (vor allem Trezor, ColdCard). Als nächstes wird bei erster Inbetriebnahme die Signatur der Firmware überprüft (wahrscheinlich alle, besonders prominent bei BitBox, ColdCard).
Damit sind natürlich noch nicht alle Angriffsvektoren überwunden. Du vertraust darauf, dass die vom Gerät erzeugte seed phrase auch wirklich zufällig generiert wurde. Dass dem so ist, ist sehr schwer überprüfbar.
Man kann einen seed phrase aber auch selbst offline erzeugen. Die BitBox unterstützt das Erwürfeln eines wallet seeds sehr gut – die Unterstützung wird bei der Berechnung des letzten Wortes notwendig, weil darin eine Prüfsumme der vorangegangenen Wörter codiert ist.
Wenn das Gerät mit einem Computer verbunden werden muss, dann vertraust du darauf, dass wallet seed und private Schlüssel das Gerät nicht verlassen. Das ist leichter zu überprüfen, als eine Verifikation der Hardware. Ich gehe davon aus, dass der ein- und ausgehenden Datenverkehr zwischen Hardware Wallets und dem Computer bereits viel analysiert wurde. Für alle Sicherheitslücken gilt: Würden Fehler aufgedeckt wäre das für den Hersteller fatal.
Es gibt aber auch air-gapped Hardware Wallets (z.b. CoboVault, ColdCard), die niemals an einen Computer angeschlossen werden müssen. Beim CoboVault muss man nicht einmal SD-Karten einlegen, weil die Kommunikation mit dem Computer über das Scannen von QR-Codes erfolgt.
Zusammenfassend: Der Paranoia sind keine Grenzen gesetzt. Das sicherste mir bekannte Verfahren wäre: Seed erwürfeln mit der BitBox und auf einem air-gapped wallet eingeben. Mindestens einen weiteren Seed auf einem anderen Hardware Wallet erstellen und ein multisignatur wallet einrichten.
Das kann man soweit treiben bis sichere Verwahrung und Vererbung zum größeren Problem werden.
Das beantwortet zwar deine Frage nicht direkt, sollte dir aber als Hilfestellung für die weitere Recherche dienen.
Wenn ich mir irgendein Atom aus der uns bekannten Galaxis aussuche und du dir auch eins aussuchst, dann ist die Wahrscheinlichkeit, dass wir zufällig das selbe erwischt haben in etwa so hoch, als würde dein Mnemonic einen bereits existierenden Key erzeugen.
Ganz ehrlich, die größte Gefahr von Bitcoin ist, dass die Leute ihre Keys verschlampen. Backups und Erbschaft planen.
Edit: sorry, hab die Frage nicht richtig gelesen. Das Angriffsszenario bei HW Wallets ist, dass ein Zwischenhändler sich das Mnemonic notiert, bevor er es weiterschickt. An der Hardware des Geräts wird dabei nichts modifiziert.
Hej @Kryptomanie, das ist eine spannende Frage und eine Hardware-Wallet, bei dem Otto Normalanwender dem Hersteller überhaupt nicht vertrauen muss, gibt es wohl nicht.
Ich arbeite bei BitBox und wir versuchen alles, um das nötige Vertrauen zu minimieren:
Du kannst Dir beim Start der BitBox02 vom Bootloader (der wird noch vor der Firmware ausgeführt) den Hash der Firmware anzeigen lassen.
Wer will, kann sich seine Seed auch komplett unabhängig von der BitBox02 selber würfeln: Roll your own Bitcoin seed
Hardware
(vor allem relevant beim Kauf via Reseller):
Alle BitBox02 sind in einem Vakuumbeutel mit Custom Print eingeschweisst. Reseller könnten diese daher nur mit erheblichem Aufwand öffnen und manipulieren.
Dass die BitBox02 primär aus Plastik besteht (und z.B. keine Glas-Abdeckung hat), ist ein Sicherheitsmerkmal. Sie ist innerlich mit „military grade“ Epoxy verklebt und wird beim Öffnen zerstört.
Wir veröffentlichen alle Hardware-Schemas (inklusive Bill of Material) und eine Röntgenaufnahme der BitBox02. Wer seine BitBox02 selber prüfen will, kann diese bei einem Zahnarzt röntgen lassen und prüfen, dass keine zusätzlichen Chips drin sind.
Das sind die Punkte, welche mir gerade so einfallen. Weitere Infos findest Du in unserem Threat Model, welches klar definiert, gegen welche Angriffszenarien (Hersteller inklusive) die BitBox02 schützt, und gegen welche nicht:
Bezüglich Air-Gap: das ist zum grossen Teil Sicherheitstheater. Ein echtes Airgap-System dürfte auch keine SD-Karten einlesen, welche in einem Online-Computer war. Die Kommunikation zwischen Hardware-Wallet und Comptuer ist zwar etwas langsamer, aber nicht per se sicherer. Die BitBox02 kommuniziert ausschliesslich verschlüsselt via USB und macht es irgendwelchen Systemhintergrund-Diensten (welche vollen Lese- und Schreibzugriff auf die SD-Karte haben) tendenziell schwieriger, sich in die Kommunikation einzuklinken.
Morgen @Stadicus, vielen Dank für deine ganzen ausführlichen Beiträge!
Was hältst du denn von der Kommunikation per QR Code (wie bei Cobo), so als Idee für die mittlere bis fernere Zukunft? Das ist finde ich ein ziemlich geniales Prinzip.
Es soll gerade gegenüber dir jetzt nicht falsch rüberkommen, aber ich möchte gerne (zumindest bzgl. Wallets ) niemandem vertrauen müssen. Wenn ich mir Gedanken über eine vernünftige Seed Phrase Erzeugung und Sicherung gemacht habe, ist meine letzte Angst bei HW Wallets, dass sich entweder jemand vom PC bis zum Seed hackt, oder dass die HW Wallet den Seed an den Hersteller sendet. Das wäre doch bei QR Code nahezu unmöglich, oder?
Das Verhindern eines Hacks bis zum Secure Element liegt im Interesse des Herstellers, da er möglichst viele Wallets verkaufen möchte.
Bei der Kommunikation des Seeds zurück zum Hersteller, sieht das vielleicht bei 1 von 100 Herstellern anders aus. Die Entwicklung und der Verkauf einer HW Wallet, nur um eine Art Exit Scam hinzulegen, wäre natürlich viel Aufwand. Aber bei dem Thema darf man finde ich ruhig ein wenig paranoid sein.
Ja, das sind valide Sorgen, leider sind potentielle Angriffszenarien nicht unbedingt so geradlinig.
Dass die Hardware-Wallet den Seed nicht rausrückt, kann mit der Open Source-Firmware (und „reproduciable builds“, was die Coldcard z.B. nicht hat) effektiv verhindert werden. Der Hersteller kann schicht keine geheimen Funktionen in die Firmware einbauen.
Wenn die Hardware-Wallet komprimitiert wäre, gibt es neben dem plumpen „Seed an den PC schicken“ eine vielzahl subtiler Methoden:
Der Seed kann z.B. Bit-für-Bit via SD-Karte (separate Datei, Zusatzdaten in der PSBT oder als Eintrag in der FAT extrahiert werden.
Dies ist auch mittels QR-Codes möglich. Wenn Du die QR-Codes jeweils mit einem separaten Gerät inhaltlich prüfst, ist schon vieles auszuschliessen, aber auch da sind subtile Möglichkeiten denkbar. Wenn gewisse HWW nun mit „verschlüsselten QR-Codes“ werben, verliert der Code natürlich sämtliche Transparenz.
Der Seed kann potentiell sogar in den Bitcoin-Transaktionen selber versteckt werden. Die BitBox02 ist die erste Hardware Wallet, welche gegen diese „nonce covert channel attack“ schützt.
Hier eine Übersicht, welche HWW welche dieser Massnahmen unterstützt:
QR-Codes sind schon vielversprechend, aber bislang habe ich noch keine Implementierung gesehen, welche meiner Meinung nach die Sicherheit signifikant erhöht.
Wirklich toll, was ihr euch da für Gedanken macht!
Ich kann mir ungefähr vorstellen, in welche Richtung das geht, aber vielleicht nochmal kurz für mich als Nicht-Informatiker:
Den Open Source Quellcode kann ich mir auf Github ansehen, aber die Software, die ich mir von der Shift Crypto Seite herunterlade ist bereits kompiliert. Ein Hash Vergleich stellt nur sicher, dass ich die richtige Datei heruntergeladen habe, aber nicht ob die Datei aus dem bekannten Quellcode kompiliert wurde. "Reproduceable builds“ löst das irgendwie?
Wikipedia verstehe ich so, dass ein bestimmter Standard-Compiler verwendet wird. Damit könnte man selbst kompilieren und das Ergebnis vergleichen.
Wäre es eigentlich prinzipiell möglich den Code von github selbst zu kompilieren und für ein Firmware Update zu verwenden, oder wäre das aus irgendeinem Grund zu kompliziert?
Zu deinen letzten beiden Links hätte ich auch noch eine kurze Frage:
Werden alle Sicherheitsfeatures aus der Vergleichstabelle (z.B. das anti-klepto protocol) auch in Verbindung mit Electrum unterstützt? Oder gibt es Features, auf die man dann verzichten muss?
EDIT:
Kleiner Nachtrag, dann lass ich dich wieder in Ruhe . Welche Sicherheitsunterschiede gibt es denn zwischen der Bitcoin only und der anderen Version, in Bezug zu der verlinkten Tabelle?
Ja, das ist korrekt. Der öffentliche Code ist schön und gut, aber erst mit einem reproduzierbaren Kompilierprozess kannst Du sicher sein, dass dieser Code wirklich im Release drin steckt.
Wenn Du das selber überprüfen willst: wir stellen einen Docker-Container zur Verfügung, der das relativ einfach macht. Das ist ein gekapseltes Linux-Betriebssystem, welches transparent mittels einem Skript erzeugt wird und alle nötigen Tools bereits installiert hat.
Danach kannst Du mit einem einzigen Befehl die Firmware kompilieren und kriegst Bit-für-Bit dasselbe Ergebnis wie unser offizielles Release (einfach überprüfbar mittels Checksumme).
Wäre es eigentlich prinzipiell möglich den Code von github selbst zu kompilieren und für ein Firmware Update zu verwenden
Nein, das ist nicht möglich, da die BitBox02 nur von Shift Crypto signierte Firmware ausführt. Du kannst aber überprüfen, ob die signierte Firmware (abgesehen von der Signatur) identisch mit dem von Dir kompilierten Release ist.
Werden alle Sicherheitsfeatures aus der Vergleichstabelle (z.B. das anti-klepto protocol) auch in Verbindung mit Electrum unterstützt?
Gurndsätzlich ja, aber speziell bei Anti-klepto muss das auch die Software-Wallet unterstützen. Das ist schon das Ziel, aber ich will mich da nicht zusehr für andere Projekte aus dem Fenster lehnen. Da wir dieses Feature erst gerade im Januar veröffentlicht haben, kann das ggf. noch etwas dauern.
Welche Sicherheitsunterschiede gibt es denn zwischen der Bitcoin only und der anderen Version, in Bezug zu der verlinkten Tabelle
Beide Versionen unterstützen alle Sicherheitsfeatures. Der Vorteil der Bitcoin-only Version ist einfach, dass sie weniger Code, weniger Komplexität und und damit (im Falle eines Bugs) weniger Angriffsfläche bietet. Und man kann sie verschenken, ohne dass der Beschenkte gleich zum Shitcoiner wird…
Ihr habt euch wirklich viele Gedanken über die Sicherheit gemacht, so, wie ich es herauslesen kann.
Im Vergleich, den du zwischen der bitbox und den anderen Hardware Wallets zeigst, ist keine offline Wallet dabei.
Welche der offline Wallets (cobo vault, Ellipal, Safepal, keevo, Ngrave ) könnte man mit der bitbox vergleichen, wenn man nur den Aspekt der Sicherheit in Betracht zieht?
ich bin nicht sicher, ob das Thema schon mal aufgegriffen wurde, aber mich würde interessieren, für wie wahrscheinlich oder unwahrscheinlich ihr es haltet, dass namenhafte oder weniger namenhafte Hardware-Wallets derzeit oder zukünftig Backdoors enthalten.
Es ist schließlich so, dass vermutlich kaum jemand von uns die Geräte hinreichend untersuchen könnte, oder doch? Ist es in Anbetracht dieser Überlegung überhaupt sinnvoll, auf irgendeine Firma zu trauen? Denn selbst wenn die Firma es selbst gut meint, ist ja keineswegs ausgeschlossen, dass einzelne Mitarbeiter oder Zwischenstufen im Vertrieb die Geräte manipulieren / austauschen.
Firmen die sicherheitskritische Soft und Hardware entwickeln und vermarkten haben oft externe Audits und Bugbountyprogramme um ihre Qualität zu sichern.
The BitBox02 firmware was audited byCensus Labs along with consulting done by multiple third-party security firms.
Bug bounty program
We take security reports very seriously: we run a bug bounty program and encourage independent researchers to audit our device and responsibly disclose any findings.
=============
Ledger hat aber z.B. auch ein bug bounty program.
Also ja das Risiko besteht deshalb kann man auch ab einem Betrag X auf mehrere Lösungen setzen.
Die Verbindung mit der BitBox02 muss zuerst mit der BitBoxApp initialisiert werden, da wird die verschlüsselte Verbindung aufgebaut. Die Kommunikation mit Sparrow ist dann darauf aufbauend auch verschlüsselt.