strategia di autorizzazione del numero di cellulare tramite SMS, miglior schema e pratiche

7

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;

  1. 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
  2. quindi il server genera un token e
  3. invia quel token al numero di cellulare fornito
  4. 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
  5. l'utente, quindi, deve copiare o memorizzare il token ricevuto su
  6. quindi l'utente deve tornare alla GUI originale e
  7. inserisci il token copiato o memorizzato nel sito web di origine o nell'app e
  8. premi un tasto (ad esempio) e
  9. attendi che il server elabori il token inserito
  10. 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
  11. 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,

  1. 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
  2. quindi il server genera un token e
  3. 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.
  4. l'utente potrebbe dover copiare o memorizzare il token visualizzato,
  5. 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.
  6. l'utente invia semplicemente il messaggio a SMCN,
  7. quindi l'utente deve tornare alla GUI originale e
  8. premi una chiave per dichiarare che il token è stato inviato al server e
  9. attendi che il server elabori il token inserito
  10. 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
  11. 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.

    
posta anonim 09.04.2016 - 12:51
fonte

2 risposte

5

Osserviamo alcuni attacchi diversi e il loro impatto sui due diversi sistemi, seguiti da alcune considerazioni sull'usabilità.

Controllo del telefono (disegna)

Se l'attaccante ha il pieno controllo sul telefono, è game over non importa quale. Tuttavia, un utente malintenzionato potrebbe essere stato in grado di ottenere un trojan sul telefono che ha limitato solo permessi. Almeno su Android, la lettura e l'invio di SMS sono permessi diversi. Tuttavia, questo secnario si sente piuttosto artificioso e non vedo ragioni per cui sarebbe più difficile ottenere un permesso di quanto lo sia per ottenere l'altro.

Ingegneria sociale (vincita n. 1)

Per ingannare alcuni utenti a leggere il codice è facile se questo è tutto ciò che il messaggio contiene. Chiamare l'utente, dire che vieni dalla compagnia di telefonia mobile testare la ricezione o qualsiasi altra cosa, e che riceveranno presto un messaggio per la lettura. (Un aggressore competente potrebbe inventare un modo migliore di mentire di quello che ho appena fatto.)

Tuttavia, questo può essere reso difficile se l'SMS contiene una spiegazione di ciò che è il codice (e forse un avvertimento esagerato contro phising), rivelando così tutte le tue bugie di ingegneria sociale.

Un utente che deve inviare un SMS non può ricevere tale avviso. Quell'utente potrebbe innamorarsi di trucchi come "basta inviare questo codice a questo numero per richiedere la tua auto sportiva gratuita". Non tutti cadono per questo, ma alcuni lo farebbero, specialmente se si tratta di un servizio che usano raramente e quindi non riconoscono il numero.

Interconnessione sulla rete telefonica (vincita n. 2)

Poiché la crittografia GSM è notoriamente debole, e le torrette dei telefoni cellulari falsi da utilizzare per MitM possono essere acquistate su Internet, un utente malintenzionato potrebbe tentare di intercettare le comunicazioni via SMS. Questa non è una minaccia teorica, ma qualcosa che viene fatto in the wild .

Con il sistema uno, un intercettatore deve leggere il codice di accesso che viene inviato all'utente quando tenta di accedere. L'utente malintenzionato deve quindi utilizzarlo prima che l'utente (dovrebbe essere facile se il processo è automatizzato). Ciò richiede che l'attaccante si trovi nella prossimità fisica del bersaglio quando l'utente accede al servizio.

Con il sistema due, non importa se l'attaccante legge l'SMS. Il passcode è (o almeno dovrebbe essere) univoco per il dispositivo dell'utente e l'utente malintenzionato non può autenticarsi sul suo dispositivo anche se conosce il passcode inviato dall'utente.

SMS spoofing (vincita n. 1, problema principale)

lo spoofing via SMS è una cosa molto reale che viene utilizzata in natura. Se l'utente malintenzionato può falsificare il numero di telefono degli utenti in un SMS, può superare l'altro due. Questa è una delle principali debolezze in questo approccio.

Ho cercato su google " servizio di spoofing SMS gratuito " e ho trovato questo sito . Sicuramente anche lo zio illegno del tuo computer potrebbe fare lo stesso, bypassando così il tuo schema di autenticazione.

Usabilità (vincite n. 1)

L'alternativa due ha qualche svantaggio quando si tratta di usabilità:

  • L'utente deve inserire un codice di accesso e un numero per inviarlo a. Questo richiede più tempo. Due cose per copiare incolla sono il doppio di una.
  • L'utente potrebbe immettere il numero di telefono sbagliato, causando un accesso non riuscito. Se viene inserito il passcode errato in uno alternativo, è facile fornire all'utente un feedback appropriato. Se viene inserito un numero di telefono errato, è difficile per il server sapere cosa succede e fornire il feedback giusto all'utente.
  • L'invio di un SMS potrebbe costare denaro per l'utente.

Conclusione

Sulla sicurezza, è 2-1 a quella alternativa. Ma quanto sono gravi le diverse vulnerabilità? Direi che soprattutto lo spoofing degli SMS, ma anche l'ingegneria sociale sono minacce più grandi delle intercettazioni. Possono essere eseguiti da qualsiasi parte del mondo e richiedono molto meno sforzo e conoscenze tecniche. Lo spoofing degli SMS potrebbe essere automatizzato su larga scala.

Quindi, anche lasciando l'usabilità al lato, direi che quella alternativa è l'alternativa più sicura.

TL; DR

Puoi spoofare il mittente di un SMS, rendendolo inutilizzabile per identificare il mittente. Utilizza la prima alternativa.

    
risposta data 11.04.2016 - 23:24
fonte
2

Le due opzioni sono distinte nel modo seguente:

  1. La società invia l'SMS al cliente
  2. Il cliente invia l'SMS alla società

Se pensiamo attentamente a come viene verificata l'identità nelle reti telefoniche, scopriremo il problema di sicurezza principale che le aziende leader scelgono per l'opzione 1. Ogni volta che effettui una chiamata o invii un SMS, sai quale numero chiami. Tuttavia, quando ricevi una chiamata o un SMS, non hai idea di dove abbia avuto origine.

Diamo un'occhiata a questo problema dal punto di vista dell'azienda. Il loro obiettivo è verificare l'identità dell'utente in due modi. La società si fida già di sé. L'identità dell'utente è verificata tramite password e ricevendo un SMS. L'azienda sa che l'SMS arriverà al numero di telefono a cui l'hanno inviato, poiché è così che funziona il sistema telefonico. Quindi, se la stessa persona ha la password e il telefono, hanno anche il messaggio SMS e il token che contiene. La fiducia è stabilita.

Nella seconda opzione, la fiducia non può essere stabilita dal punto di vista dell'azienda. La società riceverà un SMS da una fonte arbitraria e non sarà in grado di determinare il numero di telefono da cui ha avuto origine. (Ironia della sorte, il cliente può verificare in questo modo l'identità dell'azienda, ma la società non può verificare l'identità del cliente).

Questa è la stessa ragione per cui ci viene detto di non fornire mai dati bancari a qualcuno che richiede di richiedere la nostra banca. Invece, le persone prudenti riagganciano e compongono il numero di telefono della loro banca per verificare l'identità della persona con cui stanno parlando.

    
risposta data 12.04.2016 - 08:41
fonte

Leggi altre domande sui tag