7 ms·
How are these private keys being stored? It seems to be implied that there is a different public/private key pair for every website so are they stored in the br
by TranquilMarmot 7y ago
How are these private keys being stored? It seems to be implied that there is a different public/private key pair for every website so are they stored in the browser? (or at an OS-level?)
- sam_lowry_ 7y agoThey are stored on hardware tokens. There does not seem to be a way to have privately generated software keys, nothing like putty's pageant or .ssh/authorized_keys. WebAuthn seems to be designed by big businesses to take control of the authentication ecosystem.
- monocasa 7y ago> WebAuthn seems to be designed by big businesses to take control of the authentication ecosystem. Can you expand on that?
- sam_lowry_ 7y agoThere is no way to generate your own software key pair as easily as one can do with ssh-keygen. The whole spec is designed with hardware tokens in mind, software tokens are not mentioned anywhere, and WebAuthn spec designers wave their hands when asked about software tokens.
- deleted 7y ago[deleted]
- StavrosK 7y agoYou can just implement the client in software and use it if you want, the protocol doesn't care. Firefox already ships with that functionality and you can enable it.
- sam_lowry_ 7y ago>Firefox already ships with that functionality >and you can enable it. I can't find anything like that, can you point us to the docs/examples? OTOH, I see that someone right now posted a reply to https://github.com/w3c/webauthn/issues/1175#issuecomment-570945862 https://github.com/w3c/webauthn/issues/1175#issuecomment-570... trying to downplay the issue of purely software tokens Funnily, https://github.com/herrjemand/awesome-webauthn#software-authenticators https://github.com/herrjemand/awesome-webauthn#software-auth... is not about software tokens but about webauthning with an Android phone or a Wear OS.
- StavrosK 7y agoHere: https://news.ycombinator.com/item?id=21963399 https://news.ycombinator.com/item?id=21963399 Which comment is trying to downplay the issue? What is the issue?
- nickray 7y agoThe point is that ssh keys lying around on your laptop aren't the greatest idea either. Where is the root of trust? The password you type to terminal if you encrypt them? FIDO2 starts with the idea of safe defaults, where either client devices (Android, laptop TPM,...) store the keys safely, or dongle vendors (like us, SoloKeys). These have a business interest in doing their job properly. But there's nothing preventing software implementations, it's an open standard in that respect (I do have other issues with it but your specific concern is unfounded imho).
- sam_lowry_ 7y ago@nickray, with ssh, I manage the root of thrust. With Webauthn, someone else manages it for me, be it Yubico or Intel or Apple. This is a fundamental difference.
- StavrosK 7y agoYou're wrong. You can manage your own keys. You don't need any big corporation for WebAuthn.
- arianvanp 7y agoThere are already open source hardware and software available by the people at SoloKey. Both Nitrokey and SoloKey sell the tokens.
- sam_lowry_ 7y agoSell? Bingo! That's what I was talking about.
- nickray 7y agoSoloKeys person here ;) You can implement software authenticators (listening on local USB port), I imagine some password manager people will do so eventually, or have a direct way to hook into requests. Krypton did this for U2F. Hardware keys are for if you want hardware security, obviously they can't be free unless you want someone with a different business model to subsidise them.
- sam_lowry_ 7y agoListening to local USB port? Hm... Why should I listen to a local USB port to exchange keys in a PKI? This only proves my point that WebAuthn is about hardware replacing passwords.
- nickray 7y agoYes, WebAuthn is about getting rid of passwords. They're a bad idea, for most people, in most situations.
- cr7pt0 7y agoYes software authenticators that use a security key for OTP are a good option. This is what Yubikey does with the Yubikey Authenticator. As with most security things there are tradeoffs to each approach. The pro of a software authenticator is that you can have an unlimited number of accounts, the con is that it requires the user to install an app on their phone/computer (in some cases the OTP shows up in a desktop app it may be possible for hacker to intercept). With the OTPs being generated and typed by the key itself the pro is that you don't have to install an app and login can be faster because the OTP is typed for you, no reading and typing it manually (also harder to phish). The con being you can't store unlimited accounts and since the key is typing the OTP the key has to be physically connected to a phone/computer.
- Rafert 7y ago> They are stored on hardware tokens. Not necessarily: the WebAuthn spec mentions two other types of authenticators in the introduction section (https://www.w3.org/TR/webauthn-1/#intro https://www.w3.org/TR/webauthn-1/#intro): "Broadly, compliant authenticators protect public key credentials, and interact with user agents to implement the Web Authentication API. Implementing compliant authenticators is possible in software executing (a) on a general-purpose computing device, (b) on an on-device Secure Execution Environment, Trusted Platform Module (TPM), or a Secure Element (SE), or (c) off device." > There does not seem to be a way to have privately generated software keys A specification is something different than an implementation. On https://github.com/herrjemand/awesome-webauthn https://github.com/herrjemand/awesome-webauthn you'll find (at the time of writing) two software implementations. https://krypt.co/ https://krypt.co/ can be a third if you want to consider a U2F implementation as well.
- sam_lowry_ 7y agoThe section https://github.com/herrjemand/awesome-webauthn#software-authenticators https://github.com/herrjemand/awesome-webauthn#software-auth... talks about using Android phones or Wear OS to webauthn with Bluetooth. The section title is misleading. It's not about software tokens, but about turning one's phone or a smart watch into a hardware token.
- Rafert 7y agoThe section title is correct: they're authenticators implemented in software, not relying on a TEE/TPM or any other bit of hardware for storing the keys. Apparently these don't run on on your CPU architecture and/or operating system of choice, but that's another issue. The claim of "they are stored on hardware tokens, there does not seem to be a way to have privately generated software keys" is incorrect. Perhaps https://github.com/bodik/soft-webauthn https://github.com/bodik/soft-webauthn is closer to what you're looking for.
- ecesena 7y agoIn a hardware token, there's generally a single master secret and private keys are derived on the fly for each website you register/log into. So you can use 1 single hardware token with an unlimited number of sites (note that you prob want to register at least 2 tokens per site, in case you loose one, but this is a different story). The standard also define the concept of resident keys (RKs), that you can use for passwordless authentication (typically with a PIN on the token, to avoid theft). In this case of course each key consumes a bit of storage, so the number of sites is limited. For example, a Solo key can currently store 50 resident keys. To the best of my knowledge, apart from demo sites, the only "real" site supporting resident keys is microsoft/outlook.com, so this is currently not a real practical limitation.
- stavros 7y agoCorrection, resident keys are used for usernameless authentication (you don't need resident keys for passwordless). I recently (last week) wrote a Django library for WebAuthn (https://pypi.org/project/django-webauthin/ https://pypi.org/project/django-webauthin/) and use it on a few of my sites (https://www.pastery.net https://www.pastery.net, https://www.eternum.io https://www.eternum.io and https://www.deadmansswitch.net https://www.deadmansswitch.net, if you want to try it out).