Coldcard Wallet Sicherheitslücke

Ich verstehe den Sinn dieses Textes nicht so ganz. Ist doch vollkommen in Ordnung, der Entropie eines Geräts nicht zu vertrauen bzw. zur Sicherheit eine eigene Quelle hinzuzufügen, weil man damit rechnen würde, daß es evtl. keine saubere Arbeit leistet.

Was ich nicht in Ordnung fände, wäre es, den Besitzern einer Coldcard vorzuwerfen, sie hätten nicht genug getan, nur weil sie das Gerät ordnungsgemäß genutzt haben ohne zusätzlichen Schutz.

Der riek hat sich mal wieder als unwissend geoutet…

Manchmal verstehe ich einige Leute aber auch nicht. Ich habe die Produkte von Coinkite mal gesehen aber habe mich nicht damit beschäftigt. Welchen Status hat dieses Unternehmen in der Bitcoin Community überhaupt?

Ich beispielsweise vertraue vielen Herstellenr grundsätzlich nicht. Etwa Ledger. Manche Unternehmen strahlen doch bereits eine nicht optimale Philosophie aus. Es gibt dann diese Leute die mit den Schultern zucken und trotzdem das Produkt geil finden. Ja schön. Aber dann muss man eben damit rechnen dass die wenig transparenten Sicherheitsprozesse vielleicht richtig scheiße sind und die Bude in etwa dem Standard einer McDonalds Filiale entspricht statt einem Unternehmen das sicherheitskritische Finanzprodukte entwickelt.

BitBox ist da nicht der einzige seriöse Hersteller. Aber achtet einfach mal drauf wer die Leute hinter dem Unternehmen sind, die Gesichter, was reden die, welche Kompetenz strahlen sie aus, welchen grundlegenden Philosophien folgen sie. Gab es fragwürdige Vorgeschichten? Das juckt viele einfach nicht und dann kaufen sie eben Dinge die einfach cool, trend oder günstig sind. Ich weiß wie gesagt nicht wo Coinkite da einzuorden ist. Aber wenn so was bei Ledger passiert, wäre das für mich keine Überraschung.

Joa, dann ist jeder erfolgreiche Scam bei einem Bitcoiner auch ein erfolgreicher Angriff auf das Bitcoin Netzwerk :clown_face:

„was wäre, wenn der gewürfelte Seed die gleiche Variable bekommen hätte, die im abgeschalten Code wäre.“

Das ist mit einem Pythonskript, das coinkite auf der Webseite bereitstellt, auch für Laien leicht verifizierbar. (Link)

Es ist ja nicht das erste Mal dass er scheiße labert, das war vor ein paar Jahren noch die Regel

Wenn man die KI jetzt auf die ganzen alten Firmware Releases der bekannten HW Hersteller ansetzt, wie hoch wird wohl die Wahrscheinlichkeit sein auch bei denen Sicherheitslücken oder Bugs aufzudecken!? Wer weiss schon mit welcher FW Version der eigene Seed erzeugt wurde. Aktuell wird überall beteuert es gäbe kein Problem, aber gilt das auch für ältere Releases? Hmmmm…

Ein vernünftiger Hardware Hersteller setzt schon seit langem KI ein um Schwachstellen zu finden

Änderungen in den Versionen müssten ja eigentlich kommuniziert werden oder ist das bei Hardwarewallets nicht so

Dieser Beitrag ist einer der schädlicheren in diesem Thread, weil er sich liest, als wäre er aufklärend, während er in großen Teilen unrichtig ist:

Dieser gesamte Abschnitt ist reine Fiktion. Es gab keine „doppelt belegte Variable“, folglich gab es auch nicht die beschriebenen Kompilierungsprobleme, und es hat auch niemand deswegen oder aus einem anderen Grund einen Codeabschnitt deaktiviert. Keine Ahnung, wo du diesen Unfug her hast.

Der tatsächliche Fehler war subtil, und es ist für mich nachvollziehbar (wenn auch nicht entschuldbar), dass er lange nicht entdeckt wurde. Die verwendete libngu library ist übrigens de facto open source, die einzige Einschränkung ist eine Shitcoin-Klausel in der Lizenz.

Du verstehst das (oder zumindest mein) Argument falsch. Es geht nicht darum, dass die Entropiequellen unzureichend sind, es geht darum, dass es eine gewisse Wahrscheinlichkeit gibt, dass diese Quellen wegen Softwareunzulänglichkeiten nicht genutzt werden. Und egal, als wie gering du diese Wahrscheinlichkeit ansiehst, sie ist realistischerweise viel höher als die Wahrscheinlichkeit, dass ein Würfelseed geknackt wird (ich weiß, Leute tun sich schwer damit, geringe Wahrscheinlichkeiten miteinander zu vergleichen, ich kann gern genauer darauf eingehen).

Also insgesamt ist das Risikoprofil von Würfel vs. Wallet das folgende:

  • Wallet: volle Entropie mit sehr hoher Wahrscheinlichkeit, unzureichende Entropie mit sehr geringer Wahrscheinlichkeit
  • Würfel: ausreichende Entropie mit 100% Wahrscheinlichkeit

Du kennst doch sicher das Bitcoin-Motto „don’t trust, verify“. Das Risikoprofil von Wallet-Seeds erfordert trust, ein Würfel ist überprüfbar, das ist der Punkt.

Du missverstehst auch hier – diese Variante empfiehlt hier niemand. Damit die Entropie deines Seeds verständlich und überprüfbar bleibt, musst du das Mnemonic (bis zur checksum) natürlich ganz ohne Softwareunterstützung generieren.

Ich würde dir ehrlich gern antworten, aber ich verstehe die Frage nicht. Was heißt das, dass ein Seed eine „Variable bekommt“? Kannst du das nochmal anders formulieren?

Bitte lassen wir das ad hominem und reden über die Materie an sich. Ich habe mich in meinem Leben noch nie zuvor öffentlich über Würfelseeds geäußert.

Die ColdCard Nutzer, die jetzt ihre Ersparnisse verloren haben, wären sicherlich lieber im Vorfeld etwas mehr verunsichert worden.

BTC Sessions schreibt:

We just had our first confirmed loss of a Mk3 + 2 Word Passphrase.

Added context, passphrase was two regular words, nothing super complex.
Main takeaway: attackers have moved from not only attacking low hanging fruit of low entropy seeds onto also brute forcing low entropy passphrases in combination

Edit: Im X-Thread spricht jemand von 3 Word Passphrase.

Irgendwie wirft das die Frage auf, wie hoch die Wahrscheinlichkeit eines noch nicht entdeckten Bugs im Bitcoin Core code selbst ist…

Korrekt, ich arbeite bei BitBox. Steht auch in der Bio. :slight_smile:

Die Wahrscheinlichkeit dass eine der Quellen eine Schwachstelle hat würde ich als größer einschätzen, alleine schon weil du mit 2^-230 natürlich eine derart absurde Unwahrscheinlichkeit genannt hast… :smiley:

Aber das ist auch gar nicht der Punkt: Es könnten schließlich 4 von 5 Quellen durch einen gravierenden Bug schlechten Zufall liefern oder nicht korrekt verwendet werden, und trotzdem wäre der resultierende Seed sicher wenn die verbleibende Quelle guten Zufall liefert.

Grundsätzlich kann es in einer Implementierung natürlich immer noch eine tiefer sitzende Schwachstelle geben die das Mixing an sich nicht korrekt umsetzt. Oder wie bei Coldcard ein unentdeckter Fehler im Build-Prozess, durch den am Ende sämtliche TRNGs gar nicht erst befragt werden.

Uns ist so eine Schwachstelle natürlich nicht bekannt und wir haben diese konkrete Implementierung auch erst kürzlich intern nochmal überprüft. Du kannst dir das hier auch selbst anschauen: bitbox02-firmware/src/rust/bitbox02-rust/src/keystore.rs at c838d7fd80190a02531ba30e4a904240e4485e1f · BitBoxSwiss/bitbox02-firmware · GitHub

In der Praxis ist die Gefahr beim Würfeln eines Seeds aber eher ein Anwenderfehler würde ich sagen. Zum Beispiel eine Kombination aus nicht sauber gewürfelt, selbst Zufall ergänzt und mehrere Würfel mit Bias. Du nimmst an, dass sich jeder vor dem Würfeln sauber informiert und das dann auch diszipliniert durchzieht.

