La condivisione del numero di telefono Bot di Telegram è un modo sufficiente per autenticare un utente?

3

Ho bisogno di integrare l'applicazione web in Telegram usando il telegramma bot. Devo eseguire un'autenticazione per il client e l'applicazione Web che autentica l'utente con il suo numero di telefono + password. Ho trovato un metodo interessante per ottenere il numero di telefono dell'utente tramite il pulsante speciale

Questo metodo sembra essere abbastanza sufficiente per fare l'autenticazione senza la password dell'utente, dal momento che l'utente non può inviare nessuno tranne il suo numero di telefono e tutte le autenticazioni già fatte da Telegram. Ma è un po 'imbarazzante per me, dal momento che non so come funzioni la funzione di condivisione del telefono, e quanto sia difficile ignorarla o imbrogliarla.

* Come precauzione, penso di fare solo l'autenticazione (potrebbe essere anche l'identificazione) attraverso il bot di Telegram. E per le azioni sensibili richiederà ulteriore autorizzazione (ma non so come, per ora))

    
posta Максим Романюк 25.01.2018 - 15:54
fonte

2 risposte

1

OK, può sembrare insicuro a prima vista, ma, se bot eseguirà il controllo utente a destra, darà il 100% di sicurezza nell'autenticità del numero di telefono dell'utente. E la sua autenticità è dimostrata dal meccanismo di autenticazione di Telegram (che è la verifica di SMS).

Come ximaera ha commentato:

Be careful to check whether the id of the user you're communicating with matches user_id value of the contact you've received

Qualsiasi app di telegramma che invia qualsiasi contatto come oggetto con first name , last name e phone number proprietà. Non ci sono altri modi in cui l'API di Telegram consente di farlo. E il bot che riceve questo oggetto con user_id aggiunto dal server telegram. Questa proprietà aggiuntiva equivale a chat_id di utenti con questo numero di telefono. Pertanto, sembra che sia sufficiente confrontare user_id dal contatto con chat_id dell'utente, che ha inviato questo contatto.

K.B. ha dichiarato:

Phone numbers are pretty easily spoofed

La nostra webapp utilizza la verifica tramite SMS del numero di telefono durante la registrazione. Lo stesso è fatto da Telegram. Quindi, il nostro meccanismo di autenticazione non è più sicuro di quello di Telegram.

If the user's device is stolen/lost/otherwise compromised, the token can be revoked

Se il telefono viene rubato / perso, e non protetto con PIN / impronta digitale / altro, il nuovo proprietario del telefono avrà tutte le risorse per riprendere il controllo sull'account di qualsiasi utente.

Di cortesia, le misure di sicurezza non sono superflue, specialmente quando si estende la zona di fiducia a un servizio di terze parti. Tuttavia, ritengo che la sicurezza di Telegram sia superiore alla normale sicurezza delle applicazioni, quindi, una volta integrata, può essere ulteriormente utilizzata anche come meccanismo di autorizzazione, invece dei codici di verifica SMS.

    
risposta data 26.01.2018 - 07:19
fonte
0

Non ho alcuna esperienza specifica con telegramma, ma in generale:

  • I numeri di telefono sono facilmente falsificati. Quindi usarlo per l'autenticazione è piuttosto debole.
  • Richiedere solo un numero di telefono potrebbe essere l'autenticazione a fattore singolo in generale, non va bene se si ha a che fare potenzialmente con qualsiasi tipo di dati sensibili / preziosi.

Un approccio migliore (e ancora, non so se questo è fattibile nella tua istanza specifica) è quello di far autenticare l'utente con il numero di telefono / username / password una volta, quindi dare all'applicazione un token che può usare per autenticare nel futuro. Questo offre i vantaggi:

  • L'utente non deve inserire la password ogni volta.
  • L'attaccante che può falsificare il numero di telefono non può accedere all'account dell'utente, dovrebbe avere il token che è memorizzato sul dispositivo dell'utente.
  • Se il dispositivo dell'utente viene rubato / perso / altrimenti compromesso, il token può essere revocato.
  • I token non possono essere rubati durante il transito finché usi SSL.
risposta data 25.01.2018 - 16:44
fonte

Leggi altre domande sui tag