Most developers have MFA enabled on their accounts. Far fewer have thought carefully about which MFA method they're using — and the gap between them matters more than you might think.
How They Work Under the Hood
Authenticator apps (Google Authenticator, Authy, etc.) use TOTP — a 6-digit code derived from a shared secret and the current timestamp:
TOTP = HMAC-SHA1(secret, floor(unix_time / 30))
The code refreshes every 30 seconds. Both your app and the server independently compute the same value — no network call needed.
Hardware security keys (YubiKey, etc.) use FIDO2/WebAuthn — public-key cryptography with a challenge-response flow:
1. Server sends a random challenge + the registered domain
2. Key signs the challenge with its private key (never leaves the device)
3. Server verifies with the stored public key
The domain is baked into step 1. That's the critical difference.
The Phishing Problem
TOTP codes can be phished. A convincing fake login page can capture your code and replay it within the 30-second window — this is exactly how modern AiTM (adversary-in-the-middle) phishing kits work.
FIDO2 keys are phishing-resistant by design. The key refuses to sign challenges from domains it wasn't registered with. A pixel-perfect phishing clone of GitHub simply cannot complete the handshake.
This isn't theoretical. Google deployed hardware keys to 85,000+ employees and reported zero successful phishing-based account takeovers afterward.
2026 MFA Ranking (Weakest → Strongest)
| Method | Phishing Resistant | Practical |
|---|---|---|
| SMS OTP | ❌ | ✅ |
| TOTP (Authenticator App) | ❌ | ✅ |
| Push approval | ❌ | ✅ |
| Hardware Security Key (FIDO2) | ✅ | ⚠️ |
| Passkeys | ✅ | ✅ |
When to Use Each
Use a hardware key for your most critical accounts: GitHub, AWS, Google Workspace, your password manager, anything with production access. A $25–$50 YubiKey is cheap insurance against credential theft.
Use an authenticator app for everything else — the long tail of accounts where budget or device compatibility rules out a key. TOTP still blocks the vast majority of automated attacks.
A few quick wins if you're sticking with TOTP:
- Store backup codes in your password manager or print them — not in your camera roll
- Use an app with encrypted cloud backup (Authy, 1Password's built-in TOTP) so a lost phone doesn't lock you out
- Never manually type a code into a URL you didn't navigate to yourself
The Takeaway
Use a hardware key for anything that would hurt if compromised. Use TOTP for the rest. Avoid SMS wherever you have the choice. And if a service only offers SMS 2FA in 2026 — that's a signal about how seriously they take security.
Originally published on bestpasswordgenerator.org
Top comments (0)