this post was submitted on 11 Oct 2023
293 points (98.0% liked)

Technology

60008 readers
2525 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 2 years ago
MODERATORS
 

Passkey is some sort of specific unique key to a device allowing to use a pin on a device instead of the password. But which won't work on another device.

Now I don't know if that key can be stolen or not, or if it's really more secure or not, as people have really unsecure pins.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 18 points 1 year ago* (last edited 1 year ago) (2 children)

Someone else correct me if I’m wrong but it works similar to PGP.

Background info:

  • Your device generates two keys, a private key and a public key
  • The public key can be given to anyone and the private key stays with you
  • The public key is used to encrypt data and the private key is used to decrypt it

Usage:

  1. You sign up for a service with all the normal info minus a password and click submit
  2. In the background, a private key is generated and stored in iCloud Keychain, Google Passwords, or a 3rd party password manager (so all your devices can access it). A public key is also generated and given to the service
  3. Now you try and login. You enter your username and click login
  4. In the background, the server encrypts a challenge, token, or some piece of data and sends it to your device
  5. Your device decrypts that piece of data with the private key associated with the website
  6. At this point, your device either sends the decrypted data back to the server in exchange for an access token or maybe you decrypted the access token (not sure exactly how that will work. If it’s the former, the data would still be encrypted via ssl so only you and the server would see it)
  7. Now you are logged in

Closing:

So, it’s supposed to be more secure because every time you login, you never type in a password that gets transferred to the server for verification. The server is sending your device data to verify so that it can then verify you. This mainly prevents phishing and the reuse of passwords but I suppose if someone hacks into your iCloud account or whatever, they have the keys to the kingdom 🤷‍♂️

[–] [email protected] 12 points 1 year ago (1 children)

As you point out, the single point of failure is access to the passkey repository. Of course, this will usually be 2FA, so much more secure than simple passwords which people usually employ.

One major issue, IMHO, is vendor lock-in. I’ve no doubt Apple is going to make migration away from iCloud a huge pain in the ass. It’s just another way they’re going to make it difficult to leave their ecosystem.

I’m also worried about backups. People lose access to their Google and Apple accounts routinely for any and no reason at all. Will these keys be stored in the cloud? If so, access to EVERYTHING is just a capricious random algorithm away from being lost.

I wouldn’t touch any passkey system which doesn’t provide a seamless way to migrate away especially if I’ve lost access to my Apple/Google account.

[–] [email protected] 10 points 1 year ago (2 children)

How does this work with checking my emails on a public computer in a library, for example? Somehow my private key needs to be shared with the library pc?

[–] [email protected] 1 points 1 year ago

Wouldn't the private key stay in your phone and you'd be exchanging a challenge and a response?

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

Not necessarily. I can’t imagine they’d want you to login to your iCloud or Google account on a public computer. It will probably work how Microsoft “Authenticator” works or how when you try logging in to iCloud or your Google account when you have 2FA turned on:

  1. Type in your username and click submit on the library computer
  2. The service on the computer tells you to look at your phone
  3. In the background, the service sent an encrypted challenge to your iCloud account
  4. All your devices receives a notification asking if that’s you trying to login
  5. You pull out your phone, click yes
  6. In the background, your phone decrypts the challenge and sends it back to the server
  7. The server verifies its you who is trying to login and logs you in on the library computer

No sharing of keys necessary

Edit: that was just a guess and there are likely a few ways logging in can be achieved on a public computer without needing the private key on that computer. My knowledge on passkeys is surface level, I haven’t really taken the time to look deeply into them yet

[–] [email protected] 0 points 1 year ago (1 children)

If that's the case, then a bad actor could spam someone's phone with notifications. All they'd need is a username.

Or, like my mum, you don't read what the notification says and just hit 'OK'. Now you've let someone into your account without realising

[–] [email protected] 1 points 1 year ago (1 children)

Shit. Good point. According to this blog at 1Password, Bluetooth can be used to have one device verify another for a service. So I guess if the public device has Bluetooth, it’s possible 🤷‍♂️

[–] [email protected] 1 points 1 year ago

There's more ways such as scanning a Qr code to establish a connection from the app to the computer, or by presenting a number on one device which must be entered on the other