0
\$\begingroup\$

I'm trying to design a device to store my private keys. I can't code in a way to just use some flash chips, so I thought I'd use a MicroSD card for the storage as a module. I intend to create a method for destroying the card if an antitamper sensor is activated or a button on the outside of its box. What I'm having trouble with is how to actually accomplish the destructive part:

There would be a bare metal MicroSD slot inside on a board. I wanted to get a piece of board without any holes or traces and make a little box to surround the slot to avoid heat and just in case of sparking. If needed I'll wrap that in nonconductive furnate insulation to be safe.

Board pins:

enter image description here

I think I could use a coin cell to keep a capacitor charged (haven't figured out what size capacitor yet) and when the button is activated or the sensors detect one or more weird things happening they connect the capacitor to one of these pins and dump power into it, ideally destroying the flash chips.

I'd appreciate a capacitor size estimate and which pin to target, but I'll take any help I can get and try to work forward from that. This is definitely the most challenging thing I've tried.

\$\endgroup\$
8
  • 7
    \$\begingroup\$ Why destroy it in the first place? Use encryption and make the tamper switch to forget/change the key so data can't be retrieved any more. Less electronics. \$\endgroup\$
    – Justme
    Jul 28, 2021 at 6:33
  • \$\begingroup\$ How do you plan to make sure it won’t trigger as you plug it into a laptop? \$\endgroup\$
    – Solar Mike
    Jul 28, 2021 at 6:33
  • \$\begingroup\$ You want me to encrypt my private keys? They're the private files to decrypt GPG. It's not a USB device. It's a small Arduino board, the MicroSD slot board and the tamper/destructive function inside an enclosure. I haven't decided how I'll access it to use the keys: ethernet, LoRa, 3.5mm jack. IDK yet. \$\endgroup\$
    – suptic
    Jul 28, 2021 at 7:04
  • \$\begingroup\$ "You want me to encrypt my private keys?" - Why not? It's much more reliable & secure, than trying to "destroy" device just by trying to burn it while not knowing it's protection capabilities. \$\endgroup\$
    – NStorm
    Jul 28, 2021 at 7:30
  • \$\begingroup\$ @NStorm That introduces yet another passphrase I would need to keep memorized. I have a lot of MicroSD cards to experiment with to determine what temperature and duration is necessary and then set a mechanism to safely perform the task indoors. Lots of high temperature things are done indoors everyday. \$\endgroup\$
    – suptic
    Jul 30, 2021 at 3:50

2 Answers 2

3
\$\begingroup\$

First of all, I am sure there are other ways of securing a pairs of keys. And I will list some of them at the end of that post.

But, if you really want to destroy an SD card and ensure that its content is lost. I think your approach has some flaws.

First, electrical destruction of an SD card is not a feature of SD cards! This means that the manufacturer didn't try that and performed all the test to ensure that, reliably and in a repeatable way, the destruction will work in all circumstances. Thus some lots might be sensitive to your destruction methods, and some other less sensitive.

You may be able to "zap" the SD card driver. But this doesn't mean the data is lost. You will find plenty of resources online that shows how to solder tiny wire directly to the memory chip and recover the content of a broken SD card. They are meant for that. There are micro tests points readily available to perform that kind of recovery on every SD card (mirco SD card as well. But it requires some work to access them below the coating).

Unless you have access to recovery tools, how can you test that your system really destroyed the memory content and is, indeed, unrecoverable ?

Then there is the reliability aspect. You have to be sure that your system won't trigger unexpectedly. In fact, if you are not attacked by any thief, your system should never trigger during its lifetime. You will have to put a lot of effort and testing the ensure that it never happens.

ESD, power surge, lightning strikes, software bugs, all of this can trigger the system. And if you plan to store a bitcoin wallet and it get destroyed. The impact of that failure is not acceptable.

Home made solutions:

  1. Put the sd card in the middle of an arc of some kV and sustain it for seconds. The SD card should melt...
  2. Use a very strong spring and some mechanical part to snap the sd card in half when releasing the spring.
  3. Put explosives around the sd card....

More realistically there are some solutions readily available for your issue:

  1. Store your keys on a secure USB drive. They encrypt their content and store the key for the encryption in a special memory that is wiped if tempered. The content of the flash is still there but useless without the key.

  2. Use a USB key wallet. They are just meant and designed for that.

  3. If you really want to do it by yourself, use a SDcard but access it through a microcontroller that has a secure memory module. There you can store the key to decrypt the SD card content. The MCU is meant to wipe the secure memory if it detects a tampering attempt.

\$\endgroup\$
2
\$\begingroup\$

This would be bad security practice. The usual way would be an active zeroize circuitry; your key would be kept in static ram (flip flops) and the tamper detection would actively reset them.

By the way "zeroize" is a real word and the technical term for the key removal operation, if you search for that you'll see the crazy stuff they sometime put to guard the key. Well, zeroisation for the european people, of course (wikipedia uses the 's' variant)

\$\endgroup\$
4
  • \$\begingroup\$ Unfortunately commercial key wallets all end up so defeatable. My thinking is now that I'll have a load of powdered magnesium inside a container that fits the footprint of the card with two commercial hobbyist rocket igniters placed inside on separate circuits for redundancy and to keep it from starting a fire use furnace insulation and house the card and charge inside two chemistry crucibles, which will isolate the heat and prevent anything molten from spreading. Pending lots of outdoor testing, obviously. \$\endgroup\$
    – suptic
    Jul 28, 2021 at 13:05
  • \$\begingroup\$ Zeroization is a military technology at its core… we are talking about keeping safe something like 256 BITS of secret key, kept only alive by a battery or a supercap and a dedicated circuit designed to reset them reliably. Key loaders until a few years ago worked with perforated paper tape (easy to destroy!) to say one of the least esoteric practices. The wallet itself is encrypted with that key, you lose that, you lose everything. \$\endgroup\$ Jul 29, 2021 at 14:37
  • \$\begingroup\$ It was my understanding the volatility was not a reliable method for making information irretrievable and that zeroization would be necessary. That seems fine, but there would certainly be a significant delay in time between it being triggered and it finishing the zeroization, wouldn't there? \$\endgroup\$
    – suptic
    Jul 30, 2021 at 3:44
  • \$\begingroup\$ Zeroization is a nanoseconds issue from the trigger to the clear state (we are talking static cells); unless you deep freeze the board. That's why serious tamper detectors also contains temperature sensors and radiation detectors. The latest IBM cards (ibm.com/security/cryptocards/pciecc4/overview) actually permanently stops on tamper \$\endgroup\$ Aug 2, 2021 at 5:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.