本发明所属互联网领域,具体为一种防止手机号码泄露的手机注册方法、系统及服务器。
背景技术:
当今很多网站、app等互联网服务采用手机短信验证用户身份的注册方式,即用户注册网站/app等时,需要提供一个手机号码,网站/app等的服务器即注册服务器生成一个随机的验证码,通过短信发送到该用户提供的手机号码,用户填入收到的验证码,提交到注册服务器,注册服务器即对比用户提交的验证码与通过短信发给该手机号码的验证码是否一致,以此确认该手机号码确系所注册用户拥有,从而验证了该注册用户的身份真实性。同时,在用户注册后的关键服务操作中,如找回遗忘的密码、更新密码等时,也往往需要用户进行手机短信验证。该类手机短信验证的注册流程如图1所示。
这种验证方式简单快捷,手机号码成为用户的标识。带来的问题是,网站/app等服务提供方轻易得到了用户的手机号码,存在泄露风险。不法网站/app等服务提供方利用持有的用户注册手机号可能拨打手机号码进行推销,或将注册手机号码转卖给不法分子。
如今手机用户经常收到各种骚扰电话、电信诈骗电话或短信等,很大一部分原因就是手机号码被泄露了。骚扰电话、电信诈骗对社会危害很大,并且已经产生了非常恶劣的后果。因此,需要一种方法来防止用户真实手机号码因为注册网站、app等互联网服务而被泄露,同时又能满足注册互联网服务时通过手机号码进行远程身份认证的需求。
网站/app等互联网服务注册的手机号码泄露的根本原因是该号码明文传输,服务提供方得到了真实的用户注册手机号码。目前,防止用户关键信息的泄露已经有很多研究:
如:互联网界提出openid来作为用户的互联网身份标识。google、微软作为openid的发起人,形成了一系列的规范。用户通过身份认证获得openid后,在互联网服务注册等场合就使用其openid,不再需要输入手机号码等,间接防止了手机号码泄露。
如:中华人民共和国公安部开发了ctid(中国电子身份证认证平台)。通过ctid平台,用户可以得到一个电子身份证,该电子身份证不同于用户的真实身份证。在需要验证身份证的场合,用户不需要提供身份证号码,而是使用电子身份证(以二维码的方式)来进行认证,这样就可以防止身份证号码等信息的泄露。
如:虚拟手机号码,如阿里小号、手机密号等,就是用户可以申请一个虚拟手机号码,跟用户的真实手机号码绑定。该虚拟号码在形式上和使用上与正常手机号码完全一致,可以收发短信和电话。该虚拟手机号码是在电话网络中可路由的号码,类似于一卡多号。实际上虚拟号码就是由虚拟号码服务商或虚拟运营商从移动运营商处申请到的正常手机号码,接到发到该号码的呼叫或短信时,虚拟号码服务商或虚拟运营商将相应的呼叫或短信等通过呼叫转移等方法转到用户的真实手机号码。
如:移动运营商如中国移动,提供了手机副号业务。用户可以申请跟真实手机号码绑定的一个副号码,这个号码类似于一个虚拟号码,可以收发短信和电话。
以上技术方案,openid、ctid等方式没有考虑手机号码,而虚拟手机号码并没有解决用户真实手机号码的泄露问题,因为它还是要求用户提供真实手机号码来得到虚拟号码。另外基于虚拟号码或副号的方案中,用户提供虚拟号码后,还是会被电话或短信联系到,这仍然也是一种泄露。虚拟手机号码一般使用期较短,如一周、三个月等,更适合专用于的某个短期事项如卖房、购房等场合,以避免因电话号码泄露而被长期骚扰,并不适合注册长期互联网服务的场合。
技术实现要素:
本发明的目的在于,提供一种防止手机号码泄露的手机注册方法、系统及服务器,以避免互联网服务采用手机验证码注册时造成的用户手机号码的泄露。
为了实现上述目标,本发明提供了如下技术方案:
一种防止手机号码泄露的手机注册方法,包括:
注册服务器接收用户端触发的注册请求,并发送至网关服务器;所述注册请求包括触发所述注册请求的用户端的识别信息;
所述网关服务器根据所述注册请求获取所述用户端的用户手机号码,并生成对应于所述用户手机号码的一个随机验证码,发送至所述用户端;
所述网关服务器获取并验证所述用户端返回的随机验证码;
所述网关服务器对验证成功的用户手机号码匹配唯一的用户识别号,并发送至所述注册服务器;
所述注册服务器根据所述用户识别号完成注册。
进一步,还包括:
所述网关服务器向验证成功的用户手机号码对应的用户端发送权限标识信息,并获取所述用户端对所述权限标识信息的应答;所述权限标识信息包括是否开放所述用户手机号码的联系权限;
所述网关服务器在所述用户端应答开放所述用户手机号码的联系权限的情况下,获取所述用户手机号码的授权码,并将所述授权码与用户手机号码之间的对应关系、及所述用户手机号码与用户识别号之间的对应关系保存到已发授权码列表;
所述网关服务器将所述授权码发送至所述注册服务器。
由此,在用户手机号码开放联系权限的情况下,互联网服务方可以主动联系该用户手机号码。作为举例而非限定,联系权限可以包括主动呼叫联系权限、主动短信联系权限等。而在用户手机号码没有开放联系权限的情况下,可以屏蔽互联网服务方主动联系该用户手机号码。
本发明还提供一种网关服务器,包括:
网关获取单元,用于接收注册服务器发送的注册请求,并根据所述注册请求获取对应用户端的用户手机号码;所述注册请求包括触发所述注册请求的用户端的识别信息;
网关验证单元,用于生成对应于所述用户手机号码的一个随机验证码,并发送至所述用户端,及获取并验证所述用户端返回的随机验证码;
网关匹配单元,用于对验证成功的用户手机号码匹配唯一的用户识别号,并将所述用户识别号发送至所述注册服务器。
进一步,所述匹配单元包括:
存储模块,用于获取并存储用户手机号码与其唯一的用户识别号之间的对应关系;
判断模块,用于检索所述存储模块,并判断验证成功的用户手机号码是否具有唯一的用户识别号,并在具有的情况下,调取所述用户识别号发送至所述注册服务器;
生成模块,用于在验证成功的用户手机号码没有唯一的用户识别号的情况下,生成与所述用户手机号码唯一对应的用户识别号,并发送至所述注册服务器。
进一步,所述网关服务器还包括:
网关注册单元,用于完成注册服务器在所述网关服务器的注册,并生成与所述注册服务器唯一对应的appid和key。
由此,在网关服务器接收到注册请求后,可以根据appid和key验证该注册服务器是否为有效应用。此外,还可以方便用户在被互联网服务方主动联系到后,可以准确辨别对方获得自己手机号码的途径。
进一步,所述网关服务器还包括:
网关询问单元,用于向验证成功的用户手机号码对应的用户端发送权限标识信息,并获取所述用户端对所述权限标识信息的应答;所述权限标识信息包括是否开放所述用户手机号码的联系权限;
网关授权单元,用于在所述用户端应答开放所述用户手机号码的联系权限的情况下,获取所述用户手机号码的授权码,并将所述授权码与用户手机号码之间的对应关系、及所述用户手机号码与用户识别号之间的对应关系保存到已发授权码列表,并将所述授权码发送至所述注册服务器。
本发明还提供一种注册服务器,为互联网服务方,其包括:
注册请求单元,用于获取用户端触发的注册请求,并发送至网关服务器;所述注册请求包括触发所述注册请求的用户端的识别信息;
注册单元,用于接收所述网关服务器发送的用户识别号,并完成所述用户识别号在所述注册服务器的注册。
本发明还提供一种防止手机号码泄露的手机注册系统,包括用户端、以及本发明提供的注册服务器和网关服务器;
所述用户端、所述注册服务器、所述网关服务器三者之间相互通信连接;
所述用户端,用于触发的注册请求;所述注册请求包括触发所述注册请求的用户端的识别信息。
目前,由于手机号码是运营商提供的,且运营商是唯一的权威中心,因此在本发明中,可以通过运营商或其授权单位来提供网关服务器用于手机身份验证的服务,该服务的网址可以广为人知(well-known)且具有足够公信力。
与现有技术相比,本发明的有益效果在于:采用本发明提供的技术方案,可以有效防止互联网服务采用手机验证码注册时造成的用户手机号码的泄露,使手机验证变得可靠;同时,可以让用户自己选择是否将手机号码的主动联系权限开放给互联网服务方。
附图说明
图1为现有手机短信验证注册的流程图。
图2为本发明实施例2提供的防止手机号码泄露的手机注册方法的一种流程图。
图3为本发明实施例5提供的防止手机号码泄露的手机注册系统的一种框图。
图4为本发明提供的防止手机号码泄露的手机注册方法的一种消息序列图。
图5为本发明提供的注册服务器有效联系用户手机号码的一种消息序列图。
图6为本发明提供的注册服务器恶意联系用户手机号码的一种消息序列图。
附图标记说明
100用户端,200注册服务器,300网关服务器。
具体实施方式
下面将结合具体实施例及其附图对本发明提供的技术方案作进一步说明。结合下面说明,本发明的优点和特征将更加清楚。
需要说明的是,本发明的实施例有较佳的实施性,并非是对本发明任何形式的限定。本发明实施例中描述的技术特征或者技术特征的组合不应当被认为是孤立的,它们可以被相互组合从而达到更好的技术效果。本发明优选实施方式的范围也可以包括另外的实现,且这应被本发明实施例所属技术领域的技术人员所理解。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限定。因此,示例性实施例的其它示例可以具有不同的值。
需要说明的是,除非另有明确的规定和限定,本发明中的术语应做广义理解,对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1
本发明提供一种防止手机号码泄露的手机注册方法,包括如下步骤:
s1.注册服务器接收用户端触发的注册请求,并发送至网关服务器;所述注册请求包括触发所述注册请求的用户端的识别信息;
在本发明中,用户端可以是绑定了用户手机号码的手机、电脑等智能终端设备,注册服务器可以由互联网服务方来提供,网关服务器可以由手机号码运营商或其授权单位来提供。
在优选的实施方式中,可以采用手机作为用户端,且手机中安装有与注册服务器关联的互联网应用app。用户想要在互联网应用app中注册,可以在该互联网应用app中触发注册请求,注册请求中自动嵌入用户手机的识别信息。注册服务器在接收到注册请求后,不直接给用户手机发送验证码,而是将该注册请求发送至网关服务器。
s2.网关服务器根据注册请求获取用户端的用户手机号码,并生成对应于用户手机号码的一个随机验证码,发送至用户端;
网关服务器接收到注册请求后,向用户手机获取用户手机号码,并在接收到用户手机号码后,生成对应于该用户手机号码的一个随机验证码,发送用户手机。在优选的实施方式中,可以采用短信的方式向用户手机发送随机验证码。
s3.网关服务器获取并验证用户端返回的随机验证码;
用户手机接收到随机验证码后,再将随机验证码发送至网关服务器进行验证。网关服务器对手机返回的随机验证码进行验证,在本领域已经是非常成熟的技术,本发明就不再赘述。
s4.网关服务器对验证成功的用户手机号码匹配唯一的用户识别号,并发送至注册服务器;
随机验证码验证成功后,网关服务器将对验证成功的随机验证码对应的用户手机号码匹配唯一的用户识别号。该标识号不能直接接听电话或收短信,但是跟用户手机号码唯一绑定,从而保证在得到运营商授权时可以查询到该用户在运营商处的真实身份信息。
s5.注册服务器根据用户识别号完成注册。
注册服务器接收到用户识别号后,可以将该用户识别号作为用户在其互联网应用app中的注册账号,对其完成注册,具体注册方法在本领域也非常成熟,本发明也不再赘述。
由此,用户在互联网应用app中注册时,其手机号码就不会泄露给注册服务器,即互联网服务方。
实施例2
对于一些互联网服务注册用户,在完成互联网应用app注册后,可能会期望被互联网服务方主动联系,以便于互联网服务方可以及时向其推介新产品或新服务。
进一步,如图2所示,本发明提供的防止手机号码泄露的手机注册方法,还可以包括如下步骤:
s1.注册服务器接收用户端触发的注册请求,并发送至网关服务器;所述注册请求包括触发所述注册请求的用户端的识别信息;
s2.网关服务器根据注册请求获取用户端的用户手机号码,并生成对应于用户手机号码的一个随机验证码,发送至用户端;
s3.网关服务器获取并验证用户端返回的随机验证码;
s4.网关服务器对验证成功的用户手机号码匹配唯一的用户识别号,并发送至注册服务器;
s5.网关服务器向验证成功的用户手机号码对应的用户端发送权限标识信息,并获取用户端对权限标识信息的应答;权限标识信息包括是否开放用户手机号码的联系权限;
在本实施例中,网关服务器可以向验证成功的用户手机号码对应的手机发送权限标识信息,权限标识信息包括是否开放用户手机号码的联系权限,作为举例而非限定,联系权限可以包括主动呼叫联系权限、主动短信联系权限等。
s6.网关服务器在用户端应答开放用户手机号码的联系权限的情况下,获取用户手机号码的授权码,并将所述授权码与用户手机号码之间的对应关系、及所述用户手机号码与用户识别号之间的对应关系保存到已发授权码列表;
在用户手机应答开放该用户手机号码的联系权限的情况下,网关服务器会通过用户手机采集该用户手机号码的授权码,并将所述授权码与用户手机号码之间的对应关系、及所述用户手机号码与用户识别号之间的对应关系保存到已发授权码列表。
s7.网关服务器将授权码发送至注册服务器;
网关服务器在接收到该用户手机号码的授权码后,将该用户手机号码及其授权码发送至注册服务器,即提供给互联网服务器方,以便于互联网服务方可以主动联系该用户手机号码。
s8.注册服务器根据用户识别号完成注册。
由此,在用户手机号码开放联系权限的情况下,互联网服务方可以主动联系该用户手机号码。而在用户手机号码没有开放联系权限的情况下,可以屏蔽互联网服务方主动联系该用户手机号码。
在本实施例中,步骤s5、s6、s7可以与步骤s4同步进行,不必一定置于步骤s4之后进行,只要可以实现本实施例所述技术方案的发明目的即可。
进一步,注册服务器可以先在网关服务器完成注册,并生成与注册服务器唯一对应的appid和key。即互联网服务方先在手机运营商处进行注册。由此,在网关服务器接收到注册请求后,可以根据appid和key验证该注册服务器是否为有效应用。此外,还可以方便用户在被互联网服务方主动联系到后,可以准确辨别对方获得自己手机号码的途径。
实施例3
本发明还提供一种网关服务器,包括:
网关获取单元,用于接收注册服务器发送的注册请求,并根据注册请求获取对应用户端的用户手机号码;注册请求包括触发注册请求的用户端的识别信息;
网关验证单元,用于生成对应于用户手机号码的一个随机验证码,并发送至用户端,及获取并验证用户端返回的随机验证码;
网关匹配单元,用于对验证成功的用户手机号码匹配唯一的用户识别号,并将用户识别号发送至注册服务器。
进一步,匹配单元包括:
存储模块,用于获取并存储用户手机号码与其唯一的用户识别号之间的对应关系;
判断模块,用于检索存储模块,并判断验证成功的用户手机号码是否具有唯一的用户识别号,并在具有的情况下,调取用户识别号发送至注册服务器;
生成模块,用于在验证成功的用户手机号码没有唯一的用户识别号的情况下,生成与用户手机号码唯一对应的用户识别号,并发送至注册服务器。
进一步,网关服务器还包括:
网关注册单元,用于完成注册服务器在网关服务器的注册,并生成与注册服务器唯一对应的appid和key。
进一步,网关服务器还包括:
网关询问单元,用于向验证成功的用户手机号码对应的用户端发送权限标识信息,并获取用户端对权限标识信息的应答;权限标识信息包括是否开放用户手机号码的联系权限;
网关授权单元,用于在所述用户端应答开放所述用户手机号码的联系权限的情况下,获取所述用户手机号码的授权码,并将所述授权码与用户手机号码之间的对应关系、及所述用户手机号码与用户识别号之间的对应关系保存到已发授权码列表,并将所述授权码发送至所述注册服务器。
实施例4
本发明还提供一种注册服务器,为互联网服务方,包括:
注册请求单元,用于获取用户端触发的注册请求,并发送至网关服务器;
注册单元,用于接收网关服务器发送的用户识别号,并完成用户识别号在注册服务器的注册。
实施例5
本发明还提供一种防止手机号码泄露的手机注册系统,如图3所示,包括用户端、以及本发明提供的注册服务器和网关服务器;
用户端、注册服务器、网关服务器三者之间相互通信连接;
用户端,用于触发的注册请求;注册请求包括触发注册请求的用户端的识别信息。
在优选的实施方式中,用户端采用手机,手机中安装有互联网服务方的互联网应用app,可以通过用户手机中的互联网应用app触发对互联网服务方的注册请求。
实施例6
图4为本发明提供的防止手机号码泄露的手机注册方法的一种消息序列图,具体包括步骤:
s1、用户登入网站或app等互联网服务,请求在注册服务器进行注册。
s2、注册服务器希望通过手机验证身份时,不是直接给用户手机发送短信验证码,而是将用户导向前述的手机验证服务的网址(即可信的验证网关)。
每个注册服务器都会事先在验证网关处完成注册,并获得唯一的appid和key等,用于在验证网关处标识其身份。验证网关根据appid和key验证该注册服务器是否为有效应用。若无效,则丢弃该申请认证的请求消息,若有效,则继续以下步骤。
s3、验证网关在验证界面提示用户输入手机号码。
s4、用户在相应的验证界面输入用于注册的手机号码,并请求通过短信获得验证码。
s5、验证网关产生一个随机验证码,并通过短信将验证码发送给该手机号码。同时,验证网关临时保存该随机验证码,以及该手机号码和它们的对应关系,用于随后的验证。
为了防范重放攻击、暴力穷举等攻击手段,验证网关可以采用一次性密码(onetimepassword)方法产生和验证该随机验证码,如已经标准化的,公开于ietfrfc4226的基于hmac的一次性密码算法(hotp,hmac-basedone-timepassword)和公开于ietfrfc6238的基于时间的一次性密码算法(totp,time-basedone-timepassword)等方法来实现。这些验证码具有使用一次即失效(hotp),或超时(如120秒)即失效(totp)的特性。本申请与一般的hotp和totp使用方式不同的是,hotp和totp中的共享密钥仅由验证网关持有,验证网关在这里既充当了一次性密码的生成者,又充当了验证者。
s6、用户在相应的验证界面输入收到的验证码,并提交到验证网关进行验证,对验证成功的用户手机号码匹配唯一对应的用户识别号,并发送给注册服务器。
用户在验证网关处有唯一的用户识别号,该用户识别号不能直接接听电话或收短信,但是跟用户的注册手机号码唯一绑定,从而保证在得到移动运营商授权时可以查询到该用户在运营商处的真实身份信息。
本申请与采用副号/小号等虚拟号码的方案不同,采用副号/小号等虚拟号码方案中,都是给了一个普通的手机号码,比如178123456789,并且是任何人都可以直接拨打的。而本申请给的用户识别号类似于用户的昵称,可以采用数字或者字符串,不能用电话直接拨打,需要通过验证网关转换,并且只能在用户授权的前提下。
a)首次到该验证网关进行身份验证的手机号码,验证网关会为其生成唯一的用户识别号。
b)以前在该验证网关验证过的手机号码,验证网关通过检索数据库得到该注册手机号码的用户识别号。
s7、验证网关向验证成功的手机发送权限标识信息,并获取该手机对权限标识信息的应答。
如果用户手机号码希望以后能够被主动呼叫、联系,验证网关会进一步要求用户在手机界面输入授权码。
s8、作为对s7的响应,用户如果同意授权注册的互联网服务方以后能够主动呼叫、联系其注册的用户手机号码,就输入满足一定规则的自定义授权码。验证网关收到该授权码,在验证授权码符合规则后即将该授权码、用户手机号码、用户识别号及其之间的对应关系保存到已发授权码列表。授权码可以是数字、字母、符号等的组合,需要防止他人猜测到或简单穷举到,同时需要能够唯一标识该用户所注册的互联网服务。
s9、验证网关将用户识别号及授权码发送给注册服务器,并将用户导向回注册服务器的注册界面。
s10、注册服务器注册界面通知用户注册成功。
通过以上的步骤可以防止用户的手机号码泄露。并且,用户在授权不同注册服务器时,可以使用不同的授权码来标识该注册服务器及其相应的互联网提供方。
当互联网服务方希望联系到用户时,注册服务器就发送短信或呼叫给前述验证网关,并携带了用户识别号及授权码。验证网关收到用户识别号及授权码后检索已发授权码列表,验证了授权码及与用户识别号对应关系正确后,对于注册服务器所发送的短信,验证网关直接转发给用户注册手机号码,对于呼叫,验证网关可以通过呼叫转移或呼叫中继将用户与注册服务器的互联网服务提供方接通,参见图5。
用户手机会显示呼叫或短信的来源,及用户识别号、授权码二者其一或二者都给出,这样用户就能唯一辨识出呼叫或短信来源(或注册手机号码泄露源)。用户判定该呼叫或短信是否为骚扰,并做出相应处理。
当用户判断出恶意呼叫或短信时,可以将用户识别号和相应授权码提交到验证网关,验证网关即可将该授权码吊销,并可进一步将该注册服务器/互联网服务提供方(相应的appid和key)列入黑名单,将处理结果通知到相关各方。该方法杜绝了相应注册服务器/互联网服务提供方使用或泄露用户识别号和授权码,对用户继续造成电信骚扰或诈骗,参见图6。
进一步的,为了防止授权码在传输过程中泄露或被截取,可以采用公开于ietfrfc6238的基于时间的一次性密码算法(totp,time-basedone-timepassword),将授权码作为相关三方持有的共享密钥。每次需要发送授权码时,发起方将基于该授权码和totp算法生成的一次性密码发送到对方即可,对方可基于该授权码,即共享密钥,和totp算法对收到的一次性密码进行验证,通过则表明对方确实持有相应授权码。
上述描述仅是对本发明较佳实施例的描述,并非是对本发明范围的任何限定。任何熟悉该领域的普通技术人员根据上述揭示的技术内容做出的任何变更或修饰均应当视为等同的有效实施例,均属于本发明技术方案保护的范围。