SeedSigner / seedsigner

Use an air-gapped Raspberry Pi Zero to sign for Bitcoin transactions! (and do other cool stuff)
MIT License
714 stars 163 forks source link

[Feature] request only : PSBTs to microSD #248

Open mccolister1017 opened 2 years ago

mccolister1017 commented 2 years ago

Export signed PSBTs to microSD , if it's only possible what you guys think ? about that . could be good with SeedSigner OS .

SeedSigner commented 2 years ago

This will definitely be possible with SeedSigner OS, but we haven't made any concrete decisions about whether implementing such will be a priority. For larger PSBTs, it is definitely a more convenient way to move the PSBT back and forth between the signer and coordinator, but using a MicroSD card in that way opens up a bunch of new attack vectors for the device that we'll have to think very carefully about. The first experimental releases of SeedSigner-OS should be coming in a matter of weeks, we'll get a better feel for things as time goes on.

mccolister1017 commented 2 years ago

sound fair ok all right

Semisol commented 2 months ago

Okay, so, I have been thinking about the security implications of this for a while, and it is possible to implement this with some restrictions without negatively impacting the security model.

First, we should define "tainted" devices/objects (see taint analysis): something is tainted when it directly observes private key material, or comes into contact with another tainted object except through a controlled, verifiable communication channel (QR codes).

A naive implementation would allow the import and export of PSBTs at any time. This would be problematic, as the following scenario could happen:

Not allowing any SD card operations after a seed is loaded ever (even if it is later removed) would fix this, but there is another security hole:

This would require an updated list of conditions:

The goal with these two requirements is to train the user to use the SD card functionality in a way that does not add additional risk to the SeedSigner security model.

The guardrails could be disabled by a special configuration setting, but this would always weaken the security model.