My idea is to take a raspberry pi zero (or any embedded linux board) and shove GPG inside it to encrypt/decrypt/sign data with RSA/ECC (for bitcoin) via USB. Like a USB thing that holds your (encrypted) keys, you unlock them and you're ready to go. When the computer is trying to do anything (sign/encrypt or read/write to your keychain) a message will appear on the small physical screen of the device that will require you to press a physical button on the device to accept it.

The key generation will also take place inside the device. The device will be completely air-gaped and will require user authentication to enter the system (via serial, no wireless communication at all)

Is it a good idea? Why? Is it secure? I know that some1 can dump your memory while the device is running via ultra-leet X-Ray machine but I don't mean THAT type of security. I want to know that I'm safe even if I lose my device. Is this done already? Where?

  • 1
    Why would you be safe if you lose your device? The key to accept a transaction is on that device, isn't it?
    – Tobi Nary
    Mar 13, 2016 at 21:43
  • 3
    There's no need to spell someone as "some1" here.
    – d1str0
    Mar 13, 2016 at 22:22
  • @SmokeDispenser it will be secured with a pin or passphrase maybe? or something like that...
    – dzervas
    Mar 14, 2016 at 18:44
  • So how do you protect that from brute force? That'd be the weakest point. If it locks itself, how do you unlock it? What do you do against taking it apart and using the programming interfaces you used to program it?
    – Tobi Nary
    Mar 14, 2016 at 20:37
  • The device will be tamper resistant, the programming interface will have the "program dump" disabled, so you could only overwrite the firmware (something like security bit in AVR) and for the bruteforce the device can erase everything after 10 tries. Bruteforce against the memory chip is "useless" as it will be AES-256 encrypted...
    – dzervas
    Mar 15, 2016 at 14:08

1 Answer 1


It sounds like you are trying to design a HSM that is custom tailored to work with Bitcoins. I believe these are called hardware wallets. There are already many existing implementations of them as well as designs for do-it-yourselfers.

As far as the security of such a device, the devil is in the details. You'll want a device that requires you to enter a passphrase to decrypt the data on the device.

For physical security, besides x-ray attacks, there are also cold-boot attacks, resoldering the board, and numerous other attacks. Various software and hardware strategies (eg: encryption) can make these attacks harder, but you'll never have full security without physical security.

It seems to me that the biggest risk for such a device is that of loss of your Bitcoins. If you device gets lost, damaged, or is otherwise unusable, you'll need a strategy for recovering your secrets and your Bitcoins. This is likely an offline, physical backup of some kind that you can store in a safety deposit box or something.

  • well, lets assume that the device will be stolen 10 minutes after use (so the data will be off the memory)
    – dzervas
    Mar 14, 2016 at 18:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .