If you mean the “passkeys” that are becoming popular as a “password replacement”, it’s basically speaking a public private keypair. What makes it more secure is that, under normal conditions (aside from backing up the passkey), the private “secret” part of the keypair never leaves the app or device it’s stored on. It’s only used temporarily to sign messages and prove that you have the secret key, unlike a password which needs to be sent securely to a server to validate.
You could in theory store a backup on a USB drive but since passkeys are new, it highly depends on the password manager you use to store the passkey. Since passkeys are more complex than something you can memorize/type, it has to be stored in a password manager of some sort to be useful, so you would need to check that password manager allows backing up passkeys. There is currently work being done to standardize the formats/protocols to transfer passkeys so it seems this is very much up in the air. For example, I use BitWarden which stores passkeys, but it seems like I can only add or delete passkeys to an entry, not export them. BitWarden does sync your vault to every logged in device though so you could see that as a form of backup. Going one step further, even though BitWarden doesn’t have a passkey export/backup feature yet, the self-hosted server stores all your passwords including passkeys in regular files which can be backed up - although it would probably be hard to use that backup in any other way besides restoring it onto a BitWarden server instance.
linearchaos@lemmy.world 2 months ago
It’s a bit of math, split into two pieces.
You hand out one piece, that’s the public key. It’s tiny and simple.
You keep the other piece, that’s the private key. It’s long and complex.
The public key can scramble data that only the large piece can unscramble.
The private key can create a piece of data that only the public key can verify.
In practice, these keys can be kept in a database or a file, and they can be held in a hardware security key (yubi/fido). They can be stored on your phone, in Bitwarden, and just about anywhere that keeps passwords, they’re really just a few thousand bytes of data.
In many cases, You can store them in your phone’s private password storage, then when you log into a website, it will trigger a popup on your phone to authorize your login, so you don’t even have to keep them on the computer you’re using to access the secured site. Most of the implementations require you to have a biometric component. You need to face scan, fingerprint scan, or, worst case, use a password to unlock/verify the passkey on the device.
The upside here is that the keys are unique to every site. The public key is completely safe to hand out to everyone, it can’t be reverse engineered. This means that websites can’t leak your login credentials in any meaningful way.
As far as storing for loss, I’d consider regenerating them. I prefer using a password manager that stores them, that way my phone/computers all have access to the same keys.
jonwyattphillips@lemmy.ml 2 months ago
Is it any different than public/private ssh keys that I already use? Or just a rebranding?
linearchaos@lemmy.world 2 months ago
Unintentional trick question :) SSH can use a ton of different crypto, so can passkeys (The actual Fido Spec if you want to read about it is webAuthn).
While they both support RSA, The WebAuthn default appears to be RFC-8152 www.rfc-editor.org/rfc/rfc8152 in an attempt to try to keep the sizes down.
ilinamorato@lemmy.world 2 months ago
Not the op, but afaik they’re just a new implementation.