4 ms·
I'm deploying YubiKey NEO tokens for employees here. It has the form factor of a very small, flattened-out USB stick (almost like a cardboard contour), but it's
by Florin_Andrei 12y ago
I'm deploying YubiKey NEO tokens for employees here. It has the form factor of a very small, flattened-out USB stick (almost like a cardboard contour), but it's a smartcard and an OTP generator. The smartcard can generate a pair of public/private SSH keys, and you could then just push the public key wherever. The private key remains on the token, and never leaves it no matter what.
You need gpg-agent running in ssh-agent emulation to have ssh use the private key on the token.
It requires you to enter a user PIN before it authenticates connections, but the PIN can be cached by gpg-agent for a configurable duration. Enter the wrong user PIN three times in a row and it locks up (can be unlocked via the admin PIN). Basically, everything you know about smartcards applies here - except this is very small and portable.
You can't reveal the private SSH key even if you're very sloppy.
The OTP can be setup with things such as VPN or other places where you need to authenticate with user/pass. There's an open source authentication server that you can deploy wherever, or you could use the manufacturer's cloud auth.
It can also do NFC and FIDO U2F (it's a superset of Google's cheap FIDO U2F Security Key).
In a word - awesome.
- gcb0 12y agowhat about other users with root access where you are running *-agent?
- Florin_Andrei 12y agoOne thing is clear: this is a smartcard, the private key never leaves the token, period. gpg-agent acts only as a middleman between ssh and the token, that's all. It's impossible to capture or extract the private key (unless you're the NSA and you have physical possession of the token, I guess). Now, are there ways to attack the authentication via tapping as root into the gpg-agent process? I don't think so, but frankly I'm not that familiar with the sausage-making parts of it. I'd like to learn more about this topic.
- MichaelGG 12y ago> impossible to capture or extract the private key They should get FIPS 140-2 Level 4 certification, then. Other devices that claimed to be so resistant haven't really fared that well when someone actually bothered to look. It might be out if there range of average software hackers, but perhaps easily handled by someone with hardware capabilities. Even the Chrysalis Luna CA3 (I think that model) was breached by a university team. And a sole researcher breached a popular TPM, finding no special protection. So I'm not sure it's justified to say it requires an NSA level adversary. The bar is probably much lower. On personal stuff, I use drive level encryption, then Bitlocker with TPM, then Athena SCS smartcard for logon+EFS, and Bitlocker on a vhd for the VM actually running stuff. Only the last layer, the passphrase on the vhd, is something I count on. The rest is just to make it easy to brick the device and prevent a quick handed adversary from quickly installing a rootkit. In particular, I have very little confidence in Crucial's SSD's drive encryption. For all I know, the key is stored unencrypted on the first sector. But it's totally free, as the device runs AES to balance the 1s and 0s anyways.
- AlyssaRowan 12y agoOn that note, have you noticed how few Level 4s there are?
- Florin_Andrei 12y ago> Other devices that claimed to be so resistant haven't really fared that well when someone actually bothered to look. The popularity of these things seems to be growing pretty fast, so I'd expect someone will take a look pretty soon. A lot of these tokens, or similar models, are used by large, famous high-tech companies for their employees. That's bound to attract some school-of-hard-knocks probing from 3rd parties (beyond what the googles and the facebooks of the world did before they deployed it to their internal users).
- gcb0 12y agossh-agent would be which level? well, we will never know because there is a industry making money out of that and open source don't usually buy it. Also, no modern vendor would get anything above level 2, because that will also lock your solution to one platform. i doubt you would be praising it if you couldn't install windows 8.1 or the latest osx of the week if you had to wait 2 months for the certification process every time.
- mpyne 12y agoI was about to ask how the BadUSB brouhaha affects the YubiKey, but then I just realized that (of course) my own smartcard reader is plugged in via USB, so the situation can't be that much worse.
- Florin_Andrei 12y agoOh, and I'm 99% sure you could use the smartcard portion to store your private certificates for something like OpenVPN. It's a standard PKCS#11 hardware widget after all, and OpenVPN can speak PKCS#11. I just haven't seen any howto showing how to do it, and I could not find the time to research this option.
- xorcist 12y agoI've also deployed a few Yubikeys and while they are the most versatile tokens I've encountered, at least for my use case something else won me over: They're an order of magintude cheaper than RSA tokens. More, actually. That makes me put them places I wouldn't otherwise.