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