Bitcoin Forum
December 03, 2024, 02:54:20 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 127 »
  Print  
Author Topic: HOWTO: create a 100% secure wallet  (Read 276225 times)
aiwk171 (OP)
Jr. Member
*
Offline Offline

Activity: 134
Merit: 1


View Profile
June 15, 2011, 09:13:09 AM
Last edit: June 19, 2011, 12:37:13 PM by aiwk171
 #1

-= Small Edit: If you need something which is very secure and grandma-style easy, go vote on this poll and add your thoughts to the discussion. =-

Note: I can only post in the newbie forum for now, but if a moderator deems this topic useful, he may move it somewhere else. Right now, I'm too lazy to get 5 posts, just for the sake of it.

Also, there is an excellent article on the Wiki which should give you some ideas about the problem of security. This is meant as a more specific and simple straight-forward guide, i.e I won't spell out where you can find your wallet.dat and so on.


Why?

So, in light of the recent Drama Roll Eyes Kiss and my general feeling that some people are unsure about the security of their wallet (or their PC in general), I've decided to give you an idea how to create a secure savings account for you to deposit your hard-earned coins in.

Clarifications

So, you crazy twat want to invest all your savings in bitcoin, but you're not yet shit-for-brains enough to forget the security aspect of the whole thing? Here's the HowTo for you.

So, the first misconception to clear out, is the concept of the "wallet". The wording in itself is not ideal, since it is more like a key. Cryptographically speaking, it is actually exactly that: your private key.

Now this has the following implication: If someone steals your wallet.dat now, and you deposit coins in it later, the thief will be able to spend/transfer ALL your coins, including those you added _after_ the wallet was stolen! I'm sure a lot of you know this already, I just want to clarify this for everybody.

So, clearly, you have to make it impossible for anybody to _ever_ steal your wallet. Clearly, this is infeasible for your day-to-day transactions account, since encryption will be useless as soon as you want to access your coins (Since the decrypted wallet.dat has to be stored in RAM at some point. There are ways, but for now, consider them a little tedious).

So the solution is the following: you have your spendings-account where you keep only low amounts of coin (much like a real-life wallet), and you have your super-secure savings wallet, which you only access on rare occasions.

How?

I'll try to keep it short: You have to create your savings account under ideal security-conditions. I won't rant about you cunts people using Windows in general, but note that Linux is in no way automagically completely secure. Everything depends a lot on your behaviour.

1. What you'll do is the following: Create a live-CD or a bootable USB with your OS of choice on it. I suggest using the Ubuntu LiveCD.

The reason is simple. When you create your new wallet, you want to make abolutely sure, that your running operating system doesn't in any way log your keys or secretly save your files somewhere.

2. Boot your freshly-created OS, and install the Bitcoin client on it. Yes you can install software inside a liveCD environment. Optionally, also install some encryption software, but we'll leave that for now.

3. Your Bitcoin client will immediately generate 10 addresses for you, and with them, the corresponding wallet.dat.

4. Save your addresses somewhere, if you have to, write them down manually (if you do this, then I bow to your zeal and declare you crazy). I suggest you send them to yourself over email.

5. This is the important step. Copy your wallet.dat somewhere. Burn then on a CD or another medium. I for instance love those little 64MB SD-cards you sometimes get with a new camera. They rock. You might want to make multiple copies (on multiple cards/CDs, not multiple copies of the same file on the same disk you tart).

6. Now, eject whatever you just copied on, and guard it like your life depends on it. Not really, but here is the important step: If you encrypted your wallet.dat with an encryption algorithm you feel safe about, just keep it around your house.

7. Shut down. There will be no trace of your walled.dat on your harddisk, since it never actually resided there.

Important: You will want to keep another copy somewhere else, in a safe physical location, or at least one that is safe while your house burns down. You might already know it, but losing your wallet.dat is worse than someone stealing it. It'll be gone forever.

If you didn't encrypt the file (which I prefer), put the SDcards, CDs, whatever in a safe. That's right: a real-world safe, like banks have, who also happen to lock their doors and are in general very anal about their security and all that jazz. You can rent small safety-deposit boxes in exchange for money. As a bonus, it'll be fire-proof as well.

8. In case it's not yet obvious: You will now only make day-to-day transactions like you used to do it, on your computer (are you _still_ using windows?) and every now and then, you will put some coins into your savings-account. Using the addresses from step 4). How much you want to keep in your wallet is up to you.

But how can I haz my money back?

Okay, for those of you who didn't guess it yet: Whenever you want to make a transaction from your savings-account to someplace else, get your wallet.dat out of the safe, boot up your liveCD (don't you dare using your regular OS after all this work, or I'll come beat you up personally) and do the reverse: Install bitcoin again, install the encryption-software if necessary and copy your wallet.dat where it belongs.

Congratulations: you can now access your 25'000 bitcoins and nobody will have messed with them while you were asleep.

Possible attacks

So now, the _only_ way for someone to steal your coin, will be to steal your physical copy of the wallet. That's why you might want to encrypt it, although if you do, don't forget the passphrase. Also, if you die, your family can still get your bank-safe opened, but they won't be able to pick through your brain and get the passphrase out of it. That's why I prefer to not encrypt it.

There is one more possibility: a physical keylogger: It will be able to intercept the password you use to encrypt your wallet.dat, which, if you keep a copy at home, can then be stolen and used. Another reason, why a regular safe is the best option in my humble opinion.

What else?

EDIT: A little protip for those who don't know: You can of course use blockexplorer.com to keep track of your account while it's safely hidden away. Doing this will simply allow you to see how many coins are associated with a given address.

I suggest you also create new day-to-day wallets (even having a few coins stolen can be frustrating), as your current ones might already have been stolen. Of course, this requires a secure OS, so you better ditch that infected piece of shit fine gear of yours. DON'T just create new wallets on the system you're using right now, since it won't solve anything in case you're already infected.

In addition, it doesn't hurt to read up on some technical details. Use the Wiki. Learn the difference between the amount in your wallet, and the amount on the different block-addresses. If you handle a lot of money, ACT ACCORDINGLY. Don't get all crazy-enthusiastic-venture-capitalist and invest all your savings in bitcoin. Also, don't speculate too much on the price development, you'll make more money if you use that time to work at a regular job.

Now, if you happen to make/have made a significant amount of coins, don't run around telling everybody like the self-satisfied vagina that you are. You wouldn't do that with real money either. At least I hope so.

Also, someone will probably make a bitcoin-specific liveCD, which should save some hassle in the steps above.
Also, take it easy and be a cool guy woh doesn't afraid of anything.
Also, pick up a book every now and then.


Yes, there are other ways to do this, and yes, some might be more practical and maybe just as secure. Write a comment about it.

If anyone has any clarifications, questions, suggestions, or wants to call me a moron, please feel free to do so, and I'll see if there is anything to be improved about it. Also, spelling mistaeks.

Also, in case anybody got all excited by this guide and/or seen the light of Jesus-Christ the saviour AND wants to thank me with coins (why on earth would you do that?), here's my address: 16VD78R8nxqJGesE7E9KS6A8TikQQpKNm5

Have fun. Cool

EDIT: Corrections and added a few insults just for you, dear anonymous reader.
jaminunit
Member
**
Offline Offline

Activity: 132
Merit: 14

Co-Founder of TheStandard.io & Vaultoro.com


View Profile WWW
June 15, 2011, 10:34:37 AM
 #2

nice reed and funny to boot.  Cheesy

I've been a Bitcoiner since 2010, and currently working on TheStandard.io, a next-generation stablecoin, and lending protocol.
The Standard Protocol Announcement thread
myrm
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
June 15, 2011, 12:31:21 PM
 #3

A linux distro that has everything you need probably can't come quick enough. It would be nice if it were tiny and was basically a wizard that walked users through all the steps required to secure their wallets. If I had the time I'd get right on it.

Would it still be 100% secure? What's the current state of malware residing in places like the BIOS? I know it was what all the cool kids did once upon a time. I think the fact that machines started booting OSs that had security as an afterthought running persistently from the same media killed some of it off. If BC take off in a big way would we see a return to those days?
_ikke_
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
June 15, 2011, 12:34:38 PM
 #4

You would have to really trust the bitcoin specific live cd's because they could be comprimised already.
TimoWillemsen
Newbie
*
Offline Offline

Activity: 15
Merit: 0


View Profile
June 15, 2011, 12:36:36 PM
 #5

Thanks for this. It seems like a good idea. I'm wondering something though. Currently I just have my wallet on my computer. Lets say someone has access to my computer, can they just copy it to an USB stick, and open it at home to do transactions with it?

I'm still trying to figure out how it works, and I haven't done any transactions yet.
aiwk171 (OP)
Jr. Member
*
Offline Offline

Activity: 134
Merit: 1


View Profile
June 15, 2011, 12:38:47 PM
 #6

