Author

Topic: Instructions on Crypto Security for high-risk individuals (Read 982 times)

hero member
Activity: 840
Merit: 508
Make winning bets on sports with Sportsbet.io!
If the wallet has been encrypted, if stolen, will not be compromised password, steal coins? Smiley

If your computer was compromised at the time that you were creating the keys on, it can be possible.
Since revealing your private key even for a second can be it for your funds, POOF! and they are gone.
If you mean by "stolen" that someone gains access to your wallet file, the password can be bruteforced which is why i recommend using non-dictionary passwords, and studying them until you remember them all.

Thinking that Linux is inherently safer than Windows is a common fallacy that has been propagated by word of mouth for years. It simply isn't true. Windows is getting attacked more because there is an actual economic incentive for hackers.

Well if you ask me, this is almost the same. The thing about windows malware is that almost every windows system is the same, since it is not as customizable as GNU/Linux systems. Since you need to take all of the differences between GNU/Linux systems overall to actually develop malware for it. The people creating malware use GNU/Linux systems by themselves, so there is really no reason for them to actually make any malware for it, because that would be same as shooting themselves on the leg.


That's why your statement is completely nonsensical. An airgapped Windows computer won't differ at all from an airgapped Linux machine. We aren't talking about online machines where Windows obviously faces more attack vectors due to economic incentives.

You need to take into factor, that if you for example downloaded windows from some 3rd party source and did not check the md5, it can be possible that you have a touched image.
Many people on this forum at least use cracked versions of windows, which are always a bad practice when dealing with something as sensitive.
Im sure we both can agree that generating the private keys on LiveCD offline would be the best case scenario.


newbie
Activity: 14
Merit: 0
however most wallets are mainly designed for Windows and OS X as these are the major players. Linux is often heavily neglected, unfortunately.
That's not true at all. Most wallets are developed on and designed for linux systems as most developers prefer using linux. Linux is often the best supported system since that is where development and testing happens. For both Bitcoin Core and Armory, wallets are developed on Linux and only tested on Windows and OSX briefly and by few people. OSX is often most heavily neglected.

Yep, most of the wallets are actually by default made for GNU/Linux systems and then ported/compiled for windows as well. I would not personally trust windows system with any kind of money related things (for obvious reasons). However i do not think that most GNU/Linux users even need guides for how to safely generate provate keys and such, because most users have enough technical skills to do that. Only way i would be using windows for crptos, would be for example generating the seed on the Ledger Wallet livecd, disconnected from the internet. Revealing or generating your seed on windows is a really bad idea if you care about your coins.

Thinking that Linux is inherently safer than Windows is a common fallacy that has been propagated by word of mouth for years. It simply isn't true. Windows is getting attacked more because there is an actual economic incentive for hackers. It's by far the most used operating system that almost everyone has used at one point in their lives. People take the time to develop malware for it because there is a payoff! Linux is only used by a very small minority which renders the development of sophisticated malware unprofitable.

That's why your statement is completely nonsensical. An airgapped Windows computer won't differ at all from an airgapped Linux machine. We aren't talking about online machines where Windows obviously faces more attack vectors due to economic incentives.

I hope I could clarify it for you now Smiley
hero member
Activity: 840
Merit: 508
Make winning bets on sports with Sportsbet.io!
however most wallets are mainly designed for Windows and OS X as these are the major players. Linux is often heavily neglected, unfortunately.
That's not true at all. Most wallets are developed on and designed for linux systems as most developers prefer using linux. Linux is often the best supported system since that is where development and testing happens. For both Bitcoin Core and Armory, wallets are developed on Linux and only tested on Windows and OSX briefly and by few people. OSX is often most heavily neglected.

Yep, most of the wallets are actually by default made for GNU/Linux systems and then ported/compiled for windows as well. I would not personally trust windows system with any kind of money related things (for obvious reasons). However i do not think that most GNU/Linux users even need guides for how to safely generate provate keys and such, because most users have enough technical skills to do that. Only way i would be using windows for crptos, would be for example generating the seed on the Ledger Wallet livecd, disconnected from the internet. Revealing or generating your seed on windows is a really bad idea if you care about your coins.
staff
Activity: 3458
Merit: 6793
Just writing some code
however most wallets are mainly designed for Windows and OS X as these are the major players. Linux is often heavily neglected, unfortunately.
That's not true at all. Most wallets are developed on and designed for linux systems as most developers prefer using linux. Linux is often the best supported system since that is where development and testing happens. For both Bitcoin Core and Armory, wallets are developed on Linux and only tested on Windows and OSX briefly and by few people. OSX is often most heavily neglected.
hero member
Activity: 812
Merit: 500
NICE info...Really not the last information,
  But very great  Wink Appreciate very much !