Die 230 Bit hast du jetzt einfach mal so in den Raum gestellt. Man kann hier auch einen deutlich relevanteren Entropieverlust haben, vor allem natürlich beim Würfeln von nur 12 Wörtern.

Wenn man alles richtig macht (und sich z.B. an unsere Anleitung hält), ist Würfeln aber natürlich eine sichere Sache. Also weiß ich nicht genau worauf du hinaus willst? :slight_smile:

Vielen Dank für diesen interessanten Beitrag!

Werden denn auch früherere Implementierungsstände überprüft? Dies war ja ein Problem bei der Coldcard.

Das gilt aber nur, wenn das dem Angreifer bekannt ist, z.b. weil das ein bekannter Fehler von Würfeln eines Herstellers ist, keine 1en zu würfeln. Wenn es dagegen öfter mal schlechte würfel gibt, deren miserabilität aber zufällig verteilt ist, dann sinkt die Entropie nicht, da der Angreifer nicht weiss welche zahl bei dir nicht vorkommt und daher trotzdem alle durchprobieren muss.

Ich spreche nicht von einer Quelle mit Schwachstelle, sondern davon, dass die Entropie im gleichen Ausmaß kompromittiert ist wie im Coldcard-Fiasko. Du weißt, wie absurd unwahrscheinlich 2^-230 ist, also würdest du mir sicher auch da recht geben, oder?

Ich habe irgendeinen Würfel angenommen, den jeder Beobachter bei 100 Würfen als offensichtlich schlecht erkennen würde, und die min-entropy berechnet. Klar kann man auch mehr Entropie verlieren, aber ich behaupte, dass du dir schwer tun wirst, bei 256 Bit angestrebter Entropie eine realistische Kombination aus schlechtem Würfel und schlechtem Würfeln zu finden, die so viel Entropie verliert, dass das Ergebnis nicht immer noch sicherer ist als jede Garantie, die ein Wallethersteller über die Softwareintegrität seines Produkts geben kann.

Worauf ich hinaus will, ist:

Viele Leute vertrauen wegen Verunsicherungen wie „was ist wenn mein Würfel zu schlecht ist“, „was ist wenn ich zu gleichmäßig würfle“ etc. lieber einer Seed-Erstellung, die von Software koordiniert wird. Mein Punkt ist, dass diese Zweifel ungerechtfertigt und der Seed-Sicherheit abträglich sind, und dass ein integrer Wallethersteller diese Verunsicherungen beseitigen könnte, indem er ehrlich sagt „wir sind überzeugt von der Sicherheit unseres Produkts, aber bei Software jeglicher Art kann man technisch gar keine so hohe Sicherheit garantieren, wie man sie mit dem billigsten Würfel und stinknormaler Würfeltechnik garantieren kann, und zwar so“ – anstatt in der Würfelanleitung „Casinoqualität“ zu fordern und die Sache als „starke Erfahrung“ abzutun.

(Das klingt jetzt vielleicht mehr nach einem Angriff, als es sein soll, ich meine hier alle Wallethersteller, aber du bist halt grad da.)

Ja, aber nur mit dieser konservativen Annahme lässt sich sinnvoll das Risiko vergleichen, was ich ja hier mache.

Da könntest du noch sehr vieles auflisten und ich müsste dir Recht geben, also ja.

Ich würde sagen man kann die technische Sicherheit des Produkts aber eher garantieren als dass jeder Nutzer die Würfeltechnik richtig umsetzt. Vollständig garantieren kann man natürlich beides nie. Letzteres ist aber nicht in unserer Hand und daher formulieren wir so einen Blog-Artikel auch lieber übervorsichtig anstatt in Richtung „macht einfach“.

Falls du konkretes Feedback zu einer Formulierung in der Anleitung hast, kann ich das aber gerne berücksichtigen.

Ich stimme dir ja zu, dass es vollkommen legitim ist, Würfeln grundsätzlich vorzuziehen, weil man individuell für sich da ein geringeres Gesamtrisiko sieht. Wäre den aktuellen Umständen entsprechend auch absurd, das nicht zu tun.

Ich bin hier grade eher als Sebastian da, der sich freut mal wieder mit mowtan zu schreiben. :grin:

+1

Ich freue mich einfach, dass dieser Anlass sowohl mowtan als auch makowski wieder hat aktiv werden lassen. :slight_smile:

Die letzten Jahre waren recht langweilig im Vergleich.