Yes, both of you have a point I thought about as well: You still have to use the bitcoin client downloaded from the official site, sou you have to trust that thing unconditionally. And yes, you have to trust the liveCD

Of course, someone could trick you into downloading the wrong software (DNS redirect?). But there's a point where a certain level of paranoia is kind of exaggerated. You could of course always write your own client Smiley

I think it makes sense to trust both the Ubuntu LiveCD as well as the client from bitcoin.org for now.
MBH
Newbie
*
Offline Offline

Activity: 51
Merit: 0


View Profile WWW
June 15, 2011, 12:39:01 PM
 #7

0) Damn Small Linux is 50MB in size, install it somewhere and install bitcoin on it.
1) Encrypt the disk/file.
2) Use a Cloud-based service like JungleDisk.com to backup your wallet/distro. It costs $5/month & the first 5GB is free.
aiwk171 (OP)
Jr. Member
*
Offline Offline

Activity: 134
Merit: 1


View Profile
June 15, 2011, 12:39:55 PM
 #8

Thanks for this. It seems like a good idea. I'm wondering something though. Currently I just have my wallet on my computer. Lets say someone has access to my computer, can they just copy it to an USB stick, and open it at home to do transactions with it?

Obamaface: yes, they can
TimoWillemsen
Newbie
*
Offline Offline

Activity: 15
Merit: 0


View Profile
June 15, 2011, 12:41:59 PM
 #9

Allright. Well if you don't trust the client from bitcoin.org or the ubuntu live CD, they are both open source, so you are able to compile it yourself.

It's a shame the bitcoin.org client download link doesn't have a checksum...
aiwk171 (OP)
Jr. Member
*
Offline Offline

Activity: 134
Merit: 1


View Profile
June 15, 2011, 12:43:50 PM
 #10

0) Damn Small Linux is 50MB in size, install it somewhere and install bitcoin on it.
1) Encrypt the disk/file.
2) Use a Cloud-based service like JungleDisk.com to backup your wallet/distro. It costs $5/month & the first 5GB is free.

Good idea, although DSLinux can be tedious for beginners. But I like the elegance of your solution.

One potential problem: If we think long-term, DSLinux-version.today might not necessarily be able to boot on modern hardware in a few years.
MBH
Newbie
*
Offline Offline

Activity: 51
Merit: 0


View Profile WWW
June 15, 2011, 12:45:25 PM
 #11

DSL boots into a GUI. I don't see where the problem is for newbies.

As for the future, DSL maintains the latest kernel so new hardware would work.
aiwk171 (OP)
Jr. Member
*
Offline Offline

Activity: 134
Merit: 1


View Profile
June 15, 2011, 12:45:35 PM
 #12

Allright. Well if you don't trust the client from bitcoin.org or the ubuntu live CD, they are both open source, so you are able to compile it yourself.

Yes, and I also suggest, you read through the whole source-code that constitutes the entire Ubuntu distribution, just to make extra-sure Smiley

MBH: The whole point is to backup the entire disk, no? In that case, you still have to move your wallet.dat between the old CD and the new one. Besides, who guarantees that DSL will still be maintained a few years from now.

But if the encryption part was just meant for your wallet.dat, then yes, that's what I suggested. Just make sure, you use an encryption that will still be secure in a few years, otherwise, I'll steal it now (from your lame-ass cloud provider in case you use dropbox), keep it and decrypt it in 2018 with my quadruple ATI-over9000. Just a possible scenario. I prefer the more minimalistic physical security.
TimoWillemsen
Newbie
*
Offline Offline

Activity: 15
Merit: 0


View Profile
June 15, 2011, 12:50:29 PM
 #13

Allright. Well if you don't trust the client from bitcoin.org or the ubuntu live CD, they are both open source, so you are able to compile it yourself.

Yes, and I also suggest, you read through the whole source-code that constitutes the entire Ubuntu distribution, just to make extra-sure Smiley

Well that's not really true obviously. But it is possible to see changes in the sourcecode.
MBH
Newbie
*
Offline Offline

Activity: 51
Merit: 0


View Profile WWW
June 15, 2011, 12:54:00 PM
 #14

Put DSL on a USB drive to boot it. Make a partition on it (or a file) and encrypt it, then place your dat file there.

If you went with an encrypted file as a partition (mounted as a loop device), then you can back it up to JungleDisk.com, which also uses encryption (AES).

So, your dat file is encrypted and is backed up and encrypted on their servers as well.

If DSL isn't maintained? Use another light weight distro. Your file can be moved wherever you want.
aiwk171 (OP)
Jr. Member
*
Offline Offline

