手机号码一键登录是最近两三年出现的一种新型应用登录方式,比之前常用的短信验证码登录又方便了不少 。登陆时,应用首先向用户展示带有本机号码掩码的授权登录页面,用户点击“同意授权”的按钮之后,应用即可获取到完整的本机号码,从而完成用户的登录认证 。在这个过程中,应用只要确认登录用的手机号码是在绑定了此号码的手机上发起的即可认证成功,从这一点来看,它和短信验证码登录并无本质区别,都是一种设备认证登录方式 。这篇文章就来捋一下其中的技术门道 。
这几年为了保护用户的隐私安全,Android和iOS系统都限制了应用获取本机号码的能力,即使通过某些技术手段获取到了本机号码,这个号码还可能是被篡改的,所以应用直接读取本机号码用于登录是不可行的 。那么这些应用是怎么获取到真实的本机号码的呢?答案是电信运营商,手机要打电话、要上网、要计费,运营商肯定能对应到正确的手机号码 。国内的运营商就是移动、联通、电信这三家,它们都开放了这种能力 。对于在互联网大潮中被管道化的运营商来说,不失为一种十分有意义的积极进取 。
手机流量上网的原理手机号码一键登录是借助手机流量上网来实现的,所以先要搞清楚流量上网的原理 。
目前网上已有很多关于一键登录的技术文章,但是内容基本雷同,关于获取手机号码的部分,所述都是通过运营商的数据网关能力,语焉不详,对于有追求的技术人来说,难以忍受 。这个章节就来介绍下这种从数据网关获取手机号码的能力是如何实现的,因为通信专业知识十分繁杂,我也没有经过专业的学习,大家也不想接触到很多的专业名词,所以这里只保留一些关键的专业名词,尽量以通俗易懂的方式来理清这个机制 。
五层网络模型对网络比较熟悉的同学,应该了解五层协议,那么手机流量上网时的五层网络模型有何不同呢?
文章插图
从上图可以看出,手机流量上网的主要区别在数据链路层和物理层 。在数据链路层,流量上网没有MAC地址的概念,它采用一种点对点协议(PPP),手机端通过拨号方式建立这种PPP连接,然后发送数据 。在物理层,流量上网通过手机内置的基带模块进行无线信号的调制、解调工作,从而实现与移动基站之间的电磁波通信 。
流量上网的机制点对点协议支持身份验证功能,手机端发起连接时会携带自己的身份证明,一般就是手机卡内置的IMSI,这个IMSI也会保存在运营商的数据库中,因此基站就可以验证连接用户的身份,当然这个验证过程不是简单的对比IMSI,会有更多安全机制 。为了更清楚的了解流量上网机制,下面再来一张4G流量上网时手机与运营商的交互示意图:
文章插图
核心组件手机:这其中对流量上网起到关键作用的就是手机卡和基带模块 。手机卡中保存了IMSI,全称International Mobile Subscriber Identification Number,国际移动用户识别码 。IMSI是手机卡的身份标识 。
基站:就是外边常见的铁架子信号塔,是一种能覆盖一定范围的无线电收发信息电台,手机会连接到它,然后它再通过光纤连接到运营商网络,从而实现移动通信 。
MME:Mobility Management Entity,移动控制单元 。手机建立连接时会先访问到这里,负责:手机与基站的接入控制,手机卡的鉴权、会话管理、安全传输,漫游控制、跨运营商通信等 。
HSS:Home Subscriber Server,归属签约用户服务器 。保存本地签约的手机卡信息,包括手机卡IMSI与手机号的对应关系,手机号的套餐信息、手机号的归属地信息等 。
S-GW:Service Gateway,服务网关 。4G环境下,用户侧与运营商核心网之间的业务网关 。访问能不能进入,能做什么业务,去哪里做业务,是在这里控制的 。跨运营商计费、漫游计费等也在这里完成 。
P-GW:PDN Gateway,PDN网关 。运营商核心网与互联网之间的网关,手机真正上网就是通过它了 。它会给手机分配一个IP地址,控制上网的速度,对流量进行计费等 。
PCRF:Policy and Charging Rules Function,策略与计费控制单元,保存每个用户的网络访问策略和计费规则 。
上网过程为了方便理解,这里将上网的过程大致分为两个部分(和上图的1、2对应):
- 1 接入:建立连接时,手机携带IMSI信息,通过基站访问到MME,MME通过HSS验证IMSI信息,然后MME进行一些初始化工作,返回一些鉴权参数给手机,手机再进行一些计算,然后把计算结果返回给MME,MME验证手机的计算结果,验证通过则允许接入 。这个过程保证了接入的安全,MME还为后续的数据传输提供了加密传输支持,保护数据不被窃听和篡改,有兴趣的同学可以去详细了解下 。如果手机卡销售的时候没有写入手机号,手机卡首次注册登记的时候,运营商会从HSS中取出手机号,然后再写入手机卡中 。实际应用中,为了防止跟踪和攻击,不是每次通信时都要携带IMSI,MME会生成一个临时的GUTI对应到IMSI,就像Web程序中的SessionId 。MME还有一定的机制控制GUIT的重新分配 。
- 手机号码算命查吉凶
- 一文搞懂公务员和事业编的区别 公务员与事业编的区别
- 手机号码怎么导入到另一个手机 手机号码怎么导入到另一个手机上
- 中国首个办手机号码的人 中国第一手机号谁用的
- 你手机号码用了几年 手机号用了多少年
- 再也不担心手机号码被注册 刚办的手机号被注册了怎么办
- 虚拟运营商与手机号码的比较 手机号码虚拟运营商和别的有什么区别
- 为什么我国手机号码是11位 为什么我国的手机号码是11位
- 七步解绑新版微信绑定的手机号码和QQ号 微信绑定qq号后如何解绑手机号
- 手机号中如果没有这些数字 手机号码中尽量不要有什么数字