It would also be really bad for usability. Just like it would be bad for usability if you lost access to your Google account forever because you broke your phone.
* Power on laptop, log in using laptop password
* Log in to LastPass, use lastpass password, verify with 2FA. * Connect to VPN, log in using SSO (Okta) password from LastPass, verify with 2FA.
* Open github tab, log in using the Okta password again, verify again with 2FA.
* Open JIRA ticket, get sent to Okta, skips password prompt since already logged in, verify again with 2FA.
* Open email, get sent to Okta, skips password prompt, verify again with 2FA.
* Oh, my calendar tab was already open so Google didn't know I authenticated in another tab so sends me to Okta which now expects another 2FA there once I interact with it.
Also the policy is that the lastpass password, SSO password and laptop password should be different. So that's 3 passwords and 5 2FA pushes in about 5 minutes (and again after lunch as all those sessions expire during it).
My understanding is you can configure Okta to remember 2FA on a device for a while, but our security department has chosen to disable that. This is a lot of security overhead, but in this case I'm being paid for it rather than paying for it so whatever. Can you imagine getting a paying customer to agree to this level of 2FA double checking?
Typical solution: Make the timeout much longer so you don't need to keep doing the work
Correct solution: Deploy a second factor that isn't annoying
If your second factor is a FIDO Security Key then you just touch the key. Doing this a dozen times per day feels about as much trouble as how you have to hit the spacebar to make spaces when typing, ie you aren't even aware of it.
The VPN couldn't easily do this out of the box today (as OpenSSH demonstrates, where there is a will there is a way but I wouldn't trust a typical proprietary VPN client to not open massive security holes this way) but all the web stuff you mentioned could use WebAuthn, and Okta supports that if your employer deployed it as I understand it.
[0]: https://www.macrumors.com/2019/11/12/ios-13-3-fido2-security...
So then you don't need the token because the platform (ie your phone) does the multi-factor authentication itself. In this case you touch a fingerprint reader. I can hold my phone in a way where my right index finger naturally is placed to do this so it feels pretty convenient.
Again, not on iPhones today but it has been demo'd and does already exist on Android.
Actually, that would be very bad for security, because users would work around it. (Well, it might be really, really, good for security if it got people to stop using Google, but I doubt that's what you meant.) As the saying goes:
> Security at the expense of usability comes at the expense of security.
Basically everyone else has an "I lost my device" thing and a fallback to SMS codes or email links. This certainly weakens 2FA in general, but strict 2FA is unusable in practice.
Some online storage services have secure areas requiring 2fa to open which would be suitable.
Obviously the backup codes are preferred as you're not storing a master key to all future codes, but it's a lot easier to manage than a second device (at least for me).
Admittedly if a skilled hacker breaks in into my computer they could recognize what the script does and misuse it. But at least no scripted attack should ever look for it. It's not on github because my seeds are hard-coded and there is not much to generalize.
I use the Yubikey Nano. I have a USB-C version in my laptop and a standard USB version in my desktop PC.