TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Passkeys – Under the Hood

158 pointsby paulgerhardtabout 1 year ago

10 comments

croteabout 1 year ago
&gt; With a security key, the private key is stored inside a secure element and an attacker with physical access to a security key would not be able to recover the private key value.<p>This glances over one of the most powerful features of non-resident (not Passkey, regular U2F &#x2F; Webauthn) keys: you don&#x27;t actually <i>need</i> to store the private key on the client!<p>Non-resident keys only use a single per-token secret key. On registration a random number is generated, which is used together with the secret key to derive a public&#x2F;private keypair used for the whole authentication flow. This random number is sent to the server along with some check digits, forming a token ID. On authentication the server sends the ID back to the token, who uses it to again derive the same keypair which is for authentication. The biggest benefit is that a single cheap token can support an unlimited number of websites. It only needs to store a single secret, after all. If the user has multiple hardware tokens, just send all the numbers one-by-one and see which one is accepted by the token. This also provides essentially perfect privacy: the token doesn&#x27;t store anything about the websites or accounts it is used with, so an attacker gaining control over a token cannot easily determine where it can be used and has to manually try each website one-by-one by actually visiting the site and trying potential usernames.<p>With resident keys (&quot;Passkeys&quot;) the website does not know which ID to return, because a username is not yet known so you&#x27;d have to try <i>all</i> registered IDs for <i>all</i> users to look for a match. That&#x27;s impossible, so the token needs to store some per-user-account data which allows it to map from a domain name to one or more stored credentials and their IDs (which allow both authentication and a mapping to a specific user on login). This places a hard upper limit to the number of Passkey websites a security key can support, and in practice forces you to use a smartphone or computer instead if you want to register a nontrivial number of websites. There are also privacy risks here, as it must by definition be possible to query a token for the existence of an account at a website.<p>Passkeys have been heavily pushed by major tech companies as a replacement for both a username, password, <i>and</i> 2FA method - but (assuming proper 2FA) it&#x27;s a strict downgrade with serious drawbacks. It&#x27;s really sad to see companies ditching proper Webauthn 2FA support when switching to Passkeys, because it&#x27;s making security worse for the people who actually care about it.
评论 #39732313 未加载
评论 #39732824 未加载
评论 #39732683 未加载
wkat4242about 1 year ago
I wish the support of real tokens would also benefit from the attention Passkeys receive though. They use the same protocol after all.<p>On Firefox on Android I still get the message that physical tokens are not supported on mobile when I try to authenticate to e.g. PayPal. I don&#x27;t really like Passkeys because I prefer the security of real tokens (yubikeys). And I don&#x27;t want to register with big tech companies to be able to use passkeys - for example I don&#x27;t even have a google account logged in on my android phone.
评论 #39733370 未加载
评论 #39733396 未加载
评论 #39735935 未加载
评论 #39732888 未加载
Galanweabout 1 year ago
There are some things I don&#x27;t quite understand with passkeys.<p>People say it&#x27;s meant to replace login&#x2F;password, not act as 2FAs. Yet last I tried on Google having a login&#x2F;password is mandatory, the passkey is just used as 2FA. So what&#x27;s the point to convert my 2FA yubikey to a passkey?<p>Also, my understanding is that passkeys are standalone keys. There doesn&#x27;t seem to be any support for federation of various keys by having them signed by a master key, as in PGP, so that I can actually prove on service X that I&#x27;m also the same user on service Y, thus being able to link or verify accounts easily.
评论 #39734309 未加载
评论 #39734295 未加载
评论 #39734783 未加载
rettichschnidiabout 1 year ago
Meanwhile, Microsoft sabotages FIDO2&#x2F;Firefox on office.com: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=38502340">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=38502340</a>
snowstormsunabout 1 year ago
I&#x27;d switch to passkeys immediately where possible, if Android&#x2F;Google would allow third party password manager apps to provide and store them. Afaik they still want you to use the Google Password Manager, which is not an option for me.
评论 #39732861 未加载
评论 #39732703 未加载
traceroute66about 1 year ago
My main beef with Passkeys is that there is no hardware attestation.<p>With Yubikeys, the relying party has a cryptographic way to ensure that the key is generated on a Yubikey, and can even validate the specific Yubikey hardware version.<p>AFAIK, with Passkeys you can&#x27;t do that. You have to trust that it was generated and stored securely and not just some software emulation.<p>The Passkey manufacturers argue this is because Passkeys are intended to be transferable between devices. But I can&#x27;t believe there is no form of attestation possible just because you are transferring the keys around, afterall it should be possible to attest that <i>&quot;these bytes were signed by a key in a $this_device secure enclave and the key was securely imported to the device secure enclave via $manufacturer Passkey process&quot;</i> or something along those lines, no ?
评论 #39734195 未加载
评论 #39734153 未加载
评论 #39736008 未加载
评论 #39734222 未加载
treesgrowslowabout 1 year ago
Let me add an operations and service delivery perspective. Our company relies solely on Passkeys for sign-in. The experience is both insanely good yet annoying.<p>A colleague summarized our latest Passkey issues showing the ecosystem remains fragile for enterprises:<p>Fragile Passkey Ecosystem for Enterprises <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39742107">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=39742107</a>
qudatabout 1 year ago
At pico.sh we are developing a completely different type of passwordless authentication all leveraging what developers are already familiar with: SSH keys.<p>No passwords, no JWTs, no bearer tokens, no complicated webauthn, and no passkeys. All we need is an SSH keypair.<p>We have a demo if you are interested in learning more: <a href="https:&#x2F;&#x2F;pico.sh&#x2F;tunnels" rel="nofollow">https:&#x2F;&#x2F;pico.sh&#x2F;tunnels</a>
评论 #39734564 未加载
jwallyabout 1 year ago
With SMS otp, it&#x27;s possible to associate 2 phone numbers (or more) to a single account.<p>That way if my wife and I can use her Amazon account.<p>Can the same paradigm be grafted to pass-keys&#x2F;webauthn?<p>Maybe a useful flow could be<p>You can log in with any of the following:<p>a) passkey b) email and sms and password verification c) customer service<p>Its not 100% air tight; but it seems better than the current state of affairs.
评论 #39734338 未加载
jillesvangurpabout 1 year ago
Passkeys so far look like a repeat of previous efforts to move away from passwords or make logins more secure (e.g. Openid, webauthn, 2FA).<p>There are two problems:<p>1) this stuff is hard to explain to end users. This is the reason it&#x27;s not widely used yet even on the handful of platforms that provide this option.<p>2) Big companies are being very proprietary and selfish about this stuff. So you have Google insisting on Chrome and Google password manager and insisting this all gets routed via your phone. And Apple does the same with Safari and their password manager. And of course MS is doing their own thing. Meanwhile, Firefox doesn&#x27;t even support this stuff properly yet so it&#x27;s impossible to roll out something that only supports passkeys and nothing else.<p>The second one is the big problem because companies like Google and Microsoft get all starry eyed when they realize that all passkey approvals go via property they control. So, they have a natural tendency to prevent people from using anything else than that. The same happened with OpenID. Both MS and Google were all over it. But they couldn&#x27;t bring themselves to federate each other&#x27;s identities. I mean people signing into gmail with a hotmail address or vice versa. The thought alone was causing panics at executive levels in both companies. So, they crippled it and over complicated it. And then proceeded to waffle on the standards so they could have mutually incompatible implementations be standard.
评论 #39733745 未加载
评论 #39734132 未加载
评论 #39733504 未加载
评论 #39734283 未加载
评论 #39734629 未加载