2015-04-08 14 views
11

Voglio sviluppare un'app mobile e utilizzare un whatsapp come la registrazione dell'utente. Ora ricordo i problemi di sicurezza discussi alcuni anni fa. Whatsapp utilizzato per autenticare gli utenti semplicemente tramite il loro numero di telefono e IMEI. Ora, naturalmente, questo non è veramente sicuro, ma non so davvero come farlo in modo più sicuro.Come funziona l'autenticazione di Whatsapp?

Ora non ho più sentito parlare dei problemi di autenticazione di Whatsapp per molto tempo, quindi suppongo che ora abbiano un metodo sicuro. Sai come funziona Whatsapp oggi?

risposta

0

Oggigiorno Whatsapp autorizza l'utente a utilizzare l'app semplicemente inviando un messaggio di testo al telefono. Se la carta SIM del tuo telefono ha lo stesso numero inserito, Whatsapp preleva automaticamente il codice dal messaggio di testo e autorizza il tuo telefono. In caso contrario, devi comunque raggiungere il telefono che utilizza quel numero di telefono e inserire il codice di verifica.

7

Farò una pugnalata a questa domanda.

A mia conoscenza, Whatsapp utilizza ancora il tuo numero di telefono come identificatore univoco primario. La prima volta che accedi a Whatsapp, verifica che il numero di telefono sia il tuo.

Tuttavia, la seconda volta che Whatsapp fornisce una chiave segreta al momento del login. Ciò aiuta ad evitare alcuni dei servizi di attacco che Telegram ha visto, in cui un SMS può essere chiamato e intercettato in qualsiasi punto per accedere all'account (guarda come funziona il loro log-in web).

Infatti, questa chiave segreta che forniscono è il tuo identificatore, che è memorizzato in modo sicuro localmente, che deve essere utilizzato in tutte le richieste procedurali. Ovviamente, gli utenti cambiano telefono. In tal caso, l'account deve essere riattivato via SMS dove verrà prodotto un nuovo ID segreto, invalidando quello precedente.

Quindi, un utente malintenzionato potrebbe tentare il protocollo di intercettazione SMS di cui ho parlato mediante la riattivazione. Il problema è che ti rendi conto che qualcuno intercetta immediatamente il tuo traffico perché Whatsapp sarebbe disabilitato sul tuo dispositivo. Pertanto, questo potrebbe avere successo solo se non hai controllato Whatsapp per un po 'o sei stato nel bel mezzo di un'interruzione di internet. Nel complesso, questo rende il loro metodo sicuro.

@Srinivas Ciò che avete osservato non è altro che la memorizzazione di Whatsapp che un determinato numero di telefono non può essere verificato per le prossime due ore, indipendentemente dall'origine della richiesta, sul proprio server di verifica.


EDIT: In risposta al commento di @ Srinivas:

L'ultima parte della vostra risposta è assolutamente corretto. Ho fatto alcuni test e funziona come hai detto tu. Grazie. Ma non sono chiaro al login 1a volta e al login 2a volta.

Mi scuso per non essere esauriente. Cercherò di ri-spiegare.

Come vedo whatsapp, la schermata iniziale è la registrazione (schermata richiesta codice sms) e il secondo login è codice di verifica (verificare il codice sms). Potete fornire ulteriori informazioni per la mia comprensione, per favore?

Quello che intendevo per il primo accesso è l'intero processo di verifica SMS.Quindi, io divido in due segmenti:

  1. Prima login: L'utente richiede un codice di verifica SMS. Devono inserire il codice correttamente se provengono da un altro dispositivo o, in alternativa, Whatsapp riconosce la SIM e completa la verifica automaticamente. Vengono quindi registrati e hanno accesso ai loro messaggi non consegnati o di cui è stato eseguito il backup se si tratta di un account esistente in precedenza.

  2. Login per seconda volta: Immediatamente dopo questo processo di verifica Whatsapp consegna un token di accesso segreto che viene memorizzato localmente sul dispositivo. Pertanto, ogni volta che aprono l'app e tentano di connettersi al server, sono obbligati a utilizzare questa chiave d'accesso. Come ho spiegato, se volessero riattivare il proprio account su un altro dispositivo, dovranno completare nuovamente il passaggio 1 dal nuovo dispositivo, che genererà quindi una nuova chiave segreta, invalidando quella precedente e rendendola solo possibile accedere con il nuovo dispositivo.

Ecco qualche documentazione ho trovato che ha creato api simile: github.com/mgp25/Chat-API/wiki/WhatsApp-Registration-Flow. Si prega di fornire il vostro prezioso input

Ho rivisto la documentazione e seguono lo stesso schema con precisione. Ciò che potrebbe averti confuso è il "token di richiesta codice" iniziale. Questa è semplicemente una chiave che verifica la validità del dispositivo che sta effettuando una richiesta per completare il passaggio 1. Ciò garantisce la legittimità dell'origine dell'utente che sta tentando di registrare il proprio dispositivo.

Ecco come funziona:

L'utente vorrebbe completare passo uno. Pertanto, inviano un token di richiesta al server insieme alla loro identità (numero di telefono). Questo è un codice che è stato consegnato al caricamento dell'applicazione.

Questo non è ancora sufficiente per interrompere un'intercettazione di SMS durante il passaggio 1. Dato che l'origine della richiesta è un'installazione Whatsapp legittima, il codice di verifica SMS può consentire a un utente malintenzionato di accedere all'account dell'utente. Tuttavia, come ho notato in precedenza, ciò invalida la chiave segreta generata in precedenza dal passaggio 2. Pertanto, l'utente noterà che sono stati disconnessi localmente purché utilizzino attivamente Whatsapp e siano connessi a Internet.

Fammi sapere se c'è più confusione.