Cos'è la verifica telefonica? Come i codici SMS e vocali proteggono i tuoi account
Verifica telefonica è un fattore di autenticazione basato sul possesso: dimostra che controlli un numero di telefono in questo momento. È la spina dorsale dell'Autenticazione a Due Fattori (2FA) e del recupero account per miliardi di account.
Il flusso
- L'utente inserisce il numero di telefono (formato E.164: +15551234567).
- Il sistema genera un One-Time Passcode (OTP): 4–8 cifre (SMS) o cifre pronunciate (Voce). Limitato nel tempo (tipicamente 5–15 min).
- Canale di consegna:
• SMS (A2P): Tramite aggregatore (Twilio, Vonage, Sinch, Plivo) → SMSC dell'operatore → telefono.
• Voce (TTS/IVR): Chiamata automatica legge il codice. Fallback per fissi, consegna SMS scarsa, accessibilità. - L'utente inserisce il codice nel modulo app/web.
- Il server valida: codice corrispondente, non scaduto, non riprodotto (limitazione della velocità). Successo → sessione elevata / account creato / reimpostazione password consentita.
Perché funziona (E dove fallisce)
| Punto di forza | Debolezza |
|---|---|
| Qualcosa che HAI (possesso) | Frode SIM swap / port-out: l'attaccante sposta il tuo numero sulla loro SIM |
| Ubiquo (ogni telefono) | Attacchi segnalizzazione SS7 / Diameter intercettano SMS in transito |
| Bassa frizione per gli utenti | SMS non cifrato; addetti interni dell'operatore possono leggerlo |
| Funziona offline (voce) | Numeri VoIP (Google Voice, TextNow) spesso rifiutati dalle banche |
| Tracciabilità normativa | Costo per SMS/voce (i truffatori bruciano budget) |
Aggiornamenti moderni
- Flash Call / Silent Auth: L'app attiva una chiamata persa al tuo numero; il server vede corrispondenza CLIP (Calling Line Identity Presentation) — nessuna inserimento codice. Usato da WhatsApp, Telegram, Truecaller.
- Verifica RCS: Rich Communication Services sostituisce SMS; mittente verificato, cifratura, branding.
- Number Verify (Mobile Identity): La rete mobile conferma "l'IP di questa sessione corrisponde all'abbonato MSISDN" tramite Mobile Connect / OpenID Connect. Zero interazione utente.
- Passkeys (FIDO2/WebAuthn): Sostituiscono completamente l'OTP telefonico. Chiave crittografica legata a biometria del dispositivo. Resistente al phishing.
Migliori pratiche per sviluppatori
- Limite di velocità: max 3 richieste/ora per IP/numero.
- Hash OTP nel DB (bcrypt/Argon2) — mai loggare in chiaro.
- Scadenza in 5–10 min. Invalida all'uso.
- Offri Voce + SMS. Rileva VoIP (Twilio Lookup, Numverify) e avvisa.
- Logga eventi di verifica (traccia di audit).
- Migra a Passkeys per account di alto valore.
Per gli utenti
• Abilita Numero bloccato / Congelamento portabilità con il tuo operatore (previene SIM swap).
• Usa App Autenticatore (TOTP) o Passkeys dove offerti — più forti di SMS.
• Non condividere mai OTP. Le aziende legittime non li chiedono mai.