[點晴永久免費OA]十分鐘搞懂手機號碼一鍵登錄
當(dāng)前位置:點晴教程→點晴OA辦公管理信息系統(tǒng)
→『 經(jīng)驗分享&問題答疑 』
手機號碼一鍵登錄是最近兩三年出現(xiàn)的一種新型應(yīng)用登錄方式,比之前常用的短信驗證碼登錄又方便了不少。登陸時,應(yīng)用首先向用戶展示帶有本機號碼掩碼的授權(quán)登錄頁面,用戶點擊“同意授權(quán)”的按鈕之后,應(yīng)用即可獲取到完整的本機號碼,從而完成用戶的登錄認證。在這個過程中,應(yīng)用只要確認登錄用的手機號碼是在綁定了此號碼的手機上發(fā)起的即可認證成功,從這一點來看,它和短信驗證碼登錄并無本質(zhì)區(qū)別,都是一種設(shè)備認證登錄方式。這篇文章就來捋一下其中的技術(shù)門道。 這幾年為了保護用戶的隱私安全,Android和iOS系統(tǒng)都限制了應(yīng)用獲取本機號碼的能力,即使通過某些技術(shù)手段獲取到了本機號碼,這個號碼還可能是被篡改的,所以應(yīng)用直接讀取本機號碼用于登錄是不可行的。那么這些應(yīng)用是怎么獲取到真實的本機號碼的呢?答案是電信運營商,手機要打電話、要上網(wǎng)、要計費,運營商肯定能對應(yīng)到正確的手機號碼。國內(nèi)的運營商就是移動、聯(lián)通、電信這三家,它們都開放了這種能力。對于在互聯(lián)網(wǎng)大潮中被管道化的運營商來說,不失為一種十分有意義的積極進取。 手機流量上網(wǎng)的原理手機號碼一鍵登錄是借助手機流量上網(wǎng)來實現(xiàn),所以先要搞清楚流量上網(wǎng)的原理。 目前網(wǎng)上已有很多關(guān)于一鍵登錄的技術(shù)文章,但是內(nèi)容基本雷同,關(guān)于獲取手機號碼的部分,所述都是通過運營商的數(shù)據(jù)網(wǎng)關(guān)能力,語焉不詳,對于有追求的技術(shù)人來說,難以忍受。這個章節(jié)就來介紹下這種從數(shù)據(jù)網(wǎng)關(guān)獲取手機號碼的能力是如何實現(xiàn)的,因為通信專業(yè)知識十分繁雜,我也沒有經(jīng)過專業(yè)的學(xué)習(xí),大家也不想接觸到很多的專業(yè)名詞,所以這里只保留一些關(guān)鍵的專業(yè)名詞,盡量以通俗易懂的方式來理清這個機制。 五層網(wǎng)絡(luò)模型對網(wǎng)絡(luò)比較熟悉的同學(xué),應(yīng)該了解五層協(xié)議,那么手機流量上網(wǎng)時的五層網(wǎng)絡(luò)模型有何不同呢? 從上圖可以看出,手機流量上網(wǎng)的主要區(qū)別在數(shù)據(jù)鏈路層和物理層。在數(shù)據(jù)鏈路層,流量上網(wǎng)沒有MAC地址的概念,它采用一種點對點協(xié)議(PPP),手機端通過撥號方式建立這種PPP連接,然后發(fā)送數(shù)據(jù)。在物理層,流量上網(wǎng)通過手機內(nèi)置的基帶模塊進行無線信號的調(diào)制、解調(diào)工作,從而實現(xiàn)與移動基站之間的電磁波通信。 流量上網(wǎng)的機制點對點協(xié)議支持身份驗證功能,手機端發(fā)起連接時會攜帶自己的身份證明,一般就是手機卡內(nèi)置的IMSI,這個IMSI也會保存在運營商的數(shù)據(jù)庫中,因此基站就可以驗證連接用戶的身份,當(dāng)然這個驗證過程不是簡單的對比IMSI,會有更多安全機制。為了更清楚的了解流量上網(wǎng)機制,下面再來一張4G流量上網(wǎng)時手機與運營商的交互示意圖: 核心組件手機:這其中對流量上網(wǎng)起到關(guān)鍵作用的就是手機卡和基帶模塊。手機卡中保存了IMSI,全稱International Mobile Subscriber Identification Number,國際移動用戶識別碼。IMSI是手機卡的身份標(biāo)識。 基站:就是外邊常見的鐵架子信號塔,是一種能覆蓋一定范圍的無線電收發(fā)信息電臺,手機會連接到它,然后它再通過光纖連接到運營商網(wǎng)絡(luò),從而實現(xiàn)移動通信。 MME:Mobility Management Entity,移動控制單元。手機建立連接時會先訪問到這里,負責(zé):手機與基站的接入控制,手機卡的鑒權(quán)、會話管理、安全傳輸,漫游控制、跨運營商通信等。 HSS:Home Subscriber Server,歸屬簽約用戶服務(wù)器。保存本地簽約的手機卡信息,包括手機卡IMSI與手機號的對應(yīng)關(guān)系,手機號的套餐信息、手機號的歸屬地信息等。 S-GW:Service Gateway,服務(wù)網(wǎng)關(guān)。4G環(huán)境下,用戶側(cè)與運營商核心網(wǎng)之間的業(yè)務(wù)網(wǎng)關(guān)。訪問能不能進入,能做什么業(yè)務(wù),去哪里做業(yè)務(wù),是在這里控制的。跨運營商計費、漫游計費等也在這里完成。 P-GW:PDN Gateway,PDN網(wǎng)關(guān)。運營商核心網(wǎng)與互聯(lián)網(wǎng)之間的網(wǎng)關(guān),手機真正上網(wǎng)就是通過它了。它會給手機分配一個IP地址,控制上網(wǎng)的速度,對流量進行計費等。 PCRF:Policy and Charging Rules Function,策略與計費控制單元,保存每個用戶的網(wǎng)絡(luò)訪問策略和計費規(guī)則。 上網(wǎng)過程為了方便理解,這里將上網(wǎng)的過程大致分為兩個部分(和上圖的1、2對應(yīng)):
以上就是手機流量上網(wǎng)的基本原理了,可以看到,運營商通過IMSI或者GUTI完全有能力獲取到當(dāng)前上網(wǎng)用戶的手機號碼。對于運營商的一鍵登錄具體是怎么實現(xiàn)的,我并沒有找到相關(guān)的介紹,但是可以設(shè)想下:手機應(yīng)用通過運營商的SDK發(fā)起獲取手機號碼的業(yè)務(wù)請求,此時會攜帶IMSI或者GUTI,業(yè)務(wù)請求到達S-GW,S-GW鑒權(quán)通過,然后將這個業(yè)務(wù)請求路由到運營商核心網(wǎng)中獲取手機號碼的服務(wù),服務(wù)根據(jù)業(yè)務(wù)規(guī)則從HSS中取出手機號碼并進行若干處理。 一鍵登錄的原理理解了手機流量上網(wǎng)的原理,再來看下一鍵登錄業(yè)務(wù)是如何實現(xiàn)的,這個部分屬于上層應(yīng)用程序開發(fā),大家應(yīng)該相對熟悉一些。 如果你接入過微信的第三方應(yīng)用登錄,或者其他類似的第三方應(yīng)用登錄,過程是差不多的。還是先來看圖: 這里對一些關(guān)鍵步驟進行說明:
這里其實還有一個安全問題: 14登錄請求:用戶如果隨便造一個認證Token,然后就向應(yīng)用服務(wù)提交請求,應(yīng)用服務(wù)再向認證服務(wù)提交請求,這屬于一種跨站攻擊。雖然這個Token可以被阻止,但是不免浪費資源,給服務(wù)端帶來壓力。 這一點微信第三方應(yīng)用登錄做的比較好,用戶登錄前,應(yīng)用服務(wù)端先生成一個隨機數(shù),然后應(yīng)用前端向應(yīng)用服務(wù)端提交時,帶著這個隨機數(shù),應(yīng)用服務(wù)端可以驗證這個隨機數(shù)。 號碼驗證場景 除了用于登錄,運營商網(wǎng)關(guān)的這種取號能力,還可以用在驗證手機號上,在某些關(guān)鍵業(yè)務(wù)上,比如支付過程中,要求用戶輸入本機手機號碼或者其中的某幾位,然后通過運營商認證服務(wù)驗證手機號是否本機號碼。 隱私保護問題設(shè)備唯一標(biāo)識問題現(xiàn)在大家對隱私問題關(guān)注的越來越多了,經(jīng)常會出現(xiàn)這種情況:你在某電商網(wǎng)站搜索了某個商品,然后訪問其它網(wǎng)站時,都向你推薦這類商品的廣告。還有一種感覺很恐怖的情況,你剛和某個人談?wù)摿四臣?,然后就在某個App上看到了關(guān)于這件事的推薦,有人猜測是App在偷聽,不過基于目前的輿論和監(jiān)督,偷聽風(fēng)險太大,這其中的原因可能真的只是算法太厲害了。 最近幾年Android和iOS系統(tǒng)都對App獲取手機唯一標(biāo)識進行了限制,比如IMEI、Mac地址、序列號、廣告Id等,目的就是防止用戶的信息在多個App之間進行關(guān)聯(lián),導(dǎo)致泄漏用戶的隱私,產(chǎn)生一些安全問題和法律風(fēng)險,前述跨App的廣告行為也自然受到了抑制。 在了解一鍵登錄的技術(shù)原理時,看到某運營商提供了一種和SIM卡綁定的設(shè)備唯一Id服務(wù),宣傳語就是為了應(yīng)對移動操作系統(tǒng)限制訪問手機唯一標(biāo)識的問題,在現(xiàn)今越來越重視隱私保護的前提下,如果這種能力開放給了廣告平臺,就是開歷史的倒車了。 手機號作為身份標(biāo)識的問題對于國內(nèi)普遍使用手機號登錄的方式,從技術(shù)上很難限制App之間進行手機號關(guān)聯(lián),然后綜合分析用戶的行為。比如某家大廠運營了多款不同種類的熱門App,它就有能力更全面的了解某個用戶,如果要限制可能就得通過法律層面來解決了。至于不同廠商之間的手機號關(guān)聯(lián)行為,基于商業(yè)利益的保護,不太可能會出現(xiàn)。 在國內(nèi)這種商業(yè)環(huán)境下,如果你真的對自己的隱私很關(guān)注,最好只使用賬號密碼的方式登錄,否則經(jīng)常更換手機號可能是一種沒辦法的辦法。 手機號重新銷售問題手機號的總量是有限的,為了有效利用手機號資源,手機號注銷以后,經(jīng)過一段時間就會被運營商重新銷售。如果新的手機號擁有者拿著這個手機號登錄某個APP,而這個手機號之前已經(jīng)在這個App上注冊過,產(chǎn)生了大量的使用記錄,那么此手機號前擁有者的隱私就會被泄漏。所以大家現(xiàn)在都不太敢隨便更換手機號,因為注冊過的地方太多了,留下了數(shù)不清的使用痕跡。 在了解一鍵登錄的技術(shù)原理時,還看到某運營商提供了一種“手機號更換綁定SIM卡通知”的服務(wù),應(yīng)用可以據(jù)此解綁重新銷售的手機號與應(yīng)用賬號之間的關(guān)系,從而保護用戶的隱私。在上文中已經(jīng)提過手機卡使用IMSI進行標(biāo)識,如果手機號被重新銷售,就會綁定新的IMSI,運營商可以據(jù)此產(chǎn)生通知。當(dāng)然運營商還需要排除手機卡更換和攜號轉(zhuǎn)網(wǎng)的情況,這些情況下手機號也會綁定新的IMSI。 不得不說運營商的這個服務(wù)還是挺贊的👍。 作者:螢火架構(gòu) 鏈接:https://juejin.cn/post/7059182505101885471 來源:稀土掘金 著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。 該文章在 2024/3/25 15:10:02 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |