Secure yourself, Part 1: Air-gapped computer, GPG and smartcards
viccuad.me
viccuad.me
Some ideas:
* Disk encryption
* Always-on VPNs, like Cloak
* Encrypting DNS
* 1Password and proper secret management
* Privacy screens (e.g. in coffee shops or on airplanes. Sounds stupid - but surprisingly important.)
* Two-step verification, both in software and hardware (Yubikey)
* Good browser extensions - e.g. https everywhere, ad blocking (for security purposes)
* USB condoms on all phone charger cables
etc.
The holy grail for security, to me, will be something (an OS with it elegantly integrated for example) that the user has to try hard not to use, but doesn't feel like they're having an O'Reilly encryption book rammed down their gullet either.
I want to believe this, but I just can't see people caring, ever. The worst has already happened. Edward Snowdon has exposed that government can, and does, look at you penis and we still don't care.
What is it about technology where people think the failure was information, not the bunch of dudes cracking you in the head with rifle butts, the legislators who approved the action and the public which votes them into office (including all the people who say they're so outraged with everything they'll just refuse to vote or engage with the political process - because yeah, that's sure showing them).
Will there be a blog post about using gpg-agent as a ssh-agent? :)
BTW, Androids openkeychain supports fully yubikey neo, this is a great addition to using the pass(1) on from mobile with yubikey neo.
https://github.com/zeapo/Android-Password-Store http://www.openkeychain.org/
While great in theory, the authentication time made it totally impractical to connect to multiple servers at once.
I know this doesn't invalidate the general idea of using gpg-agent as ssh-agent -- just an anecdote.
Does this mean it was slow? I'm using gpg-agent on osx with a neo-n to ssh into boxes and it's not noticeably slow.
This is a somewhat unusual use-case, I will grant, but I also found a somewhat-noticeable delay in connecting to a single server, on the order of several hundred milliseconds.
I wonder if it would all be fine with a 2k key.
:~$ time ssh an6n@mybox exit
real 0m1.910s
user 0m0.024s
sys 0m0.000s
https://github.com/zeapo/Android-Password-Store/issues/77
Still, the only password manager simple enough that I can understand it and will actually use.
Part 2 will cover emails (Thunderbird, mutt), pass as a password store, setting up OpenKeychain + a Yubikey Neo on an Android phone, K-9 Mail on Android, Yubico authenticator for Android as a 2-step auth, ssh, and Keybase. Future parts would cover hdd encryption via LUKS, authentication for sudo and more, GPG by NFC on your desktop, GPG intents to open doors, etc.
I mean that's a level of paranoia I usually don't hold to, but if you are going to go all out, I have to wonder if there is a more secure form of non volatile memory.
I honestly think RSA is a good decision for now.
You can always add subkeys of any type (your primary key is the core of your certificate and is your cryptographic identity though).
"Many people believe the Holy Grail of secure isolation is to use two or more physically separate machines. This belief seems so natural, that we often don't give it much thought. After all, what better isolation could we possible get than physical "airgap"?
I would like to discuss two exemplary scenarios involving isolation: one for securing the Tor process and another for securing email operations, and compare the pros and cons of using the physical isolation vs. the software compartmentalization as currently possible on Qubes OS."
You can read about the security features of the chip at NXP's website[1] to get a sense for what they're designed to defend against, but despite the very real possibility of a successful key retrieval attack on the card, in general it would be MUCH easier for an attacker to obtain your on-disk keychain files and figure out the password. Particularly if they don't want you to be aware the key has been compromised.
[1] http://www.nxp.com/products/identification_and_security/auth...
Bottom line: It depends largely on who stole it and for how long - however, if someone knew enough to target stealing your hardware token/smart card, you are under targeted attack and your key's probably toast: revoke it.
I would also gently caution that the elliptic curve routines provided by NXP should not be used over special prime fields (elliptic curves that are fast in software, i.e. just about everything except Brainpool) as they abuse the large (RSA) multiplier whose side-channel blinding was not designed for non-random fields. (Unless they've rewritten it since I last saw it?)
[0]http://i.imgur.com/kdNOe5u.jpg (founder of thepiratebay.org)
[1]http://security.stackexchange.com/a/82374 (Snowden)
Fix please?
edit: fixed
Or someone could come in an pop in a drive with their own kernel.
Nevermind the reality that I'd never completely follow through with the security measures needed on a personal machine. I'd just be giving myself an active role in my home's security theater.
I just encrypt my home folder and don't trust machines/networks for important things.
Still somewhat vulnerable to a replaced BIOS and/or a hardware key logger (I gather the idea is: I can keep my usb key safe easier than my laptop. I'm not sure if that's true in a meaningful way).
1) No mention of full-disk encryption on both machines. This is trivial, and especially with flash-storage I consider it mandatory. There's hardly any reason not to do fde.
This protects data at rest, and makes the system(s) somewhat tamper proof. You're still counting on the BIOS and keyboard to be safe (not booting into a vm, no hardware keylogger) -- but at least it makes it a little harder to compromise the system.
One could use/add the neo passphrase to the boot procedure, but it is easy to copy (just get hold of the neo, plug it in, push button) -- and there's no way to know the key has been compromised.
With a manually entered pass phrase, the input path needs to be compromised (eg: hardware key logger). In many theat scenarios the two are similar -- but there's a difference between someone lifting the yubikey for 10 seconds when you're passed out at a party, and someone breaking-and-entering to your apartment and installing a hw key logger/bios back door etc.
2) I've been running FDE/LUKS on my laptop(s) -- and have been considering to add a passphrase on an usb dongle (I don't have a yubikey neo, and my old yubikey II that I got as a promo seem to have stopped working, the button does nothing -- not sure why). This is a trade-off, as anything else.
The constraint of having to be able to type in a pass phrase blindly (and quickly), does not mix well with having a pass phrase that is at least equivalent to a 128 bit random key. If you just want a random phrase of lower-case letters (easier to touch type, don't have to remember where capital letters go/avoid errors with shift) you need ~28 random characters (with a set of ~67 characters, you get down to ceiling(128/log2(67))=22 -- with more room for errors while typing)).
Another thing, is that any such "unlocked" key needs manual intervention to be removed. So if someone steals your laptop and your yubi/usb-key with a static passphrase/key -- they can be expected to gain access, and you can't do anything about it.
This is of course true if they capture your pass phrase with a keylogger before stealing the laptop as well (I wonder a bit about this account[1] from the DPR case -- if it is misinformation of incompetence -- but I'd assume the smartest thing to do was a sneak-and-peak warrant installing a hw key logger (or just a camera) in order to make sure that they had most of the passwords/pass phrases. Seems strange that they weren't able to obtain probable cause for that).
[1] http://www.wired.com/2015/05/silk-road-2/ (If TL;DR search for library)