Don't use passkeys for encrypting user data

(blog.timcappalli.me)

120 points | by zdw 5 hours ago ago

62 comments

  • arjie 4 hours ago

    Passkeys have way too many footguns for me. If I use my phone to sign in I'm going to accidentally create a passkey there on iOS embedded webview. When I use Google Chrome, the website won't give me any information for me to find where I stored the passkey. Was it in iOS keyring? Chrome? My Bitwarden? If I had any discipline around this it would make sense but if I accidentally double tap on the screen I've got a passkey and it's stuck on my phone.

    I'm sure it's of use to many people but it's been no end of pain for me and it has really signaled to me what it's like to grow into an old man unable to use computers when I was once a young man who would find this easy.

    • cedws 5 minutes ago

      There’s another foot gun I wrote about recently:

      https://cedwards.xyz/passkeys-are-not-2fa/

    • weird-eye-issue 3 hours ago

      Embedded webviews are the stupidest thing ever. Yesterday I got halfway through a checkout process, had to go back to another app to check something, and then the webview simply disappeared so I didn't bother finishing the checkout. This was on Android

      Usually I open it in Chrome but for some reason I didn't realize it was a webview this time

    • madduci 43 minutes ago

      For this reason I am avoiding it like a plague. It is an additional way to fingerprint your activity and the scenarios where you migrate your passkeys from a device to another seems not really well "oiled"

    • EnPissant 3 hours ago

      You can just use bitwarden everywhere if you are ok with it in the cloud.

      • mkehrt 2 hours ago

        Tell that to my mom who has created a bunch of passkeys all over the place without knowing what they are. I'm trying to unwind it but it's a mess.

        • goku12 an hour ago

          Passkeys are an antipattern in UX design. You want to make it simple for the users? Great! But stop treating them as too stupid to decide anything on their own. Stop locking them out of the decision loop and doing things behind their back. This is practically the corporate design philosophy of the past two decades. You can see this a lot in smartphone design.

          I keep asking what advantages passkeys offer over TLS self-signed client certificates. I haven't got any answers so far. Perhaps increase the security by encrypting the private key with a password or an external token. This is safe, like SSH and unlike regular passwords, because no secrets are sent to the server. TLS certs and (encrypted) keys are more tangible and easier to manage.

          Perhaps passkeys do offer some advantages over TLS certs. But can't those be added to TLS, rather than rollout an entirely new system? The infuriating part is that this facility exists in browsers. They just let it rot to an extend that it's practically unusable. Meanwhile, Gemini browsers are using it quite successfully (for those who use Gemini).

          • cyberax 28 minutes ago

            Passkeys ARE self-signed certs. You can store their private key on a hardware token, but you don't have to.

            Their only difference is the automated provisioning.

      • arjie 3 hours ago

        I do use Bitwarden everywhere but a couple of times the passkey prompt doesn't show it. I think that's how I got the webview for one of my google accounts stored in iOS keychain.

      • rstat1 3 hours ago

        Doesn't need to be in the cloud for it work everywhere.

        • EnPissant 3 hours ago

          True. You can self-host.

  • akersten 3 hours ago

    > Don't use passkeys

    Better title.

    Mom can't figure out what they are or how to use them. They bind you to your device/iCloud/Gaia account so if it gets stolen/banned you're out of luck (yeah yeah multiple devices and paths to auth and backup codes, none of that matters). It's one further step down the attested hardware software and eyeballs path. Passwords forever, shortcomings be damned.

    • Someone1234 3 hours ago

      Unfortunately some vendors are now REQUIRING passkeys; specific example:

      https://www.healthequity.com

      > As of October 2025, passkey login has been fully rolled out and is now required for members with Health Savings Accounts (HSAs) and Reimbursement Accounts (RAs) who use the HealthEquity Mobile app and web experience.

      https://help.healthequity.com/en/articles/11690915-passkey-f...

      The FAQ is a little misleading by saying WHEN your account has a passkey this and that, but reality is that after October they made them completely mandatory, no bypass, no exceptions. 100% coverage.

      Oh, and by the way, passkeys have been broken on PC/Linux when using Firefox for months:

      > There Was A Problem: We encountered an error contacting the login service. Please try again in a few minutes.

      Neat. You have to use Chrome or Edge.... For months, after making it mandatory...

      • buzer an hour ago

        That's weird, I can login to my HealthEquity account (which contains HSA) without any issues and I don't have passkey setup. I confirmed it just now just in case.

        That article does say "HealthEquity Mobile and web experience" so maybe it's just for customers who use both, I only use web.

    • utopiah an hour ago

      > They bind you to your device

      Isn't it why good practice is to bind at least 2 hardware passkeys and/or have recovery codes?

      Sure someone can steal your phone/laptop/yubikeybio but then you can use the NitroKey you have at home in your drawer to recover your account.

      • pibaker an hour ago

        Biometric keys are still a niche techie thing that the average person probably doesn't even know exist. Most people will be using passkeys exclusively through their phones, often unintentionally. And outside the first world it is not uncommon for people do own no computing devices apart from their phones.

        Backup keys and recovery codes also do not solve all cases of key loss. One thing I worry about is what happens if I am traveling in a foreign country and loses my belongings. In the past if I can convince someone to let me use his computer I can at least log into my email account as long as I remember my password. If everything is passkey then I will be locked out of all my online accounts until I make it back home, assuming that I have actually properly set up the backup device and keys. Humans are not very good at making sure that backups actually work.

      • aeronaut80 an hour ago

        You can’t expect your grandma to go to those lengths. Heck, even most internet-native people probably wouldn’t.

        • utopiah an hour ago

          For a random website, no, for bank and primary email (used for account recovery), they probably should.

          It honestly takes a minute to add a key and it's just that, a physical key.

          IMHO what's risky in terms of UX and habits is precisely that most workflows do not highlight this. So people rightfully are scared of losing that 1 precious key, so they don't activate 2FA because of that. Meanwhile if the UX when they activate 2FA would clarify that they only have 1 key stored, adding a 2nd one or saving codes (most do propose that option for 2FA authenticators but not hardware passkey AFAIK) is what will make them both safe against attacked but also against their own accident (shit happens) then maybe behaviors would change.

          Anyway, yes, you're right, most people don't do that or aren't even aware of it but arguably as more and more important and intimate part of our lives are online, it becomes crucial for one owns sanity to better understand how this all works.

    • jesseendahl 42 minutes ago

      >They bind you to your device/iCloud/Gaia account so if it gets stolen/banned you're out of luck

      This is the biggest myth/misconception I see repeated about passkeys all the time. It's a credential just like your password. If you forget it, you go through a reset flow where a link is sent to your email and you just setup a new one.

      And if it happens to be your Gmail account that you're locked out of, you need to go through the same Google Account Recovery flow regardless of whether you're using a password or a passkey.

    • mgrandl 2 hours ago

      I love passkeys in my selfhosted vaultwarden, but I agree the UX for older people is not quite there.

      • jesseendahl 39 minutes ago

        Passwords are terrible UX for old people in my experience. They try use the same password everywhere, but then password complexity requirements mean they can't use the exact same password everywhere, and then they forget which variant they used on which service, so they just end up going through the reset password flow every time they sign in. I am not convinced that's a better UX than them just using their fingerprint or face to login.

    • pabs3 3 hours ago

      KeepassXC has exportable passkeys, so you can avoid the stolen case at least.

    • afiori an hour ago

      Also a password could be the passkey, the passkey protocol is basically a way to send to a server an authenticated public key. The client could deterministically convert passwords to key-pairs and authenticate with those

  • whyagaintango 33 minutes ago

    It is conundrum that passkeys were designed to help the majority as they are frictionless (like passwordmanagers etc) but fail in reality.

    Even those that have 2 devices they don't have them all the time.

    Another overlooked issue is that some banks etc don't allow for 2 devices as login or 2FA. Even if it allowed one needs to keep the spare device always updated. Either Govt needs to build a common API that one can use directly through google pay or apple pay - so that only one app is needed to be kept up to date.

    to be honest, I wouldn't mind if google/Apple can take all my private data and passkeys hold them - but at least then if I lose the phone - and I show my ID they should allow me to setup my new phone. But that is also not possible. (I am discounting the awful AI bans)

  • johncolanduoni 4 hours ago

    How many people are doing a spring cleaning of unused passkeys in their password managers? We're talking like a kilobyte of data, nobody needs to delete these things in any kind of normal circumstance.

    Sure, it would be great if users would store 5 copies of their encryption keys, with one in a lockbox on the bottom of the ocean. But that's just not going to happen at any kind of scale, so an automatic way of putting encryption keys in a replicated password manager makes sense. And compared to how people normally handle end-to-end encryption keys, it's going to result in a lot less loss data in practice.

    • Glyptodon 2 hours ago

      I don't know about spring cleaning, but it's pretty easy to delete by accident if you connect to the browser or OS when setting up instead of the password manager.

      That said, I've been assuming I could have multiple passkeys per site and that's turning out to not always be something websites behave sanely about.

    • bo1024 2 hours ago

      I thought the point of passkey security is that you don't have to send the private key around, it can stay on your device. Different passkey per device. Lose or destroy a device, delete that passkey and move on.

      • slau 2 hours ago

        That’s how I use them. Passkeys on two Yubikeys. And I tag in my password manager which credentials have what form of auth. UP, TOTP (also stored on the two Yubikeys), Webauthn or passkeys (the former indicating 2FA).

  • dchest 4 hours ago

    Nothing in this post is specific to passkeys; it reads like advice to not encrypt data. There’s no way to prevent some users from losing their encryption key anyway. Whatever warnings you include, even when software doesn't connect to the internet and just encrypts local files, someone will write to support that they forgot their password and ask you to "reset" it.

    Good advice at the end, though.

    • orbital-decay 2 hours ago

      There's a big difference between being kept in the dark and being informed but careless.

    • shepherdjerred 3 hours ago

      The issue I think is that passkey managers don’t make it clear that deleting a passkey can cause permanent data loss

      • pmontra an hour ago

        Because passkey managers have no idea what a service is using its passkey for. They could warn that deleting a passkey could make all sort of bad things happen, but for most services it will be only the loss of access. What the alternative could be? "Before deleting this passkey you must contact this site and ask them what data you will loose. I give you a week. Come back here a week from now and confirm your desire to delete this passkey. I will not make you delete it before that day. See you!"

        • shepherdjerred 32 minutes ago

          yeah I feel like metadata could be attached to the passkey so the manager could surface the info

  • halapro 4 hours ago

    If the user deletes passwords they're shown the same exact message. The only saving grace for passwords is that you can remember them, but are you also suggesting to not use generated passwords?

    • bensyverson 4 hours ago

      I think the distinction is that a passkey is meant to be used for authentication (logging in), and is usually not the only way you can authenticate. If you delete your password, passkey, or 2FA method, you can still go through a "forgot password" flow.

      Encryption is different. If you encrypt data with a generated password and then delete it, you're toast, and passkeys are no different. I think the author is arguing that users may not even realize that the passkey itself is needed to decrypt, possibly because they're so associated with login.

      • dansjots 4 hours ago

        for account-associated encryption, what it should do instead is to generate a dedicated file encryption key for each backup, and encrypt said key with the account's passkeys. Each time the user adds a new passkey, it should save an additional copy of the backup's key encrypted with the new passkey. This way you can have multiple redundant passkeys that can decrypt the backup. This is basically how age's multi-recipient encryption works.

        • johncolanduoni 4 hours ago

          Most of these systems already do this, especially since very few applications have a flat encryption key hierarchy regardless of passkeys. The counterpoint would be that not everyone will set up multiple passkeys unless you require it on sign-up, but you're going to have that problem with any other method of storing end-to-end encryption keys. Might as well piggy-back on the password manager's replication methods.

      • halapro 3 hours ago

        You're just saying that the user needs to be aware that you cannot forget or delete a password, which applies just the same way to passkeys.

        Passkeys are effectively just long passwords you cannot see. The mechanism is just gravy.

        • Borealid 3 hours ago

          I think there is a difference.

          Sites usually have the user SEND their password to the site to authenticate. There is no need for sites to be written that way, but that is how they are written.

          Passkeys cannot, by design, be sent to the site. Instead they use a challenge-response protocol.

    • hrmtst93837 an hour ago

      Generated passwords can be useful, but they come with challenges like management and security. It's better to adopt approaches like password managers or biometrics to enhance usability while maintaining security.

    • bad_username an hour ago

      > you can remember them, but are you also suggesting to not use generated passwords?

      You can remember a strong generated password if it's a pass phrase. Better "rememberability" with the same amount of entropy.

  • dansjots 4 hours ago

    I recently whipped up a bare-bones PWA wrapping Typage[0] into a quick-and-dirty tool to encrypt files individually using passkeys:

    https://news.ycombinator.com/item?id=46895533

    This give much more conscious control to the user knowing that they are explicitly encrypting which file with which passkey. Additionally, you can just download the page and serve it via localhost so that you always have control of the relying party for your passkey.

    [0] https://words.filippo.io/passkey-encryption/

  • sandeepkd 2 hours ago

    Probably everything else is debatable, I do agree with one thing though, the cat is indeed out of the bag. It would have been probably a really good use case if the scope was limited to only hardware based security keys for enterprise users only. Rolling it out for OS platforms, software based authenticators just muddies the water. You cannot even provide any guarantees around it being phishing resistant anymore.

  • SoftTalker 4 hours ago

    This is why I haven't started using passkeys. Managing them is looks complicated and I don't understand the ramifcations of what I'm doing.

    Also a style nit, it's OK to use "he" or "she" pronouns in a contrived narrative. The "they/their" usage really detracted from the clarity of the example.

    • bad_username an hour ago

      The author's concern of "misgendering" an imaginary person (with ab unambiguously female name) is quite odd.

    • kgwxd 4 hours ago

      I don't think I would have even realized why I felt tension reading if you hadn't mentioned this. They/their wasn't confusing at all but, giving the hypothetical user a name was the weird part. I realize now I was expecting some other user to enter the scenario the whole time. Alice and Bob style. When I got to the end, I felt like I missed something. If there's just one, "the user"/"they"/"their" is fine.

  • peterspath 4 hours ago

    I was looking into this to start using this. Because it’s quite user friendly to not let the user worry about all the details that involve encryption of data.

    I guess informing them is a good way to start. Are there any other tips on how this can be improved?

  • kkfx 3 hours ago

    Trezor support FIDO2 tied on the seed phrase, so if you lost it another hardware wallet will works issueless once restored.

    • miladyincontrol an hour ago

      On a similar note mooltipass can export an encrypted backup of passkeys. That said platform should support multiple passkeys so if you lose access to one you arent screwed over.

  • wmf 4 hours ago

    Another way to say this is that you have to have an account recovery process and you need to think about how your encryption interacts with account recovery.

  • hedora 4 hours ago

    100% of the arguments against using passkeys for e2ee data apply to using passkeys as credentials.

    (Unless they are not credentials, and you can loose them then do a password reset via a phishing prone channel like email and SMS. Supporting this eliminates any possible user benefit of passkeys.)

    In addition to the arguments in the article, when used as credentials, they are an obvious trojan horse allowing large websites to completely hijack your operating system.

    Don’t believe me? Try logging into a bank or using rideshare/parking/ev charging with degoogled android. This is where passkeys are taking PCs, and it is their only purpose.

    So, “Don’t use passkeys” would be a better title.

    • inkysigma 4 hours ago

      Passkeys are an open standard? You might as well argue against SSH keys.

      • hedora 4 hours ago

        The standard includes a hardware attestation path.

        That’s the backdoor allowing the eventual takeover of your OS.

        First people use passkeys, and they become standard.

        Then they become required for important accounts for security.

        Then the important accounts require the attestation bit.

        At that point, you cannot run web browsers on open source operating systems.

        This is all boring and predictable. It is exactly what they did with Android, and exactly the same organizations are pushing passkeys.

        Note: If they had good intentions, the operating system would manage any attestation, and not allow websites to query for or require attestation support.

        • johncolanduoni 4 hours ago

          The attestation actually has nothing to do with the browser, only the holder of the passkey's key material. You can satisfy the attestation by having a passkey on your Android device and doing the normal Bluetooth flow with your Firefox browser on your Framework laptop. So this mechanism is totally useless for enacting this plan.

          The operating system doesn't manage attestation because that's totally useless for the stated goal of the attestation system. Enterprises don't want their SaaS vendors to accept passkeys from some random employee's BitWarden, instead of the hardware keys they issued the employee. If the OS manages attestation and doesn't send anything to the relying party, then it doesn't solve anybody's problem at all.

          • hedora 3 hours ago

            It seems like it will only be a matter of time before consumer sites start requiring a patched OS with an attestation bit set in the key.

            Also, as I understand it, sites can whitelist credential hardware.

            If not, then the attestation is security theater. I (or an attacker on your machine), can just make a sw emulator of a hw attestation device, and use that to protect my choice of OS, (and skim your credentials).

            If a whitelist exists, then my “hijack your OS” plan works: Require the builtin macos/windows/signed chrome on signed os password managers. That’s 90% of the market (and dropping) right now.

            • johncolanduoni 2 hours ago

              As I said, the attestation structurally does NOT attest to your OS or your browser that are displaying the website performing the authentication. It attests to the device that holds the passkey's key material, which is usually not your desktop computer.

          • debazel 2 hours ago

            I do not want any business with Apple/Google/Microsoft at all, including owning an Android or iPhone for hardware attestation.

            • jesseendahl 37 minutes ago

              You don't need to use anything from Apple/Google/Microsoft. Passkeys are just WebAuthn which is an open standard.

          • doubled112 3 hours ago

            Does Firefox support the Bluetooth flow on Linux at this time?

            • johncolanduoni 2 hours ago

              That's a matter of implementing an open standard. Google hasn't done anything to prevent open source browsers and OSes from implementing it, and nothing in the spec makes it difficult for Firefox/Linux specifically AFAICT.