thanks again .
member
Activity: 95
Merit: 10
Information is very useful for everyone (sure newbie need it) Roll Eyes
Thanks Wink
newbie
Activity: 14
Merit: 0
Great and detailed instruction, however it is basically made for windows users and everyone knows there is no security attached to windows systems.
So i think you should mention on the post that Windows is NEVER safe at all, so the people can now that this is not a bomb proof tutorial.
If you connect the "Air-Gapped" machine into internet even once, that can be exploited if the Windows Image for example is not clean, or you do not erase the drive right after (Yes, old files can be recovered even if deleted). So i would not call this the ultimate tinfoil information, but still great. I would personally just if i wanted to go ultimate tinfoil do it like this:

  • Remove all of the storage media from the PC, as well as all wireless communications like wifi adapters, bluetooth and such.
  • Boot example from tails and use the built in electrum software for generating the keys.
  • Never connect that instance to internet, or save anything. You can store the seed for example on a paper (if you trust that no one will break into your house or you will not lose it), or you can hide part of the seed around your house for example in safe places if you are holding a huge amount of bitcoin. Or you can for easier approach to store the seed on a USB stick on encrypted container that can only be opened with your Veracrypt password.
  • Never, ever import the seed to a computer that has a windows install. Even if fresh install, you are still looking for trouble. You can sign transactions offline as well, so there is no need to reveal your private key to the internet.

That's my opinion, because i think the guide is still not as secure as it could be but im sure many people will find your tutorial helpful.

Thanks for your feedback, onnz. It's highly appreciated.

You are definitely right in that my tutorial was narrated out of the perspective of a Windows user. I know that Windows is often horrendous (I prefer Ubuntu for dev tasks), however most wallets are mainly designed for Windows and OS X as these are the major players. Linux is often heavily neglected, unfortunately. Nevertheless, other platforms such as OS X, have similar or identical counterparts to the tools used in the instructions (VeraCrypt has an OS X implementation) so my tutorial is "cross-platform compatible" Wink

I also think that your concerns towards Windows are over exaggerated. Windows will always be poisoned with security holes due to its closed source nature, however, as long as you make sure that the machine is in an completely airgapped state (no internet and no external communication possibilities such as Bluetooth, Wifi etc. like you described) then there's absolutely no difference whether you run Windows, Linux (Tails) or OS X.

Tails is an awesome operating system. I love Tor too. It's a very tight, well thought-out, security-conscious and privacy-oriented system. If it wasn't for so many "shitcoins" Wink having only Windows wallets and lots of software only being available to Windows, I'd definitely use it as my main system. It's far better in all other aspects.

Your remaining instructions seem pretty similar to the ones described in my tutorial. So I think that we agree on that :- )

All in all, security is a never ending struggle. There is always some kind of small loophole that could wreck the whole thing. My proposal tries to offer a reliable solution even for high-threat targets.
hero member
Activity: 840
Merit: 508
Make winning bets on sports with Sportsbet.io!
Great and detailed instruction, however it is basically made for windows users and everyone knows there is no security attached to windows systems.
So i think you should mention on the post that Windows is NEVER safe at all, so the people can now that this is not a bomb proof tutorial.
If you connect the "Air-Gapped" machine into internet even once, that can be exploited if the Windows Image for example is not clean, or you do not erase the drive right after (Yes, old files can be recovered even if deleted). So i would not call this the ultimate tinfoil information, but still great. I would personally just if i wanted to go ultimate tinfoil do it like this:

  • Remove all of the storage media from the PC, as well as all wireless communications like wifi adapters, bluetooth and such.
  • Boot example from tails and use the built in electrum software for generating the keys.
  • Never connect that instance to internet, or save anything. You can store the seed for example on a paper (if you trust that no one will break into your house or you will not lose it), or you can hide part of the seed around your house for example in safe places if you are holding a huge amount of bitcoin. Or you can for easier approach to store the seed on a USB stick on encrypted container that can only be opened with your Veracrypt password.
  • Never, ever import the seed to a computer that has a windows install. Even if fresh install, you are still looking for trouble. You can sign transactions offline as well, so there is no need to reveal your private key to the internet.

That's my opinion, because i think the guide is still not as secure as it could be but im sure many people will find your tutorial helpful.
newbie
Activity: 14
Merit: 0
I have compiled instructions for you on how to setup an actual bulletproof strategy for securing your coins that outperforms any kind of hardware wallet in high-threat scenarios. Hope you enjoy.

Tools used in this tutorial: GPG4Win and VeraCrypt. This tutorial is from the perspective of a Windows user since the most wallet software is on Windows. However, this tutorial is cross-platform compatible since these tools have equivalent counterparts on other operating systems.

1. Download the wallet software from a malware-free and up-to-date computing device and verify its checksums using http://onlinemd5.com/ (or check the GPG signature inside GPG4Win) and upload it to https://www.virustotal.com/en/ to check for any viruses. Sometimes there are false positives, but it's generally better to be safe than sorry.

2. Put that software onto a cleanly formatted(!) flash drive and plug it into an airgapped (airgapped = this computer is not and has not been connected to the internet), malware-free computing device. If you have an old laptop lying around; wipe its harddrive and install a fresh new instance of your preferred operating system (most wallet software uses Windows). You can also use an Raspberry PI or any computing device that can be used as an independent and dedicated computing device that is able to host the software you are trying to use. It's important that you do not EVER connect that dedicated computing device to the internet after you have installed any of your wallet software (even in fact you should not be using it beforehand because malware could accumulate). I'm saying this, because the wallet software you downloaded could have been compromised at some point where the attackers have added in code that sends your private keys to their command-and-control (C&C) servers. Plain malware or even ransomware is known to search through the wallet file directories and send any file found to their C&C servers. It's even more likely though that the attackers have compromised the pseudo-randomness of the key generation algorithm giving them the ability to regenerate your key pairs deterministically. This could especially be the case with lesser known wallet software. Make sure that this is not the case by performing your due diligence on the wallet providers and the software.

3. Install the wallet software on your dedicated machine. Now you have two options: a) Generate some wallets inside the software by letting it create a new seed. b) Create the seed yourself by using dice in order to wipe out any chance of someone having compromised the pseudo-randomness of the wallet's software's algorithms. This is the mega tinfoil hat case, however this can be a serious threat to anyone. If you want to do this for Bitcoin, you can go to https://www.bitaddress.org , download the HTML page file and transfer it via a flash drive safely and securely to your airgapped machine. Open it there and in the "Wallet Details" section, you will be able to find instructions on how to use an actual dice (use a high-quality casino dice that has sharp edges) to generate a private key. You can also find instructions online on how to generate entire seeds using high-quality dices to guarantee real randomness for the safety of your crypto assets. For the average user, this seems like a stretch, however this is an unnecessary risk that can be eliminated easily.

5. Now write down the seeds into a text file on your airgapped machine and back them up on a couple of freshly formatted and clean flash drives distinct from the one that you transferred your files with (also delete the seed text files from your airgapped machine). You can also backup the encrypted wallet files and their passwords alongside the text file/s containing the seeds for even more redundancy.

