Passkeys are a trap
nonfunctional.substack.com
nonfunctional.substack.com
Therefore, the author's scenario that sites will wait until most of their users are using attested passkeys and then "flip the switch and start rejecting non-attested passkeys" isn't very plausible.
Attestation is certainly a stain on the WebAuthn spec, and it would have been better if Chrome and Firefox didn't support attestation (unless perhaps the browser is enrolled in enterprise management), but this blog post is presenting a hypothetical and unlikely scenario. That's not a good enough reason to recommend TOTP instead, given that TOTP is vulnerable to phishing and passkeys aren't.
If consumer-facing sites start requesting attestation when registering passkeys, they deserve to be vigorously called out, and maybe then the recommendation to use passkeys should be revisited. But until that happens, don't tell people not to use passkeys.
1) There is this new entirely optional feature, but it's not relevant to you, so feel free to ignore it.
2) The feature is now active by default, but no worries, there is a simple button for you to opt-out.
3) The feature is active by default, but because we value our users, there is an option in the advanced settings to deactivate it.
4) Our data shows that 99.9% of users activated the feature, but if you belong to the handful of diehards who still refuse to use it (rolls eyes), you can use this obscure command line flag or about:config entry to turn it off
5) Managing opt-out infrastructure for the feature has significant maintenance and security cost that we feel, we can no longer justify. Therefore, effective in three months, the opt-out flags will stop working and the feature will become mandatory. According to our metrics, this will affect 0.0001% of our users, so no disruption is expected.
I do believe this is a policy failure and that a law should exist mandating cash acceptance “for all debts public and private”, but there is nearly zero chance of such a law ever passing in the US.
Even where it's "technically" possible, it's becoming more difficult. Some grocery stores around here don't staff traditional teller lanes at night, shrinking down to only self-checkout, which are card-only machines. To pay cash, you'll have to escalate to the roaming attendant (or at least, I assume they can find some way to accept cash for that transaction? I can't say I've tried)
I think some theme parks have started. Not accepting cash should be illegal, and certain places have started implementing laws that make the practice illegal. There are various reasons why a person is unable to have a bank account.
At the market, there is a high cost to managing cash and so some of the small sellers will only accept cash reluctantly or not sell because they can't break notes.
Used car? Bank transfer.
I think the other part is speed. They know the cost, type it into a machine and then tap to pay, onto the next customer!
It is also safer than carrying loads of money on you while you sell stuff on the street.
Guarantee any individual market stall seller would rather take exact cash than not make a sale at all. Small firms might not, since their cashiers have to work in the process the owner sets. Owner-operators will do anything for money or soon go out of business.
This is a particularly American view, a sort of extreme pessimism about the risk of their government collapsing into fascism; while I can see the point in the Trump era, from a practical point of view I'm much worse off with corporations seeing my card transactions. Which includes the card issuers themselves, censoring certain types of locally-legal business.
Average American is more at risk of hassle from Equifax seeing their transactions than even ICE seeing them.
Even worse with the alt payment systems. There's a long list of things it's dangerous to say in a Paypal transaction description. Venmo make transactions public by default, which is insane.
1. You can't use Firefox with our website (when I got this popup, I thought I had been transported back in time 20 years, but with Chrome substituted for IE).
2. You can't sign up for accounts with an e-mail from a "custom domain"
2a. I ran some tests; it's the domain itself, not the host, so e.g. foo@gmail.com is allowed but not a foo@somewhereelse.com, even if hosted by google).
2b. After a bit of back-and-forth with support: "No, we won't tell you the list of allowed domains, but gmail and hotmail both will work."
Incredible... if I ever get that I'll enjoy pointing out I've had my domain longer than gmail has existed.
I remember debugging apple account creation because of that for a few hours. It wouldn't even tell me that my email domain/host was the issue, simply fail at the last step.
"Ok, first, to verify you, what's your phone number?" (oh no, it's one of those, because why do they need to ask...) "<my phone number>" "Ok, you'll receive a te— oh. Oh no. This is not a real phone number. What's your REAL phone number?"
My computers and devices feel less and less like tools under my control and doing my bidding, and more and more like something controlled by faraway tech companies, to do their bidding.
How I wish this were true for (US) banks. They usually force whatever new hell on you they just came up with without asking, or in fact even telling you about it.
The most bizarre instance I've seen so far: "We have unilaterally added this phone number we believe to be in your name (surely cell carriers have better KYC than we do!) to your account as the only SMS-OTP authentication method and are choosing to disregard the one we've had on file for years since it's an evil VoIP number. Please do not contact us again without access to the former number for authentication."
Of course it is, the site will reject the passkey and require you to create one that is attested.
> Are Netflix and Twitter currently requesting attestation when people register passkeys, and rejecting the registration if the user declines the permission prompt?
They could start tomorrow.
> a hypothetical and unlikely scenario.
You have not been paying attention, that scenario is where this whole thing is building towards.
> If consumer-facing sites start requesting attestation when registering passkeys, they deserve to be vigorously called out
It's going to be the banks first.
Why called out, it's all for your safety, to make sure you are not using an insecure client that might leak your data.
Why would that suddenly change in Netflix or some other company's favor at Apple's direct expense?
So you are now locked in to the apple ecosystem forever. You now need Apple to watch Netflix from your Samsung TV.
But man... I cannot tell you how many people don't even notice the walls of the garden. Besides Apple is in competition with some huge players, more than capable of offering "Done with Apple literally trapping you? Follow this link and we'll transfer your passkeys."
That's the whole point of the FIDO specs. This is now literally impossible to do. All the vendors are weirdly okay with this I believe it's because it cuts both ways.
https://rmondello.com/2026/09/07/switching-password-managers...
https://fidoalliance.org/download-credential-exchange-specif...
That ship has sailed a long time ago.
Most people still hanging to that part have already built a whole way of life around the Apple ecosystem and the boundaries and how to work around them have become second nature to them.
The iPhone is now near 20y old, the world also changed, most got enshitificated, and looking at kids and elderlies dealing with their iPhones and macs none of it "just works".
Looking at Japan, it was the bastion of iPhone predominance, but I'm the latest numbers 30+ yo gradually got off the train to move to android as their phone is just becoming another tool to them.
I’m sorry you’ve had a bad time though.
I'm on Android and my kid got my old iPhone. Parental controls can't be set by me.
My Apple ID still tried to contact my old iPhone when logging in as a dev.
I don't need to expand on iMessage and where messages go, it's part of the lore at this point. My wife's airport auto-swirching was also a mess to the point she disabled it.
Google Maps' time line features get randomly shut off and you only know it way after the fact.
The list just goes on and on. I also have my frustrations on other platforms, I'm just pointing out Apple is far from being great. People just get used to the rough edges after a while and tout it as "good enough".
I'm trying to get a source on this but failing, do you have a link or some wwwdc sessions where Apple detail their stance ?
I see your angle, but would take their comments more at face value: their concern is really sync, anything privacy probably being the nice side effect.
Sync has been part of their strategy for a while now, from revamping the whole iMessage stack to allow for sync, to their work on eSim etc. so the move doesn't break with their recent trends either.
If passkeys are intended for platform lock-in then Big Tech is doing a really bad job...
I really wish WebAuthN critics could finally update on this point. There is so much else to complain about, but nobody will listen to somebody regurgitating points stale by several years.
From [0] (via [1]), we have the following statement from an unnamed Apple Systems Engineer:
Passkeys do not provide an attestation statement, as the attestation model currently defined in WebAuthn wasn't designed with syncing credentials in mind.
Attestation was designed to attest to a specific device, exclusively at the point of creation, with a specific set of security properties. It doesn't make sense for synced credentials for a number of reasons, including syncing to devices with different security properties, changes in security properties that happen after key creation, security properties of the sync fabric, sharing the passkey, or exporting to other passkey providers. We're working hard with W3C and FIDO to solve these problems.
Sounds to me like Apple is working hard to enable attestation. It also sounds like attestation _might_ also require sharply restricting -if not preventing- freedom to sync the attested credential.[0] <https://developer.apple.com/forums/thread/708982> (FYI: You'll need to click a button to see the second paragraph in my pull quote)
To suggest that people should stop using Passkeys over this is throwing the baby out with the bathwater. All of these features of Passkeys are appropriate in a given context. The only concern is where a service that might not need/justify "high security" Passkeys starts demanding them anyway, and no-one is forcing you to use said service in that case.
Passkeys exist now and there's no taking them back. However, even if they did not, the government might well just develop its own authentication system and require that it be used under policies that require age verification for social media, for example. Hell, they might end up doing that anyway, and that would be no different. If the government wants to force tracking/verification on certain websites, it won't simply be something they walk away from if Passkeys don't exist. You can only fight this with your vote and by not using those services once they implement such controls.
I mean, we can take them back. Everybody refuse to use them and cause as much trouble as possible for anyone who tries to make you. Use TOTP or similar instead.
> If the government wants to force tracking/verification on certain websites, it won't simply be something they walk away from if Passkeys don't exist.
The way you fight things like this is by making it so the current technology is incapable of doing it and then if they try to legislate it, you have more time to roll back the policy before the technology to support it can be developed and imposed on everyone.
Implementing support for the dystopian technology before the law even requires it is the opposite of that.
Like how everyone stopped using Google/Gmail, Facebook/Instagram and Windows/Office365 and flocked to alternatives?
Let's flip your suggestion. What if someone says if you need "high security" build a competing service that enforces it, no one is forcing you to use a "low security" service ?
My point was not about getting critical mass, it's that the service can already do anything they like to lock people into whatever they want and gatekeep their service. They can do it with Passkeys, or they can do it with a proprietary alternative and if they're big enough, they'll get away with it. Neither of us can sway them at all - I wasn't saying they should do this, only that they can.
Blaming Passkeys is aiming at the wrong target. Passkeys rightly offer features that have valid use-cases, even the attestation in the right context. Can they be abused? Probably, but so can just about anything. Passkeys do, on the other hand, offer some real tangible benefits that other mainstream solutions do not.
Let the usecases that need passkeys use it.
Why can't there be a parallel standard with similar features that doesn't have the parts that can potentially be abused. If the difference between abuse and non-abuse is a vague promise and the good graces of corporate structures, it is better to err on the side of caution and demand solutions that make it impossible.
> The people don't care enough to bother, and that's fine - it's not your (or my) place to force other people to do anything.
Yeah it wasn't your place or anyone else's. How can you or I force anyone. Not sure why that even came up.
Debate is how we evolve new and alternate solutions. Handwaving by saying not your place or mine is not how we affect change if needed.
The main problem in my mind is on the side of the vendors, attestation, secure hardware, etc is all an excuse to lock you in to their device/ecosystem.
You won't be able to use your google account passkey to log into the perfect clone of "gmail.com" where the 'a' is actually a greek or cyrillic letter or something, and neither will your ageing parents. You could still paste your password into the fake site from your password manager, or the spyware on your computer could still sniff it from your clipboard.
Hopefully after thoroughly checking the URL but you only have two minutes before the Uber gets here and just need to get this one last thing done ASAP...
I'm somewhat desensitized to this myself for non-bank use cases. It's unfortunately necessary with corporate merges and rebrands. After all, how is my password manager supposed to know that it's safe to fill my hulu.com password on disneyplus.com? The same applies to mobile apps providing some-outsourcing-vendor.com instead of my-actual-service-provider.com etc.
For passkeys, there's native support for that type of thing using "related origin requests": https://web.dev/articles/webauthn-related-origin-requests
Yes. That is a feature, not a bug.
Transferability and delegation of authority are features. Calling them "phishing vectors" only makes them seem like a bug.
Being able to give your Hulu or Bank of America password to your spouse is a feature, but giving it to a scammer is a bug.
Can't have one without the other, but I disagree making credentials non-transferrable is the right choice.
The advantage of passkeys is that no one can trick you into giving your passkeys to the wrong person. Every time this comes up, people say "I don't need that! I've got a password manager. I'm too smart to get tricked." But they are wrong.
The possibility that sites will require attested keys does seem pretty remote at the moment, but if passkeys take off and >95% of people use keys tied to their phone, I could totally see sites starting to prevent you using a key from Bitwarden. I don't think there's a conspiracy trying to achieve this, but the incentives of security & lock-in could push us there.
Nah, it's fair to regard anything that supports remote attestation as toxic and aggressively thrust it into the biohazard waste incinerator. Any whiff of remote attestation, even being adjacent to it, and an angry mob should appear to burn your entire castle to the ground. Deters companies from wanting to be associated with it.
Also impedes the motte and bailey where they claim you can opt out of it until it's entrenched enough that you can't.
> no-one is forcing you to use said service in that case.
Until something with a monopoly or both halves of a duopoly or a strong network effect starts demanding it.
What remotely attested passkeys will really start being adopted for -- blocking consumer AI agent use.
Think about how many billable products are essentially convenience automation on top of a user's existing access in a platform?
What if consumers start using AI agents to interact with platforms in ways that skip those billing toll gates (because their agents are remixing actions / data on the user side)?
Both the intended (I'm skipping a premium charge) and unintended (I used a hacked agent and/or my agent went awry) are going to become major issues for companies in the next 5 years.
And the question will be asked "Can't we just ban user AI from using our app?"
Attested passkeys are going to be an awfully tempting option to reach for as an answer. Especially for banks. (Fuck banks' technology stacks)
More context: I've been saying this a lot about this in the scan and go at sams club and how there are fanatics that act like it's a good thing and to be the only way to pay.
They could start doing it tomorrow. They just have to flip the switch.
What’s your point?
Attestation is already putting the screws onto open computing, and the frog is already on the boil.
They could also start requiring you to mail a DNA sample to create an account tomorrow.
> It's going to be the banks first.
The same banks that (in the US) largely don’t even systematically use 2FA for online banking logins and completely ignore 3DS for card payments? Attestation usually requires customers to buy and carry extra hardware, so I highly doubt it.
The only place I’ve seen mandatory attestation is in enterprise IT, where admins can supply and enforce usage of e.g. Yubikeys.
Fuck banks with a cactus for forcing us to relinquish our freedoms as a precondition of interacting with them, which is a precondition to exist in most societies.
Arguably, even passkeys with attestation would be a step forward compared to that, as banks could require an external authenticator tap on a rooted device, or signature of some sandboxed secure element that runs independently from the application OS.
It’s dead so far. Again, X.com could ask you to re-enroll your passkey next time you sign in, but this time requiring attestation. It’ll be phrased like “we’re upgrading your account security, please click ‘Accept’ to proceed”.
> banks could require [...a] signature of some sandboxed secure element that runs independently from the application OS
They can. Why don’t they?
How? Almost none of their users own an authenticator capable of attestation (i.e., a Yubikey or similar).
> They can. Why don’t they?
They can't, because open/neutral access secure elements do not exist yet, and nobody really wants to carry an external one.
It just took a decade worth of waiting after the first failed attempt by MS to push TPM support.
The only device categories where Secure Boot and Remote Attestation are either disabled, unsupported or not usable for the purpose of trusted attestation are many Linux systems and Android devices not sanctioned by Google.
Not sure how DRM factors in here; it's a completely different problem space. Or is your stance something like "anything even theoretically capable of performing trusted computing is evil"?
I haven’t checked, but I suppose both Google and Apple have passkeys implementations capable of attestation? (If not, it should be fairly easy to add, and considering Google has been pushing for various “integrity” bullshit, this would be a no-brainer for them.)
> They can't, because open/neutral access secure elements do not exist yet, and nobody really wants to carry an external one.
I’m not 100% sure if this would work: https://developer.android.com/privacy-and-security/security-...
Presumably, banks trust Google, so if Android doesn’t erase attestation information from the HSM when unlocking the bootloader, they could use this process to verify that the key they’ve generated is stored there, regardless of whatever other software the user is running. (If Android does erase attestation info then eh, it’s just as bad as relying on Play Integrity APIs.)
> I’m not 100% sure if this would work: [...]
I believe it might, but like you I'm not sure if they really don't measure some secure boot properties into that keystore these days.
It's also usually implemented in TEEs and attested by the device manufacturer, which means there's a high chance of getting either insecure implementations in the mix or ending up with a heterogeneous mess of supported and non-supported manufacturers varying from bank to bank.
FIDO at least has their manufacturer directory; not sure if Google has something similar for Android (and if it does, whether non Google certified Android OEMs may apply).
> Apple used to support attestation but removed it. That alone makes it non-viable for sites to enforce attestation.
Again, for now. Apple might have less incentives to bring it back than Google, sure, but their products are not really known for being open platforms either.
Unfortunately this is fundamentally at odds attestation: If you trust anybody capable of providing a syntactically valid signature, it's not attestation anymore.
You can try and set up a neutral clearinghouse vetting attestation providers, but that itself will probably become a centralizing force itself, requiring expensive audits etc. – think web PKI certificate authorities, but even more complex (as you need keys in shipped end user devices, not just somebody's data center HSMs).
I think shunning attestation is largely the right move, with a very short list of exceptions (high trust e-signatures, high value bank transactions but not daily payment confirmation etc.)
It is a problem, but isn’t FIDO acting as this body already wrt attestation in WebAuthn? I’m only building on top of this existing process.
Regardless, a sibling commenter has a good idea of how to sidestep this in corporate environment, and I think it should work for most of actually useful purposes.
> I think shunning attestation is largely the right move
I’m glad we’re on the same page :-) But as long as we have attestation for passkeys, I think we should at least make it as hard as humanly possible to (ab)use it as a general device attestation scheme.
So I set up my own self hosted provider, and transfer the keys to it, and ... how is this any different from not being attested? The entire point of attestation is to whitelist providers so a requirement for universal transfer would seem to defeat the purpose.
I appreciate an enterprise wanting attestation for certain things, but I don't think consumer oriented protocols should support it. I also think it would make more sense for protocols to support some sort of arbitrarily extensible co-signing scheme instead of device attestation. So corporate keeps a registry of secure elements they own and which users are associated with each one. So there's no way for a vendor to lock authentication (or whatever else) to a specific OEM but corporate IT (or an end user or etc) would still be capable of binding credentials to some subset of physical devices.
...get it certified, then transfer the keys to it. Or more likely you get an HSM and use its certification.
> I don't think consumer oriented protocols should support it.
Ideally yeah, that’s my point of view as well. In the corporate land however...
> binding credentials to some subset of physical devices
I don’t think that’s the goal. My guess is, they want to be able to transfer some passkeys but not allow any copies, and this only works if one device trusts another. It could work still with your scheme (store a private key on each device; when transferring a secret, make one device encrypt it to the other and immediately destroy its own copy, and make IT department sign any transfer requests so they can check whether they own both devices).
If you're dealing with a legal oligopoly then it is expected that the quality won't be so great.
(The thing that banks are afraid is malware spoofing the bank app's UI and the user then approves a fraudulent transaction... not sure how to prevent that tbh)
There is an alternative* of which I haven't heard in a while.
This is a great point as banks already did exactly this and to me this seems like a very strong proof that we can't rely on "vigorously calling out"
In Japan, this is already the reality. The FSA required brokerages to implement passkey authentication, and the effect is that it's no longer possible to have a brokerage account without a passkey. (Some brokerages, like Nomura Securities, will offer two separate client portals. The portal with money and trading-related functionality requires a passkey).
The thing that sucks a lot is that brokerages seem to also restrict the allowed software/hardware. Don't know the details, but none of my FIDO2 hardware keys were able to be used. I consistently use these hardware keys through WebAuthn, so I was surprised when my brokerage explicitly told me my hardware key is unsupported and I must use either Windows Hello or the iOS Passwords app.
The FSA's official explanation for mandating passkey implementation is that people kept falling for phishing attacks, and the attacks were getting too sophisticated thanks to "AI" or something.
Of course not, you still have some control over those FIDO2 hardware keys and they don't lock you to a limited set of devices. That's what the attestation is for, to allow banning the use of sign-in with anything but a couple megacorp providers. The few small time hangers on will be expelled in time. They're useful idiots for the adoption phase.
Notice that after lots of complaining about there being no way to transfer keys in the spec they developed some planned working group that will in the end only allow transferring from Google/Microsoft/Apple and maybe a few other dumpster companies. They aren't going to give that control up.
Ah, yet another case of people being forced to use technology instead of being left alone doing things the old way where they understood all the risks.
Would a website want you to have to use Apple Passwords to guarantee that the account you're creating is connected to an Apple account, and thus making it more likely that you're a real, non-anonymous human?
edit: Why not just require "Sign in with Apple/Google" if that's the goal?
"I'm different!" says this particular scorpion - yeah yeah, I don't believe you.
1. Many services have old users with passwords that predate password-strength meters (or their ill-conceived brethren: password complexity rules). The service provider knows these passwords keep falling, and the cost of having to deal with stolen accounts is very real: customer support calls, reimbursements and investigation. But I've rarely seen services that force users to upgrade their passwords (even though it's a very easy solution). Whenever I've offered doing this myself, it was always shut down (either immediately or 3 years down the line) by a myriad of seemingly unrelated stakeholders.
2. To go further than this, companies can also know for certain that some credentials have been leaked by looking at password breach aggregators like Have I been Pwned and forcing users with affected accounts to change their passwords. That too, is rarely done.
3. 2FA (with SMS or TOTP) has existed for ages now, yet very few major non-financial services have made 2FA mandatory by forcing you to register an authenticator app or a verified phone number[1].
4. Webauthn was available in Chrome and Firefox in 2018, and got pretty widespread support by 2020. The "Passkeys" brand was not a thing yet, but the basic functionality was there and both hardware and software support was quite solid. It still took several years for services to even start offering Webauthn to users, beyond small and limited trials. The rationale was simple: UX around Webauthn was still rough, syncing and transferring credentials were still unsolved and the worst part was "What do we even ask the user to do?". The broad concept of passkeys is extremely confusing, but the non-concept we had before was far more confusing. Supporting Webauthn back in 2020 would have given tremendous security benefits for power users who could have understood it and deal with the rougher UX back then, but nobody wanted to take the risk of regular users setting up a passkey, losing it and locking down their account.
5. Now that passkeys are being supported by more and more services, you still don't see them being pushed very hard. Passkeys are great for the service provider, since they just kill a big category of security incidents, but even then you're see pretty conservative adoption. And I've never seen a single service forcing you to use Passkeys.
My point in all these examples is that most companies are extremely conservative here. Forcing users to do something that might confuse them, break their account or frustrate them is risky, since you may lose a very real chunk of your customer base. Sometimes you have to do this, the costs from keeping the old way or the benefits or forcing the change have to be high enough to justify that. Think about how long it took for companies to drop support for IE6. The cost was high, but as long as it still had a sizable market share, it was hard to do. Google was probably the first major company to take steps towards killing IE6 support, and this was famously entirely bottom-up, and was done by engineers either hiding it from their bosses or tricking them[2].
With this trend. I personally find the scenario where non-copyable attested passkeys are forced on everyone unlikely. OP keeps mentioning Netflix, but streaming services are a rather special case, most service providers would get very little benefit from restricting users to an attested non-copyable passkey. Why would they risk all that friction for... nothing at all?
The more real risk with attestations (and we're already started seeing it) is that some services (namely banks) will use attestations to limit you to use their own shitty app instead of using a proper passkey.
---
[1] Keep in mind I'm only talking about companies that already had password-based accounts without 2FA. Companies that started out with a simple username and password are rarely forcing their users to add 2FA. The farthest they generally went is sending you an OTP code or link on a verified email address they already had, and this is usually only done for sensitive operations, a new browser and/or a suspicious location.
Email OTPs, notably, aren't 2FA by definition, since your Email address might be only password-protected, and at the worst case (and excruciatingly common) scenario it might be sharing exactly the same password as your service. Companies would love to have all their users using a stronger solution, so they can stop having to deal with all these pesky credential stuffing botnets, but not at the cost of losing a non-negligible portion of their customer base.
[2] https://blog.chriszacharias.com/a-conspiracy-to-kill-ie6
What? 2FA is something I have, something I know. I know my password for your web app, and I have access to a separate account. It's not a recursive 2FA, "it's only 2FA if one of the factors has its own 2FA".
The US has thousands of banks, and nobody tells them how to authenticate their customers – they just all end up doing the same few horrible things, since nobody ever gets fired for doing what all their peers do (and maybe a little bit more to be sure).
As for the browser permission prompt: Firefox simply warns you that the site is "requesting extended information about your security key [sic] which may affect your privacy." [1] It does not make it at all clear to the user that what's really happening is that the website is gating acces behind a specific approved software stack. If I use a non-widely-used OS or device, what website is going to approve its attestation credentials?
[1] https://github.com/mozilla-firefox/firefox/blob/8e9ac3e12bba...
I believe Android still has the option to use hardware attestation, but that automatically opts credentials out of cross-device synchronization, but Apple's veto alone is enough to make attestation non-viable.
If this can't make the "WebAuthN implies mandatory attestation!!" critics update, I wonder if anything can, and how useful their criticism still is.
And the sad truth is: Most people have no password manager at all. They are used to re-generate new passwords every time they want to log in! I'd wager that on some websites the vast majority of people are loggin in by pressing "I forgot my password".
I don't get why this whole "they used to support it but removed it" is supposed to be an argument for anything.
and the other is a laptop, capable of doing none of that
Attestation is necessary for corp use cases. Adding it as an option to WebAuthn is better than forcing more standards to be developed.
I still am using passkeys for some sites because they otherwise force you into insecure processes like SMS-based 2FA with implied humiliation rituals, but banks are the worst offenders and they seem to like discriminating against open source password managers, so while they are not using attestation I am still patching my password manager to lie about its identity. Hopefully this will become more common in the future.
https://github.com/jchv/nixos-config/blob/c85e4ecb7434603ec1...
The first time I was forced to use a passkey implemented within the vendor's app (3rd party password managers were not an option). I quickly closed that account.
The second time was an app that popped up a passkey opt-in in the middle of a bunch of transaction screens. I quickly realized the error, but there was no easy undo. The opt in was one green button in the middle of the screen. Turning it back off required digging through settings to find the security option to disable, and then confirm my choice multiple times. That process also signed out all my other devices.
The fact that companies are resorting to dark patterns and forced requirements, where my money is held hostage, should be pretty good evidence of how poorly the passkey rollout is going.
Can you export it from there? My main gripe with passkeys in 1Password is that seemingly you can't export them, unless you export it to "someone else", which isn't clear if that someone can be just "you".
This was my expectation too, but since I haven't figured out 100% that it is actually possible, I haven't used any of it.
I agree that is annoying.
Bitwarden lets you export your vault, and the export contains the private key in plain text. There is virtually no difference to writing down a password on a piece of paper. Well, I guess a passkey is a lot longer than the avg password.
This changes if attestation ever becomes widespread. Which will only happen if Apple does a U-turn on their stance.
The big difference is not just that a passkey is a private key, it's that the server you register the passkey within holds only the corresponding public key. They don't have a copy of your password (long or otherwise), not even a hashed version of it that could be recovered from a password database dump of the server.
This is a big improvement compared to the days of having your "strong password" end up on the dark web somewhere.
As long as no attestation is used, you only have to store the private key, credentialId and userHandle (basically the server generated ids of the passkey and the user). That's not to different to writing down username and password.
It gets even worse when you want to have separate passkeys, so that you have the possibility of knowing which one was compromised and doing a partial revocation: the cloud sync now requires every device to have access to every copy, so that you can individually enroll them during registration.
Yubikey of course suffers most from this, as their hardware tokens are physically incapable of any kind of sync, so a Yubikey passkey is very quickly a single-point-of-failure. They proposed[0] a system which would allow enrolling a "backup key" (which could then be safely locked in a vault, far away from day-to-day use), but with the various Big Tech companies pushing their own proprietary cloud-synced passkey implementations that of obviously went nowhere.
[0]: https://www.yubico.com/blog/yubico-proposes-webauthn-protoco...
Perhaps surprisingly, Windows has helped keep Passkeys from being "proprietary" lock-in because Microsoft no longer has users in a single ecosystem.
There is no dedicated auto-enrollment for "backup" keys, but most consumer sites make it very easy to enroll "backup" keys yourself.
Also, Passkeys don't have to be "online" to enroll additional keys. Each key is independent, enrolling is just generating new keys. The trouble is that web browsers generate lots of Passkeys (at least one per domain, at the very least) so if you in theory want to print them all and store them in a physical vault it might be a hefty book you are printing.
Cloud sync isn't required. Most users want it so that they don't have a single-point-of-failure.
As an implementation detail some Passkeys have a master key that is then used in some key derivation function (KDF) to generate the hundreds or thousands of individual passkeys (at least one per domain), and that's what most Yubikey passkey implementations need to do because Yubikeys weren't designed to store lots of keys, so it is devices like Yubikey that makes it seem like Passkeys are less independent than they really are.
> so a Yubikey passkey is very quickly a single-point-of-failure
It is a single point of failure when there is one. As soon as you use two, then it's not a single point a failure anymore, is it?
The counter argument I usually read is: "Yeah but it is not practical, because you need 3 yubikeys: the first 2 with you, that you enroll everywhere, and one in a safe. And every time you add a new passkey, you need to go get the one in the safe, replace it by another one, and enroll the one of the safe. You can't spend your life driving between your desk and your safe".
But I have been using multiple Yubikeys for... 8 years now I think? I don't remember the last time I enrolled and important key. Sure, once in a while I add a website, and it is a bit annoying to have to enroll the other Yubikeys at a different time. But it really doesn't happen that often, and anyway most of those websites allow me to recover my account with my email. So it is actually practical to have a "convenience yubikey" for websites that don't matter so much, and in case this Yubikey dies... well those websites were not so important, and anyway I can recover from my email.
The difference for the important websites (and really, I don't think I have really important websites in my life that don't allow me to recover by going in person with my ID, but for the sake of the argument) is that I actually do have multiple Yubikeys, one of which is stored away.
Whereas the master password of my Bitwarden account is a single point of failure, and the security of my online Bitwarden account is as well.
This probably makes your use case somewhat unusual...
> I actually do have multiple Yubikeys, one of which is stored away.
...and this probably puts you in the 0.0001th or so percentile of users. It's really a great security strategy if you can pull it off, but practically almost nobody can.
My feeling would be that "normal people" can always recover their accounts from their main email, which makes the main email the only "important" account. So having a Yubikey always plugged in is a "nice convenience".
Now to be honest, I would expect that "normal people" are absolutely fine with passkeys on their smartphone, and don't consider it a "trap".
I would just expect that people who consider it a trap are able to use a Yubikey the way I do.
I think the people most likely to be hurt by it being a trap are unfortunately those least likely to be able to juggle multiple Yubikeys.
- Relying on emails for account recovery prevents creation of anonymous accounts.
- Have you ever lost your "convenience yubikey"? People underestimate how painful mass account recovery can be.
- The cost of 3 yubikeys can be substantial for some demographics.
- Important accounts are not properly backed up until you drive to your safe. That can be many days for a bank deposit box, or even longer if you're traveling.
Overall that's a lot of compromises for what should have been just "put this recovery key/password in a safe and forget about it until needed", if the protocol was better. And definitely not something that can be widely recommended.
Surely that is also impacted by:
> Important accounts are not properly backed up until you drive to your safe. That can be many days for a bank deposit box, or even longer if you're traveling.
I proposed a protocol with this feature almost a decade ago: https://www.researchgate.net/publication/343318317_Privacy-a...
The problem is that the passkey protocol prevents you from adding a (additional) key you don't currently control. This is what crote was referencing here:
> Passkeys have to be online to enroll additional keys, so any kind of software or smartphone solution is going to depend completely on cloud sync.
Would be cool if I could do that with FIDO2!
No they don't? A passkey is fundamentally just a private key pair, which can be copied around just like a very long password. Of course if you store it inside one hardware enclave and want to move it to another hardware enclave you have a problem, but for software implementations it's simply a client UX issue.
The protocol requires additional keys to sign a challenge during registration, so at best you have to load a pre-generated key from the safe when creating a new account. In practice, you generate a new key for every account, so between generating the key and storing it in your safe there's no backup but cloud sync.
This prevents using backup storage that is safer but inconvenient to access, and also prevents registering accounts on-the-go.
The "device" can be entirely virtual. I've written a passkey-compatible OIDC provider for use on my homelab and it uses passkeys. But the passkeys are just in a SQLite database, which can be copied wherever.
That's not advisable for security, which is one reason I've not released the provider for others to use, but passkeys can operate just fine with that.
If I wanted, the private key itself just be in something like AWS KMS instead of a SQLite database, and it would all still work fine. Nothing about passkeys itself requires a hardware device or that the key be unexportable.
That's all true, but also not the point of this thread (offline backups) or the post (attestation limiting user freedom).
> Nothing forces you to use a passkey provider that enforces attestation if that’s what your threat model worries about.
I'm very confused by this statement.
For starters, attestation is unrelated to the topic of offline backups discussed in this thread.
Second, the whole problem of attestation, as described in the original post, is that it's not you who decides when to use it. And it's not the passkey provider who enforces attestation, as you said. It's the Relying Party, like Netflix, who can unilaterally decide the minimum security features of my passkey scheme, with all their drawbacks, and attestation ensures that they're followed.
True, most solutions today don't do this, which makes onboarding of fraudulent additional instances to some cloud-synced vault a big security concern, but I don't think it's fundamentally impossible.
This! Passkeys would have been tough for me to adopt without this ability. Now passkeys are significantly more convenient that any other MFA method.
Want to dance? Yes | Maybe Later
I remember that comment, it's perfect.
I use passkeys all the time and absolutely have this on every account I care about.
Yes you need to put thought into who you trust to provide password management but for most people having a professional third party help them improve how they use passwords will be a benefit to security overall.
And I am not.
For any given Passkey-enabled service you use, you can have multiple Passkeys - ideally one per device, and it doesn't prevent you from also authenticating with another method, such as username and password.
Sigh. It's OpenID (the original one) all over again? Everyone wants to be the auth provider, nobody wants to accept other auth providers.
> Addendum: I feel I have made a compelling case for passkeys in this article. And I haven’t even pointed out one of their best security features: they are (in most use cases) domain-bound, meaning they are resistant to what are called Man-In-The-Middle attacks.
"I made a compelling case... but didn't point out the most important security feature that motivated passkeys in the first place"
Honestly I don't think this post did make a compelling case. There's a lot of assuming bad faith on the part of the FIDO alliance, while completely missing that preventing MITM attacks was a key design feature. The FIDO alliance members deal with stolen accounts all the time, and passkeys largely solve that. Stealing accounts is almost always done with phishing or social engineering, and passkeys solve the former and reduce the surface for the latter.
Passkeys aren't solving for security nerds who like portability and have 30 character long passwords, they're solving for grandpa who will happily read their bank's 2FA SMS to the "bank" over the phone. The FIDO alliance has literally billions more of these users than they do users who know what hardware attestation is and how it impacts their auth workflows.
And Grandpa will have fun if he has to juggle 20 passkeys with different security requirements on his devices.
But as I said, there are plenty of UX issues with passkeys, those UX issues however don't include getting your accounts hacked, phished, passwords lost in data breaches, etc, which I'd suggest are a lot worse.
> I attest that this user's advertising ID is 12345, and for a fee I'll tell you all about what they've been up to.
Think of how much money they're just leaving on the table by letting us authenticate in ways that don't create such a side channel.
The protections against MITM you mentioned is probably the biggest one, but the other one in the back of my mind is TOTP is a shared secret. So a compromise of the server side allows impersonation of users undetected, which can be a big problem. Maybe I'm over reacting because no company has ever lost a copy of it's database and they're all super secure. But, imagine trying to argue as a user I didn't do a thing when there is an audit log saying we challenged the user for TOTP and it was provided, was definitely the users fault.
Especially considering how easy it still is to do a SIM swap.
If you aren't talking from a US perspective, where are you that SIM swap is a low bar?
Passkeys are unphishable. It’s technically impossible for someone else to capture your passkey and use it themselves. It’s technically impossible for your passkey to be leaked from a website.
This is what makes Passkeys the superior solution - they bake the security into itself rather than throwing up its hands and hoping all the other weakest links do the right thing consistently.
Heh.
Several months ago, I found myself in need of a new phone. I even had the means to do an orderly transition, with the old one still in hand and mostly working.
My mobile provider was an MVNO that was also my home ISP. I had enabled "enhanced security" to prevent ev0l hackerz from swapping my SIM without authorization. It turns out that this mode is so secure that it prevented me and the support staff from a normal upgrade procedure.
There were various glitches along the way, and a conversation with certain LLMs indicated that the SIM->eSIM disparity was also causing trouble, and with the online system's rejection of authentication I decided it was expedient to walk into their nearby storefront location.
It turns out that the salespeople in the storefronts are not really empowered in any technical way, except they were quite capable of changing my password without any reason, and wasting my time, so leaving the store empty-handed after mind games from three haughty female STEM dropouts was rather infuriating.
The process eventually succeeded after giving it a little time, space, and grace, but it looks like I'm leaving "enhanced security" disabled if it's so customer-hostile.
Passkeys are an end run on general purpose hardware largely under your own control, which is a much bigger issue in scale than dealing with customers who can’t access the services they pay for because of some byzantine security or know your customer laws/procedures.
My point is the gains are overstated the main weakness is almost always user action. Passkeys will not magically solve all our security problems.
I bought a house earlier this year and the bank froze my deposit I sent to the real estate agent.
I rang the bank straight away and badgered them to unlock it ASAP in case the sale fell through for their BS fraud department to sift it.
They blamed the fact the real estate they’d never transacted with before, I politely told them they’re based in one state while I was purchasing in another.
It took 2 hours of back and forth to get them to send it, even after they did all their security questions.
It’s all a fugazi, they/governments do not want you having large amounts of money - it’s as simple as that.
If they have something like this in place, they will have greater confidence in the transaction being genuine and less likely to block it. In this case, for such a large amount of money, relative to the size of your account, they might still be very cautious about it, but it would be less likely to cause an issue.
When I got to the bank, they hassled me a lot, figuring I'm getting scammed. They surrendered when I said basically, "hey, it's only $250 and if it is a scam, he earned the money, so why stop it?"
Apparently a bunch of other people wanted something close (not quite the same as mine, but should give you an idea of it):
https://www.reddit.com/r/FrankOcean/comments/48nor0/heres_th...
3x5 feet. Included shipping from Pakistan.
Instead we’re increasingly locked out of devices we buy and told/mandated this is how you’ll use them.
Users constantly fall for website impersonation, this can be solved by your password manager it just has to check the host and the certificate of the login page.
Now browsers don't let password managers do that, I wonder why.
But lets say you don't like the fact that passwords are sent over the wire. I get that I don't like that either. You could just take a random token and have an hmac signature on all your requests, for most cryptographic hashing functions that would probably be quantum secure as well.
But lets just say you don't want to have a shared secret because you know servers get hacked all the time. Totally legit, I like the way you think, asymmetric cryptography it is.
How could we possibly do it? Like ssh with pki on top.
The spec could be literally these 25 words:
Do what ssh does but request a PKI signed certificate instead of a key signature from the server and validate it against your known CAs.
There's functionally no alternative for consumer logins, and certainly not one that doesn't require learning what PKI is. "like SSH with PKI" is a bit "draw the rest of the owl".
Which is exactly what Passkeys does. And it also has built-in functionality to prevent any kind of "Oops! We changed our login method, just ignore the warning and retrieve it manually." social engineering, which a user would often genuinely see when random services move their login page to a different url.
If the credentials get stolen from a website database, they’re useless for every other website on earth. No matter how poorly they’re stored, it’s just a public key and is not useful. Hell, they can get code executing on the webserver that collects full login information, and it’s not useful.
Passwords always require full transmission. Hashing for storage requires a proper implementation, which we’ve seen does not happen. 100% of the time. There’s a reason hackers are still stealing passwords from websites after three decades.
Passkeys solve that. Nothing else available to the average user does.
Into a hash algorithm not to a remote server.
>Nothing else available to the average user does.
Literally every person could use a unique password for each login.
You know what MITM is, yes? There are a ton of points between you and that hash algorithm, and any single one immediately and permanently compromises you.
Meanwhile passkeys are completely invulnerable.
Yeah, it's just a bunch of "big company bad!"
Yes, Google and Twitter and Yahoo are just trying to get your data and sell ads, but I fail to see how Passkeys furthers that specific goal. Even if these companies have bad motivations in certain parts of their business, they all have an incentive to make accounts more secure (to reduce fraud) and improve the user experience (to increase engagement/happiness)
Furthermore, the rest of us are the people at the companies implementing passkeys. I did an implementation recently, didn’t require attestation, and can’t imagine why I ever would.
If we’re at this level of trust for all of FIDO, why aren’t we at legislative centers doing something much more dramatic about it instead of navel gazing about how we’re the smart ones who have recognized FIDO’s next big trick? How is attestation the problem here?
This only becomes real if you don't have e-mail fallback access to your account. Something which seems like a very bad idea.
But there’s definitely a kernel of truth here. 1Password recently began to enforce userVerification: required[1][2], and suddenly on the desktop without TouchID I have to enter my login password to use the passkey on a good number of websites. I didn’t sign up for 1Password 15 years ago so that I have to enter both my very complex master password and very complex login password to sign into websites, the “one password” contract is suddenly broken after 15 years. This experience independently alarmed me about the additional constraints potential of the passkey standard and power wielded by the FIDO Alliance and partnering organizations addressed in TFA, which are, to be clear, useful for security in an organization. (We use userVerification: preferred now btw.)
Therefore, I believe the passkey technology is great for enforcing a standard of security in an organization and stand by my choice for my org. But as a general purpose B2C auth tech, if the additional constraints become widely adopted, user freedom will be seriously harmed.
Edit: I asked Opus 5.5 to vibe code a passkey auth solution in Go a few times without saying anything specific about userVerification. It chose required each time. So expect to see more of these. Oh and vibe coding auth without understanding it entirely is bad, please don’t do that.
[1] https://web.dev/articles/webauthn-user-verification
[2] https://www.1password.community/1password-at-home-31/user-ve...
If you're building a Passkey-based login page and you specify "userVerification: preferred" or "userVerification: discouraged" you are essentially reducing your security to a single factor - namely the "something you have" one.
* On Windows you can enable Windows Hello for biometric authentication.
* On Mac, as shit as it is, you can buy Apple's magic keyboard with TouchID (for crazy money, but still) and use it while the notebook is shut.
I hope 1Password can eventually consider adding something like face recognition from a webcam as an alternative method.
Unfortunately, without this they are not compliant and it gives a false sense of security to claim it is multi-factor when it's actually only one factor. You'll find the same with other Passkey stores like Kevault that require biometrics as well.
It immediately creates a huge lock-in in a hard-to-notice way. Luckily, I did noticed early on and manually removed the 20 or so passkeys I had created.
Earlier this year, I lost my iPhone and restored from backup. I was shocked to see that I could log into my 1Password account using only the master-key, and that the secret-key was not required. 1Password clearly stated that the secret-key was required to setup a new device, but it turns out that they also (perhaps recently) configure it to upload to all devices in your iCloud account[1]. Ever since then, I've lost faith in 1Password's ability to communicate their security model to me and started looking for an off-ramp.
> Use universal sign in for logins
> Our next-generation autofill combines all login types into a single sign in prompt.
What the f does 'next-generation' mean? No link for more information. Obviously I have to turn it off, else for all I know it will start setting up passkeys (now or in a future update) or do something else anti-user. And it also means that I need to be careful about updates to 1password. Sad to watch my relationship with my password manager go downhill.It means "Just shut up and use it, someone's bonus and/or promotion packet is depending on the usage metrics.". :P
https://rmondello.com/2026/09/07/switching-password-managers...
https://fidoalliance.org/download-credential-exchange-specif...
For the iCloud syncing, I believe they've done that since iCloud Keychain/Apple Passwords was first a thing; I've been aware of it since they introduced it, but perhaps that was more explicit when it was first added. The comment below from a now-defunct 1Password employee account describes the thinking there:
> Importantly, the entire role of the Secret Key is to protect you from us and anything that might happen on our end, like a breach of 1Password’s servers. It does not (and can not) protect you from a local attack. This is mentioned in 1Password’s Security Design white paper [ed: on page 74 of an old PDF; I've linked the newer HTML document below], which goes into detail about the locally exposed Secret Key.
https://www.reddit.com/r/1Password/comments/10iqhdp/comment/...
https://agilebits.github.io/security-design/index.html
I do get why that might be surprising. Without going through the whole onboarding process on a fresh device I can't say how well they highlight that or how easy it is to blow past. All I can say is 1) I've known about it for years and 2) having read through the white paper of how iCloud Keychain works I _personally_ trust iCloud Keychain/Passwords about as much as I trust 1Password, maybe _slightly_ more - but I am also not a security professional, so take my word with very little salt :)
You can only export passkeys in 1Password for iOS and Android at this time.
So that's not great. Let's look at their page on the 1pux export[2]: Your data is yours. If you want to export your data from 1Password for any reason, you can.
And the word "passkey" does not appear on that page. Why are these docs still written like this after 4 years?And for the record, this is not impossible. Bitwarden does it[3] via the magic of "ignoring the part of the specification that says not to give users their data." Any open source software would do the same. This is why 1Password is no longer the "good guys" despite having rationalizations for their actions.
[1] https://support.1password.com/export/
Does (more) here include free software like keepassxc and friends which don't restrict what key owners do with their keys? Last I heard, FIDO was moving to ban them.
Though, I do find it amusing that I commented about 1password's inability to communicate their security model, and your reply links a reddit post[1] in which everyone is disagreeing over whether or not iCloud secret key syncing actually occurs.
[1] https://www.reddit.com/r/1Password/comments/10iqhdp/comment/...
You don't get to decide how to use your passkeys, some on else does.
I don't agree with the conclusion, though.
TOTP is great, flexible, and keeps the user in control; however, using a passkey in a flexible password manager (Bitwarden, keepass, 1Password, etc) really does continue to give the user control. And the user experience is dramatically easier than filling in TOTP codes.
To advocate for TOTP over passkeys, we're already relying on an application to generate those numbers (authenticator apps, password managers, etc). I see no reason to not simply continue using those pieces of software to manage passkeys, too.
I think the bit about TOTP was mostly a joke, the problem with passkeys is that they're billed as a replacement for passwords but they mix lots of MFA concerns in and make interoperability essentially impossible a lot of the time.
They’re both equally disposable. You can reset a password just like you can reset a passkey.
That's simply not true. I'm able to log onto GitHub on my corporate device using a passkey that's kept in 1Password on my iPhone.
Passkeys are built on Webauthn (and ultimately sort of synonymous with it) and that has always been the web standard for all physical key support such as Yubikey and is basically the same as it has been for decades when dealing with Passkeys only with updated UX on top. Hardware support here is pretty good, too.
Yeah and neither will anyone else!
Even if your other device is a mainframe computer thousands of miles away, so long as you can photograph the QR code, you can decode it and send the data string for the passkey device needs to it.
The issue that many have with passkeys is that someone will tie a passkey to an ecosystem that they don't personally control like Apple's and then they can't get into their services without an apple device that's onboarded into Apple's ecosystem.
My claim is not that passkeys couldn't give you control in principle. It's that the standard readily allows for websites to prevent you from being allowed to exercise that control, and the unclear messaging and UX around passkeys means most users will not even notice should this happen.
Sure, but if you read the article you would know that deal can (and will undoubtedly) be altered. The passkey issuer can demand that the passkey be hardware-backed, and I've already run into passkeys that cannot be stored in bitwarden out in the wild (i.e. they REQUIRE that I use a TPM-backed store in my computer). Eventually it will be a particular TPM-backed store running on an attested platform. Now that's not generally the case today, but make no mistake, that IS the ultimate goal... You will only access valuable services from devices that you fundamentally have no control over (e.g. locked down OS's with attestation before you can access X,Y,Z), so that you can't steal from netflix, skip the sponsor segments on youtube, block ads in your web browser, etc. etc. etc. If you want a preview of how this might all work from the technical side, just look into how TEE works for large-scale GPU deployments right now.
And you can't really blame them. A TOTP 2FA from your password manager is not secure. It WILL be hacked sooner rather than later. And SMS is horrible, expensive, and unreliable.
So far, only FIDO keys provide hardware-backed security ("resident keys", not passkeys) that is nicely segregated into self-contained hardware module. And it does not require you to run a full end-to-end DRM-ed stack.
If you _want_ true privacy and security, that's pretty much the best case you can hope for.
The only difference is that banks will now blame you for any losses caused by hacked devices because it is on paper "unhackable" with a well-updated device, so it is now your fault that their crappy bank app's security was broken.
And you still don't get to use Passkeys with banks, of course.
> Except that those "self-contained hardware modules" are actually rarely "self-contained" but usually an integral part of a smartphone running a huge bunch of mostly-untrusted code and that the containment keeps getting breached, of course.
And it actually doesn't matter if the secure device is designed correctly. Providing a secure channel over untrusted networks is something that we can do easily.
> And you still don't get to use Passkeys with banks, of course.
I can. I'm using US Bank and it supports my Yubikey-bound WebAuthn credential just fine.
See my comment here https://news.ycombinator.com/item?id=50049311 about userVerification: required. Passkey in 1Password used to be on par or slightly more difficult than filling in TOTP codes (need to click to approve rather than browser extension autofill and even auto-submit on a large number of websites) but that’s no longer true with a good number of websites requiring userVerification. Now you have to type in your login password on desktops without biometrics. Forum thread: https://www.1password.community/1password-at-home-31/user-ve...
"Once certification and attestation goes live, there will be a minimum functional and security bar for providers."
> TOTP is great, flexible, and keeps the user in control
TOTP is vulnerable to MITM attacks, so it's at best acceptable.
This 4-year-old article and its comments are worth reading again: https://news.ycombinator.com/item?id=29859106
Have all your mails at Google, ship stuff home with Amazon, but your authentication mechanism is a trap and anti-privacy?
My company's product uses passkeys-only and it works great. We don't need to store user's email addresses if they don't want to. Because we don't need a password-reset flow. Because passkeys usually sync and backup. And if you really want, you can have multiple passkeys for your account (or multiple accounts).
I don't see how we could use passkeys as a trap. Our users find it convenient and the security properties speak for themselves.
And when they don't? What then?
One of the biggest issues with the implementation of passkeys that I've encountered is that I'm not offered the choice of where a passkey will be stored. It's just a fight between my password manager, my browser and my OS which all try to be "first" to intercept the passkey request, and if the "wrong one" gets it there's no way to say "actually no, I didn't want you to handle this passkey request".
If I have to explain Passkeys syncing from her PC where she made the account, to her phone, then to the 3rd PC using some qr code or bluetooth, then we're both gonna lose it. There is value in passkeys, but there's also huge value in a stupid and slightly less secure password that we've just completely abandoned.
> I’d like to be clear that there are legitimate uses of remote attestation. By using a website that requires attested passkeys you can be sure you stay safe from accidentally installing a scammer’s fake passkey application that steals your data – the website will reject such a passkey. You might want an attested Passkey even if the website doesn’t require it, since you can use attestation to verify that your software has not been tampered with by a hacker while you weren’t looking.
> As for reasons to not want attestation: you might want to be able to use software that Twitter (formally X) doesn’t specifically approve of, such as Linux. Or a phone with a refurbished operating system.
So the bad timeline is the one in which the industry gradually transitions to "you can't log on unless everything about your system is exactly as we want." Figures.
Before anybody thinks "surely they can't ban all linux users", they don't need to. The systemd folks are also working on a startup that is building verifiable computing into Linux via systemd. So, we have no choice on the matter anyway. It could become of choice of approved distro vs non approved distro.
> So the bad timeline is the one in which the industry gradually transitions to
We have been on that timeline for every other tech transgression. There are no signs that this will be a different timeline.
Is the audience of this article the kind of people who are already using passkeys and like them? Because, if so, we’re starting at a deficit here. The author is out to get my beloved passkeys that have saved me so much time and pain.
Are passkeys perfect? No. Are they even very good for no-technical users? Absolutely not…they’re incredibly confusing for that kind of person if you ask me.
However, for my workflow, I’ll take them over a password+2FA type of situation where logging in is such an annoyance. The security part of the discussion is very interesting and a lot of the things in this article are stuff that I didn’t know before reading it.
The issue is that, putting on my user hat, I just don’t care. As long as my accounts are reasonably secure I’m much more concerned about ease of use and workflow.
I apologize that the headline is provocative. I thought for a long time about how to appeal to both people who are barely aware of what passkeys are but also not put off people who like them. I considered calling them a "Trojan Horse" in the headline as I do in the body (i.e. legitimately lovely, but with a terrible and unobvious problem) but "trojan" has another connotation in computer security.
Nonetheless, I said what I meant. Convenience is how they get you. This convenience didn't have to come with a trap, but thanks to the way it was designed, it does.
Regarding how I feel about passkeys after reading your article, logically I am reading what you wrote and conceptually understand the trap, it’s just hard to wrap my head around what kind of situation would cause this trap to “catch” me so to speak.
I.e., the upside is real and immediate, the downside is theoretical and tied to future uncertainty.
But as for how it could "catch" you: if you use FOSS devices that are unattestable (as is the case for the LineageOS phone and Linux laptop I exclusively use), you may one day find you can't use many websites.
The title put me off completely.
I’m tired of people shitting on everything. Especially without offering any advice on how to improve things. It’s exhausting to read. And apparently it’s not even the point of the article. So why is it the title?
Very very strange choice.
It wasn't a pointless rant, you're seemingly primed for something that didn't happen here.
It's a good argument that passkeys are a trap while TOTPs offer the security you need but avoid the absolute control passkeys may hand over, so stick with those.
With passkeys I click once and I'm in like the golden age of using the web with a password manager in 2012. It's a huge quality of life improvement. If people want to avoid passkeys for whatever reason, that's fine but not interested in reading the same slippery slope argument that gets reposted every week.
A recurring issue with these critiques is how they seemingly presuppose passkeys are an all or nothing thing, and losing your passkey means losing access entirely. Which isn't how it works basically anywhere. It's just another auth method, if you can't use a passkey you fall back to whatever recovery method is offered. If passkeys became some user hostile trap overnight I'd just unenroll them and use TOTP, SMS 2FA, email 2FA, or whatever else is supported.
And every critic always attacks this same thing. TOTP isn’t so bad, my password manager can do it. 2FA is fine it’s automatically pulled from my phone.
It’s still phishable. The password is still sent. You haven’t solved anything, you just piled more complexity on top to make it harder. People can still use the same password at 12 websites.
Passkeys never get transmitted. If you hack into a server and steal my credentials, all you get is a public key. You can’t use it at another website. A bad developer can store my password or TOTP secret in a way that makes it useful to a thief. That’s not possible with Passkeys.
No one ever offers an alternative other than saying it’s irrelevant. Despite practical experience showing otherwise.
Passkeys work and make my life better. These constant rants remind me of seeing people argue that the GUIs are a waste of time and no one will ever use them and it’s a fad that will go away and the only reason everyone’s talking about them is companies want to sell graphics cards and mice.
Suppose I had only passkeys and Google Pay. I take a train into town and lose my phone. What then? I'm screwed.
I couldn't just go home because I'd need to buy a ticket or taxi using my phone. I couldn't buy a replacement phone. I wouldn't be able to online shop on a library computer or withdraw money unless I have a physical bank branch. (I do not.) I can't even contact anyone unless I know their number and borrow a phone or find a way to send an email.
My preferred balance of risk vs convenience is: passwords in a password manager, hardware-based 2FA only for making account changes, and confirmation emails (My email password is not in my password vault.) any time a site successfully or unsuccessfully processes a login attempt.
There is no hardware element. If someone phishes my password, I'll know right away from the login email, unless they're so talented or lucky that they also accessed my email or found a way to spoof my 2FA. If I lose my phone, I'm not totally helpless. I don't see an overall downside to my strategy that isn't worse than passkeys.
-----
Edit: One suggested alternative I can fathom is "passkeys managed by password manager". While this does provide better security than "passwords managed in a password manager", my experience has been that passkeys are not well-implemented across all platforms where they Just Work(TM) on every site. I don't know how you'd go about using passkeys in a shared public computer setting (university lab or library) unless you can install browser extensions (and why would you want to, even if you could?). At the end of the day, these passkeys are still secured by the password manager's single master password. Regardless of what I use, I want emails when a login attempt succeeds or fails. It takes one full second to swipe away at my convenience, and I would instantly become alert to an attempt or login I didn't execute.
The tone hair-splitting makes it seem like you weren't going to be that receptive to the point anyway, no matter how many layers of subtext are inserted to abstract away the actual point, that being - Passkeys are a trap. Do not use them.
Substitute apple with google, pay card with youtube comment and iphone with android for the "open" experience.
Expand on this? Haven't heard of this failure mode.
tldr from memory: Guy used 2 legitimately purchased gift cards that had been tampered and their codes were used by someone else. His account was locked with no recurse.
I think he could still use his phone, but all the online stuff were locked down. He only managed to get it back after his case reached this website(hn) and senior Apple people stepped in.
https://mastodon.social/@rmondello@hachyderm.io/117428259125...
> 1. Intentionally presenting things that are complicated as inherently suspicious. (Delivering security by design can be complicated, yes!)
This is a matter of opinion. Personally I think making a technology understandable is more important than incomprehensible but secure.
> 2. Describing TOTP as a “great solution” for adding security to a password-based account. When the most common threat model on the web is phishing (a word the post never mentions!), TOTP hardly buys you _anything_. TOTP is phishable.
Phishing isn’t a big threat to regular consumers. It’s a bigger threat to workers at corporations and government agencies. These places have IT departments. They have better solutions than passkeys, including using a Yubikey as a second factor. It may be based on WebAuthn but it’s not a passkey.
> 3. Seeming to be unbothered by how many logical leaps are being taken without actually understanding the topic being discussed.
Why are the logical leaps? I don’t see any. What I see is clearly delineated hypotheses for future scenarios. We can’t predict the future but the original author is predicting a particularly dire future, whereas rmondello is predicting a better future.
Can you back that up with data? Anecdotally regular people get phished all the time, why do you think banks are sending out frequent reminders, show banners on their websites and apps about phishing attempts in the wild and mail providers explicitly showing if something is an official Google / Fastmail communication and when it's not.
When I see phishing mail they are always for banking, Google / iCloud accounts and not specifically targeted at "corporate" or government agencies.
Banks are sending out frequent reminders because scammers are still out there. They pretend to be banks. But they don’t ask for your password anymore. They scare you into action to buy them a gift card. They tell you the IRS is coming after you or the bank is going to wire out all your money unless you listen to them. They tell you your computer is infected with a virus that will steal money unless you copy-paste a special command to kill the virus inside Windows Run. That’s not phishing. That’s not a problem solvable by passkeys.
Just because you haven't seen it, doesn't mean it's not happening. I'm getting a monthly email from my brokerage (IKBR) that literally says phishing:
> Our clients have seen a wave of “phishing” attempts in which scammers are impersonating Interactive Brokers. They send requests—sometimes by text, sometimes by email—for urgent updates of client information (often tax or other key information) and include login links pointing to websites that appear legitimate but are actually fake websites. If you click those links, you may inadvertently give bad actors access to your account.
Passkeys in theory are great, but the capabilities of the spec are worrying. Defaults can and do change, and when they do, so follows 99% of the population, and then you find yourself either getting blocked out of services because your hardware/software doesn't comply, or you give in.
But on the other end, it might not matter anyways. Apple, Google, Cloudflare, are already pushing similar garbage and now you increasingly have to scan a QR code that verifies your mobile hardware to use a desktop.
Found out passkeys were a trap and it took over a week to recover.
Now I will only use 1Password for passkeys. Not perfect, but at least portable.
That's the kind of half assed communication that loses trust.
Both Passkeys and OIDC are vendor lockin enablers due to these design choices.
I wish the next standards would keep this in mind.
Although this isn't true because actually with a password you have to choose how to generate it and everyone chooses different ways.
For all their faults, passkeys/webauthn is the future and you can absolutely just use nitrokeys you control, with backups, as you like.
So many security articles just seem to be so far removed from the real world. Like, when is that ever going to happen? It's the same principle that forces people to reset their password every month. Sounds secure in principle but then everyone just writes it down.
The reality is that Passkeys are way more convenient for most people. Reducing barriers to adoption is the best thing we can do to improve security.
Did you not read the previous paragraphs where they discussed someone leaking their password in a photo?
Someone would need to:
1. Request the TOTP
2. Stand up and walk back
3. Take a photo of their desk with the TOTP visible
4. Send it to someone who can use it
All within 30-60 seconds. Just such an edge case it's not even worth thinking about.
That ... doesn't seem like a concern unique to passkeys, though?
It seems more like a policy rather than a technical aspect.
e.g. A website might decide they will only provide services if you upload a photo of government ID, or pass a verification where you show your face.
If it's software running on someone else's computer, you don't get full control regardless.
I'm sorry, what? Who has more than one password manager (other than a personal/work split)? That's absurd and not something anyone I've heard of would put up with
Does it not count as "passkey" then?
Yubikeys can be used as a device-bound passkey, that the FIDO2 thing.
Now software managed passkeys are also a thing and can be stored in a (good?) old password manager, of course this is less secure and could be disallowed in the future.
Thus the rant is about people without dedicated hardware keys that would have to use things like device-bound passkeys their OS instead of their password manager.
and the websites are usually justified in saying that.
But also, right now giving a website a passkey basically means being technically savvy or using a sensible system like the browser/OS. TOTP used to be this way, but then people got annoyed at the process and put everything into 3rd party apps that synced across devices. The same will happen with passkeys, at which point "passkeys are a website..." will morph into "attested passkeys are a website..." and the rest will remain true.
But what was (is?) wrong with FIDO / webauthn?
Passkeys offer the same and more security but are less of a pain for the user.
Convenience is precisely the thing that big tech established tech platforms want to reward their users with to keep them around. The undeniable convenience of passkeys didn't have to come with a standard that is threatening against unattestable devices like my Linux phone. But it does, and that means passkeys are a way that the industry can discourage people away from using non-Google/Apple/Microsoft-approved devices.
(Apple didn't join the FIDO Alliance on Passkeys until they made sure attestation was an optional feature and no longer a requirement, for consumer privacy reasons.)
This panic about "but what if attestation" goes for any standard that people on open source platforms use. What if browsers add attestation? You're only one update away from losing your freedom! Browsers are a conspiracy by big tech! Apple already built remote attestation into Safari under the Private Access Token system, after all.
There is no intent to kill FOSS, not even from Microsoft anymore. The reality is much worse: nobody really cares about FOSS, except for the parts that make money. No big tech CEO is wringing their hands thinking of ways to end freedom once and for all. They just don't care if whatever they do doesn't work on Linux.
Companies like Disney are happy to block any Linux computer already with the standards we have. Not because they hate freedom, but because they don't care their DRM doesn't work.
Attested passkeys, on the other hand, are a massive pain. You'd need to get a list of all the keys for all the normal trusted parties (Google/Microsoft, Apple doesn't even support it, Yubikey, and so on) and keep that list up to date. The moment a model of Yubikey gets a firmware bug published, all keys signed by all Yubikeys of that firmware need to be retracted (and all users locked out) or attestation is meaningless. They're way too much work outside of the space they're actually useful: managed hardware for employees, where the user has already given up any control anyway.
TOTP is not an alternative for passkeys. It's trivial to phish and it does get phished all the time. The only comparable authentication mechanism is client certificates/mTLS, which has been tried and dismissed long ago.
There's also the fact that passkey storage is currently shit. Even the most expensive yubikeys can only store 100 passkeys. I currently have 700+ entries in my password store, and that's excluding the business stuff. Am I supposed to faf about with 8 yubikeys? Somehow labelling them so I know which 100 passkeys each one contains?
That's strange, since neither of them are a big player in the attestation enabled key manufacturer market. AFAIK Apple doesn't even make keys, and barely anyone uses Google's keys. You even mention Yubikey, yet somehow think Google and Apple have a duopoly here.
The equivalent of 'owner override' is user access to all secrets.
As with TC, one could have all the user-protecting aspects without any of the user-limiting aspects, by implementing suitable owner override / by enabling users to know all secrets.
Never really cared enough to actually look deep into it to this was a good read. Appreciated.
I am a big Passkey advocate, but like many things these days - as pointed out here - they are a double-edged sword that have been very effectively "poisoned" by the same groups responsible for much of the recent DRM-ification of a lot of web tech.
A close parallel of this is the EU's efforts to build "digitally sovereign" software but ending up increasing reliance on Apple & Google in the process[0].
https://github.com/eu-digital-identity-wallet/av-doc-technic...
Do you think they did that to keep us FOSS neckbeard hackers happy?
Apple is perfectly fine with taking control of your privacy if they're the ones in control, and in this case they would have to put third parties in control instead. I'm sure they'd much rather take control themselves and build these types of checks into their "Sign in with Apple ID" buttons instead, so they can put "if you want Human Proven Secure Attested devices (invented by Apple), let your users sign in with Apple ID" on their website.
This (before they go on to describe actual passkeys) sounds like object capabilities to me. Capabilities combine designation and authorization so if you don't have it, you can't use it. It's the type of security that we should be moving to.
Passkey attestation sounds like a nightmare for user privacy and for anyone that doesn't use a major corporate operating system.
I don't have the choice to use a bank card online without 2FA - it's mandated. I can either use one of the options provided or I will go to my bank in person and close my account. Those are the possibilities. Nothing else.
Passkeys are only one kind of 2FA.
Yes, banks are particularly bad at this because their threat model is strong.
My bank required installing an authenticator, but apparently recently they've allowed SMS based 2FA. It seems users complained/resisted and they had to accommodate them. Maybe you should give feedback to your bank. Be the uncompromising minority.
I think 2FA is fine and a good idea, but I agree with the author that passkeys seem fraught as designed.
Many would actually rather you close their account with them than them making the tiniest compromise or offering any alternative to their SOP at all. That SOP strongly assumes things like “all customers have a mobile phone plan with the big three carriers”, “all customers own property or at least have car insurance” (that’s already their authentication fallback flow!) etc.
I have also faced this issue with banks and their frustrating authentication issues. Not to mention proprietary app requirements.
I'm not looking forward to when passkeys become even more forced upon us and you have to carry around multiple devices by different manufacturers because platform A and B don't support the same devices.
See e.g. https://community.openai.com/t/daybreak-does-not-recognize-t...
me: Can you show me my stuff?
website: HTTP 401, who are you? I understand EasyAuth 1.0, if that is good for you.
me: Sure, here's my EasyAuth 1.0: Hi <website>, I'm <user_id>. The time is <timestamp>. Signed, <digital_signature>.
So no one implements it for site-local login. Even the biggest sites like Amazon, for example, still use old-school passwords+2FA.
The way secure auth works for small sites is that a third party[1] authenticates you, who the website trusts more than mere users. And that's where all the complexity comes up. You need something secure stored on your known-secure device, a password alone won't do.
[1] In practice Google or Meta. Occasionally Apple or Microsoft. Everyone else is noise.
I guess I am envisioning the user agent doing all of this. You go to a site and create click account, your browser shows a pop-up: "<website> is asking you create an EasyAuth account. Would you like to create an account on this site?" If you click yes, then the user agent does this in the background:
website: Sure you can have an account. Use this token <token> once and this ID <user_id> forever.
me: Ok, here's your token <token> for ID <user_id> and my public key is <public_key>. Signed, <digital_signature> to prove it works on my end.
Maybe generating a unique public key for each website is not substantially better than generating a password, but at least a signature cannot get stolen on the server side or in transit. You wouldn't have to change your public key if their database got slurped.
Passwords also aren't standardized, so they are pain to generate (special characters required or disallowed?). They don't reliably autofill into a website. You still have to go through a manual flow to login; user-agent doesn't just keep you logged in. I guess I would be fine if the user-agent knew how to authenticate me to every website.
Maybe this is what the passkey system was before it got designed-by-committee'd into oblivion. I am just always amazed by how complex authentication is when the user-agent should be able to handle this rather painlessly.
That's literally what a passkey is, that the linked article argues against. It relies on the platform vendor of your device hardware to validate the full stack of software. You can't just do it in a browser because anything that reads the browsers data (or attaches a debugger, or runs the browser in an instrumented VM, etc...) can exfiltrate the key.
While that is an option, I've been using passkeys on Amazon since 2023.
If you use webauthn, you're already using passkeys.
2. The complexity in the standard is there to ensure things are done securely (think: not doing password checking via comparison loop).
3. The unnecessarily complexity in individual implementations in websites and passkey stores is due to general baseline corporate "incompetence".
A good description of the design principles behind passkeys, actually.
> They can use passkeys to prevent you from running unapproved software.
Nope, that's attestation in general; passkeys are not required for that. Passkeys have nothing to do with secure boot, for example. Which version of manifest and adblock chrome/edge supports also has nothing to do with their passkey support. Nor does the possible mandatory age-verification flag we might soon get built into our phones: it'll definitely use some kind of crypto but that can still be one in other ways than with passkeys.
Passkeys are a kludge for many reasons, but let's be careful with our terminology.
The expression was wrong, but the real meaning was described further in the post. The author meant that sites with passkeys can render unapproved software useless, in contrast to TOTP where any client is compatible.
Attestations were added so that highly specific domains where attestation is required (by law, a regulator etc.) can still use the same passkey spec as everyone else without having to invent their own thing.
If there was benefit to BigTech of locking in Auth to a specific device, they'd have done it long ago - it's not difficult.
Lots of places where you might have specific requirements about your authenticating users. E.g. to achieve FIPS compliance, or if your user population is low-single-digits because it's critical national infrastructure.
> I want them to all have to invent their own, so that most of them will make mistakes that let the attestation be bypassed and freedom be restored.
I most definitely do not want operators of CNI to be "inventing their own" that can trivially allow compromise or weakness. "User freedom" is not the prevailing value in a lot of authentication contexts.
https://cphpost.dk/2026-10-10/news/round-up/123456-password-...
I have sign up a few for "get a feel" of what is going on.
but the implementation outside a few flagship website just sucks. It is infested with the "design by committee" disease -- too many options, almost impossible to implement correctly.
And conversely, there are also many ways to make legacy password based auth break password managers and annoy users even though there’s no specification for that at all.
> In fact there are many different things called “passkeys” and the FIDO Alliance has intentionally named all of them the same thing. I believe this was done in order to deliberately confuse users and encourage them not to look too closely at the fine text.
This is just completely unsubstantiated conspiracy.I don't trust using anything else that I can't backup myself, remote attestation is trash.
Which is code for "Facebook suggested a passkey so I could log in with my fingerprint"
Tech illiteracy 1-0 Big tech
Look at "the war on general-purpose computing" for a good perspective.
Strong password + MFA is still the way.
But, instead, we end up with 1 passkey per device (potentially per web browser) per website -- and some websites do not allow any other kind of auth. If you lose that phone, or wipe it, move on, or it is compromised, now you can't login to your account anymore?
There is literally no reason for all of this nonsense.
Websites should be providing a challenge, your device should produce a tweaked key based on the domain, sign the challenge, and that should be it. You have one root key per device.
A standard API to register new passkeys for new devices.
Require two factors Password + passkey, or two passkeys.
No transferring private keys between devices.
Requiring 2 factors per website per user, potentially per device, is far more complexity than most people are capable of dealing with.
And I really do not like that my phone# and email# are now de-facto second factors on everything.
Especially this line: "I believe this was done in order to deliberately confuse users and encourage them not to look too closely at the fine text." Don't attribute to malevolence what you can attribute to incompetence
A lot of people have said there are pros and cons to any authentication method. Pass keys have drawbacks but they also for a lot of advantages.
TOTP has a fatal flaw: it relies on the human to not paste the number into a phishing website. You can do a lot of bank transfers or whatever, in seconds, with a valid session derived from a phished TOTP.
Characterizing it as a sticky note on the desk is extremely dishonest.
I stopped reading after that. Obviously this guy doesn’t know what he is talking about or why that sms and otp are just worthless more or less if you care about security. They are actually loopholes in security. If you can use passkeys you would want to make sure that your stupid service provider(I.e Google, bank etc) is not being stupid to fallback to otp or sms crap.
Second, I think the article is really silly. If they are concerned that eventually service providers might restrict passkey authentication to authorized passkey providers, what prevents them from disabling password/TOTP authentication? That’s just silly. I’ll use passkeys while they are convenient. If service providers start disallowing my passkey provider, I’ll either switch to password/TOTP if that’s possible or just stop using the service whatsoever. What’s the big deal?
If they will be popular, and made inconvenient, you could be forced to use them. Like 2FA in corporate environments; it's forced and you can't do anything else than to put a code every time you login somewhere.
https://news.ycombinator.com/item?id=49753211
I don't like passkeys (hawksley.dev)
853 points by ethanhawksley 23 days ago | 832 comments
If you write a long article about the merit of passkeys and there is no occurrence of the string "phish" in your article, I am afraid I cannot take your rant seriously.
Again, this stuff is not merely theoretical. YubiKeys have been a thing at Google and other major tech companies for almost two decades now and the effects are well-studied.
[1]: I have found for some weird reason, this is often overlooked and misunderstood in the industry. People even know about SIM swaps and stuff like that, but don't realize OTP is not phishing-proof.
Yubikeys are a great second factor honestly. But do you want to use a Yubikey as a passkey? Sorry you are likely dissatisfied. Many websites and apps (especially apps) support passkeys but would prohibit using your Yubikey as a passkey.
Bullshit. Literally number one attack vector.
> Password managers are also checking the domain before supplying a saved password.
Password managers are not anywhere as ubiquitously used as you'd think. Even if you rely on password managers, you encounter scenarios where the website relies on a different domain that's not paired appropriately. Some "legitimate" mofos like Plaid used to ask password for third party website. Consumers don't see a password manager failure to fill out a password as a security issue. They see it as a routine password manager failure.
That’s an out-of-date view. The number one attack vector these days is cookie stealing. The prevalence of 2FA even weak ones like SMS-based 2FA has made plain old phishing so much less effective.
What you may be confusing with is the number of incidents involving token theft, which is often facilitated by phishing.
YubiKeys have been a thing at Google and other major tech companies for almost two decades now and the effects are well-studied.
My experience is that yubikeys have a tendency to get lost, get cleared, get mixed up (which of my 4 identical yubikeys has the right passkey?), stop working reliably from random USB issues, etc. And worse, yubikeys are awful to use. Like am I seriously supposed to take off my phone case every time I want to plug in a yubikey to the USB-C port (which may or may not be working depending on whether moisture has condensed in the port) so I can use the one mobile browser that supports them to retrieve a passkey every time I want to log in?No, fuck that. Just let me use an SSH cert at that point. The existence of phishing is a comparatively minor evil.
Sharing and phishing are on two different axes. You can have shareable credentials that are phishing-resistant when used.
You can have hardware-backed SSH keys that are not cloneable. You would need the browser to prevent phishing while still using SSH agent as its underlying signature mechanism (implied by my "in a consumer package").
Epic for example has at least 3 different ways to load the pass key e.g. username first, passkey first, username + password, then passkey. Luckily their app lets you in with Passkeys alone
Walmart prompts for username first, then passkey, then it sends you a verification code to your email address.
The issue is that every site has a random flow of username, password, oauth (then a few oauth screens), passkey, 2fa and so on.
Authentication has become absurd. None of this is making people safer. If sites are seeing less fraud reports, it's likely they are harder to detect rather than less frequent.
I still really like fido U2F. They are (relatively) obvious; they are (relatively) open - there are many third parties that support it; they can be done shareable (I know Trezor - which is mainly a crypto wallet - can be used as U2F with the same "seed" that you can share); it's much more simple to grasp. They also solve the phishing issue effectively.
I can't really grasp what Passkeys are.
Various dimensions (copyable vs non-copyable, transferable vs. non-transferable, hardware bound vs. software only, attestation vs. non-attestation) are presented as if they all exist as distinct specification or implementation properties, yet at least half of these don't, at a first glance.
"User-Present vs Non-User-Present passkeys [...] Both kinds exist.": Nope, all WebAuthN credentials require user presence verification:
> requireUserPresence
> The constant Boolean value true. It is included here as a pseudo-parameter to simplify applying this abstract authenticator model to implementations that may wish to make a test of user presence optional although WebAuthn does not.
"Transferable vs Non-Transferable passkeys [...] Both kinds exist.": There's no such property in WebAuthN or FIDO. Passkey implementations may or may not implement the optional password manager migration flow, but the website has nothing to do with that.
"Hardware-Backed vs Software-Backed passkeys [...] Both kinds exist.": Also no, or rather, this point is redundant with "Attested vs Non-Attested passkeys": A non-attested passkey can tell you what it wants about being hardware backed, so they're effectively the same property. The same applies to "Copyable vs Non-Copyable passkeys [...] Both kinds exist."
So let's unpack this statement:
"This means Twitter (formally X) can say to you, “sorry, we only accept the User-Present User-Verified Non-Copyable Hardware-Backed varieties of passkey here."
User-present: redundant, as all passkeys are.
User-verified: This part is true. Sites can choose to demand this, make it optional, or discourage it. Quite reasonable, given that the optimal value probably depends on whether there's also a password being entered, i.e. whether the passkey is supposed to be a single factor (possession of/access to some device) or two factors (being able to authenticate to that device biometrically or using a knowledge factor, usually).
Non-copyable/hardware-backed: Realistically, a site won't be able to make you use attestation, as that would mean excluding the by far most popular implementations in the wild, i.e. Android and iOS's native solutions. By extension, they can't enforce anything about copyability either (or to be precise, nothing they can't already with user agent sniffing and device fingerprinting).
So what's left? Websites can effectively decide whether to require/use passkeys for two factor or single factor authentication. Doesn't sound as scary to me anymore.
All in all, the article makes a few valid points, but arrives at them via heavy handwaving and a lot of motivated reasoning to back it up. This article could have been 70% shorter and would have probably made a stronger or at least equally strong and more accurate point. Generally, I really do agree that there are many possibilities for user-hostile traps in WebAuthN, but if we want to successfully navigate them, critics need to step up their epistemology. The specs are really byzantine and confusing enough.
So TOTP only targets the situation that user account is compromised. It doesn't help you if the server gets compromised.
Yes, they have some window dressing and opt-in features that extend the basic concept of asymmetric key pairs. Attestation is only in the spec to appease some large enterprise users for very specific scenarios. Signature counters are in there too, but since Apple decided not to implement (which I’m fine with), they are essentially irrelevant in the general case.
In practice, Passkeys are really quite simple.
We can do this, people. We can move beyond the era where poorly protected password databases are handed around like candy.
This is less secure than pure username+password in principle because it gives an impression of greater security while actually delivering the important secret in plaintext. This can cause platforms to enable the higher trust features, or have additional confidence that someone is not an attacker, even when either one would be highly inappropriate.
TOTP does not have this problem since the secret is enrolled once by the account owner and then never communicated again, especially never helpfully to an attacker right when they need it.
> One use case is particularly intriguing to me. In principle, remote attestation can also be run in reverse, to verify that the server you connect to is not doing anything you don’t want it to be doing (such as stealing your credit card number, or keeping backups of the posts you delete). Sadly, to my knowledge, no major platform has ever implemented “reverse” remote attestation this way.
This is only possible if you've audited the code in order to approve it. In practice, this requires auditing the entire SBOM, manually, yourself, for every single platform release. Or deferring to someone else to do it. I expect this will never happen.
lol. lmao even
Once, I lost the master password of my password manager and the email to reset that master password was sent to my email inbox which required a password which was stored in my password manager which I was trying to regain access to... Catch 22... In the end, I got lucky that I didn't trust the entire security model and I had written down the password for my email on a sticky note on my desk!
The reason I lost the master password is because my company made me change the password every few months and didn't let me reuse old passwords and forced me to use a specific sequence of special characters. Eventually I couldn't remember which of the last 10 passwords I used was the latest one and which special characters were not allowed for which environment.
Especially if you have devices from different vendors, such as an Android phone and a Mac computer.
I think passkeys are just an additional form of vendor lock-in.
Use proper password managers, like keepassxc. Then you have control. But problem is that not all sites support that. If you can't use the above - then yes, passkeys are bad, especially if they become mandatory.
- Never underestimate the effectiveness of school yard persuasion.
> What’s important to know is that unlike with any other kind of login credential, you do not have ultimate control over your passkeys
Passkeys are _by_ _design_ representable as clear-text strings. You can export them and sync between devices. I'm using BitWarden with a self-hosted Vaultwarden for the server-side to do that, for example.
That's not the intention of the relevant standards.[1]
[1] https://github.com/keepassxreboot/keepassxc/issues/10407
Sigh. IT LITERALLY IS.
The name "passkeys" itself means "exportable keys":
https://fidoalliance.org/passkeys/
> When a user creates a passkey on any of their devices, it gets synced to all the user’s other devices using the same passkey provider that is also signed into the same user’s account. Thus, passkeys created on one device become available on all devices. > Notably, if the user gets a new device and sets it up with their passkey provider, the user’s passkeys are synced and available for sign-in on the new device.
The resident keys (the ones created by platform-specific TPMs) are not passkeys. And they had been standardized _before_ the passkeys.
> The name "passkeys" itself means "exportable keys":
> https://fidoalliance.org/passkeys/
This does not follow from my understanding of the word, and the words 'export' and 'exportable' don't appear on the page you've linked. Nor did I see anything indicating that was a core part of their design from a cursory reading of the page, although I might have missed something. Your quote certainly doesn't imply 'exportable'.
Syncable? Yes. Exportable? Yes. Clear text? Sure, behind the scenes. Exportable as clear text? Yes, but not intended. To quote Tim Cappalli, who's credited on the W3C spec as an editor[1] and maintains passkeys.dev,[2] so presumably knows what he's talking about: "Passkeys should never be allowed to be exported in clear text."[3]
[1] https://www.w3.org/TR/webauthn/
[2] https://passkeys.dev/about/
[3] https://github.com/keepassxreboot/keepassxc/issues/10407
I literally provided a citation.
> Syncable? Yes. Exportable? Yes. Clear text? Sure, behind the scenes. Exportable as clear text? Yes, but not intended.
A syncable credential is by necessity representable in clear text at some point. In comparison, resident WebAuthn private keys NEVER leave the secure device.
> [1] https://www.w3.org/TR/webauthn/
WebAuthn is a _superset_ of Passkeys. Here's the citation from your own linked page:
> This use case illustrates how a consumer-centric Relying Party can leverage the authenticator built-in to a user’s devices to provide phishing-resistant sign in using multi-device credentials (commonly referred to as synced passkeys). ... > A backup eligible public key credential source is referred to as a multi-device credential whereas one that is not backup eligible is referred to as a single-device credential. See also § 6.1.3 Credential Backup State.
That I said does not support your statement.
> A syncable credential is by necessity representable in clear text at some point.
I never said this was wrong.
> WebAuthn is a _superset_ of Passkeys
I don't see how your quote illustrates this, and I've only heard them referred to as the same thing. Would you care to elaborate? And maybe provide an example?
> multi-device credentials (commonly referred to as synced passkeys).
> A backup eligible public key credential source is referred to as a multi-device credential whereas one that is not backup eligible is referred to as a single-device credential.
The previous name for single-device credentials was "resident keys".
So yes, providing a way to export and back up the Passkeys was _literally_ the intention of the WebAuthn authors from the beginning. The ability to export and sync passkeys was not a temporary accident, it has always been intended functionality.
None of us had a say in our existence itself. Skin color. If we cannot have a say over our provenance itself "ultimate control" is just an empty phrase.
Their concerns about big corp might hold some meager merit but "beware the avarice of rich people who view you as a sheep in their flock whether you want it or not" isn't really new.
The point is very simple - there was once a day when we had considerably more control over the way we use computers and the networks that connect them. That is slowly being taken away, piece by piece, until the only path to use them is to 'consent' to whatever demands the corporations put up. Not that this doesn't exist already, but today will seem like the wild west in comparison to what's coming.
"Big tech is coercive and evil" isn't a new view, but "passkeys are one of their tools and not just some agnostic technology-first nerd solution" is still not widely known.
And our agreement doesn't stop there. No views I encounter anymore at my near ripe old age of 50 are new anymore
Social conservatism whittles viable value statements down to a finite subset of cause-effect. And I don't mean just flag waving holy book social conservatism. This community is clinging hard to social tropes the other 8 billion are moving on from
Run a trend analysis on the comments of HN going back decades whole lot of repetitive gab about state management in a machine; chef or bash or llms... same old ground truth; don't speak too far outside the experience of readers or the inherent short term prediction engine in their brain will segfault from a biological memory overflow
Religious people are not the only ones who live in rhetorical fantasy
End of day the provenance of any socialized idea is some rando I have no obligation to march in lockstep with; physically or philosophically
(() => {
// Sites check `window.PublicKeyCredential` to decide whether to offer passkeys.
try { delete window.PublicKeyCredential; } catch (e) {}
// Block passkey requests from sites that skip the check. Password/federated credentials still work.
const creds = navigator.credentials;
if (!creds) return;
const refuse = () => Promise.reject(new DOMException("Passkeys are disabled.", "NotAllowedError"));
const origGet = creds.get.bind(creds);
const origCreate = creds.create.bind(creds);
creds.get = (opts) => (opts && opts.publicKey ? refuse() : origGet(opts));
creds.create = (opts) => (opts && opts.publicKey ? refuse() : origCreate(opts));
})(); > Intended audience: non-technical citizens of the web
Not everyone is a hacker privacy type, and passkeys are still considerably easier than TOTP codes.This article goes down a slippery slope and comes to a conclusion I think is pretty unsubstantiated and dramatic. Passkeys are not a trap.