2013-05-07 111 views
-1

以下方案:
我想在公共場所(例如火車站)創建一個wifi熱點。因此,我想編寫一個移動應用程序(iOS and/or Android),它用作門戶頁面。因爲我會通過我的wifi熱點提供互聯網訪問,所以我需要確保那些想要登錄的人確認他們的身份(責任)。首先,我想我可以做一些類似Facebook登錄的東西,但我認爲這還不夠,因爲人們可以創建假帳戶。
然後我明白了我可以通過他們的智能手機訪問他們的電話號碼。 我GOOGLE了很多,並得出結論,這是非常艱難的兩個平臺。 iOS方法似乎不推薦使用,應用程序也不會使用該版本的應用程序商店。 Android可以從SIM卡上讀取電話號碼,但並非所有提供商都將該號碼存儲在SIM卡上。通過電話號碼或其他唯一ID(iOS/Android)驗證用戶身份

問題
是否有可能得到的電話號碼?或者有沒有其他方法可以唯一識別WiFi網絡中的某個人?
當然,我不想做任何的是沒有要求的用戶權限等...
問候和感謝提前 彼得

+1

每個用戶或每個設備是否唯一?你排除了創建帳戶的用戶嗎? – 2013-05-07 13:15:25

回答

0

選擇的MAC地址是一個不錯的選擇,它是不是最安全的,但它更容易做到。

IMEI並不總是提供,並且SERIAL不是uniq。

但實際上,我不知道如何用iOS來做到這一點。

+0

嗯,這似乎是一個聰明的想法,但與MAC地址我只能識別設備不是用戶,我是對嗎?那麼這就夠了嗎? – 2013-05-07 13:45:27

0

使用IMEI號

的Android是否提供的功能/方法在Android清單

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
// get IMEI 
String imei = tm.getDeviceId(); 
訪問設備的IMEI號碼

第一盤<uses-permission android:name="android.permission.READ_PHONE_STATE" />

希望它有助於

非CDMA或GSM設備,如平板

使用

import android.provider.Settings.Secure; 

private String android_id = Secure.getString(getContext().getContentResolver(), 
                 Secure.ANDROID_ID); 

這將產生對device..how一個唯一的代碼以往任何時候都將改變,當用戶重啓設備即出廠重置..它適用於os> 2.2(froyo)的設備

+0

沒有IMEI號碼的平板電腦怎麼樣? – cremy 2013-05-07 13:39:05

+0

http://android-developers.blogspot.in/2011/03/identifying-app-installations.html Android ID是什麼使設備獨特..但它適用於os> 2.2(froyo)的設備, – 2013-05-07 14:27:19

0

這實際上取決於您試圖識別的用戶。這看起來可能是一個奇怪的迴應,但通常,我們試圖確定兩套而不是一套憑證元素。

首先,我們不想識別設備本身 - 這是我們期望看到的設備,我們可以相信這個設備沒有被篡改。其次,我們通常想知道此時該設備的用戶是否是我們期望使用此設備的用戶。 (如果我拿你的手機,沒有第二步,我就成了你。)

這就是爲什麼我們有類似802.1x的東西。它讓我驗證網絡的用戶,而不僅僅是設備。對於你的情況,考慮類似於:

對於設備驗證,組合hte MAC地址和IMEI。通過用戶的一些數據將這些數據轉換成獨特的散列。例如。

ID = SHA1(IMEI + MAC(WiFi版)+用戶密碼)

現在,我們可以肯定的設備和用戶是正確的,如果你需要,你可以走一步,並使用該散列一個密鑰來加密您的應用中的用戶驗證步驟。即使用戶是正確的,如果他們在錯誤的設備上,他們的密鑰也不會解密。