Meanwhile, half of the people at every company I've ever worked at:

Meanwhile, half of the people at every company I've ever worked at:

Usekeys are a pass. Trap them!
The biggest problem I see is that it requires OS or browser integration. While possibly a better solution than simple passwords this feels like a vendor lock-in scheme.
You could store them in your password safe if it supports them?
Potentially the server can request hardware/software attestation that would limit the choice of password safe to approved ones only. We don't yet know how big/likely this could be, but in theory it's possible.
well, if I've seen a vendor lockin before, and I've seen a couple, they'll push them with open standards until they're accepted and normalized.
Then suddenly the big players like Google and Microsoft will block all the open platforms sighting "security" forcing businesses to adopt closed proprietary versions while touting their free and easy too use platforms.
then the monitize it.
yup, and Netflix will use passkey attestation to make sure you can't share logins with other users
they can already force your to install their app to receive a push notification (cough.. google...cough...). if they really want to lock you in they will. passkey or not.
You don't remember them you are not expected to moving from iOS to Android lets say generate new ones for your new device.
Passkeys are greate as long you make sure you use a third party (partial) password app, like proton or bitwarden that works everywhere.
I think the worry is that if passkey attestation is required it will force people into a narrow set of authenticators controlled by the big orgs.
At this point in time it's not a problem, but how can we know it won't be in future?
This right here. KeepassXC (PC) already had passkey support for a while, KeepassDX (Android) recently implemented support. If you use FOSS implementations, vendor lock-in and potential future corporate enshittification are non-issues.
The argument from the "it's a trap" article is that the service you are registering to can use attestation to ensure that you are only using passkey managers that they approve.
I have to admit that I haven't investigated this thoroughly myself but if the protocol can be abused in that way then your only choice really would be not to use the service. If it is related to banking or government services then you may not have much of a choice.
The web api for fido2/passkeys exposes attestation information.
Warning: Attestation provides a way for a relying party to determine the provenance of an authenticator. Relying parties should not attempt to maintain allowlists of authenticators.
from https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API
Mozilla's warning is funny. "Don't use this to reject attestations from unapproved authenticators!" That's, like, almost the entire purpose to attestation. It tells you an Apple device or a YubiKey or whatever created the credential. What else could you use this information for other than to make life harder for users using certain authenticators?
I did read that part, but like you, I haven't been able to independently verify it yet.
Until they only allow specific AAGUIDs to enroll passkeys that don't include the one used by KeePassXC (fdb141b2-5d84-443e-8a35-4698c205a502) or KeePassDX (eaecdef2-1c31-5634-8639-f1cbd9c00a08) because they don't consider them secure enough.
Which most people don't do.
Or "Like all questions of security vs convenience, a user should decide what they are or are not comfortable with."
I think the reason passkeys are so controversial is that tech has a long history of ignoring user choice and pushing the most anti ownership solutions possible. Therefore, I think there is fair concern emerging along with any new mechanism that has any sort of TPM or hardware attestation components at all.
The concern is valid, but we should also look at these company's interests in pushing passkeys, which first and foremost is avoiding all support and resources they have to dedicate to password resets and account hijacking, of which TOTP was the band-aid for, which they also push.
The software or hardware attestation is IMO a non-issue for most public sites. We have a precedent in TOTP, and they haven't locked those down either to specific software, because they care more about adoption (to avoid the costs above) than controlling what software you use to validate.
If someone wants to say that these companies will turn on this attestation for passkeys in the future, and break a ton of logins and decrease adoption, then they should have a reason why they haven't done so for TOTP.
If someone wants to say that these companies will turn on this attestation for passkeys in the future, and break a ton of logins and decrease adoption, then they should have a reason why they haven't done so for TOTP.
Didn’t you already answer this by saying they want to increase adoption? That seems like the reason. I think the argument here is the same as what they do with something like streaming (which is closer to what I have a problem with, rather than locking people to specific software). They work on adoption until the numbers and ease of use are high enough to kill the other options and prevent multiple people from logging into one account. They lose some people, but gain more because of the new restrictions forcing people to have their own account.
Doesn’t necessarily work the same in that sense, but it’s still a numbers game. We continuously see companies/governments postpone onerous policies until they have enough people willing to put up with it. Then they ram it through and ignore the people that complain. It’s age gating and digital only purchases and digital id and backdoors and everything else we see with tech.
so whats a passkey and how is it different from a password?
It's essentially just public key cryptography streamlined to reduce friction for the user. When you're prompted to create a passkey for a service a new public/private keypair is created. The private key can then be synced to other devices for example via the iCloud keychain or Bitwarden. Obviously you have to then trust that provider to keep your keys safe. The upside is that your passkey can be automatically discovered and used to sign in without using a password. Alternatively the private key can be device bound but the downside is that if you lose the device you lose the private key too.
If it was just to helpfully reduce friction, it wouldn't be so controversial. The inclusion of any sort of TPM and hardware attestation support at all is what has some people sounding the alarm (in my opinion rightfully).
Admittedly I didn’t read that one guy’s blog post very closely, but it seemed to claim that because some companies may some day misuse/abuse some features of passkeys, passkeys are poison and no one should ever use them.
It's a very basic principle, that you don't create powers that could be abused. That they haven't been abused yet does not make doing so ok. It like saying it's ok that my government was given the power to lock people up with no reason or due process because they haven't used it yet.
Well if that's possible, it doesn't sound like a good basis for security.
The features they're talking about are secure from a cryptographic standpoint.
However, there are features built into the passkey system so that a company could decide that it will only accept passkeys from a specific piece of hardware or software.
This isn't necessarily bad, you may only want your server to allow you access if the passkey comes from your phone's hardware. A person could have stolen your passkey but they're unable to fake the attestation step.
On the other end of things, a company like Google could provide a passkey service which requires you to use hardware provided by vendors that they approve of and they could abuse their position to force it's implementation, such as how you can use Google to sign into websites via OIDC.
Google could just as easily provide a service for 'secure' passkeys which are only allowed to be issued by phones provided by Google, Verizon or AT&T. No more third-party OSs (at least, if you want to sign into anything on the Internet) and no more jailbroken phones. You would have to use the exact, spyware laden, operating system that comes installed directly from your cellular provider who would have remote root access to your device.
I think the idea that we can just boycott passkeys and prevent this is nonsense magical thinking. It requires some hypothetical world where we can perfectly coordinate a boycott of otherwise useful technology. In reality this issue will remain obscure and generally only known to people interested in the topic while Google can pour tens of millions in advertising to reach everybody on the planet explaining how good and secure attested passkeys are to mainstream Internet users.
Use passkeys, they're useful and more secure than passwords. Not using them won't prevent enshittification, just sit back and watch the slow motion attested passkey trainwreck as it unfolds over the next decade.
I’m gonna need to find this comment in ten years. Wish me luck
This isn't necessarily bad,
I'm of the opinion that it is bad, from the perspective of the user. They are now locked into that company. It not bad from the perspective of the authentication provider, and the service provider may get a positive outcome of it from fewer breaches due to bad passwords.
The problem is the authentication provider isn't trust worthy.
Brought to you by the community sending death threats to a guy that added a date field in a program
Another point someone brought up in one of these posts: the remote attestation (IE locking your passkeyto a specific app or software) issue is highly unlikely to be used for public websites, because it would block / halt the adoption they're trying to promote, and its against their interest. No website that I know of has done this for TOTP either.
They push TOTP and passkeys now because they want to avoid the costs and support around resolving hijacked accounts, and password phishers.
The use-case for remote attestation is a valid one also: say you have a really secure internal system that you want to lock down to only users of your specific passkey validator, and make sure its that specific app, unspoofed.
I have a password manager and hardware token. I see no need to use passkeys.
Password manager can store passkeys as well. They’re way easier to fill than passwords, they always work and never have issues with filling like you can have on some websites that just don’t work well with pw managers.
Still needs an arguably perhaps overengineered complicated standard to do it, and seems to open the door to more hardware attestation demands. I'm not a fan and I refuse to use passkeys. (But I can see the use for preventing fishing attacks, so I realize there is no obvious perfect answer here.)
Yubikey4lyfe
But you need to buy at least two of them, which isn't cheap.
And... honestly, you should probably buy 3. Losing your main key only to find out that your backup key broke a month ago and you haven't been testing it is a real risk.
I ended up getting one through arstechnica (they sent one if you subscribed back then), then I got more through some sale or something
Not every service allow for registering more than one passkey
And what are they odds of simultaneous losing / breakdown of all three keys? I think they are not negligible.
are passkeys not a type of a hardware token? they're tied to a device.
They're actually not tied to a device. They can be synced across devices.
Bitwarden, 1Password, Dashlane, Google, Apple, and Microsoft will all do passkey syncing for you.
We don't yet have a good Linux native passkey store. I believe the credentialsd project is working on a spec for that. Once that's up and running I would expect to see some options for syncing without relying on a third party service (though, you can self-host bitwarden right now). It's definitely not seamless on Linux yet though.
Microsoft makes a hard distinction between Device-Bound and Synced passkeys inside of corporate tenants. They are in fact two different things that happen to be using the same FIDO standard, and can be stored alongside one another in the same app if it supports it.
Also KeePassXC with the browser plugins works a treat for synced passkeys.
top 81 comments