MFA / 2FA – What is it?

MFA (multi-factor authentication)or2FA (two-factor authentication)is a security procedure that requires users to log in usingmore than just a username and password.

  • 2FA means that two factors from different categories, such as:
    1. Knowledge– something you know (e.g., password, PIN)
    2. Possession– something you have (e.g., smartphone app, hardware token)
    3. Biometrics– something that defines who you are (e.g., fingerprints, facial recognition)
  • MFAis an umbrella term and can combinetwo or more factors.

In short:
MFA/2FA enhances account security by requiring an additional form of identity verification (e.g., SMS code, authenticator app, fingerprint) in addition to the password.

Common apps include: Microsoft Authenticator, Google Authenticator, or DUO Mobile.

However, there are significant differences in security. Just because a second factor is used does not mean you are automatically protected, as the type of factor used is no small matter.

🔑 1.Enter code
a)SMS code (one-time password, OTP via SMS)
  • Process:Server generates a 6-digit code → sends it via text message → User enters it.
  • Safety considerations:
    • ✅ Simple and widely used
    • Vulnerable to SIM swapping / SMS interception
    • ❌ Codes arestatic for a short period of time(e.g., 30–60 seconds) → Risk of phishing
    • ❌ SMS messages are oftennot end-to-end encrypted

➡️Vulnerable to social engineering and cyberattacks


b)TOTP code (Time-based One-Time Password, e.g., Google Authenticator)
  • Process:The key is stored locally in the app → The app generates a new code every 30 seconds → The user enters it.
  • Safety considerations:
    • ✅ No SMS channel, so it'sresistant to SIM swapping
    • ✅ Worksoffline(no internet connection required)
    • Vulnerable to phishing(an attacker can intercept the code and use it immediately)
    • ❌ If malware is present on the device, the secret key can be read

➡️Better than text messages, but not immune to phishing


📲 2.Push Token / Push Confirmation
a)Push app (e.g., Microsoft Authenticator, Duo, Okta)
  • Process:The server sends asigned requestto the app → The user confirms (Approve/Deny) or uses biometric authentication.
  • Safety considerations:
    • No manual entry→ prevents phishing attacks on codes
    • ✅ Connection is usuallyTLS-secured and cryptographically signed
    • ✅ Can incorporatebiometric factors(Face ID, fingerprint)
    • Push bombing attacksare possible (an attacker sends a large number of requests, and the user accidentally clicks "Approve")
    • ❌ Depends on an internet connection and the app's integrity

➡️Greater security than TOTP, especially when combined with biometrics and "number matching"


🛡️ 3.Hardware-based tokens (e.g., FIDO2 / YubiKey)
  • Process:The token performsa cryptographic challenge-response signature, usually via USB or NFC.
  • Safety considerations:
    • Highly resistant to phishing(links login to the genuine domain)
    • ✅ No codes or push notifications → nothing to intercept
    • ✅ No reliance on the internet or mobile networks
    • ❌ Higher acquisition and administrative costs

➡️Maximum security, especially for critical accounts


⚖️Comparison Chart
MethodPhishing-resistantProtection against SIM swapsUser-friendlyInternet required
SMS code❌ Low❌ Weak✅ High📶 Yes
TOTP (app code)❌ Medium✅ Good⚖️ Medium❌ No
Push app⚖️ Better✅ Good✅ High📶 Yes
Hardware token (FIDO2)✅ Very high✅ Excellent⚖️ Medium❌ No

💡Conclusion:

  • Push tokens with biometric authenticationoffer greater protection than code-only authentication (especially against phishing).
  • FIDO2/hardware tokensare the most secure because they cryptographically verify the authenticity of the domain.
  • SMS codesare now considered insecure and should only be used as a last-resort MFA option.

Disclosure: Parts of my blog are written with the help of AI, and I have reviewed and edited the content.