一种新的移动应用身份验证系统设计研究
2018-06-07孙小华江慧戴百克袁淑娟
孙小华 江慧 戴百克 袁淑娟
摘 要:文章提出一种移动应用身份验证系统设计方法,通过发起一个未接通电话呼叫的方式来验证用户提交的注册申请中的身份信息是否真实有效。此方法可以为移动应用运营商省去通过发送短信验证码进行手机号码验证所需费用,而且免除用户填入收到的短信验证码这一步骤,提高用户的使用体验。为防止消息传送过程中产生泄密,手机客户端与移动身份验证平台之间传输的消息将采用哈希函数进行加密。
关键词:移动应用;身份验证;哈希函数
近年来,随着“互联网+”战略的实施和发展,我国移动应用市场应用数量呈现爆发性增长。根据工信部发布的2017年上半年我国互联网业务运行情况报告,国内移动应用程序市场持续活跃且移动互联网应用数量己超402万款,且数量还在不断快速增长。
2016年6月,国家互联网信息办公室发布了《移动互联网应用程序信息服务管理规定》,要求移动应用程序按照“后台实名、前台自愿”的原则,对注册用户进行基于移动电话号码等真实身份信息认证[1]。目前,用户在使用大多数移动应用时都需要进行注册,注册流程基本上是用户输入手机号码,然后输入应用后台发送的短信验证码进行验证。在这个注册流程中,移动应用运营商需要花费约3-8分钱的成本发送一条验证码短信到用户手机号码,用户收到验证码短信之后还需要手动输入到注册界面上。
本文拟提出一种新的移动应用身份验证方式,应用先尝试自动获取本机手机号码,如不能获取成功,提示用户手动输入本机手机号码后,验证系统通过呼叫能力开放接口厂家提供的呼叫接口向此手机号码发起一个呼叫,在用户接通这个呼叫之前中断接续过程,通过手机产生的未接来电信息对用户的身份进行验证。通过这种身份验证方式,移动应用运营商节省了短信发送费用,同时,用户不需手动输入验证码,从而提高了用户的体验。
1 相关研究现状
目前,移动应用的实名认证流程基本上是用户输入手机号码,然后点击“发送验证码”,移动应用后台通过发送短信验证码到用户输入的手机号码上,用户再输入收到的短信验证码,最后点击“注册”按钮。在这个注册流程中,移动应用运营商需要花费成本发送一条验证码短信到用户手机号码,用户收到验证码短信之后还需要手动输入或者复制到注册界面上。如果注册用户数目庞大的话,运营商的短信费用开支会很大,而且验证过程需要用户手动输入验证码,用户体验不友好{2]。
有些移动应用注册时通过验证用户输入的邮箱地址来对用户进行身份验证,虽然不需要短信通信费用,但这种方式做不到真正的实名。在注册一些涉及交易过程的移动应用APP,如支付宝、手机银行等时,用户还需要通过输入用户的身份证号码或将身份证件扫描上传等方式,由后台人员人工审核注册信息,这种方式需要用户做繁琐的操作,系统后台的人工工作量也很大,不适用于一般的移动应用APP。此外,随着人工智能技术的发展,人脸识别、指纹识别等在用户验证过程中应用已经比较广泛,但这种方式还是需要通过手机号码的验证来进行补充才能做到实名。由于国家已经强制要求运营商对移动手机号码的用户进行实名登记,所以移动应用身份验证的最基本方法还是通过用户的手机号码来验证{3}。
2 移动应用身份验证系统工作流程
本文拟提出一种新的移动应用身份验证方式,通过发起、监听和处理手机未接来电的方式,将用户注册过程中的短信认证方式改为通过未接电话信息认证的方式,提升注册过程中身份验汪的用户体验。
此身份验证系统工作流程如图1所示。用户在输入本机手机号码后,直接点击“注册”按钮,通过消息交互后由移动应用APP调用移动应用身份验证系统接口,本移动应用身份验证系统将调用呼叫能力开放接口厂家提供的呼叫接口向用户输入的手机号码发起通话呼叫,在接续流程完成后立即中断呼叫,用户的手机号码将产生一条未接来电信息,身份验证系统对未接来电进行监听,如果监听到未接来电,判断未接来电的呼叫方信息是否与身份验证系统发起呼叫方信息一致,如果一致则认为是身份验证成功,将验证成功信息返回给第三方应用软件,并将该呼叫信息设为己接电话;否则忽略该条未接来电信息;如果在预先设定的时间内没有收到正确的未接来电呼叫信息,则认为身份验证失败,将验证失败信息返回给第三方应用软件。其中,调用呼叫能力开放接口可选用中国电信协同通信开放平台,该协同通信开放平台是一个支持富通信模式的创新通信平台,该平台可以提供多种呼叫控制服务,并对外提供开放接口[4]。
3 用户注册消息流程
用户注册过程中消息流程如图2所示
(1)用户申请注册时,移动应用APP将发送第一次注册请求消息至移动身份验汪平台,消息中含有授权的移动应用标识。
(2)移动身份验证平台对消息中的移动应用标识进行验汪,以防非法应用软件接入进来。如果移动应用标识验证成功,则在第一次注册响应消息中要求移动客户端将手机号码、IMSI码(可选)、用户名、用户密码等用户信息及时间戳传送至身份验证平台;如果移动应用标识验证失败,则返回注册失败消息,注册过程结束。其中IMSI (InternationalMobile Subscriber Identification Number)码为国际移动用户识别码,是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,使用0-947之间的数字。
(3)移动应用APP向移动身份验证平台发送第二次注册请求消息,请求消息中含有通过手机系统调用获取到的IMSI、当前时间及用户输入的用户名、密码等信息。
(4)移动身份驗证平台验证请求消息是否合法,如果合法,则返回成功消息,移动应用APP接收到此成功消息后将启动定时器,准备接收呼叫能力平台发起的呼叫,同时提示用户将会接收到一个主叫号码为某个指定号码的来电,并且不要去接听此来电;如果APP的请求消息非法,平台将返回消息非法响应消息,注册过程失败并终止。
(5)身份验证平台将向呼叫能力平台发起呼叫请求,请求消息中将携带用户的手机号码,呼叫能力平台接收到此消息后将向该手机发起呼叫,呼叫接续完成后将振铃3秒。
(6)在定时器定时时间范围内,移动应用APP将监听接收到的未接来电信息,如果此来电信息中的主叫号码是指定的号码,则认为用户注册成功,向移动身份验证平台发送注册确认消息,平台收到确认消息后将用户的摘要信息保存在数据库中;否则,认为用户注册失败。为突破360手机安全卫士等手机安全软件对骚扰信息的拦截,移动应用APP通过调用手机底层接口来获取手机未接来电信息。同时,为了实现使用户不需感知接收到了未接来电即可实现身份验证目的,移动应用APP将直接操作手机内部数据库,对身份验证系统发起的手机未接来电信息进行处理,将其信息设为己接来电[5],
为防止消息传送过程中产生泄密,手机客户端与移动身份验证平台之间传输的消息将采用哈希函数进行加密。哈希函数可以将任意长度的输入经过变化后得到固定长度的输出,这个固定长度的输出就是原消息的散列值。采用哈希函数可以进行明文到密文的不可逆映射,由于只对保存消息的哈希值进行保存,进行消息校验的时候仅需比对哈希值即可,即使攻击者获取了消息的哈希值,也无法获取用户的密码信息。由于此过程是单向不可逆的,只有加密过程没有解密过程,保证了消息传送的安全。Hash函数将采用MD5加密算法来实现。如果用户注册成功,则验证系统将用户名和密码组合通过MD5算法生成的摘要保存在系统数据库中。之后在用户的登录过程中,系统将登录消息中的用户名和密码组合通过MD5算法计算生成的摘要与系统数据库中的摘要进行匹配,如果匹配成功,则返回登录成功消息,否则,系统将返回登录失败消息[6]。
4结语
本文提出一种移动应用身份验证系统,将用户注册过程中通过短信验证码的方式来验证手机号码是否正确改为通过未接电话信息认证的方式,节省了移动应用软件运营商的短信发送费用。同时,在身份验证过程中,用户无需手动输入短信验证码,系统直接对接收到的未接来电信息进行处理,用户无需对未接来电进行手动处理,提升了用户的体验。为防止身份验证过程中用户信息的泄露,采用Hash函数对相关信息进行加密,根据移动应用APP的需要,在做身份验证时可以绑定用户移动电话卡的IMSI码,并对移动应用标识进行验证,以防非法应用软件接入进来,提高了系统的安全性。
[参考文献]
[1]王亚伟,彭长根,丁红发,等.基于标识符的Android客户端身份认证方案[J].网络与信息安全学报,2017 (4):32-38
[2]甘宏,潘丹.基于动态身份远程用户认证方案的研究[J].数字通信,2014 (5):1-5
[3]胡卫,张焕国,魏国珩,等.面向移动平台的新型身份认证方案设计[J]计算机科学,2014 (4):99-102
[4]严峰,刘明,全喜伟.基于移动互联网用户实名认证技术应用研究[J]中国公共安全(学术版),2017 (1):89-92.
[5]江超,龙毅宏.基于移动终端的系统登录方法的研究与开发[J]软件,2017 (3):12-15
[6]佚名.中國电信协同通信开放平台[EB/OL]( 2017-08-10)[2017-11-17].http: //open.ecplive.cn/