Negli ultimi anni, il numero di cellulare è diventato un fattore importante per l'autenticazione e quindi sempre più aziende utilizzano metodi per acquisire i numeri di cellulare degli utenti tramite SMS.
In uno scenario tipico;
- la GUI con cui l'utente sta interagendo (che si tratti di un sito Web o di un'app) chiede all'utente di inserire il suo numero di cellulare
- quindi il server genera un token e
- invia quel token al numero di cellulare fornito
- quindi l'utente deve passare a una nuova GUI, ad esempio, se la GUI originale è un sito Web, l'utente deve passare al proprio dispositivo mobile per trovare il messaggio ricevuto nella casella di posta SMS. è lo stesso se l'utente era originariamente in un'app. in tal caso l'utente deve passare all'app SMS manager sul suo smartphone
- l'utente, quindi, deve copiare o memorizzare il token ricevuto su
- quindi l'utente deve tornare alla GUI originale e
- inserisci il token copiato o memorizzato nel sito web di origine o nell'app e
- premi un tasto (ad esempio) e
- attendi che il server elabori il token inserito
- alla fine, il server convalida il token inserito e, se è corretto, autorizza quel numero di cellulare e può impostarlo come mezzo di autenticazione per l'utente e
- infine il risultato viene visualizzato sulla GUI
questo è uno scenario tipico che la maggior parte delle società IT note (come Google, Facebook e altri) utilizzano per autorizzare i propri utenti.
ora assume un altro scenario,
- la GUI con cui l'utente sta interagendo (che si tratti di un sito Web o di un'app) chiede all'utente di inserire il suo numero di cellulare
- quindi il server genera un token e
- mostra quel token all'utente nella stessa GUI e chiede all'utente di inviarlo a un numero specificato (Numero centro messaggi server = SMCN) utilizzando il numero di cellulare immesso dall'utente.
- l'utente potrebbe dover copiare o memorizzare il token visualizzato,
- quindi l'utente deve passare a una nuova GUI, ad esempio, se la GUI originale è un sito Web, l'utente deve passare al proprio dispositivo mobile per digitare il token e inviarlo a SMCN. è lo stesso se l'utente era originariamente in un'app. in questo caso l'utente deve passare all'app SMS manager sul suo smartphone per inviare il token. tuttavia, in questo caso, l'app può utilizzare l'API di programmazione del dispositivo intelligente per chiamare SMS Launcher e pre-riempie l'indirizzo e il contenuto del messaggio per conto dell'utente.
- l'utente invia semplicemente il messaggio a SMCN,
- quindi l'utente deve tornare alla GUI originale e
- premi una chiave per dichiarare che il token è stato inviato al server e
- attendi che il server elabori il token inserito
- alla fine, il server convalida il token inserito e, se è corretto, autorizza quel numero di cellulare e può impostarlo come mezzo di autenticazione per l'utente e
- infine il risultato viene visualizzato sulla GUI
ora la domanda è: quale metodo è migliore in termini di sicurezza e altri fattori se ce n'è?
A CURA:
Ho aggiornato la domanda in base a @Andre modifica e rispondi per una migliore comprensione,
in primo luogo, entrambi i metodi possono essere utilizzati nell'autenticazione e nell'autorizzazione. Supponiamo che qualcuno abbia effettuato l'accesso al proprio account di Internet Banking e voglia trasferire denaro, qui i metodi citati potrebbero utilizzare per autorizzare l'utente e concederle di trasferire denaro o meno.
In secondo luogo, concentriamoci sul confronto tra questi due metodi e non parliamo di aspetti negativi dell'utilizzo di SMS nei processi authN e authZ.
In terzo luogo, confrontando due alternative, (come ho detto prima) in entrambi i casi gli utenti devono memorizzare o copiare qualcosa, quindi lasciare un ambiente per un altro e digitare o incollarlo. Quindi, sembra che, in termini di usabilità, entrambi i metodi siano gli stessi; come nel metodo uno, l'utente deve digitare qualcosa ricevuto in SMS nella GUI originale e nel metodo due, l'utente deve digitare qualcosa visto nella GUI originale in SMS send | receive GUI. Pertanto, in entrambi i casi, l'utente potrebbe sbagliare.