一种Android应用程序短信验证码认证过程安全性检测方法技术

技术编号:27692912 阅读:20 留言:0更新日期:2021-03-17 04:55
本发明专利技术提出了一种Android应用程序短信验证码认证过程安全性检测方法,根据Android应用程序短信验证码的认证特性建立认证过程模型;然后分析不同应用程序提供的APK文件,识别出短信验证码认证实现的应用程序凭据敏感参数;然后基于HTTP调试工具,过滤识别目标通信流量,检测手机号码传递安全性;再进行动态流量分析,以识别应用程序服务器不正确地生成和认证验证码的操作。本发明专利技术可以为应用程序开发者实现短信验证码认证提供安全性指导,帮助开发者正确实现Android应用程序短信验证码认证。

【技术实现步骤摘要】
一种Android应用程序短信验证码认证过程安全性检测方法
本专利技术涉及Android应用程序通信
,具体涉及一种Android应用程序短信验证码认证过程安全性检测方法。
技术介绍
近年来,Android应用程序市场蓬勃发展,据有关数据统计,Android应用程序的发布呈现指数增长。越来越多应用程序提供短信验证的方式为用户提供方便快捷的认证登录方式,短信验证因此成为攻击者攻击的目标。为了避免用户身份信息被窃取、隐私被泄漏,程序开发人员需要研究考虑短信验证码认证方式的的安全性问题。Java文件为Android应用程序源文件,Java文件编译后变成Class文件,而后连接成Dex文件在Dalvik虚拟机上运行,APK文件将AndroidManifest.xml文件、应用程序代码(.dex文件)、资源文件和其他文件打成一个压缩包变成用户使用的应用程序。已有的Android短信验证码认证过程安全性分析技术包括基于所述应用程序场景信息,在短信验证码防护策略库中进行匹配查找,获取与所述应用程序场景信息匹配的短信验证码防护策略;确定所述短信验证码请求不符合所述短信验证码防护策略时,拒绝响应所述短信验证码请求策略。但是已有的分析技术主要面向攻击防御,缺少对应用程序自身逻辑设计的安全性分析,且没有覆盖短信验证码认证整个过程周期。
技术实现思路
本专利技术提出了一种Android应用程序短信验证码认证过程安全性检测方法,能够基于Android短信验证码认证整个过程,使用静态代码分析技术和动态流量分析技术,检测Android应用程序短信验证码认证过程中的安全性。本专利技术实现上述目的的方案为:一种Android应用程序短信验证码认证过程安全性检测方法,具体步骤为:步骤1、根据Android应用程序短信验证码认证特性制定认证过程模型;步骤2、分析不同应用程序提供的APK文件,通过所述认证过程模型检测短信验证码认证实现的应用程序凭据存储的安全性;步骤3、基于HTTP协议的调试工具,过滤识别认证过程模型中应用程序客户端产生的验证码请求消息,检测手机号码传递安全性;步骤4、分析对比多个应用程序服务器响应所述验证码请求消息所产生的验证码,检测应用程序服务器生成的验证码的安全性;步骤5、修改和重放应用程序客户端产生的验证码认证请求消息,检测应用程序服务器的认证操作安全性;步骤6、若步骤2、步骤3、步骤4、步骤5中的检测结果均为安全,则认为应用程序短信验证码认证过程安全,否则认为应用程序短信验证码认证过程不安全。进一步地,所述步骤1中所述的认证过程模型包括:应用程序客户端、第三方短信平台、应用程序服务器,所述模型的认证过程包括3个阶段:阶段1、验证码请求阶段:应用程序客户端向应用程序服务器发送验证码请求消息,其中所述验证码请求消息携带应用程序凭据信息和手机号码;阶段2、验证码发放阶段:应用程序服务器随机产生验证码,将手机号码、验证码和验证码产生时间存入缓存,调用第三方短信平台发送短信;阶段3、验证码认证阶段:应用程序客户端发送包含手机号码和验证码的认证请求信息,应用程序服务器将所述认证请求信息和缓存中的对应手机号码和验证码进行匹配,并返回合适的响应信息(若匹配成功则返回认证成功响应信息,若匹配失败则返回认证失败响应信息)。进一步地,所述步骤2中分析不同应用程序提供的APK文件包括:通过dex2jar将apk文件解压后的dex文件转换成class文件,构建class文件目录,使用JD-GUI生成Java代码。进一步地,所述步骤2中检测短信验证码认证实现的应用程序凭据信息的安全性,包括:若在所述Java代码中通过模式匹配找到应用程序在短信平台注册时获得的应用程序对应的凭据字符串则认为应用程序凭据的存储不安全,否则认为应用程序凭据的存储安全。进一步地,所述步骤3中的过滤识别验证码请求消息,包括:设置网络中间代理,监听应用程序客户端和应用程序服务器之间的数据包,设置过滤规则为所述数据包是否包含所述手机号码字符串,若所述数据包包含所述手机号码字符串则保留,若所述数据包不包含所述手机号码字符串则过滤。进一步地,所述步骤3中检测手机号码传递安全性包括:如果所述数据包被保留则认为手机号码的传递不安全,如果所述数据包被过滤则认为手机号码的传递安全。进一步地,所述步骤4中检测应用程序服务器生成的验证码的安全性,包括:对比分析多个验证码之间是否存在连续性和/或规律性,若是则认为验证码不安全,若不是则认为验证码安全。进一步地,所述多个验证码的数量范围为15-25个。进一步地,所述步骤5具体包括:多次修改验证码并重放验证码认证请求消息、多次修改手机号码并重放验证码认证请求消息、5分钟后重新发送验证码认证请求消息,检测应用程序服务器是否检查验证码的正确性(即是否能检查出验证码已被修改)、验证码和手机号码的一致性和验证码的有效期,若应用程序服务器的响应结果均为认证失败则认为应用程序服务器的认证操作安全,否则认为应用程序服务器的认证操作不安全。进一步地,修改验证码和手机号码的修改次数为10次。与现有技术相比,本专利技术的有益效果为:本专利技术提出了一种Android应用程序短信验证码认证过程安全性检测方法,能够基于Android短信验证码认证整个过程,使用静态代码分析技术和动态流量分析技术,通过检测短信验证码认证实现的应用程序凭据存储的安全性、检测手机号码传递安全性、检测应用程序服务器生成的验证码的安全性、检测应用程序服务器的认证操作安全性来检测Android应用程序短信验证码认证过程中的安全性,扩大了检测范围、提高了安全性检测的准确性。附图说明图1Android应用程序短信验证码认证过程模型图。图2静态代码分析方法图。图3网络中间代理分析方法图。图4Android应用程序短信验证码认证过程安全性检测方法图。具体实施方式结合图4,一种Android应用程序短信验证码认证过程安全性检测方法,具体步骤为:步骤1、根据Android应用程序短信验证码认证特性制定认证过程模型;步骤2、分析不同应用程序提供的APK文件,通过所述认证过程模型检测短信验证码认证实现的应用程序凭据存储的安全性;步骤3、基于HTTP协议的调试工具,过滤识别认证过程模型中应用程序客户端产生的验证码请求消息,检测手机号码传递安全性;步骤4、分析对比多个应用程序服务器响应所述验证码请求消息所产生的验证码,检测应用程序服务器生成的验证码的安全性;步骤5、修改和重放应用程序客户端产生的验证码认证请求消息,检测应用程序服务器的认证操作安全性;步骤6、若步骤2、步骤3、步骤4、步骤5中的检测结果均为安全,则认为应用程序短信验证码认证过程安全,否则认为应用程序短信验证码认证过程不安全。进一步地,结合图1,所述步骤1中所述的认证过程模型包括:应用程序客本文档来自技高网...

【技术保护点】
1.一种Android应用程序短信验证码认证过程安全性检测方法,其特征在于,具体步骤为:/n步骤1、根据Android应用程序短信验证码认证特性制定认证过程模型;/n步骤2、分析不同应用程序提供的APK文件,通过所述认证过程模型检测短信验证码认证实现的应用程序凭据存储的安全性;/n步骤3、基于HTTP协议的调试工具,过滤识别认证过程模型中应用程序客户端产生的验证码请求消息,检测手机号码传递安全性;/n步骤4、分析对比多个应用程序服务器响应所述验证码请求消息所产生的验证码,检测应用程序服务器生成的验证码的安全性;/n步骤5、修改和重放应用程序客户端产生的验证码认证请求消息,检测应用程序服务器的认证操作安全性;/n步骤6、若步骤2、步骤3、步骤4、步骤5中的检测结果均为安全,则认为应用程序短信验证码认证过程安全,否则认为应用程序短信验证码认证过程不安全。/n

【技术特征摘要】
1.一种Android应用程序短信验证码认证过程安全性检测方法,其特征在于,具体步骤为:
步骤1、根据Android应用程序短信验证码认证特性制定认证过程模型;
步骤2、分析不同应用程序提供的APK文件,通过所述认证过程模型检测短信验证码认证实现的应用程序凭据存储的安全性;
步骤3、基于HTTP协议的调试工具,过滤识别认证过程模型中应用程序客户端产生的验证码请求消息,检测手机号码传递安全性;
步骤4、分析对比多个应用程序服务器响应所述验证码请求消息所产生的验证码,检测应用程序服务器生成的验证码的安全性;
步骤5、修改和重放应用程序客户端产生的验证码认证请求消息,检测应用程序服务器的认证操作安全性;
步骤6、若步骤2、步骤3、步骤4、步骤5中的检测结果均为安全,则认为应用程序短信验证码认证过程安全,否则认为应用程序短信验证码认证过程不安全。


2.根据权利要求1所述的Android应用程序短信验证码认证过程安全性检测方法,其特征在于,所述步骤1中所述的认证过程模型包括:应用程序客户端、第三方短信平台、应用程序服务器,所述模型的认证过程包括3个阶段:
阶段1、验证码请求阶段:应用程序客户端向应用程序服务器发送验证码请求消息,其中所述验证码请求消息携带应用程序凭据信息和手机号码;
阶段2、验证码发放阶段:应用程序服务器随机产生验证码,将手机号码、验证码和验证码产生时间存入缓存,调用第三方短信平台发送短信;
阶段3、验证码认证阶段:应用程序客户端发送包含手机号码和验证码的认证请求信息,应用程序服务器将所述认证请求信息和缓存中的对应手机号码和验证码进行匹配,并返回合适的响应信息。


3.根据权利要求2所述的Android应用程序短信验证码认证过程安全性检测方法,其特征在于,所述步骤2中分析不同应用程序提供的APK文件包括:通过dex2jar将apk文件解压后的dex文件转换成class文件,构建class文件目录,使用JD-GUI生成Java代码。


4.根据权利要求3所述的Android应用程序短信验证码认证过程安全性检测方法,其特征在于,所...

【专利技术属性】
技术研发人员:俞研田穗邓芳伟付安民
申请(专利权)人:南京理工大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1