I'm planning to store some bitcoins in cold storage. I'm doing a very simple setup, no complicated algorithms, no wallets...
Here is my plan
Create an air-gapped machine with a Linux distro. The machine won't have access to Internet and I'll disable wifi/mobile connection on purpose to be sure that no Internet is available.
Copy 4 files to the air-gapped machine using a microSD card. The first archive has a version of "coinb.in" which will help me create transactions. The second archive has a "bitcoin.sh" file which is a set of bash functions to create bitcoins addresses. The third archive, is a small HTML/JS qrcode generator. The forth file is the diceware words list.
On the air-gapped machine, create the mighty bitcoin address. I'm going to use a brainwallet with the following format (or a variation of it)
SALT (5 char) + 10 Diceware words + My Password (10 char) + SALT (5 char)
The passphrase will be hashed one time with SHA-256. The resulting Hex. will be used as the private key. Generate the address/public-key with the bitcoin utility.
With the Qr-Code generator, create a qrcode of the bitcoin address. Now I use my mobile phone to scan the QrCode and send a few millibits to that address.
Using my connected laptop, I retrieve the Transaction id and Script of the transaction that I made. I write those down on paper. I then go to my air-gapped machine and I enter these information to create the transaction and sign it.
Once signed, I use my qrcode utility again to create a qrcode of the transaction raw HEX code. I then use my mobile phone to scan that QrCode and send it to my pc.
I check that the transaction is valid and I broadcast the transaction.
Some precaution I'll be taking:
Make sure that the Wifi is not running when the air-gapped machine is running.
When scanning the QrCode, make sure that the private key is not visible somewhere in the screen.
So this is the setup that I implemented. I'm wondering if I missed something or something is possibly at risk. Since the setup is tested, I'm here referring to the problem of funds being stolen by cracking my passphrase or infecting my air-gapped machine.
Ideas and critics welcome!