selfcustody / krux

Open-source signing device firmware for Bitcoin
https://selfcustody.github.io/krux/
Other
186 stars 37 forks source link

[Enhancement] Make beta builds installable airgapped via SD card #473

Open nervetrip opened 1 month ago

nervetrip commented 1 month ago

@odudex I've been installing your beta builds via USB with ktool. This works fine but I'd like to eventually be fully airgapped.

Is it possible to include a firmware.bin.sig file whenever a new build is created? I tried installing with just firmware.bin on the SD Card, but it failed. Or am I doing something wrong? I'm following the instructions here: https://selfcustody.github.io/krux/getting-started/features/sd-card-update/

odudex commented 1 month ago

Many users have two or more devices and use one of them for more serious use, flashing only stable releases and keeping it always air-gapped. The other device is used to help us test new features, satisfy curiosity, and report bugs and feedback. As you have been doing in an exemplary way (thank you 🙏). The official signature helps keep things separated. I could do better structured beta releases, but I would not use the selfcustody signature for them. Maybe I could create another one, which requires a less secure and more practical protocol, and when firmware detects it is a beta signature it warns the user. What do you think?

nervetrip commented 1 month ago

That's a great point! It does make sense to keep the official signature of stable releases isolated from unstable releases. I hadn't really thought through the implications when making this request.

I should probably get another device. So far I've been using it only for experimenting and testing, so installing beta versions hasn't been a concern. My first instinct is to say not everyone can afford multiple devices, but I do realize that most contributors and people willing to test beta releases can.

Installing beta releases in an air-gapped way would be nice, but it isn't critical and shouldn't be high priority. If you think there's value to be had, then an alternate signature for beta releases seems like a good solution. And a firmware warning would add a nice touch.