We've had asymmetric authentication for nearly 30 years now, it's insane that people are still using passwords to authenticate to stuff.
The thing is, anything but passwords is extremely challenging for non-tech users. Even SMS-based 2FA is too much for tech illiterate people.
You do not want to be the support staff for a service that has 2FA enabled. It's utter madness - people lose their 2FA devices, get them stolen, drop them in water, run over it with their cars, have them eaten by your pets (Yubikeys seem to have a particular attraction to cats and dogs as toys), forget them at home before a vacation, of course no one prints out their 2FA recovery codes... and then there are the scammers who pretend one of these events has happened and the account needs to be unlocked, or those who fell victim to a phishing scam and now 2FA is under the control of the attacker.
People usually manage to not loose/destroy the keys to their houses/cars very often. A FIDO token is very similar. You just need to understand that it's important to not loose it and that you should have a second backup key. I don't think this problem has anything to do with being a "non-tech" user.
Lol. Friend of mine works in real estate... losing keys is very common.
> You just need to understand that it's important to not loose it and that you should have a second backup key.
And how many people have that? Know that? Don't skip the dialog warnings because they've been conditioned to do so? And on top of that, what about the services that only support one 2FA device like Amazon AWS with Yubikeys?
Ok, fair point. That's why it'd be good to have a second key somewhere safe. The FIDO token also is just one key that can be used for multiple websites. That's like having many houses and all can be unlocked with one key.
> And how many people have that? Know that? Don't skip the dialog warnings because they've been conditioned to do so?
I don't know, you're right perhaps not that many. But the problem is maybe also that people do not want to pay ca. 60$ for two yubi-keys just to be able to use the same websites their using with a password already. Perhaps the passkeys login using android/ios (e.g. authentication via fingerprint with your smartphone) is going to be much more popular because it's more convenient and "free" (except you pay with your data).
> And on top of that, what about the services that only support one 2FA device like Amazon AWS with Yubikeys?
Yeah, services that do that or even have 2FA as a paid-only feature need to change that. It's just a system flaw on their side in my eyes. Hopefully, such bad practices will bring those services a big enough competitive disadvantage in the future that they're forced to implement 2FA properly.
Just to note that there are password-based login systems that solve this problem:
* https://en.wikipedia.org/wiki/Salted_Challenge_Response_Auth...
* https://en.wikipedia.org/wiki/Password-authenticated_key_agr...
Phishing is possible to avoid.
Now, I grant that for most of us, if you are the target of any nation state level actor, not much you can do. For the most part, they can just compel the party that has your data. That said, security keys are far safer than portable data.
Maybe to secure corporate accounts against phishing, or whatever. But for my personal stuff, I need to be able to recover in many ways at any time with just a random computer and internet access without any special HW that may not be readily obtainable the moment I need it.
My personal feel is I'm ok not having my key with me when I'm "out and about." Is no different than my not having some of my ID cards with me. Such that, I'm already "locked out" of many of my financial accounts and such when I am not at home. But, I fully ack that that is a personal choice here. I just can't think of any situation I've been in, in a LONG time, where I was needing to randomly use a computer.
Edit: It also occurs to me that keeping keys to get back into your home is almost certainly similar in concern here. As somewhat crazy as I think the "keychain" nature of these tokens is, it does address a large part of this problem.
Even if you would never be tricked into giving up or losing your key, there are other people in your life who can do it either for themselves or be tricked or compelled into doing it for someone else while you're asleep or in the shower or any of 1000 opportunities every day. Would you immediately detect a good fake substitution? When would be the next important login that needed it?
That has the advantage you can install the password manager in several devices, so losing one is not catastrophic.
Maybe it's 1.5FA ?
Of course, it's not nearly as good as being totally phishing resistant like U2F, but IMO it's a big enough win that we should still be pushing password managers very hard.
I think(?) token binding would have moved more of the validation to the authenticator, but I'm not sure, and I think it was dropped.
What a hardware key can do is make it so even if someone has your device and PIN code, they theoretically _still_ can't steal or clone your passkeys, and the RP can implement attestation which is very useful in an enterprise scenario. Though, I wouldn't trust either of those guarantees in the case of a state level adversary...
I think that's not necessarily true. Check rubber hose cryptanalysis.
Because keyloggers don't exist, and privileged processes can't read from ram?
I love bitwarden - but there are many ways my passphrase might be compromised. This is a little alliveated by 2fa - but unless the 2fa comes from a second hw device, there's almost complete overlap between threats that compromise my passphrase (for bitwarden) and my 2fa secret (in bitwarden or another 2fa app)...
There are tradeoffs of course but in general something have is more secure than something you know.
The main reason is that you don't necessarily know who else knows what you know but you can easily tell when someome may have stolen what you had.
But it's similar to other 2FA methods. First you can use alternative 2FA. When you don't have any more, you can use your recovery codes. If you don't have those, you have to rely on wetware - call support, prove your access in some other way.
The last step may not exist for free services...
This reads like literal nightmare fuel. Something out of a dystopian sci-fi novel. You get ten attempts to remember your PIN or your entire life will be utterly destroyed. You are locked out of society.
Also, what about if I break my iPhone and buy an Android[1]? Just SOL? That seems pretty anticompetitive
1. https://twitter.com/zinko45712997/status/1624766001987604482... - Quick Twitter search shows this already happening
If anything catastrophic happens I know I'll be able to recover access as I'm a paying customer.
Tried once to see what access to a human I had with a personal GCP account billed a few hundred bucks every months, and the answer was “not much”, except for specific technical categories defined in the contact form.
The way to deal with losing an authenticator is you have multiple of them, including several backups, one in your home safe, one at your friend's place etc.
The recovery process is defined for both Apple and google, as is the device transfer process.
Here’s a google post explaining their recovery process: https://security.googleblog.com/2022/10/SecurityofPasskeysin...
Before that, some phones could already offer their embedded security chip as a U2F authenticator with the browser app. E.g. I setup the Titan chip in my Pixel 5a as another authenticator with a Google account. But, it only works with a browser on the phone itself. Since the phone browser can also access a Yubikey, I could use the Titan chip to enroll a new Yubikey or vice versa.
I do wish there was a standalone "security key" USB mode I could select alongside file transfer, picture transfer, tethering, or charge-only. Then, I could more reasonably use the phone's embedded security chip as a redundant U2F key for many different services I would normally only access from a PC.
I don't understand why better solutions are not considered. Why not derive keys deterministically, so that you only have to backup the seed (a lá SQRL)? Or encrypt the new account with a public key, and store the private key in a safe.
To me, "use a spare key" is on the same level of unpractical advice as "just memorize long unique passwords".
True, but you sacrificed some safety for that. If you're not home, you can only create accounts protected by the keys in your person, and you're one robber (or fall into a pool) away from losing those accounts.
I'd never accept a password manager with such limited sync, and those are usually free. Paying for three hardware keys and still having such limitations is beyond me.
I'm all for hardware keys, and I'd love to use them to replace all my passwords, but I still wouldn't call your setup "adequate" in terms of either cost, friction, or safety.
You can also add the additional keys later. If it's a serious enough account to be protecting with hardware keys, and you only have a couple keys with you, add a note in your password manager to remind you to add your other FIDO keys. You could add that note to the username so you can't login without editing the username and acknowledging it.
It sounds like a non-issue you're turning into a hypothetical concern because... I don't know, you don't like paying a quite modest amount of money for increased security?
It’s introducing one more frustrating make-work item for the human. Now I have to remember to enroll all my keys at all the sites I’ve used them for. Totally manual. Totally forgettable.
These keys should act like HSMs and have proper backup and restore. Even if it locked me into a specific key manufacturer (like lost HSM backup/restore functionality does) I’d take that over the idiotic “just have multiple keys and manage keeping them all enrolled manually” story.
Any backup is a copy.
If I lose my Nitrokey device I can buy another, initialize it with the same DKEK, and restore my key backups. (If I really want to I can decrypt my backups using my DKEK.)
If I don’t want to do any of that I can have the Nitrokey generate a random DKEK that is never exposed. Then I lose all my keys permanently when I lose the key. I have the option to choose the model that allows me to backup my keys if I want to.
If the point of the hardware key is to put the owner thru pointless make-work and risk then the hardware key is serving somebody other than the owner.
But they are good for 2FA, which is what I need them for to mitigate the risk of phishing, siphoning credentials from my phone or just stupidity on my part.
A robber would still need the password so I'm safe for my threat model, which doesn't include state actors.
But you are right about one thing: adding those keys to all the important account, and adding a new one when you lose one, is a pain in the butt.
I'm not often creating many accounts away from home, and I'm not often then away from home for long periods of time where this matters. I'm also just not often creating that many accounts.
If I'm out someplace and I need to create an account but don't have all my authenticators, I'll either just go without 2FA for that brief period of time or just go with the authenticators I have with me. Then when I'm home (probably within a few hours) I'll add those extra authenticators.
It's getting better, but for a long time the majority of places that supported hardware keys only supported adding one. Places that support multiple keys are better, but they require that I go through the "add a key" process twice and that I be at home (or wherever I store my second key) in order to add it.
If I had one key on me and one identical key at home. Losing a key still means I can't log in until I retrieve my spare key, and I should replace the set, but it's a much better situation than having a single key and roughly no worse than losing one of two unique keys.
- I have three yubikeys — one at home, one on keychain, and one backup
- I have three accounts that are secured by these yubikeys: my email, my password manager, and my Apple ID. these are the core accounts that are Game Over if access is compromised or removed to/from all three.
- for these three accounts I have recovery codes printed
- the recovery codes and the backup yubikey are stored in a safe deposit box at my bank
- for literally everything else I use my password manager (1Password) with its built in 2FA
the idea is, anything other than those three accounts getting compromised is not a risk since they all have unique email address (Fastmail masked emails) and passwords. software 2FA is Good Enough since it is backed by hardware 2FA for my password manager. and if I lose access to one of those three core accounts, I should be able to finagle my way back in.
since I'm not adding hardware 2FA to new accounts, I don't need readily available access to all yubikeys at once.
as soon as passkeys are pervasive I will generate and store them from 1Password.
this lets me have relative convenience in a majority of scenarios with focus on reducing risk of being totally fucked out of everything. it's obviously too much for a normal person, but for a professional in tech, I find it appropriate for my threat model/risk tolerance
If you use Trezor for FIDO, you can re-create it using the same recovery/seed phrase to re-create your lost Trezor.
I'm an oddball in that I'm using a U2F (for SSH) / webauthn (Google, domain name registrar, etc.) device on which the master key can be reset.
It's a tradeoff: I now better make sure nobody steals my "paper seed" in the real world and I better make sure I don't lose it [1]. But in exchange should I lose/break/someone steal my device (which is protected by a PIN btw), I can initialize a new one.
Now there are schemes (like m out of n) where you can distribute, say, part of the paper seed to several siblings/family members/friends or store a part in the safe at the bank, etc. Making it highly unlikely you'll ever lose access to your master paper seed (which is a list of 12, 18 or 24 words out of a vocabulary of 2048 words).
As a bonus the device has a tiny screen which tells you if you're registering to a new service or authenticating and tells you the name (if it's a known service, hardcoded in the device) and/or ID of the service you're authenticating too.
It is protected by a PIN.
It has a plausible deniability feature where you can unlock a fake master key.
And I can buy as many of them as I want and initialize them all with the same seed and then hand them to family members/friends/put one in the safe at the bank. They're all protected by a PIN anyway. So if my house burns down, I'm not sorry out of luck: I can be back in business immediately (i.e. without needing to order one, wait for it to arrive, then find back my paper seed and reinitialize it).
Originally it's a cryptocurrency hardware device but I don't care about that. The CTO of that company was part of the original FIDO alliance.
The device I use is a Ledger Nano S (cost $79 bucks or so) and I load one "nano app" on it, the "U2F" one (works for SSH and works for webauthn).
Now I don't know exactly what's going to happen now that Google, Microsoft and Apple are teaming up to embrace FIDO2 with their new "passkeys" standard (which AFAIU ain't 100% finalized yet).
From the testing I did it looks like Google removed the "counter" verification from their site, which allowed to detect cloned security keys. They used to check for clones, but don't anymore (or at least don't warn the user anymore). I'm nearly sure this removal of clone detection is related to the upcoming "passkeys" thinggy.
I don't know if the older U2F devices (which are compatible with Webauthn as Webauthn is only a server side protocol change) shall still be usable once the "passkeys" is finalized: if anybody has infos on this, I'm all ears.
Meanwhile SSH since 8.2 can use all U2F keys (including the Ledger Nano S) and that is a godsend already.
[1] although if I realize I lost my "paper seed" and I still happen to have my FIDO2 device (or any cloned one I prepared in advance), I can enroll a new device so I'm not totally screwed. And I'll had that many people using a security key that cannot be clone do still use "backup codes" they write down on a piece of paper, which is not safer than writing down a list of words allowing to reinitialize a FIDO2 device.
I also think there is room for different methods for different services. For work accounts, I can contact my boss and have them ship me a new hardware token if necessary- losing only a day or two worth of access (It is even possible for the company to temporarily remove the Hardware Token requirement- or to allow me to enroll a Hardware Token I can purchase locally if necessary). That may work okay for a bank account too- where the bank can verify my identity.
For services with not human interaction, pre-generated backup codes seem the most sensible to me.
Specifically, the HN post claim was that using a backup 2FA code to get into your Google account won’t allow you to add a new authenticator app.
A couple years ago I broke my phone and was unable to access my gmail account thanks to 2FA. This seems like that nightmare scenario on steroids.
Roughly half of new phones are purchased because the previous one was broken.