- cross-posted to:
- privacy@lemmy.ml
- privacy@programming.dev
- cross-posted to:
- privacy@lemmy.ml
- privacy@programming.dev
The article has some good points, but is also reductivist.
Passkeys can indeed be abused, but they solve a security issue that was being abused in the wild that TOTP doesn’t solve. They essentially close a security gap connected to shared secrets that ensures they can’t be abused by caching attacks in the same way as TOTP. They do this by exchanging some of your personal privacy for third party trust — and this in turn means that the third party is no longer storing your password in active memory, making it less prone to data leaks.
But the big secret here is that passkeys aren’t exactly the thing companies like Google, Microsoft and Apple are telling you they are: that’s a single (or two, really, as MS uses a different implementation) of passkeys that slave your side of the shared secret to a mobile device or browser.
Passkeys work fine in software (1Password works as a passkey vault, for example) or in hardware (Yubikeys are fully FIDO compliant and so implement everything but the transport mechanism). So it’s perfectly possible to use a safe and secure passkey that isn’t leaking data to the second party.
The problem with passkeys is that it’s also possible to tie them to a TPM, which is controlled by the second party, not you. And this is the default method that Google, Apple and MS default to presenting when a passkey creation prompt comes up on “their” devices.
So passkeys aren’t the trap; the pushed implementation is.
Get a Yubikey or a password manager that properly implements them and they’re significantly more secure than TOTP. It’s essentially the same technology that Apple uses for Apple Pay.
Oh, and of course, passkeys don’t get rid of passwords; they get rid of indiscriminate password use. You still need a shared secret to back the passkey; it just tends to be a longer “token,” “key,” or passphrase. At the end of the day, that’s no different from a traditional password except for the accepted length and how often it is used.
What I don’t like about passkey implementations I have used on my phone is that is completely opaque who is generating the key and where it is stored. I have the Android and chrome password managers disabled, but I think Google is trying to store my passkeys, which I do not want. Bitwarden can create and store them, but I have the feeling Android is hijacking the enrollment.
I’m also not clear on the benefit to me, since I already use a password manager with extremely long random passwords unique to each login.
I can’t say much about the hijacking side, other than that you have to be careful when you set them up.
The advantage over passwords isn’t on your side of the equation; it’s everywhere else.
With a password, the password or its hash has to be sent to some other party who then has to hold it in cleartext in memory to validate it. This means some other person or software can steal it and use it at their leisure. TOTP improves this by adding a second factor in the authentication chain… except that to make it work smoothly, a token is set that is almost as easy to steal as the password — it’s just got a shorter expiry.
But with a passkey, once it is set up, every interaction uses a unique token based on the existing relationship— so sniffing part of a transaction is useless to decrypt it, agent in the middle will fail, and if either side is compromised, the new actor won’t be able to do anything with the secret without setting up a NEW passkey.
So yeah; the risk with passkeys is that they’re opaque enough that someone could be tricked into establishing a new one with an untrustworthy party.
So, if Bitwarden, all good?
I use vaultwarden with the bitwarden clients on my devices. Works a treat. Make sure you know what you’re doing and have an effective backup strategy if you decide on this!
I’m pretty confident in my backups, but passwords are just too important for me to risk, especially since I’ve started using unique usernames and email addresses for accounts.
Great opsec! I also have a catch all domain for usernames and use bitwarden generated complex passwords. I have a local backup and two off-site backups that themselves have redundancy so I should be fine. I hope :)
Well…for now? Bitwarden looking to enshittify lately. But yes right now Bitwarden passkeys work great across multiple devices desktop and mobile. Been using them for a number of years now.
Misleading headline. Appropriate one:
FIDO Alliance’s implementation of passkeys maybe a slippery slope. Beware.



