2013-09-27 69 views
1

我希望用戶使用他們的電話號碼在我的Web服務上註冊他們的設備。使用電話號碼作爲登錄:如何防止人們註冊其他電話號碼?

我可以通過驗證SMS(ala WhatsApp)來確保他們擁有自己輸入到應用程序中的號碼。然後,該應用至少會表現出色。

但是,我該如何防止人們只聽到發送到服務器的數據,修改它並使用另一個電話號碼?然後他們可以註冊他們想要的任何電話號碼。

我可以在將數據發送出應用程序之前對其進行加密,但所有源代碼都可以從APK進行反編譯,並且只需要檢索用於加密的代碼即可。

那麼我該如何安全地做到這一點?

+0

所以你想象下面的序列:1)應用程序要求電話號碼。 2)用戶提供隨機數。 3)服務文字隨機數。 4)用戶以某種方式攔截文本到隨機數字? – mjr

+0

我實際上是在想象將應用程序發送給自己的應用程序。我相信這是WhatsApp如何做到的。它發送和SMS到提供的號碼並讀取它。然後,服務器無法生成密碼。 – doorstuck

回答

2

該應用程序說的WebService,「發送激活碼555-555-5555」

的web服務,說「OK」,然後發送短信到555-555-5555與密碼即在合理的時間內生成並過期。

用戶將代碼輸入到應用程序,該應用程序向服務器發送密碼,Web服務將該手機標記爲「已驗證」。

用戶不能監聽密碼是什麼,因爲它只發送到特定的手機。如果用戶有足夠的資源,它可能會攔截這個......但你必須問......爲什麼?你所能做的最好的事情就是將安全性提高到一個合理的數量,你無法防止任何可能的漏洞,但是你應該做出強有力的努力。

+0

我實際上是在想象將應用程序發送給自己的應用程序。我相信這是WhatsApp如何做到的。它發送和SMS到提供的號碼並讀取它。然後,服務器無法生成密碼。 – doorstuck

+1

沒有邏輯驗證與自己的應用程序。它的工作方式與使用電子郵件激活帳戶的方式相同。網絡服務器不會自行發送電子郵件,它會通過電子郵件向您發送密碼/鏈接。這就是你如何做多因素認證。試圖在應用程序內部執行它只是一個因素。查看它上面的[wiki](http://en.wikipedia.org/wiki/Multi-factor_authentication)。 – Gray

+0

好的。聽起來像是當時的路要走。我只是確定WhatsApp在應用內發送一封電子郵件給自己。感謝您的回答。 – doorstuck