L’autenticazione multi-fattore (MFA, Multi-Factor Authentication; o 2FA quando i fattori sono esattamente due) è un meccanismo di autenticazione che richiede la combinazione di almeno due prove di identità appartenenti a categorie diverse: conoscenza (something you know), possesso (something you have) o inerenza (something you are). Il razionale è che la compromissione di un singolo fattore non è sufficiente: l’attaccante deve compromettere simultaneamente elementi indipendenti, aumentando drasticamente il costo e la difficoltà dell’attacco.
Fattori di seconda categoria per livello di sicurezza
I secondi fattori più comuni, in ordine crescente di robustezza:
OTP via SMS: un codice a 6 cifre inviato tramite SMS. Pratico e ubiquo ma vulnerabile a SIM swapping (trasferimento fraudolento del numero di telefono presso il gestore) e a intercettazioni SS7. Non raccomandato per sistemi ad alta sensibilità.
TOTP (Time-based One-Time Password, RFC 6238): un’app (Google Authenticator, Authy, 1Password) genera un codice a 6 cifre che cambia ogni 30 secondi usando l’algoritmo , dove è un segreto condiviso tra app e server all’atto della configurazione. HOTP applica HMAC-SHA1 al contatore, ne tronca l’output a 6 cifre decimali (dynamic truncation). Il segreto viene condiviso alla configurazione tramite QR code (encoding Base32): se l’attaccante ottiene questo segreto (phishing del QR, accesso al database dei TOTP secret), può generare codici validi indefinitamente. Più sicuro degli SMS, ma il segreto condiviso può essere rubato con phishing in tempo reale (tool come Evilginx catturano il codice TOTP e lo usano immediatamente).
Push notification: l’app del provider di identità (Duo, Microsoft Authenticator) mostra una richiesta di approvazione sullo smartphone. Vulnerabile al MFA fatigue: l’attaccante invia decine di notifiche push sperando che l’utente approvi per errore o per smettere di ricevere notifiche.
FIDO2/WebAuthn: il secondo fattore di sicurezza più alta disponibile oggi. Usa crittografia asimmetrica: il dispositivo genera una coppia di chiavi per ogni sito, la chiave privata non lascia mai il dispositivo, e la risposta crittografica è vincolata al dominio del sito legittimo. Immune al phishing per costruzione.
Smart card / HSM: la chiave privata è generata e conservata in hardware dedicato resistente alla manomissione (FIPS 140-2 Level 3). Usata in ambienti governativi e bancari ad alta sicurezza.
Bypass dell’MFA
L’MFA tradizionale basato su OTP (SMS o TOTP) può essere bypassato con:
- Real-time phishing proxy (Evilginx, Modlishka): si interpongono tra vittima e sito legittimo, catturando credenziali e cookie di sessione in tempo reale.
- SIM swapping: trasferisce il numero di telefono a una SIM dell’attaccante.
- MFA fatigue attack: invio massivo di push notification per indurre l’approvazione accidentale.
- SS7 attack: intercettazione degli SMS tramite vulnerabilità nell’infrastruttura di segnalazione telefonica.
Solo FIDO2/WebAuthn è strutturalmente immune al phishing perché la chiave crittografica è legata al dominio del sito reale.
Vedi anche: Autenticazione, FIDO2/WebAuthn.