cryptoadvance / specter-diy

DIY airgapped hardware wallet that uses QR codes for communication with the host
MIT License
440 stars 73 forks source link

Add fully stateless mode #235

Open stepansnigirev opened 1 year ago

stepansnigirev commented 1 year ago

Currently even in stateless mode DIY stores some stuff in flash:

It would be interesting to have a fully stateless mode where writing to flash is not possible at all.

Idea

No need in PIN in this mode, instantly get to init screen with 4 options:

If you go to integrity check you will get a keyboard where you type something unique, for example "blah blah blah". As the result you get a pixel image like this: image

Next time you enter the same string you should get the same picture. So you just remember that "blah blah blah" gives you a pink bull.

And anything else will give you a completely different picture.

The picture is generated based on the string you entered and internal secret. So if internal secret changes you will get a completely different picture. And if attacker loads malicious firmware he can not guess what you will enter, so he can not guess what picture to show.

Bootloader can lock flash for the main firmware, so it becomes read-only.