this post was submitted on 04 Nov 2023
231 points (94.3% liked)

Technology

34870 readers
5 users here now

This is the official technology community of Lemmy.ml for all news related to creation and use of technology, and to facilitate civil, meaningful discussion around it.


Ask in DM before posting product reviews or ads. All such posts otherwise are subject to removal.


Rules:

1: All Lemmy rules apply

2: Do not post low effort posts

3: NEVER post naziped*gore stuff

4: Always post article URLs or their archived version URLs as sources, NOT screenshots. Help the blind users.

5: personal rants of Big Tech CEOs like Elon Musk are unwelcome (does not include posts about their companies affecting wide range of people)

6: no advertisement posts unless verified as legitimate and non-exploitative/non-consumerist

7: crypto related posts, unless essential, are disallowed

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 17 points 1 year ago (4 children)

Most people that have password managers are already using different passwords for each website. Usually randomly generated. What's the difference between that and a passkey?

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

The secret key pair of a passkey is never transmitted over the internet. Even if somebody snoops the authentication, they will not be able to reproduce the secret key to login in the future.

Think of it just like SSH public and private keys.

Normal passwords, are typically provided at login time, and get transmitted, relying on HTTPS to keep them secure, if somebody could observe the authentication, they could reproduce the password later.

(Yes someone could hash the password client side and send over the output... But that's extra work and not guaranteed)

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

Client side hashing of a password just makes the hashed result the password, as far as security is concerned.
Unless there is some back-and-forth with the server providing a one-time-use salt or something to make each submission of the password unique and only valid once, at which point that might get snooped as well.
Better off relying on client certificates if you are that concerned

[–] linearchaos 1 points 11 months ago

Passkey's approach is actually relatively close to client side certificates. It's just in a form that is compatible with using a password manager. From the user standpoint once everything supports it properly, logins become relatively transparent and man-in-the-middle is pretty effectively mitigated. The other upside is of course unless you're hosting your own stuff, no one supports client side certificates. This is an opportunity for all the big players to actually push people into better security.

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

Ah, thanks for that explanation. That makes sense. Eliminates a possible attack vector with https

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

A pass key is the private key in a private/public key pair. The private key is stored in the TPM on your device. The website contains the public key. When you use your "one password" you're in effect giving your device permission to access the key storage in your TPM to fetch the private key to present it to the site.

What this means in practice is that if a website has a data breach they won't have your hashed password, only your public key which... is public. It doesn't and can't do anything on its own. It needs the private key, which again only you have and the website doesn't store, to do anything at all.

If you want to read more about it look into cryptographic key pairs. Pretty neat how they work.

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

When you use your “one password” you’re in effect giving your device permission to access the key storage in your TPM to fetch the private key to present it to the site.

Very small correction as I understand, but your private key is never presented. The web service should never interact with the private key directly. Your device is signing some bit of data, then the server uses your public key to verify that it was signed by your private key. Its a small distinction, but is one of the principal uses of asymmetric encryption is that the public key can truly be public knowledge and given to anyone, while the private key is 100% always only accessed by you the user.

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

Yeah, the TPM should perform the signature inside of the security chip, the key is always off limits from everything else

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

I'm not sure there's a requirement for the TPM to be used. To me that would imply the private key is stored in the TPM so you couldn't export it. But a lot of the passkey providers have remote sync available.

Which to implement, would mean they're storing the key outside of the TPM, but using the local TPM to decrypt the secret stored outside of the TPM. IE the certificate payloads are decryptable by a variety of keys that are stored in different TPMs. There's lots of assumptions here of course.

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

I imagine password managers won’t touch the TPM, but iPhones essentially work as you say. Apple has a lot of documentation for how they synchronize.

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

It would be backed up at the point of provisioning.

A TPM can be set to allow exports or block them, so if you program the TPM to export a key once and then flip the switch to block exports then you can have this kind of backups and synchronization

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

Right. Most people that have password managers. Making a password manager easier and more convenient to use means some portion of people who aren't using one may start.

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

Realistically this is the biggest overall advantage.

Sure, there are minor advantages to people already using password managers, but that's such a tiny minority of people...

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

Passkeys use cryptographic keys held client side which are never transmitted, they user cryptographic challenge-response protocols and send a single use value back. You can't intercept and reuse it unlike with passwords.