Author

Topic: My Setup for Cold Storage. Looking for advice. (Read 987 times)

copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
November 06, 2015, 05:53:16 PM
#12
-snip-
Seems like a good idea for a SaaS. A Service to alert you if your balance changes. Otherwise, I'm not bothered by the writing since it is a one time job.

Yeah I had a regular use wallet in mind. I like the barcode scanner idea though I should have one somewhere and creating the code seems easy enough.[1]

[1] https://pypi.python.org/pypi/pyBarcode/0.7
full member
Activity: 133
Merit: 100
Why not just use Armory or Electrum? Both wallets provide for a watching only copy for the online computer.

2. This only increases the attack surface in case my air-gapped computer was compromised.

I think he was just suggesting it to make a watch-only copy in which case I don't think there would be anything that would make you more susceptible to an attack.

I highly doubt your brainwallet will ever be cracked and I don't see any possibilities for your air-gapped machine to be infected. Seems like a perfect cold storage solution to me, if a bit cumbersome due to all the writing.

Seems like a good idea for a SaaS. A Service to alert you if your balance changes. Otherwise, I'm not bothered by the writing since it is a one time job.
legendary
Activity: 1134
Merit: 1118
Why not just use Armory or Electrum? Both wallets provide for a watching only copy for the online computer.

2. This only increases the attack surface in case my air-gapped computer was compromised.

I think he was just suggesting it to make a watch-only copy in which case I don't think there would be anything that would make you more susceptible to an attack.

I highly doubt your brainwallet will ever be cracked and I don't see any possibilities for your air-gapped machine to be infected. Seems like a perfect cold storage solution to me, if a bit cumbersome due to all the writing.
full member
Activity: 133
Merit: 100
How random is the address generation of Coinb.in ?

I really have no idea but it is using JavaScript for crypto. So I'd guess the entropy is not good enough.
newbie
Activity: 15
Merit: 0
How random is the address generation of Coinb.in ?
full member
Activity: 133
Merit: 100
You should shove all of this onto a raspi.

Would help alot.

I have a pc around that I don't use. But yes, I should automate this process into a raspi.
full member
Activity: 133
Merit: 100
Why not just use Armory or Electrum? Both wallets provide for a watching only copy for the online computer.

Two reasons:

1. I don't need it.

2. This only increases the attack surface in case my air-gapped computer was compromised.
full member
Activity: 133
Merit: 100
-snip-
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!

I see only a few minor flaws.

#1 you are - from my understaind - reusing the same address, which might be a privacy issue. It is commonly endorsed to use a new address for every time you receive coins. If you wanted to do this, your brain wallet setup would quickly fall apart.

Not really. This won't be a "receiving wallet". It'll just have a fixed amount of BTC stored into it.

#2 Why use a brainwallet at all? Its an offline system you store the prviate keys on, as long as the system has enough sources for entropy e.g. keyboard + mouse + mechanical disk it should be fine. If you use dice there is no need for that anyway. I dont know why you want to add the password at all. Even without dice a fresh installed linux on a mechincal disk should have enough entropy for a seed or several addresses. If you use an SSD you might run into problems though.

The case of brain/paperwallet is that I can re-create the funds in two cases: My computer and magnetic support fails and if I'm abroad and my cold storage is not available.

#3 The whole writing things on paper will possibly be a source of error and frustration, I would consider other means to transfer the data. I can understand you dont want to use a USB stick, but there are other solutions, e.g. sound[1].

This is not an issue for me as I'd verify these values. It sounds like a lot of work but I did it a couple of times and it's doable. I'm thinking about a device that can read barcode and transfer the content to the computer. That sounds easier than sound!



[1] https://bitcointalksearch.org/topic/tx-signing-via-minimodem-735111

Thanks! great contribution.
sr. member
Activity: 294
Merit: 250
You should shove all of this onto a raspi.

Would help alot.
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
-snip-
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!

I see only a few minor flaws.

#1 you are - from my understaind - reusing the same address, which might be a privacy issue. It is commonly endorsed to use a new address for every time you receive coins. If you wanted to do this, your brain wallet setup would quickly fall apart.

#2 Why use a brainwallet at all? Its an offline system you store the prviate keys on, as long as the system has enough sources for entropy e.g. keyboard + mouse + mechanical disk it should be fine. If you use dice there is no need for that anyway. I dont know why you want to add the password at all. Even without dice a fresh installed linux on a mechincal disk should have enough entropy for a seed or several addresses. If you use an SSD you might run into problems though.

#3 The whole writing things on paper will possibly be a source of error and frustration, I would consider other means to transfer the data. I can understand you dont want to use a USB stick, but there are other solutions, e.g. sound[1].



[1] https://bitcointalksearch.org/topic/tx-signing-via-minimodem-735111
legendary
Activity: 1806
Merit: 1164
Why not just use Armory or Electrum? Both wallets provide for a watching only copy for the online computer.
full member
Activity: 133
Merit: 100
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

1. 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.

2. 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 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.

3. On the air-gapped machine, create the mighty bitcoin address. I'm going to use a brainwallet the following format (or a variation of it)

Quote
SALT (5 char) + 10 Diceware words + My Password (10 char) + SALT (5 char)

4. 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.

5. 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.

6. 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.

7. 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.

8. I check that the transaction is valid and I broadcast the transaction.

Some precaution I'll be taking:

1. Make sure that the Wifi is not running when the air-gapped machine is not running.

2. 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!
Jump to: