☰
香港版号码认证技术解析:基于移动认证的跨境一键登录方案
2026/10/31 2:12:13 网站建设 项目流程

一、先搞清楚:它是什么、给谁用

产品定位

香港版号码认证由中移互联网有限公司与中国移动香港有限公司联合推出,支持中国移动香港用户在香港本地和内地跨境场景下的一键登录与本机号码校验。

几个要点需要先明确:

  • 这是运营商专属能力,目前覆盖中国移动香港(CMHK)用户,不是面向所有香港运营商的通用服务;
  • 它是移动认证产品体系的一个延伸版本——内地已有 6 万+ 应用、7 亿月活在用同一套架构;
  • 人民邮电报 2026-10-28 报道:香港版已覆盖 500 万用户,累计调用 6700 万次。

为什么会出现这个产品

深港之间的短信通道有三个客观问题,而这些问题在跨境场景下被放大:

问题

具体表现

到达不稳定

香港号码在内地登录时,验证码走国际短信通道,延迟或丢失概率显著高于本地场景

成本偏高

国际短信单价通常是国内短信的数倍,高频登录/绑定场景下成本累计不可忽视

安全链路难控

跨境通道更长、中转环节更多,接码平台、钓鱼短信的排查和处置难度更大

官方将号码认证定位为“替代跨境场景下短信验证码登录的更优选择”——而不是唯一选择。

二、原理速览:运营商网关鉴权

“一键登录”到底是怎么做到“不碰密码、不发验证码”的?思路很朴素。

手机用蜂窝数据网络(4G/5G)上网时,运营商网关天然知道当前这条流量对应哪张 SIM 卡——这是运营商网关的天然能力,用户无法篡改。号码认证就是把这个能力产品化,官方称之为网关鉴权:

App 集成认证 SDK
→ SDK 通过蜂窝数据网络向运营商网关发起鉴权请求(用户无感)
→ 网关鉴权后返回一次性 Token(Token 关联 SIM 卡身份,不包含号码明文)
→ App 服务端凭 Token 调用移动认证平台接口完成身份确认

完整号码明文不经过客户端——SDK 只拿到掩码号码(如 +852 9123****)展示给用户,完整号码只在业务服务端和移动认证平台之间加密交换。这就是它比短信安全的核心原因:接码平台能收短信,但接不了运营商网关的 Token。

两类标准能力

  • 一键登录:用户点按钮 → SDK 拉起授权页 → 服务端凭 Token 完成身份确认,直接注册/登录;
  • 本机号码校验:用户已输入号码(绑定、换号等)→ 服务端校验“该号码是不是他这台手机的号码”。

两种场景的 Token权限隔离、不能混用,这是统一安全设计,不是香港版特有。

三、接入主流程与香港版关键配置

号码认证内地版和香港版用的是同一套产品架构、同一个平台。但接香港号码时,有几个参数和约束必须按香港版要求配置——这些是官方文档里明确标注“中国移动香港运营商”专属要求的,配错直接调不通。

以下只讲主流程和香港版独有的配置点。接口完整字段、签名算法示例代码、SDK 类名方法签名、请求报文结构等,请直接在中国移动互联网能力开放平台查询官方文档。

3.1 一键登录

场景:用户点击“一键登录”,业务方尚未获取其号码。

主流程:客户端 SDK 预取号 → 拉起授权页 → 用户确认 → 获取 Token → Token 上送服务端 → 服务端调移动认证接口完成身份确认。

香港版必配参数(服务端接口调用时):

配置项

取值

为什么要这么配

version

"3.5"

只有 3.5 才返回 operatortype 字段,用来识别"4 = 中国移动香港"

encryptionalgorithm

"RSA"

香港只支持 RSA,不支持国密(官方文档标注了两次)

strictcheck

"1"

开启服务器出口 IP 白名单强校验,必填

签名与解密规则(香港版 RSA):

  • 签名:SHA256withRSA(appid + token)→ hex 编码;使用社区"应用公钥 1"对应的私钥
  • 解密号码:响应中的 msisdn 密文用社区"应用公钥 2"对应的私钥 RSA 解密
  • 密钥对用PKCS#8格式生成,公钥报备用Base64编码

接口域名:主域名onekey2.cmpassport.com、备域名www.cmpassport.com,跨境场景建议主备自动重试。

几个关键返回码:103000成功、103511IP 不在白名单、104201Token 失效、105018Token 类型错(用校验 Token 调了登录接口)。

3.2 本机号码校验

场景:用户已输入号码(绑定、换号等),业务方要验证“该号码是不是他这台手机的”。

主流程:用户输入号码 → 客户端 SDK 获取校验 Token → Token + 加密后的号码上送服务端 → 服务端调接口获取校验结果。

香港版必配参数:

配置项

取值

为什么要这么配

version

"2.5"

只有 2.5 才返回 operatortype 字段

keyType

"1"

RSA 加密(香港只支持 RSA)

openType

"4"

显式声明中国移动香港,平台据此路由鉴权链路、选择密钥——写错直接调不通

requesterType

"0"

APP 端调用

加密与签名规则:

  • 加密待校验号码:RSA_公钥加密(手机号 + appKey + timestamp)→ Base64 编码;公钥使用社区提供的平台公钥
  • 签名:SHA256withRSA(appId + msgId + phoneNum + timestamp + token + version)→ Base64 编码

接口域名同一键登录。该能力为收费业务,未签订服务合同前有每日免费测试次数上限。

几个关键返回码:000是本机号码、001非本机号码(允许短信验证码辅助)、124白名单校验失败、302签名校验失败。

3.3 客户端 SDK 核心调用链

SDK 的完整类名、方法签名、初始化参数请以对应平台(Android / iOS)的 SDK 文档为准。以下是核心调用链伪代码:

// 1. 初始化(AppId 在开发者社区申请)
SDK.init(appId, appKey)

// 2. 预取号(进入登录页时提前调,缓存掩码号码如 "+852 9123****")
SDK.preLogin() → 成功返回掩码号码,失败降级其他登录方式

// 3. 一键登录(用户点击按钮)
SDK.oneKeyLogin() → 成功返回 token,上送服务端;失败降级

// 4. 本机号码校验(绑定/换号场景)
SDK.mobileAuth(用户输入的号码) → 成功返回校验 token,上送服务端

几个必须知道的约束:

  • 鉴权必须开启蜂窝数据网络,纯 Wi-Fi 无法完成(运营商网关只认数据通道)
  • 双卡设备取的是当前上网卡对应的号码,授权页展示掩码号码就是让用户确认身份
  • 预取号时机很重要:登录页刚onCreate就调,用户点按钮时掩码号码已缓存,授权页“秒开”;预取号太晚是登录体验差的常见原因
  • SDK 调用需要真机测试,模拟器取不了号

3.4 联调 Checklist

检查项

备注

服务端出口 IP 白名单

strictcheck=1 强校验,部署新服务器别忘了更新

Token 时效与一次性

有效期 2 分钟,不可重复使用

两类 Token 隔离

一键登录 Token 和本机校验 Token 不能混用

香港版参数

encryptionalgorithm/keyType=RSA、openType=4、version=3.5/2.5

RSA 密钥规范

PKCS#8 格式,公钥 Base64 报备

真机测试

必须开启蜂窝数据,模拟器不通

降级策略

保留备用登录通道,认证失败时自动切换

监控埋点

预取号成功率、授权转化率、服务端接口成功率必上报

四、安全与合规:五层防护 + 一条合规通道

号码认证能比短信验证码安全,核心在下面这五层设计。前三层是网关鉴权本身的机制,后两层是平台额外提供的风控信号。

第一层:网关鉴权天然防伪

短信容易被劫持,因为它要从短信通道走——伪基站、恶意 APP 读短信、接码平台,中间环节太多。而号码认证走的是运营商自己的网络通道,网关直接和 SIM 卡“对话”,这条链路外人插不进来。官方口径叫“规避验证码劫持风险”,就这么简单。

第二层:Token 三大约束

官方文档原文写了三条必须同时满足的条件,翻译成大白话:

token 在有效期内(2 分钟)、token 还未使用过、应用服务器出口 IP 在白名单中

逐条解释:

2 分钟过期——Token 像一张有时间戳的高铁票,只能在签发后 2 分钟内用。为什么这么短?因为如果 Token 被窃取,攻击者能用它的时间窗口被压到最小;而且他还得过第三层的 IP 白名单卡着。

一次性使用——用过一次立刻作废,不管是你自己用的还是别人偷了重播的。防的是重放攻击:你在家连了个不靠谱的 WiFi,黑客抓包拿到了你那次登录的 Token,然后用自己的服务器把同一个 Token 再发一遍。如果 Token 不做一次性,黑客就能用你的身份登录;做了一次性,他第二次发直接 104201。

两类 Token 权限隔离——一键登录 Token 只能调一键登录接口,本机校验 Token 只能调本机校验接口。虽然长得都是一串随机串,但平台内部做了权限标记,混用直接 105018。防的是 API 被"借道"——如果两类 Token 混用不报错,攻击者拿到一个绑卡场景的校验 Token,理论上可以去调登录接口冒充别人登录。

第三层:服务端 IP 白名单强校验

Token 不是你想调就能调的。你得在开发者社区把自己服务端的出口 IP配进去,然后请求里带strictcheck=1开启强校验。有人偷到了 Token 但他的服务器 IP 不在你配置的白名单里?Token 就算对,平台也不认,直接 103511。

相当于 Token 是钥匙,但门只对“从你家出发”的请求开放。

第四层:IP 一致性风控信号(可选)

想再加一层风控?让客户端把自己的 IP 地址 MD5 后传给 SDK(clientipmd5参数),平台会比较两个 IP:取号时的 IP(SDK 鉴权时的网络出口)和登录时的 IP(服务端调接口时的出口)。两个 IP 不一致会在响应里返回isIPmatch=0,官方说“不影响号码结果返回”,但业务侧可以把这个当成风控信号——取号 IP 在香港、登录 IP 在深圳,正常;取号 IP 在香港、登录 IP 在新加坡,值得警觉。

第五层:号码全程密文

完整号码客户端全程不触达。SDK 只拿得到掩码号码展示给用户,完整号码只在服务端和移动认证平台之间 RSA 加密交换(密钥对由你生成、公钥在社区报备)。客户端抓包、反编译,拿到的永远是密文。

合规通道:“一个号码、两地认证”

最后一条不是技术设计,是官方给的合规方案。内地业务要过《网络安全法》,香港业务要过 PDPO(《个人资料(私隐)条例》),这套模式同时满足两边要求——对出海团队来说,这条现成的合规通道省去了大量法务与产品设计成本。

五、落地场景

据人民邮电报与 21 世纪经济报道,香港版号码认证已明确的应用方向:

  • 账号全生命周期:绑定与换绑、密码修改;
  • 高频操作校验:信息查询、提现交易、权益领取、页面授权;
  • 民生高频场景:交通出行、移动支付、购物消费;
  • 已接入实例:MyLink(中国移动香港官方 App)、最优鲜等。

未来该服务将接入更多内地应用,覆盖湾区居民日常交通、支付、购物等高频场景。

六、总结

香港版号码认证,本质是把内地验证成熟的运营商网关鉴权模式,延伸为跨境身份认证通道——这是中国移动在境外身份认证领域“零的突破”。

从技术视角看,这套方案的价值不止于“登录快 10 倍”:服务端两大接口的规范化开放、operatortype=4的运营商级识别、“一个号码、两地认证”的合规模式,共同构成了一条可复用的跨境身份认证通道,为内地与香港数字服务规则衔接、大湾区数字化协同发展提供了可借鉴的实践路径。

号码认证替代短信验证码在内地已是不可逆的趋势;跨境场景下,这个趋势才刚刚开始。

参考资料

  1. 《移动认证服务端接口文档》(2026-08-06 版)
  2. 人民邮电报:《中移互联网"移动认证"助力"一个号码"畅游大湾区》,2026-10-28(finance.sina.com.cn/roll/2026-10-28/doc-iniwtpki9812167.shtml)
  3. 21世纪经济报道:《香港移动号码"丝滑"登录内地应用》,2025-04
  4. 央广网:《数智赋能汇聚大湾区融合发展新动能》,2024-09-05(tech.cnr.cn/ycbd/20240905/t20240905_526889563.shtml)
  5. 格隆汇:《中国移动推出香港版号码认证服务》,2025-04-23
  6. 香港《个人资料(私隐)条例》(PDPO)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询