Activity: 134
Merit: 1


View Profile
June 15, 2011, 12:58:04 PM
 #15

+1, I got it now. AES is actually secure enough, that it'll be safe forever provided mathematics don't completely vanish and the laws of physics still apply (and your key-length is sufficient).

Still, I prefer not to encrypt the file, since the passphrases either have to be written down or remembered, both of which aren't exactly ideal (Think brain hemorrhage, which I definitely plan to get one of these days).

Also, newbs can barely handle Ubuntu.
vegard
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
June 15, 2011, 01:05:16 PM
 #16

Hi,

For the same reasons that you made this post, I just created a small program that generates bitcoin addresses and saves the keypair as an encrypted wallet file. It's basically a tool for the overly paranoid, since it doesn't create any unencrypted intermediate files and doesn't require the full bitcoin client just to generate an address. It also generates just 1 address, so it's impossible for somebody to steal your keys from an "old backup".

https://github.com/vegard/mkbtcaddr

Disclaimer: There is no warranty, etc., and I am not responsible if something goes wrong, etc.

I've tested it myself and it worked for me, but please scrutinise the source code before using it.


Vegard
MBH
Newbie
*
Offline Offline

Activity: 51
Merit: 0


View Profile WWW
June 15, 2011, 01:15:19 PM
 #17

If you prefer to not encrypt the files to avoid remembering passwords, you won't be secure, unless you make a physical backup of the media holding your money and then put that backup in a vault (at your house or in a bank).

Actually, you could do a weekly trip to the bank and put your wallet.dat on a memory stick in a safety box. Assuming that you have that many BTCs to protect.
aiwk171 (OP)
Jr. Member
*
Offline Offline

Activity: 134
Merit: 1


View Profile
June 15, 2011, 01:16:02 PM
 #18

For the same reasons that you made this post, I just created a small program that generates bitcoin addresses and saves the keypair as an encrypted wallet file. It's basically a tool for the overly paranoid, since it doesn't create any unencrypted intermediate files and doesn't require the full bitcoin client just to generate an address. It also generates just 1 address, so it's impossible for somebody to steal your keys from an "old backup".

https://github.com/vegard/mkbtcaddr

Great, you rock. Nice to see some progress by the community. If encryption is what you prefer, these kind of tools are perfect. Want to bundle it into a liveCD? In my experience, it's quite trivial to do.

encryption is good but i thin k you have to increase all of them

Wat
aiwk171 (OP)
Jr. Member
*
Offline Offline

Activity: 134
Merit: 1


View Profile
June 15, 2011, 01:20:52 PM
 #19

If you prefer to not encrypt the files to avoid remembering passwords, you won't be secure, unless you make a physical backup of the media holding your money and then put that backup in a vault (at your house or in a bank).

Actually, you could do a weekly trip to the bank and put your wallet.dat on a memory stick in a safety box. Assuming that you have that many BTCs to protect.

NO!! Encryption is not some magic thingamajawb that protects you from all evil.

Let me clarify: A _backup_ is of absolutely NO USE. So your weekly trip doesn't accomplish anything if the very same file has been on your main operating system. This is a dangerous fallacy, hence my analogy with "keys" instead of "wallets".

Again: that would be like making a copy of your safe-key every week and putting that in the vault.

It has to be a new, untainted address, in conjunction with the wallet.dat that you deposit. Actually, this is way more convenient, since you don't have to access your bank vault at all. You just deposit/sent the coins into the right addresses.
bitlotto
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


BitLotto - best odds + best payouts + cheat-proof


View Profile WWW
June 15, 2011, 01:25:28 PM
Last edit: July 08, 2011, 04:30:50 PM by bitlotto
 #20

Careful what version of Bitcoin you use! Some versions will display multiple addresses but the private keys won't be made till you do a transaction and have it open for a while!!! Someone did something similar, where they sent some to the first address as a test then saw it worked then send the rest to the second address. Deleted everything only to go back and see that he lost his BTC!!

edit: Ignore. Apparently the user only had one address showing. Backed it up. Then created the newer addresses assuming it would use some of the 100 pre generated addresses. There was an older copy that would not create those 100 addresses however. Sorry for the confusion.

*Next Draw Feb 1*  BitLotto: monthly raffle (0.25 BTC per ticket) Completely transparent and impossible to manipulate who wins. TOR
TOR2WEB
Donations to: 1JQdiQsjhV2uJ4Y8HFtdqteJsZhv835a8J are appreciated.
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 127 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!