5 ms·
Just so you don't feel alone with the replies being of the typical variety, I'm 100% with you. The flaws in the "backup token" approach are rehashed constantly
by gazby 4y ago
Just so you don't feel alone with the replies being of the typical variety, I'm 100% with you. The flaws in the "backup token" approach are rehashed constantly but the world keeps turning as though they're irrelevant.
I look forward to hardware tokens reaching a popularity level where we see implementations in software and this conversation can be rendered moot.
Shout out to Mozilla and Dan Stiner for their work so far.
- zozbot234 4y agoSoftware ("virtual") implementations are already possible in WebAuthn. It's up to the service whether to allow enrollment via a software authenticator; most services will want to allow this, seeing as it's still way more secure than ordinary username/password.
- throw1138 4y agoAre there any existing implementations I should be aware of?
- throwaway52022 4y agoFor web apps/services, the browser needs to be involved here too, right? (And maybe the OS?) How can I tell Chrome on my desktop to use my "software token" instead of Chrome looking for a hardware token over USB or finding it via NFC, so the remote service can ultimately interact with my (virtual) token? (I don't even want to think about how to tell Mobile Safari on my iPhone how to find my key) EDIT: My ideal setup, I think, is an app on my phone that I can use as my token - somehow signaling to my desktop/laptop that it's nearby and can be used as a token and ideally popping up a notice on the phone lock screen when there's an authentication request so I can quickly get to it. Then in my app, I'm free to export and backup my keys for all of the sites I'm enrolled with as I see fit. I know, I know, maybe being able to export the keys makes the setup less secure, but I will trust myself not to accidentally give the backup to a phishing site. (And I do worry that I'll accidentally get phished using a TOTP app, so I'd like to switch to FIDO, but I don't want the pain of multiple keys)
- mjevans 4y agoI do NOT want to use my phone. It cannot be considered to be a secure device given the 'network' baseband control chipset will never be owned by the phone's buyer and has full access to the device.
- lxgr 4y agoStoring your keys in secure hardware on a phone is almost certainly more secure than storing a key in software on your desktop hard drive. If you don't trust your hardware, it's almost always game over. Desktops have devices running dubious firwmare as well, but at least with a hardware key store, the window of compromise ends at the time you update – a stolen key stays stolen forever.
- tpush 4y agoThe baseband CPU doesn't have full access on any decent phone.
- t-3 4y agoGot a list of decent phones?
- tpush 4y agoThe baseband on an iPhone is connected via USB and has no DMA, for example. I believe Google's Pixel phones are similar.
- SXX 4y agoHow do you know for sure it's isolated? Every phone has tons of blobs running in background and hardware itself is very much blackbox.
- DCKing 4y agoThis is an urban legend. It ticks all the boxes of people who are inclined to be paranoid about these sort of things (I realize saying that may come across as a value judgment: it isn't), so it remains a popular meme. But the "baseband controls the main phone" is a meme that was maybe true for mid 00s dumbphones but not modern smartphones. That's not to say that you should trust modern smartphones. That's up to you. It's just that in whatever "trust" means to you, the baseband urban legend shouldn't come into the equation.
- lxgr 4y agoA much more secure way of doing this is to use the platform's/OSs most secure way of storing private keys, which in many cases is hardware (Secure Enclave on iOS, TrustZone or "real" secure hardware like Titan M on Android, TPM on Windows/Linux). This is already supported by many browsers (unfortunately Mozilla/Firefox are dragging their feet on this one [1]) and gives you exactly the user experience you want. [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1536482 https://bugzilla.mozilla.org/show_bug.cgi?id=1536482
- zozbot234 4y agoThis does not solve the backup issue. It's effectively using the phone or computer as a whole as a hardware key, which introduces multiple failure modes compared to external hardware keys while also adding to privacy concerns. It might have some extremely niche use for some use of on-prem devices in enterprise settings where the inability to sever the authentication element from the actual hardware might be convenient; other than that, TPMs are essentially a misfeature given the existence of smartcards and hardware keys.
- lxgr 4y agoThe backup issue is solved by using an external authenticator for initial provisioning of new devices. In a compliant implementation, you can add a new external authenticator from an existing trusted device, and a new trusted device from an existing external authenticator. > while also adding to privacy concerns. What concerns are you thinking about here? > TPMs are essentially a misfeature given the existence of smartcards and hardware keys. TPMs are essentially built-in smartcards (with a few other optional features like measurements/attestation, but these have never really taken off as far as I know, other than giving TPMs the reputation they have) and are very well suited for use as platform authenticators.
- zozbot234 4y ago> In a compliant implementation, you can add a new external authenticator from an existing trusted device, and a new trusted device from an existing external authenticator. You can kinda sorta do this with WebAuthn if the service you're enrolling into allows for multiple authenticators (the spec recommends this, but some services don't allow more than one). But then you have to repeat that enrollment step with all devices, for every new service you sign up to. Which is practically useless because an actual backup is supposed to be stored in a safe place that might be hard to get to. > TPMs are essentially built-in smartcards The question is why anyone sensible would want to have a smartcard built into their computing device. The only uses I can think for it are nefarious, i.e. allowing outside services to track the user and violate their privacy.
- danstiner 4y agoThanks for the shout-out! I wrote that U2F implementation in software because I wanted phishing protection without needing to carry a hardware key. Well, and to learn Rust :) It's certainly a security trade-off to just store secrets in your keychain like I choose to, it is not meant to be a replacement for a hardware key and in fact I have a Yubikey I use when the situation calls for it. I'd love to use TPM and biometrics to implement U2F/WebAuthn on Linux and have a proper, secure solution. Similar to what Apple has done with Touch ID. But that's no easy task. TPM support is poor on Linux and other options like relaying auth requests to your phone for approval and storing secrets in the Secure Enclave is no easier.
- password4321 4y ago> relaying auth requests to your phone for approval and storing secrets in the Secure Enclave Like the acquired/abandoned https://github.com/kryptco/kr https://github.com/kryptco/kr [key stored in a [...] mobile app] with iOS and Android apps all under an "All Rights Reserved"-source license? Also, newer Macs have a Secure Enclave (supports 256-bit secp256r1 ECC keys): https://github.com/maxgoedjen/secretive https://github.com/maxgoedjen/secretive [storing and managing SSH keys in the Secure Enclave [...] or a Smart Card (such as a YubiKey)] https://github.com/sekey/sekey https://github.com/sekey/sekey [Use Touch ID / Secure Enclave for SSH Authentication!]
- danstiner 4y agoYep exactly, Krypton looked interesting, sorry to see it's dead. And yep Apple is way ahead on this imo, the touch sensor securely communicates with the Secure Enclave, I'm not aware of other laptop hardware doing that. (https://support.apple.com/en-bh/guide/security/sec067eb0c9e/1/web/1 https://support.apple.com/en-bh/guide/security/sec067eb0c9e/...) I'd love to have something equivalent for Linux, but given that requires hardware support I think relaying auth requests to your phone is the closest equivalent.