所以我正在製作一個應用程序,我希望用戶能夠添加,編輯和評價內容,但我不想強迫他們註冊。相反,我打算只使用他們的設備ID或設備令牌來識別它們。我打算製作iPhone和Android版本,所以我正在尋找一個通用的解決方案,但iPhone版本具有更高的優先級,所以iPhone特定的解決方案也將受到歡迎。如何使用UDID或設備令牌進行安全登錄?
問題是我不希望任何人都能通過發送虛假設備ID或其他設備ID來使用我的Web服務。
客戶端如何向服務器證明它提供了正確的設備ID?
所以我正在製作一個應用程序,我希望用戶能夠添加,編輯和評價內容,但我不想強迫他們註冊。相反,我打算只使用他們的設備ID或設備令牌來識別它們。我打算製作iPhone和Android版本,所以我正在尋找一個通用的解決方案,但iPhone版本具有更高的優先級,所以iPhone特定的解決方案也將受到歡迎。如何使用UDID或設備令牌進行安全登錄?
問題是我不希望任何人都能通過發送虛假設備ID或其他設備ID來使用我的Web服務。
客戶端如何向服務器證明它提供了正確的設備ID?
理論上,你不能。設備ID不是特別祕密,並且在大多數情況下,它很容易被欺騙。至於Android,在該操作系統上沒有可靠的設備ID - 請參閱此處的血腥詳細信息:Is there a unique Android device ID?
您可以信賴的所有內容都是默默無聞的安全性 - 希望沒有人會確定足以對代碼進行反向工程並分析認證協議。而不是透露代碼不是一種選擇 - 畢竟你在分發應用程序。
也就是說,一個不是特別安全的認證方法是 - 發送設備ID和與客戶端代碼字符串中硬編碼的祕密級聯的設備ID的散列。該服務將包含相同字符串的副本,重新計算散列(使用提供的設備ID)並匹配散列。只有通過挖掘字符串的代碼才能通過協議分析來破壞。雖然很容易受到重播攻擊。
要獲得更強大的解決方案,請驗證用戶,而不是設備。這取決於您的客戶,並取決於業務的性質。
我不是Android專家,但IMEI代碼我認爲是唯一的設備。我不知道你如何閱讀並傳輸它。
當擁有多個設備或擁有多個設備的用戶替換他們的設備時,您會發生什麼情況會嘗試使用您的應用程序? – Jonah 2011-01-12 17:51:20
好點。我打算讓用戶選擇註冊他們的電子郵件地址。您可以很好地將多個設備ID與使用電子郵件地址的同一用戶進行關聯以驗證它們。 – 2011-01-12 19:38:52