4 ms·
I mean the question if private keys should be synced is the fun one to argue about ;-) My thinking is always if you do passkeys for phishing protection or pote
by ffo 2y ago
I mean the question if private keys should be synced is the fun one to argue about ;-)
My thinking is always if you do passkeys for phishing protection or potentially UX improvements then there is no harm syncing keys. (I would argue the security is increased by adding phishing protection over password/2fa)
If you do it for security, then you do not want to sync keys and rely on key storage that do not allow extraction (most secure will be "offline" key stores like YubiKeys).
I guess the latter is more important in enterprise/business scenarios rather than in b2c context.
A little OT but it will also be fun in b2c explaining customers that there keystore is full on the hardware key.
(of the top of my head YubiKey 5 have a limit of about 25 keys)
- bayindirh 2y agoIf passkey is an additional factor, I'm on the same boat with you. You can sync them all the way down. But if it's the only factor, I can't see a difference between password reuse and passkey reuse. If I can recover it in any way, then it's (very) game over. So I'm not mad that you can't sync a passkey if it's the single factor. Because as we don't reuse app passwords for multiple devices or normal passwords for multiple sites, we shouldn't use the same private keys on many devices, allowing a more granular and better approach. Of course this is my view and some people won't agree. I prefer a good multi-layer system, not a single passkey opens the whole world style one.
- ffo 2y agoWhy do you think it is reuse? You will not use the same passkey for multiple application/service. You will generate a passkey per application/service. I will certainly though not disagree on security... if that is your thing then do not sync private keys around, but the tradeoff is always there. If security would be critical, I would favor client certs with smartcards, but browsers do not support that "too well"
- bayindirh 2y agoIf I share the same private key for an account with "n" devices, losing (incl. theft of) that key will lock me out. If I have "n" private keys for an account, I can use another private key and revoke the lost/compromised one. It's that simple. Your secure enclave is not much different electronically from a smart card with a biometric password actually. People think Passkeys as SSH keys on disk, but it's more of a long private key on a single-way secure enclave. This is why people cry "platform lock-in". It's platform lock-in, but it's a secondary effect. It's actually a "proper HSM, but integrated".
- ffo 2y agoYes but the same logic about loosing the secret applies to passwords and any other factors (given we ignore a potential reset process) Providers will most of the time allow to register multiple passkeys or other authentication means, hopefully ;-) which has its own downsides. I am well aware how the internals work of keystores. But the benefit with "client certs" is that on mTLS you get added benefits besides where the key is stored. And that is that you can "prevent" mitm attacks. But I guess that is a subject for another thread.
- formerly_proven 2y agoResident passkeys really are just the 2020-JavaScript version of X.509-based mutual authentication - naturally it's incompatible with anything but the web, sits on a weird level of the stack, and is somehow even less transparent to the user. On the other hand, certificate slots still seem to run approximately a dollar each.
- ffo 2y agoHaha comparison made me giggle.
- p0seidon 2y agoWhen using a passkey as the only factor, it gets complicated, but I think that will be the future: Email and SMS as fallbacks with additional factors like risk-based location checks (or local storage hints) to have a viable recovery mechanism parallel to passkeys. I think Github has a nice approach that we use as a role model: Collect as many fallbacks as possible in a convenient manner. Adding passkeys on any new device and regularly reminding people to check their fallbacks. That's still way more secure than passwords only, where the fallback is practically always a form of email OTP. Also social logins from Google or Apple can act as a fallback as they are (mostly) 2FA.
- bayindirh 2y agoI'm not against using a passkey as a single factor, and having fallbacks. It's reasonable if you can reliably attach that key to a physical device, so the device can't be impersonated. I don't think that we should target MIL-xxx standards for daily use, but my security is comparably important to me as military's missile codes are important to them. So, I don't want my passkey-based services to have a security theater in the name of convenience. There should be some friction to force a baseline security.
- p0seidon 2y agoAgree, but I think in a B2C context, you need convenience first; then security can follow.
- bayindirh 2y agoI think it depends. Banking, primary e-mails, etc. are extremely important systems today, and they should bias towards security. Other platforms where we talk can take a more balanced approach, and more casual sites can lean towards convenience, if you ask me.
- joncrocks 2y agoIndeed, the problem with lots of fallbacks is that they can invalidate user's requests for higher security. Security can sometimes end up being only as strong as the weakest link. Make the fallback too lax and you might as well not bother with 2FA/Passkeys at all.
- WorldMaker 2y agoPerhaps what you are missing is the "middle ground" here because it is an implementation detail of some of the passkey implementations (especially some of the ones meant to be "consumer-resilient": derived keys. Rather than keeping every key for every site in hardware, you might use some secret shared between the hardware keys plus whatever site-specific salt/pepper/hash into some key derivation function (KDF). For those kinds of keys extraction is sort of meaningless: the private keys maybe aren't even stored at rest, they are re-derived as necessary. You can sync the encrypted shared secret and all the site-specific salt/pepper/hashes even to devices that can't decrypt them. (That's how secure but consumer-friendly syncing is built, and that's a part of how recovery pathways get built.) But it isn't useful on its own without the hardware keys that you can't themselves export. You can have syncing with the root keys being exportable/extractable. That's already how many of the consumer solutions are being built. That's part of where the consumer-friendly security is for Passkeys.
- tatersolid 2y agoDeriving per-domain key pairs from a single master secret is what SQRL did, makes perfect sense for most use cases, allows for straightforward paper backup and transport between devices. https://www.grc.com/sqrl/sqrl.htm https://www.grc.com/sqrl/sqrl.htm