Passkeys are built on the FIDO2 standard (CTAP2 + WebAuthn standards). They remove the shared secret, stop phishing at the source, and make credential-stuffing useless.
But adoption is still low, and interoperability between Apple, Google, and Microsoft isn’t seamless.
I broke down how passkeys work, their strengths, and what’s still missing



This only applies though if it’s a per-device passkey that uses a private key stored securely that cannot be exported.
If the private key can be exported, it can be stolen and the factors becomes invalid.
But people also store their private key in cloud solutions (some here mentioned doing that) which just makes the factor invalid anyway, since then it’s not device-bound anymore, and it’s the device that verifies your identity with those methods.
Like, what if someone hacks the cloud service storing the passkeys and steals them? Not really any different from storing passwords in a cloud, and that one isn’t called 2FA either.
The article is only referring to per device keys and passkeys that lock them on that device. In other words, someone would need to be able to get your device’s key, decrypt it or brute your passkey, spoof or steal your device somehow, and send the key under it’s identity. I’m sorry, but I don’t think the few people that could do that would be wasting their time to do it to little old you. For most people, their insignificance is the best security they have.
Isn’t this optional? I use passkeys and have yet to be asked for anything else in addition to it.
The passkey is only passed on with an unlocked device. So, if someone stole your passkey device, they can’t copy it and use it without unlocking.
I’ve only ever seen passkeys used as 2FA, personally.
Really? If I open github (for example) and select passkey login, I just need to press ok using Bitwarden.
Amazon always asked for 2fa and then the passkey pops up but doesn’t actually do anything other then tell me I have it enabled