6. You can now also encrypt these backup drives with a disk encryption tool of your choice (this would be your double encryption). I can highly recommend VeraCrypt. You can create a standard volume on any partition of a flash drive that will host and encrypt any files that are subsequently put into it. Once you mount the volume (only ever mount it on the airgapped machine which you make sure is at all times and costs malware-free), the files are only ever decrypted in RAM and stay on your flash drive at all times which means that your files remain encrypted even in the event of a sudden power outage. You should use a relatively long high-entropy password or a very long and mnemonic passphrase (with lots of cleverly put characters, symbols and numbers) for the disk encryption (in VeraCrypt you can also use PIMs and keyfiles (although I would suggest only using PIMs) for EVEN MORE security). I would recommend the latter so that you have it memorized incase something unexpected happens. Nevertheless you should still write down that password onto a small (hardly noticeable) sheet of paper in its full length. Store that somewhere CLOSE to you (somewhere people wouldn't bother to search incase of high-risk scenarios) and don't store it alongside your backups. You shouldn't ever need it because you should be able to remember your passphrase at all times. Distribute your encrypted backups in your house, at a safety deposit box at your bank, at houses of your relatives etc. Once again, hide them somewhere people don't expect them and make sure that not all the backups are exposed to similar environmental risks (e.g. a flood or fire inside one of the buildings). Incase you are still not paranoid enough, you can also write down the seeds on two distinct sheets of paper where you write down the first half on one sheet and the second on the other. You could then also distribute them in two distinct places and place them somewhere people wouldn't search for them. This method involves more risk because if someone found one half of the seed they could potentially be able to bruteforce the entire seed in some cases.

As far as the backups are concerned, this is the best practice I can come up with. If you are a high-profile and high-threat individual (someone could use extortion to get the passphrase and PIM to your backups) I would also recommend looking into VeraCrypt's hidden volumes. They allow you to create a standard volume on one of your drives that has an inner pointer to an outer hidden volume that requires a different password in order to be mounted. At all times, it cannot be proven from an attacker that the drive actually contains a hidden volume, if certain conditions are met. This means if someone is pointing a gun to your head demanding your passphrase (expecting to find the backups on there), you could give them the password for your standard volume. Into that standard volume, you should place some sensitive-looking files (if a potential attacker is likely to search for Bitcoin then you could place some wallet file in there with a minor part of your Bitcoin stash) in there, however the actual files that you are desperately trying to hide will be placed inside the hidden volume. So for instance, a wealthy individual could place 1000 BTC into the hidden volume and 10 BTC into the standard volume in order to preserve their life in high-threat situations. If they ask for more or for the password to the hidden volume, you have a good excuse that it does not exist. This is called plausible deniability and it's a very important concept.

The concept of hidden volumes can even be expanded onto operating systems which VeraCrypt has already done. In this case, you do a full disk system encryption and setup a hidden volume on a separate partition on your harddrive. Then you install a new fresh instance of your preferred operating system on the hidden partition. Whenever your computer boots, it asks for the encryption passphrase and PIM. If you enter the combination for the standard volume, you will access your decoy operating system. This is the OS you should give the attacker access to in case of extortion. Place some sensitive-looking files in there or even a minority of your coin stash depending on your risk profile. If you enter the combination for the hidden volume, you will be entering your hidden operating system. This is like the hidden volume; for the actual sensitive files that you are trying to preserve at all costs. So this allows for plausible deniability and encryption on the full system level. For more important information and crucial security and behavioral practices in case of high-threat scenarios, check out VeraCrypt's documentation (https://veracrypt.codeplex.com/wikipage?title=VeraCrypt%20Hidden%20Operating%20System).

Installing a hidden operating system on your machines seems like a practical idea. This also directly solves the question: "How do I protect the wallet files on my airgapped machine incase I am not near it?" because the system is now fully encrypted and the only thing an attacker can do is destroy it at this point. In this case, you can also leave the passwords to your encrypted wallet files inside the hidden operating system. You might ask now: "Why do I still need to encrypt the wallet with the wallet software's inbuilt encryption algorithm at this point? The hidden OS takes care of all of this now, right?" Leaving your wallet exposed like that still exposes you to the risk of installing a malicious software that constantly sends out queries to send out your private keys or wallet files to its C&C server just in case that you should ever connect to the internet. That's why you should NEVER connect to the internet on that DEDICATED machine.

Now that you have set up your bulletproof cold storage, you can monitor your wallets on an internet-connected machine (e.g. for BTC on Electrum you would transfer the master public key) that is in sync with the specific blockchain and send transactions via a dedicated malware-free transfer flash drive to the airgapped machine. Then you sign off the transaction on the dedicated machine, transfer it back via a flash drive and broadcast it on the online machine onto the specific P2P network.

This is the ultimate tinfoil hat strategy. This is as bulletproof as crypto security can get. It surpasses the security of every hardware wallet, because this allows you to have plausible deniability in case the attackers manage to find your devices. It is not as convenient, however it is designed to potentially preserve the life of high-profile and high-threat individuals in high-pressure situations.

Please let me know if there are any kind of errors. I would also love to hear your feedback on these methods. Thanks for reading
Jump to: