Le verifiche del numero di telefono con collegamenti HTTP magici tramite SMS sono meno sicure di OTP?

Aug 21 2020

Desidero verificare la proprietà del numero di telefono con un payload appositamente predisposto e crittografato all'interno di una richiamata del collegamento ipertestuale HTTP tramite SMS anziché inviare un codice OTP SMS e riscriverlo nella pagina Web del server. Il payload conterrà validità e scadenza, numeri casuali, ecc.

Non sono riuscito a trovare nessuno che utilizzasse questo o un metodo simile se non per scopi pubblicitari.

Sto colpendo qualche evidente vulnerabilità di cui non sono a conoscenza?

Risposte

1 Daveoc64 Aug 21 2020 at 16:25

La tua proposta è di utilizzare efficacemente un codice OTP SMS, ma renderlo molto più lungo del solito.

Il tuo codice OTP più lungo sarebbe più resistente all'ipotesi della forza bruta, ma ci sono modi migliori per contrastare il problema degli attacchi di forza bruta, ad esempio:

  • Fai scadere il codice OTP dopo pochi minuti (e inviane uno nuovo all'utente)
  • Invalidare il codice OTP se l'utente digita troppe volte il codice sbagliato (es. 3 volte)
  • Se l'account utente vede troppi tentativi di input OTP, bloccalo per un po'

SMS OTP è ora disprezzato perché SMS ha molti punti deboli di sicurezza. Il messaggio SMS potrebbe essere intercettato da qualcun altro (utilizzando un attacco di scambio SIM o una sorta di intercettazione mentre il messaggio è in transito) e, in tal caso, il codice OTP basato su URL più lungo non offrirà alcuna sicurezza aggiuntiva.

L'usabilità è l'ultimo problema: alcune persone non vorranno aprire il collegamento sul proprio telefono (ad esempio se accedono da un computer). Il loro telefono potrebbe anche non avere un browser Web funzionante o una connessione a Internet. Un codice breve che possono digitare su qualsiasi dispositivo è più conveniente.