Welcome to Incremental Social! Learn more about this project here!
Check out lemmyverse to find more communities to join from here!

Big Tech passkey implementations are a trap | Proton

  • Big Tech has implemented passkeys in a way that locks users into their platforms rather than providing universal security
  • Passkeys were developed to replace passwords for better account security, but their rollout by Apple and Google has limited their potential
  • Proton Pass offers passkeys that are universal, easy to use, and available to everyone for improved online security and privacy.
viralJ ,

Could someone ELI5 (if possible) what passkeys actually are?

callmepk ,
@callmepk@lemmy.world avatar

Basically hardware keys (like YubiKey) without hardware

zewm ,
@zewm@lemmy.world avatar

So…. Software keys…

mp3 ,
@mp3@lemmy.ca avatar

a.k.a password-protected certificates

asmoranomar ,

From my understanding it's the concept of trust. Basic passwords are complete trust that both ends are who they say they are, on a device that is trusted, and passing the password over the wire is sufficient and nobody else tries to violate that trust. Different types of techniques over time have been designed to reduce that level of trust and at a fundamental level, passkeys are zero trust. This means you don't even trust your own device (except during the initial setup) and the passkey you use can only be used on that particular device, by a particular user, with a particular provider, for a particular service, on their particular hardware.....etc. If at any point trust is broken, authentication fails.

Remember, this is ELI5, the whole thing is more complex. It's all about trust. HOW this is done and what to do when it fails is way beyond EIL5. Again, this is from my own understanding, and the analogy of hardware passwords isn't too far off.

geophysicist ,

so it's basically what a SSH key is?
can I not log in to an account from my laptop if I set it up on my phone then? that seems like a massive hassle if it's the case

ShittyBeatlesFCPres ,

You setup passkeys for all your devices with biometric features. I know I have a Yubikey for my desktop, facial recognition on my phone, and a fingerprint reader on my laptop. So, I setup 3 passkeys using biometric (fingerprint or face). I also kept my password and 2FA for now because it’s all new. I wouldn’t recommend jumping in face first.

I only am using it on a few key sites and partly because I’m a web developer testing it all out. I wouldn’t advise it for the average user at the moment but it’ll mature and many password managers can store passkeys now. As it matures, I’m hopeful it becomes seamless like FaceID and fingerprint readers.

Spotlight7573 ,

It basically performs the same function as an SSH key (providing public key authentication), yes.

Your issue with logging in on your phone vs laptop can be solved by either syncing them (like the OS/Browser platforms of Google/Apple/Microsoft or a password manager like Proton Pass/Bitwarden do) or by setting up each device separately (like most people should do with SSH keys). Each method comes with trade-offs: syncing means they aren't device bound and can potentially be stolen, setting it up on each device can be a pain, etc.

The important thing to remember is that passkeys don't need to be the only authentication methods attached to an account. You can use the convenience of a passkey most of the time when it's possible and then fall back to another method (like a password/TOTP pair) when that's not available (such as when setting up a new device). There's also always the standard account recovery options if all else fails, those don't necessarily go away.

The other thing to remember is that it's not trying to be a perfectly secure solution to all authentication everywhere but to replace passwords with something better. Not having to generate and store random passwords with arbitrary complexity requirements, being able to log in with just a tap or a click, and not having anything that needs to be kept secret on the website's side can be enough of an improvement over passwords to make the change worthwhile.

geophysicist ,

If a passkey isn't device bound, what makes different/better than a complex password? Is it just the standardisation that you mention? Enforcing using passkeys becomes exactly the same as enforcing using complex passwords

Spotlight7573 ,

One key benefit regarding hacking: the data that's passed back and forth between the user's browser/app and the website/service is a challenge and a response and is no longer sensitive like a password is and the authentication related data (the public key) that the website stores for a user's account isn't useful to an attacker.

One key benefit regarding phishing: passkeys/WebAuthn credentials incorporate the domain name into part of the authentication and it's enforced by the browser. This means that using a passkey/security key on the wrong site won't give an attacker anything useful unless they also somehow control the DNS and have a valid TLS certificate to impersonate the site with. This is unlike the situation with a phishing website where a user can be tricked by a fake but convincing looking website into giving over not just a password but a one time code provided through SMS or a TOTP.

One key benefit regarding usability: The user just has to choose which account to log into from their password manager instead of having it need to autofill correctly on the website (I still run into sites that don't autofill right). They also don't need to worry about any specific password complexity requirements or changing passwords in response to breaches or password expiration times.

geophysicist ,

this makes a lot of sense, thanks!

asmoranomar , (edited )

Close, but you are still trusting the device you own. If I were to compromise that device, I could capture that key and use it. Again, this is my limited understanding, but a zero trust solution works in such a way that the actual keys are not stored anywhere. During setup, new temporary keys are generated. A keypass binds to the temporary key for use of authentication. The temporary key can be revoked at any time for any reason, whether it's due to a breach or routine policies. It can be as aggressive as it needs, and the implication is that if someone else (either you or an attacker) got issued a new temporary key then the other would not receive it. Using an incorrect temporary key would force an initialization again, using the actual keys that aren't stored anywhere.

The initialization process should be done in a high trust environment, ideally in person with many forms of vetting. But obviously this doesn't take place online, so there is the risk that your device is not trusted. This is why the process falls back on other established processes, like 2FA, biometrics, or using another trusted device. How this is done is up to the organization and not too important.

But don't get too hooked on the nuances of passwords, keys, passkeys,etc. The entire purpose is to limit trust, so that if any part of the process is compromised, there is nothing of value to share.

Disclosure: Worked in military and this seems to be a consumer implementation of public/private key systems using vector set algorithms that generate session keys, but without the specialized hardware. It's obviously different, but has a lot of parallels, the idea in this case is that the hardware binds to the private/public keys and generates temporary session keys to each unique device it communicates with, and all devices can talk with members of it's own vector set. Capturing a session key is useless as it's constantly being updated, and the actual keys are stored on a loading device (which is subsequently destroyed afterwards, ensuring the actual key doesn't exist anywhere and is non recoverable, but that's another thing altogether). My understanding of passkey systems is solely based on this observation, and I have not actually implemented such a solution myself.

Swarfega ,

I guess it's a bit like a bank card with a PIN. You go to pay for something and your card stores your credentials on it. To allow those credentials to be read you need to unlock them using the PIN.

Dark_Arc , (edited )
@Dark_Arc@social.packetloss.gg avatar

Not ELI5 level but...

If you understand SSH keys, it's basically the same thing made more general.

Whatever website (e.g. lemmy.world) has a copy of the public key, they encrypt something with the public key, you decrypt it, reencrypt it with your private key and send it back (where they can then decrypt it and verify what they got back is what they expected). By performing that round trip, you've verified you have the correct key, and the "door opens."

The net effect is you can prove who you are, without actually giving someone the ability to impersonate you. It's authentication via "secret steps only you would know" instead of authentication by a fixed "password" (that anyone who hears it can store and potentially use for their own purposes).

That's all wrapped up in an open protocol anyone can implement and use to provide a variety of (hopefully) user friendly implementations (like the one Proton made) 🙂

obviouspornalt ,

Passkeys sound great. Where's the support for Firefox, Proton Pass? Bitwarden has it.

sugar_in_your_tea ,

Yup, the only missing thing for Bitwarden is the mobile app, but so far none of my apps support it, so whatever.

squirrelwithnut ,

I use BitWarden's mobile app just fine on Android.

sugar_in_your_tea ,

For passkeys? My understanding is that's not implemented yet.

squirrelwithnut ,

Oh, I totally didn't register you were talking about passkeys. lol sorry. I don't use them, so I was just talking about the BW app in general .I haven't run into any compatibility issues with it.

UnfairUtan ,

Any example of websites where I can try passkeys? I have both bitwarden and Proton pass to test out

filcuk ,

Github, Bitwarden itself, Cloudflare, Microsoft

OfficerBribe ,
AnActOfCreation OP ,
@AnActOfCreation@programming.dev avatar

I personally like the demo at https://www.passkeys.io/.

CaptDust ,

I'm very excited for the concept of passkeys, but indeed it is a bit of a mess right now. Android password managers can't use passkey inside other apps, basically limited to just the browser. I hope it all gets sorted soon and everyone sticks to an open standard compatibility.

I want to be able to export my passkeys and take them with me to any other chosen passkey manager.

EngineerGaming ,
@EngineerGaming@feddit.nl avatar

I have hopes for a normal implementation because KeepassXC does have passkeys now.

BeatTakeshi ,
@BeatTakeshi@lemmy.world avatar

Same; I hope the EU does something before it's a total mess

mp3 ,
@mp3@lemmy.ca avatar

The idea of a passkey is that it is a security certificate that permanently bound to the software/hardware and can't be exfiltrated, in the same fashion you'd make one SSH private key per device connecting to a server, never leaving the computer it was generated from. Or how you'd keep your primary PGP keys in a safe location and deploy a unique subkey per device to use it. That way you can revoke an individual subkey if compromised, without revoking the entire chain.

You don't backup your Passkeys, you associate multiple passkeys per account (ie: ProtonPass, Bitwarden, Yubikeys) as a contingency.

If you can back it up, it can be stolen.

CaptDust ,

Hmmm see this is how I thought it worked but then Google and Apple providers are syncing passkeys around devices without issue? There are definitely backups and cloud syncs happening. I'm aiming to use an OS agnostic provider like 1password which I'd expect to sync across hardware- but with everything in its infancy I'm not sure how that shakes out.

But tbh that does bring up another concern of mine: I have some 200+ accounts, assuming a passkey world where everything is using them, if a user wanted to change ecosystems it seems they will need to visit every service, edit the account and reconfigure their keys instead of transferring the private keys into the new ecosystem? Sounds like a nightmare!

Spotlight7573 ,

For the accounts that are highly important, you might want to use only keys that are bound to a device like a computer, phone, or hardware security key. This would require a bit of manual management as you swap out devices and hardware keys but for a limited number of important accounts this should be feasible. For all the other general accounts, storing them in a password manager can continue to be the most convenient way to use them. The Google/Apple/Microsoft solutions take this second approach and allow them to be synced across devices.

As for the portability, it's still relatively early and I don't think there's a standardized format to export passkeys into. It's only a matter of time before things settle down and different password/passkey managers support importing and exporting to at least one format that will work.

mp3 ,
@mp3@lemmy.ca avatar

syncing passkeys around devices without issue?

they are syncing, but under no circumstances it let you see the passkey's private key in a format that you can import elsewhere, which reduce the amount of damage that can be done, but still if an attacker gain access to your Google account and its "password manager" (or any other password managers tbh) it's mostly game over at that point.

Personally I don't have all my passkeys on a physical device, they're mostly stored in my Bitwarden vault for the convenience of multi-device sync, and the important accounts that offers SSO into other services (Google, Facebook, Amazon, Apple, plus Bitwarden) are protected by multiple hardware tokens with a Passkey for redundancies.

Security is as strong as its weakest link.

answersplease77 ,

what are passkeys? like biometrics fngerprints or facisl recognition you mean?

Passerby6497 ,

No, it's like a security certificate to authenticate. It's a secret that your key vault presents to the site to validate that you're who you say you are.

answersplease77 ,

like an encryption key? or cookies?
I'll try to look up how they work

Passerby6497 ,

Exactly like an encryption key. Here's a video from Security Now with Steve Gibson (a well known security researcher) who explained it in a fairly approachable fashion. That link should start at the beginning of that segment, about 1:31:00 in.

EncryptKeeper ,

They’re the private half of a public/private key pair, much like how you make encrypted connections to websites.

The gist of passkeys are that the secret you’re using to login to your accounts is stored on your device (Or in your password manager) and is never sent to or stored on the server. So if a website you have an account on is breached, unlike with a password, your passkey can’t be stolen, because they don’t have it.

Similarly, your passkey can’t be phished. If a malicious actor directed you to a fake login page and you didn’t notice and entered your password into the fake login form, they now have stolen your password. But because your passkey is not sent to the server like a password, the fake login page wouldn’t get anything.

And because your passkey isn’t something you have to remember, you can’t create an insecure one like with a password, and you can’t reuse the same one for different accounts.

MIDItheKID ,

I can wrap my head around the secret being stored in your device, but what happens when you go to a different device?

Let's say for example, I am at my friend's house, and for one reason or another, I don't have my phone. My Gmail account is passkey locked, but I need to check my email from my friend's laptop. Would that require that I install passkey on their laptop, and log in to my passkey account? Does that also mean that if I forget to log out of passkey, they can access all of my accounts correlated with my passkey account? If that's the case, what happens if my passkey account is compromised? All of my accounts are linked to a single point of failure?

A friend of mine had to break out some kind of USB dongle to log into his Google account on a new machine the other day. Is that a form of passkey? What happens if that dongle gets lost/stolen/broken? Or what if you just forgot it at home? Are you SOL?

I am all for more security and less password remembering, but I hop around a lot of computers.

EncryptKeeper ,

account is passkey locked, but I need to check my email from my friend's laptop. Would that require that I install passkey on their laptop

Yes but you would not want to do that. I can’t imagine a scenario where you could make it to your friends house without your phone, and also need to check your email so bad that you borrow their laptop, but in that case you would not be able to log in. Unless your passkey for that service is stored in your password manager, in which case you’d have to log in to that first.

Does that also mean that if I forget to log out of passkey, they can access all of my accounts correlated with my passkey account?

There is no “Passkey account”, it’s not a service or an app. It’s a file stored either on your device or in your password manager.

what happens if my passkey account is compromised? All of my accounts are linked to a single point of failure?

I already brought up that you have no “passkey account” to compromise, but if your passkey was somehow stolen, the only thing compromised would be the service that passkey is for.

A friend of mine had to break out some kind of USB dongle to log into his Google account on a new machine the other day. Is that a form of passkey?

You can get hardware devices to store passkeys on, yes.

What happens if that dongle gets lost/stolen/broken? Or what if you just forgot it at home? Are you SOL?

If it’s lost or stolen you’d want to make new passkeys yes. If you forgot it at home, you wouldn’t be able to log in if the hardware device was the only thing you had a passkey stored on.

I wonder how often you truly forget important every day articles at home, despite you needing to get connected to things at a moments notice. I don’t think I’ve forgotten my phone anywhere once in the last 15 years.

The thing is, all these scenarios you’re coming up with are no different for passkeys than they are for complex, unique, secure passwords. It sounds like your usual MO is being able to recall your password (In the case you’ve forgotten your phone and are in a borrowed device), which means your passwords likely aren’t secure, and you’re probably reusing them, which is more of a “single point of failure” than passkeys ever could be.

Honestly, my advice to you is before you even start considering passwords vs passkeys, you need to fix yourself up man. You need to get your shit together a lil bit.

Spotlight7573 ,

Let’s say for example, I am at my friend’s house, and for one reason or another, I don’t have my phone.

If you need to log into your friend's laptop to check your email, you would need your phone or some other passkey you had set up for your account, yes, as long as that was the only login method you have setup on your account. If you don't have your phone, you might not be able to pass the two-factor steps or account login location checks many accounts. If Google finds the new login attempt suspicious for some reason, it will ask for additional checks like a code sent to your email or through a text and you may not be able to log in with just the password anyways. Just because you have the right username and password, it doesn't mean that a service may let you log in without access to some kind of other trusted information accessible on an existing device.

Overall though, think of it like forgetting your physical keys.

Does that also mean that if I forget to log out of passkey, they can access all of my accounts correlated with my passkey account?

Yes, the same as if you had left your physical keys there and those keys provided access to all your accounts. There may be some technical protections like the timeout until it locks on a password manager but that's up to the password/passkey manager app to implement and for the OS to guarantee the security of. It's no different from loading up your password manager on the device. If you don't trust the device or the owner of the device, you should not access your password/passkey manager on it.

what happens if my passkey account is compromised? All of my accounts are linked to a single point of failure?

The same thing that happens if your password manager is compromised: you secure it (rotate encryption, create a new database, however you want) and then you set about updating new passwords and passkeys for your accounts. That's why it's recommended to only have your actual password/passkey manager on something you trust (your phone, your computer, etc) and use that device as the passkey for whichever other device your logging into rather than loading up your password/passkey manager on each device you're logging into.

A friend of mine had to break out some kind of USB dongle to log into his Google account on a new machine the other day. Is that a form of passkey?

It's a form of WebAuthn credential most likely, yes. Passkeys aren't actually entirely new in how they can be used with accounts, the standards have been there for a while now. It's mainly just a unified marketing from the big players as well as developing an ecosystem around it the standard such as the protocols for using a phone via Bluetooth as a passkey on a desktop/laptop to log in and other things like syncing the passkeys between devices using their existing password manager services for user convenience (so that the average person can actually use them). Under the hood it's still WebAuthn for the actual authentication. Hardware security keys that connect via USB, Bluetooth, or NFC have been around for a while but have usually operated in nonresident key mode where they've been used for second factor authentication. Nonresident key mode has the advantage of storing the private key in an encrypted format with the website or service your logging into, meaning that the actual hardware key doesn't need to have any storage capacity and can work with an infinite number of sites. This has the disadvantage that you have to provide a username (and typically a first factor like a password) to lookup which keys should be used (ie the ones associated with a specific account). That is probably how your friend logged in with a USB dongle. WebAuthn credentials that operate in resident key mode like passkeys do on the other hand store both the information related to identity and authentication, meaning that all you have to do is select the account you want to log into. This requires that they are stored on a trusted device like a phone, a laptop, or a hardware security key dongle that has storage.

What happens if that dongle gets lost/stolen/broken? Or what if you just forgot it at home? Are you SOL?

Again, the same thing that happens when you forget your physical keys for your car or home. You can't access the thing protected by them until you go get them. The alternative is to bypass the normal authentication workflow and work around it, such as with an account recovery process (similar to getting a locksmith to get back into your car or home).

I am all for more security and less password remembering, but I hop around a lot of computers.

Then you'd probably like being able to log in by just unlocking your phone and confirming things, rather than having to go through a password lookup and one time code entering process each time.

MIDItheKID ,

Cool, thanks for the info. This is something I have wanted to setup for a little while now, I just didn't understand all of the nuances.

Natanael ,

Asymmetric cryptographic signing keypairs. An ECDSA variant is used to create and validate signatures. Your device creates a unique keypair per domain you register on. It only sends signatures, which doesn't reveal what the secret key is, and each signature is based on a single use challenge value.

Spotlight7573 , (edited )

Passkeys are a way of doing public/private key-pair crypto to prove that you are in possession of the private key that corresponds to the public key that was registered with a site or service when you added the passkey to the account. The use of the passkey is often protected by biometrics like the fingerprint or facial recognition systems on your device but it doesn't necessarily need to use biometrics at all if you don't want to and you can instead use a passcode to unlock your device or password/passkey manager.

Basically instead of the normal way with passwords:

  • You ---password---> website
  • Website verifies password matches, either directly to an actual stored password (bad) or through a hash they have stored

With passkeys you have:

  • You <---challenge--- website
  • You sign the challenge with a private key that only you have
  • You ---signed challenge ---> website
  • Website verifies that the signed challenge corresponds to the public key you provided when you set up the passkey

In the password scenario, the website could be following best practices and hashing the password or it could just be storing them directly and insecurely. You have no idea what really goes on inside their systems. This also means that due to reused passwords, a security breach at one site can mean problems for other sites, even if they didn't do anything wrong.

In the passkey scenario, you're not sending anything particularly sensitive to each site so it's more secure.

SniffDoctor ,

If I use a password manager with long random passwords, and use 2FAS to generate those 6-digit two factor authentication codes whenever possible (as opposed to SMS/email 2FA), is there any advantage?

Is it just that you don't actually have to type anything, just press "I approve" on your phone after entering your username?

Or is it more just designed to improve security for people like my family members who use the same ~10 digit passwords for everything?

Spotlight7573 ,

It's definitely trying to be user friendly enough that non-technical users like the family members you mention can use it to replace passwords. For your use case with a strong password and 2FAS to generate a code, it still gets rid of the phishing potential. The main advantage for the other people like your family is that they don't have to type or autofill anything, just select an account to log into or click approve on their phone. A main advantage for the service is that the user's diligence is taken out of the equation for a lot of it and they don't have to worry about a user giving their password and 2FA codes to a phisher. If a user tries to use a passkey at the wrong site (like a phishing site), it won't pop up as an option to select because the domain is wrong.

Passkeys can also help anyone who is using a service in an indirect way. The 23andMe "breach" was due to stolen credentials from other actually breached sites being used to log into accounts that have data shared with them. That 23andMe data was shared to those compromised users by people who may have actually had all their security turned up to the highest settings like 2FA but was nonetheless scraped and obtained by the bad actors anyways. If 23andMe had been using passkeys (or even magic login links in an email), there would have been no credentials from other sources to use against their 23andMe's users. Moving everyone to more secure authentication methods is in the best interest of everyone involved, it's just that typically it was a hassle to have to setup an authenticator app or a password manager for 2FA. Passkeys, when everything is working properly, finally provide both more security and more convenience for the average person than just a password and so people might actually adopt them.

Petter1 ,

Jokes on them: If they allowed passkeys on iOS 16 or have let the iPhone X update to iOS 17, I most likely fell for it, now I have only some 2FA keys that I need to pull from keychain (have no macOS)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • technology@lemmy.world
  • incremental_games
  • random
  • meta
  • All magazines