Can you even "own" a passkey? Mon Sep 07 2026 You can really only own a passkey if the private key can't be exported. But hey, the EU's Digital Market's Act and syncable passkeys ensure none are ownable. -------------------------------------------------------------------------------- Can you even "own" a passkey? ============================= Published Today - 12 min read Passkeys [L1] are finally mainstream and the specs for passkeys and WebAuthn Level 3 (the latest version) just reached Recommendation status at the W3C [L2]. Yet education on passkey's security properties, proper implementation, and how they work has not reached a ubiquitous threshold in the software development community. A question I recently answered in a chat started with: > Seeing lots of passkey being pushed by various services. Is there a reasonable > way to “own it”? Is it still very bad at a full loss recovery? Extension based passkeys generally have a way to export them. Whether it is in a format that can be imported to the same service or another is an active area of standardization and adoption [L3]. [L4] /---------------------------------------------------------[jacobi: point-right]\ | Check out | | | | * FIDO Alliance's CXF Specifications page [L5] | | * Credential Exchange Format Proposed Standard [L6] | | * Credential Exchange Format Errata [L7] | \------------------------------------------------------------------------------/ Platform synced passkeys can be exported too — at least if you're on Apple Passwords [L8] or Google's Password Manager [L9]. Windows Hello [L10] is device bound and the Microsoft Password Manager has no published export method documented at this time [L11] and they instead do all passkey assertion operations in the cloud with confidential compute [L12]. Google uses confidential compute too [L13] for passkey assertions through Chrome outside of Android and iOS. /[cendyne: iphone]-------------------------------------------------------------\ | This is likely due to the European Union's Digital Markets Act enforcement | | targeting smartphone interoperability [L4] where Apple often gets slapped | | for non-compliance and Google follows. | \------------------------------------------------------------------------------/ /[cendyne: flip-phone-vibes]---------------------------------------------------\ | There was a time when Microsoft had a Windows Phone, but thanks to Google | | breaking and denying any interoperability with societal infrastructure like | | YouTube, we have less platforms now to compete or support in this world. | | | | Without an active mobile operating system, Microsoft hasn't been compelled | | to offer passkey interoperability. | \------------------------------------------------------------------------------/ Every passkey has its own private key. You won't find a competent authenticator (device, platform, cloud, or virtual) using the same private key across origins [L14] or user handles [L15] — consequently, the public key cannot be correlated across origins or user handles. If one passkey is removed, the rest are intact. If one and only one is exported, the rest are not. Good consumer Relying Parties [L16] will let you register multiple passkeys and allow any of them to be used while authenticating, and should not follow up by asking for a TOTP like Amazon. I did use my fingerprint or PIN after all. /[cendyne: super-sayan]--------------------------------------------------------\ | Meanwhile OneLogin (an enterprise identity provider) thinks WebAuthn | | (including passkeys) should be accessed like "which OTP token provider are | | you using today?" in a dropdown. | \------------------------------------------------------------------------------/ /[cendyne: you-are-the-entire-circus]------------------------------------------\ | Passkeys have not been competently implemented across consumer and | | enterprise applications… maybe some day people will care more. | \------------------------------------------------------------------------------/ /------------------------------------------------------------[jacobi: surprise]\ | While platforms and device bound passkeys do user verification with a PIN or | | biometrics or even system password, virtual authenticators through | | extensions like LastPass report user verified without actually verifying the | | user. This is why we can't have nice things. | \------------------------------------------------------------------------------/ Whether you have the meticulous nature to add multiple passkeys stored across different platforms and devices to every account you create is a challenge that most will not try. /[cendyne: shiny-pokemon-card-lugia]-------------------------------------------\ | I highly recommend creating multiple passkeys for your "root" accounts that | | have access to just-about-everything-else through account recovery. If | | Amazon thinks you are your gmail account, then have redundant access to your | | gmail through several passkeys and recovery codes. | \------------------------------------------------------------------------------/ Suppose you're on computer that doesn't belong to you. Normally you might transcribe the password from your password manager (or from memory) into the other computer. What if there are only passkeys, are you short on luck? Thankfully not if the computer has Bluetooth LE and public internet access. With hybrid authentication [L17] your phone can authenticate you securely on that other computer through a cloud assisted communication channel established over a QR code and a BLE advertisement [L18]. /-----------------------------------------------------------[cordite: thinking]\ | Whose cloud? | \------------------------------------------------------------------------------/ /[cendyne: phone-in-bed-scrolling]---------------------------------------------\ | Got an iPhone? It's Apple's cloud. Got one with Android that has access to | | Google Play Services? Then Google's. | \------------------------------------------------------------------------------/ /[cendyne: my-tummy-hurts]-----------------------------------------------------\ | The specification only has these two options [L19]. You cannot own or self- | | host the hybrid authentication experience. | \------------------------------------------------------------------------------/ /-------------------------------------------------------[jacobi: anime-glasses]\ | Actually, the spec has a way if you keep reading. If you buy a domain name | | like `qz2ekwmnd332c.info` (owned by the HID Global Corporation), you could | | implement your own hybrid authentication using a 16 bit integer that hashes | | into this domain, in this case `0x0100`. I also see that `0xffff` has been | | bought too. | \------------------------------------------------------------------------------/ While it is unreasonable to own and operate your own hybrid authentication infrastructure, or develop your own authenticator using a chip like the NXP EdgeLock® SE050 [L20] — /-----------------------------------------------------------------[jacobi: nah]\ | Focus on the scope a normal person would expect on owning a passkey. | \------------------------------------------------------------------------------/ /[cendyne: cough-cough]--------------------------------------------------------\ | Sure… | \------------------------------------------------------------------------------/ Can you "own" a password? What happens when you give your password in the clear to someone else, including the person or thing that will let you in? What happens when it exists tangibly outside of your head in a note pad? You can own the notepad, but someone else can find it and copy it out. Passwords are serializable [L21]. They are necessarily transcribed, copied, and shared physically or over the network — whether over an encrypted channel or in the clear. Without meaning to, they can be reused across contexts too. The password to your bank shouldn't be the same as your Facebook password, yet reality shows people do that. This makes them weak. And I'd argue, this makes passwords impossible to "own." Once possibly known by a third party, it should be rotated. Because passwords can't be owned, they must be disposable. Passkeys rely on public key cryptography. You don't share your private key to authenticate yourself to another party. But, like the notepad of passwords, you can own the thing the private key is on. Yet the moment the private key is exported, we run into the same thing. It's like a mathematical constant. The moment it is serializable, isn't bound to one single physical thing, it can't be owned anymore. [I1: The Free Speech Flag] /----------------------------------------------------------[jacobi: conspiracy]\ | Read more on the Free Speech flag [L22] and Illegal numbers [L23] on | | Wikipedia. | | | | Also, a private key is a mathematical constant. | \------------------------------------------------------------------------------/ Assuming that timing analysis, power analysis, voltage glitching, cryptographic or protocol flaws, and any other way of coercing an otherwise secure device to reveal its private key, you could "own" a passkey if its private key cannot be exported. /------------------------------------------------------------[jacobi: thinking]\ | In other words, the argument states: if you had a magic box that can't be | | opened or copied and it had unguessable number inside, that you also own the | | number in the box. | | | | In cryptography, we often rely on the probability that selecting a magic | | number from a sufficiently large set is negligible [L24] to assume a | | cryptographic construction is secure. | \------------------------------------------------------------------------------/ Like passwords, we rotate private keys as soon as possible when there is a risk of it being known by a second or third party. /[cendyne: good-luck-im-behind-7-proxies]--------------------------------------\ | Sometimes, just to be safe, our servers rotate their private keys on a | | schedule. | \------------------------------------------------------------------------------/ /------------------------------------------------------------[jacobi: teaching]\ | When Certbot [L25] grabs a new Let's Encrypt [L25] certificate, it mints a | | new private key for each certificate request. This works fine for HTTPS, it | | might not for other protocols. [L25] | \------------------------------------------------------------------------------/ /[cendyne: jazz-music-stops]---------------------------------------------------\ | While servers may do that, to address their risk profile, passkeys shouldn't | | be rotated on an arbitrary schedule — only in response to a risk in regards | | to the holder of the private keys, the password manager. | \------------------------------------------------------------------------------/ Sometimes passwords are forgotten and passkeys are lost. Most consumer sites let you recover from credential loss using less secure channels like SMS OTP or a magic link over email. Others may have a lockout period with scheduled alarms to undo the pending reset or afterwards to prevent account hijacking. These recovery mechanisms are necessary for the fallible human. While they don't invalidate the security a passkey offers, they do mean that theoretically owning a passkey has less strength than you might assume. At least platforms like Microsoft, Apple, and Google necessarily understand that multiple passkey registration is expected. I recommend setting up a synced platform passkey, a device bound passkey (like a YubiKey with PIN), and if you use a third party provider like 1Password, a passkey there too to your "root" accounts that can recover every other account. By construction, passkey leaks are so unlikely that the only way the common person will get in trouble is if they exported their passkeys and put it on a public pastebin, or downloaded an info stealer that hijacks their browser extensions, or a supply chain attack got into against a password manager's Chrome extension. /[cendyne: im-in-danger]-------------------------------------------------------\ | For the last reason, I personally will not use passkeys from a password | | manager that operates within the browser process or otherwise has its | | storage accessible outside of a robust platform-enforced trust chain. In | | other words, I'll stick with Apple's Passwords and use hybrid authentication | | (with QR codes) where needed. | \------------------------------------------------------------------------------/ The closest you'll get to owning a passkey is a device bound passkey in a hardware token like a YubiKey. That you cannot get the private key out of it is paradoxically the proof of ownership. For most though, passkeys are necessarily disposable, so does "owning" the passkey really matter? No. -------------------------------------------------------------------------------- [L1]: https://fidoalliance.org/passkeys/ [L2]: https://www.w3.org/TR/2026/REC-webauthn-3-20260825/ [L3]: https://bitwarden.com/blog/security-vendors-join-forces-to-make-passkeys- more-portable-for-everyone/ [L4]: https://digital-markets-act.ec.europa.eu/factsheet-how-dma-making- smartphones-better-interoperability-and-data-portability-case-studies- 2026-05-11_en [L5]: https://fidoalliance.org/download-credential-exchange-specifications/ [L6]: https://fidoalliance.org/specs/cx/cxf-v1.0-ps-20250814.html [L7]: https://fidoalliance.org/specs/cx/cxf-v1.0-errata-20260309.html [L8]: https://support.apple.com/guide/iphone/export-passwords-iphf28f2e93e/ios [L9]: https://support.google.com/chrome/answer/13068232 [L10]: https://www.microsoft.com/en-us/windows/tips/windows-hello [L11]: https://support.microsoft.com/en-us/accounts-billing/security/manage-your -saved-passkeys [L12]: https://blogs.windows.com/msedgedev/2026/04/22/engineering-secure-passkey -sync-in-microsoft-password-manager/ [L13]: https://unit42.paloaltonetworks.com/passwordless-authentication/ [L14]: https://www.w3.org/TR/2011/WD-html5-20110525/origin-0.html [L15]: https://developers.yubico.com/WebAuthn/WebAuthn_Developer_Guide/User_ Handle.html [L16]: https://en.wikipedia.org/wiki/Relying_party [L17]: https://www.corbado.com/blog/webauthn-passkey-qr-code [L18]: https://docs.silabs.com/bluetooth/6.2.0/bluetooth-fundamentals- advertising-scanning/advertising-data-basics [L19]: https://fidoalliance.org/specs/fido-v2.3-ps-20260226/fido-client-to- authenticator-protocol-v2.3-ps-20260226.html#hybrid-websocket-channel [L20]: https://www.nxp.com/pages/edgelock-se050-plug-and-trust-secure-element- family-enhanced-iot-security-with-high-flexibility:SE050 [L21]: https://en.wikipedia.org/wiki/Serialization [L22]: https://en.wikipedia.org/wiki/Free_Speech_Flag [L23]: https://en.wikipedia.org/wiki/Illegal_number [L24]: https://en.wikipedia.org/wiki/Negligible_function#Use_in_cryptography [L25]: https://certbot.eff.org/ [I1]: https://c.cdyn.dev/uXM_9RZP