Probleme bei Firmware-Update bei der BitBox02: Feststecken im Bootloader

Liebe Profis,

ich habe gerade bei meiner Bitbox 02 nach Monaten mal wieder die Firmware aktualisiert. Ich bin vorgegangen wie bei den Hilfeseiten von Shift Crypto beschrieben:

https://shiftcrypto.support/help/de-de/3-basics/95-wie-update-ich-die-firmware-meiner-bitbox02

Dabei sind zwei ungewöhnliche Sachen passiert:

Statt zu updaten zeigt die Bitbox zuerst minutenlang nur „Bootloader“ an.

Shift Crypto schreibt dazu in der Hilfe:

„Sollte es Probleme beim Aufspielen der Firmware geben, stecke die BitBox02 ab, schließe die BitBoxApp komplett, öffne sie dann wieder, stecke die BitBox02 ein und versuche die Einrichtung erneut.“
(Knowledge Base - BitBox02 zeigt nur "Bootloader" an)

Das habe ich gemacht. ALLERDINGS HABE ICH ENTGEGEN DER ANWEISUNG VERGESSEN, DIE BITBOX-APP ZWISCHENZEITLICH ZU SCHLIESSEN, sondern die Bitbox gleich wieder angesteckt (ohne die App zwischenzeitlich geschlossen zu haben). Die Bitbox wurde dann sofort erkannt (ohne, dass ich das Passwort nochmal eingeben musste) und nach einer Dialogfeld-Bestätigung in der App und auf der Bitbox wurde das Firmware-Update dann aufgespielt.

Meine Frage jetzt:
Ist das normal, dass sich die Bitbox und die Bitbox-App auf dem Handy sofort erkannt haben und das Firmware-Update aufgespielt werden konnte, obwohl die Bitbox zwischendurch abgestöpselt war? Das Abstöpseln bewirkt doch sonst, dass die Verbindung unwiderruflich getrennt wird und man an der Bitbox das Passwort erneut eingeben muss. Das musste ich aber nicht. Bitbox abgestöpselt und sofort wieder eingestöpselt und ich war immer noch drin.

Das fand ich etwas komisch.

Kann es sein dass dabei irgendwelche Malware aufgespielt wurde, ein Angriff stattgefunden hat oder sonstwas Übles.

Ist der Vorgang klar geworden?

Ich danke den Profis für ein Statement.

Viele Grüße
Traffipax

Eigentlich sollte die BitBox02 nach abstecken komplett neu starten und damit auch das Gerätepasswort fordern, das ist völlig richtig.

So wie ich deine Frage verstehe hast du die BitBox02 aber abgesteckt während du im Bootloader warst. Dann ist das von dir beschriebene Verhalten normal, also dass die BitBox App die sich im Bootloader befindende BitBox02 erkennt und es (erstmal) zu keiner Passwortabfrage kommt.

Erst wenn du dann das Gerät startest (bzw. nach dem Firmware Update) wirst du dann korrekt nach dem Passwort gefragt. Vorher ist das Gerät auch gar nicht „gestartet“, sondern befindet sich eben im Bootloader. :slight_smile:

Dieses Verhalten kann man auch ohne Firmware Upgrade einfach selbst reproduzieren indem man manuell in den Bootloader wechselt und das Gerät absteckt (Manage device → Go to start up settings).

Es wäre aber sicherlich sinnvoll wenn @Stadicus diese Antwort bestätigen kann, nur um sicher zu gehen. Um einen Angriff würde ich mir hier aber keine Gedanken machen.

Wenn dir wirklich Unwohl mit der Geschichte ist dann kannst du dich auch beim Shift Crypto Support melden (support@shiftcrypto.ch).

5 „Gefällt mir“

DIese Erklärung ist absolut korrekt. Der Bootloader wird vor Eingabe des Passworts gestartet, managed den Update-Prozess, und startet dann die eigentliche Firmware (welche dann nach dem Passwort fragt).

Wenn die BitBox02 im Bootloader-Modus ist, dann wird dieser immer direkt angezeigt.

Das Gerätepasswort (welches nie auf dem Gerät gespeichert wird) ist übrigens Teil der Verschlüsselung der Wallet auf der BitBox02, was dank Open Source auch zweifelsfrei überprüft werden kann. Daher kann die BitBox02 ohne das Gerätepasswort gar nicht auf deine Wallet zugreifen.

2 „Gefällt mir“

Dank Euch beiden @sutterseba und @Stadicus für Eure Antworten! Starke Support in einer tollen Community! Das bestätigt einmal mehr, dass Bitcoin eine gute Sache mit einer guten Wirkung und Ausstrahlung ist. Alle arbeiten gemeinsam an einem Stück Freiheit und Selbstbestimmtheit. Danke, dass Ihr diejenigen unterstützt, die technisch nicht ganz so versiert sind!

Nochmal zum Inhalt:

Ja, ich hatte die Bitbox abgestöpselt während sie im Bootloader war, weil minutenlang gar nichts passiert ist. Und dann eben gleich wieder angestöpselt und dann ging sofort das Firmware-Update los.

Um mein technisches Verstandnis dieser Sache zu vertiefen (und das aller zukünftigen Leser):

Verstehe ich das richtig, dass sich eine Bitbox im Bootloader-Modus ohne Gerätepassworteingabe mit der Bitbox-App verbindet und dabei abfragt, ob es was zum updaten gibt. Wenn das der Fall ist, wird die Firmware geupdatet und dabei ist es völlig egal, was das Gerätepasswort ist, weil ja ohnehin nur die Basisfirmware des Geräts aktualisiert wird, völlig unabhängig davon, wem es gehört und um welche Wallet es geht.
Ist das korrekt so?

Falls das so ist, würde das heißen, dass es unabhängig von dem Ort, an dem die Firmware aktualisiert wird, einen Platz in der Bitbox geben muss, in dem die „private keys“ gespeichert sind und der bei einem Firmware-Updage nicht überschrieben/verändert wird. Die „private keys“ müssen ja schon irgendwo in der Bitbox stecken, sonst käme ich ja nicht auf meine Wallet nur durch Eingabe meines Gerätepassworts.

@Stadicus, Du schreibst, das Gerätepasswort würde nie auf dem GERÄT gespeichert werden. Das verstehe ich nicht ganz. Mit „Gerät“ meinst Du das Smartphone oder den Computer (nicht die Bitbox), vermute ich. Denn auf der Bitbox muss das Gerätepasswort ja gespeichert werden, sonst könnte die Bitbox ja gar nicht vergleichen, ob das eingegebene Passwort richtig ist. Oder verstehe ich da was falsch?

Die Bitbox vergleicht das eingegebene Gerätepasswort mit dem auf ihr gespeicherten und falls diese übereinstimmen, gibt sie mithilfe der ebenfalls auf ihr gespeicherten „private keys“ den Zugriff auf die Wallet in der Blockchain frei. Richtig so?

1 „Gefällt mir“

Das ist richtig, das Gerätepasswort wird weder auf der BitBox02, noch in der BitBox App gespeichert. Du legst deinen Haustürschlüssel hoffentlich auch nicht unter die Fußmatte, oder?

Vielleicht sollte dir erstmal allgemein klar werden dass du zur Überprüfung ob ein Passwort korrekt eingegeben wurde das Passwort selbst nicht kennen musst.

Das Grundprinzip basiert hier auf Eigenschaften von kryptographischen Hashfunktionen: Ich kenne dein Passwort p nicht, dafür aber den Hashwert dieses Passwortes h(p). Gibst du mir jetzt ein Passwort p' zur Authentifizierung kann ich einfach selbst h(p') bilden und überprüfen ob das Ergebnis identisch mit h(p) ist. Kryptographische Hashfunktionen sind Einwegfunktionen, ich kann von h(p) also nicht auf p zurück schließen, und somit speichere ich effektiv nicht das Passwort selbst, sondern nur einen einzigartigen Fingerabdruck.

Auf deiner BitBox02 hast du zwei verschiedene Chips, den „normalen“ Chip auf dem die open-source Firmware installiert ist bzw. dein verschlüsselter Seed liegt und einen speziellen Secure Chip der für zusätzliche Sicherheitsvorteile sorgt.

Wenn du dein Gerätepasswort eingibst wird es zusammen mit einem sogenannten Salt, das ist einfach ein zufälliger Wert, gehasht (hier erhalten wir also die oben erwähnte Eigenschaft). Mit dem Ergebnis wird dann auf dem Secure Chip noch etwas Kryptographie betrieben bis dann schlussendlich der Hash des Gerätepassworts und der auf dem Secure Chip errechnete Wert zum entschlüsseln deines Seeds genutzt werden:

Genauer kannst du das hier nachlesen:

Dein Seed liegt wie oben in der Grafik dargestellt (verschlüsselt) auf dem Speicher des „normalen“ MCU. Bei einem Firmware Update wird hier natürlich nichts überschrieben.

Der Seed kann aber durchaus gelöscht werden, z.B. automatisch wenn du dein Gerätepasswort zu oft falsch eingibst. Für solche Fälle hast du schließlich ein Backup.

Bevor du das Firmware Upgrade aber überhaupt starten konntest musstest du dein Gerät entweder entsperren (also dein Gerätepasswort eingeben) oder das Gerät komplett zurück setzen. Hier findet also durchaus eine gewisse Authentifizierung auf Nutzerseite statt.

Aber prinzipiell hast du Recht damit dass im Bootloader keine Authentifizierung durch den Nutzer mehr notwendig ist, da man auch keinen wirklichen Zugriff auf das Gerät erhält.

Die Firmware muss außerdem von Shift Crypto signiert sein und der Edition (Multi oder Bitcoin-only) entsprechen um überhaupt installiert werden zu können. Du musst also keine Angst haben dass dir jemand Tetris installiert und deinen Seed überschreibt. :slight_smile:

Trotzdem hast du für solche Fälle natürlich ein Backup auf Papier/Stahl und auf der microSD.

Deine Wallet ist nicht „in der Blockchain“, sondern nichts anderes als die gespeicherten Schlüssel auf deiner BitBox02. Hinter dem Begriff „Wallet“ steckt nichts anderes als die Verwaltung und Sicherung von Schlüsseln.

Auf der Bitcoin Blockchain dokumentiert sind dann z.B. Transaktionen dessen Outputs du mit deinen Schlüsseln ausgeben kannst.

5 „Gefällt mir“

Super, vielen Dank Dir!
Das hat noch mal einiges klarer gemacht…

2 „Gefällt mir“

@sutterseba

4 „Gefällt mir“