Hacker News new | ask | show | jobs
by apas 3033 days ago
Can someone ELI5 why Yubikeys are better for 2FA than using, say, 1Password, which simplifies the process with cmd + \ and automatically pasting the 2F code? (Even better than Google Authenticator; no need to reach for anything.)
1 comments

Using 1Password to store your 2fA seed makes it single factor because your password and second factor are stored in the same place. This is not a good idea.

Yubikeys in U2F mode are better than any OTP because they protect you against phishing attacks. 1Password auto-filling arguably has this property too, but you should disable that sort of password manager behavior:

https://labs.detectify.com/2016/07/27/how-i-made-lastpass-gi...

Yubikeys in U2F mode are better than any OTP because they protect you against phishing attacks. 1Password auto-filling arguably has this property too,

Not really. The TOTP RFC recommends accepting TOTP tokens from before and after the current time step to make TOTP work with clock drift. Since most implementations use time steps of 30 seconds an allow TOTP codes of at least one past and one future time step, the window in which an TOTP code can be used is typically 90 seconds.

Consequently, TOTP only works against 'offline phishing' where a phisher collects data first and tries to take over the accounts later. For any kind of immediate phising, there is typically no problem to forward re-use the token, even with a small delay.

As you say, U2F protects against this, by using challenge-reponse and using the origin selecting the key handle.

I don't understand the start-off of "not really". Is that in reference to the first sentence or the 2nd? I think the "1Password-autofill" protects you against phishing because if you go to a legit site, the domain will match and 1Password will autofill. If you go to a phishing site that just looks right (Unicode domain, whatever), but doesn't match exactly then the auto-fill won't happen and you'll be tipped off.
> Using 1Password to store your 2fA seed makes it single factor

Thanks. I certainly understand that but the convenience trumps the risk imo. Further, I don't want to reach for and insert a USB drive every time I want to log in somewhere. And what if there's no available USB port?

I think it's better than having to deal with checking one's email or checking one's phone for a SMS and then having to manually copy the code into a form and submitting it.

The only thing that would be more convenient would be if the browser authenticated itself using a client side TLS certificate as one factor in the authentication process.