Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Authy / Google Authenticator / 1Password have built-in TOTP generators. They have great UX and are much more secure.


Don't save your TOTP codes in your password manager if you are going for the "best" security.

That turns multi-factor auth back into "single factor auth" and leaves you one exploit away from having your password and TOTP code from getting stolen.


I store my TOTP in 1Password... I think it's still more secure than SMS (because to restore 1Password vault you also need a Secret, not only your password) and so much more convenient than a separate app, because 1Password auto-copies the TOTP code to your clipboard after filling form fields, making signing in a very smooth experience.

It is a security tradeoff that I take for most of my accounts. For a few that a much more sensitive I use a Yubikey.


And that's fine IMO as long as you know you are making a tradeoff.

But unless you have your 1Password setup to need the secret every time you go to have it fill in the password, the seed string is in memory unencrypted along with your passwords (or more specifically, it's stored in a way that it can be decrypted by the app/extension on it's own). That makes it one spectre/meltdown style exploit away from getting everything needed to login to the account.

Still, if that system works for you, then good! having any 2fa (even SMS) is better than nothing, storing TOTP codes in a password manager is better than SMS, storing them in a seperate device is better still, and U2F keys are even better still.

Like anything it's a gradient of tradeoffs, but I've seen too many people go from Google Authenticator to 1Password in an attempt to further secure their account, and I just like to point out that there's a good chance it's doing the opposite.


How could one save a TOTP code in a password manager and use it later? It would be useless in 30 seconds time.

Am I misunderstanding something? Or did you mean OTP rather than TOTP?


The main benefit behind TOTP is that you can tie its value creation to a second factor, such as something you own like a device (instead of something you know like a password).

It’s arguable that you’re removing that second factor when you store the parameters needed to create the TOTP in the same place as you store your passwords.


The setup string which generates the time codes is basically a second password. If something can read that setup string, they can generate their own TOTP codes for your account whenever they want.


Oh you're discussing storing the seed, not the TOTPs themselves.


So you're not actually talking about the TOTP codes that are generated?


I've done a piss poor job of describing it, but the way TOTP works is there is a "setup code" or a setup "string". Often in a QR code format.

That string is all that is needed to generate all of the TOTP codes forever. So while the TOTP code that you type is different every minute, it's generated by doing some math on the setup string and the current time.

Some password managers (like 1Password) allow you to have them generate your TOTP codes by putting in your setup string into them (often using the exact same process you would do to setup your TOTP codes in an app). But i'm saying that's not a good idea if you are going for "most secure", because at that point if something were to somehow exploit your password manager, they will not only get your username and password, but will have that setup string as well so they can generate their own TOTP codes for you.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: