[发明专利]一种防止安卓手机短信验证码被窃取的方法有效
申请号: | 201710035104.X | 申请日: | 2017-01-18 |
公开(公告)号: | CN106803028B | 公开(公告)日: | 2019-08-30 |
发明(设计)人: | 李金库;叶阳天;周亚金;马建峰 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/16 | 分类号: | G06F21/16;H04W4/14 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710065 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防止 手机短信 验证 窃取 方法 | ||
技术领域
本发明属于移动数据安全领域,具体涉及一种防止安卓手机短信验证码被窃取的方法。
背景技术
当前,智能手机被拦截及窃取短信验证码的恶意软件层出不穷,很多手机应用可能会捆绑携带这类恶意软件,这使得用户在不知不觉间就会被窃取短信验证码信息。作为国内非常通用的一个安全验证手段,越来越多的网站与应用都借助于手机短信验证码来方便用户重置密码(包括登录密码和支付密码),更甚者,短信验证码在很多时候都被作为安全支付的有效手段,一旦被窃取,将很可能会给用户带来严重的经济损失。
在安卓4.4版本以前的系统中,恶意软件通过提高自己拦截短信的权限,使其优先于用户取得短信验证码,可以让自己获取验证码后在用户不知情的情况下删除该信息。而在4.4版本及之后,安卓虽然对短信系统进行了优化,恶意软件无法截断短信广播,用户最终会获得短信验证码信息,但是它仍然无法阻止恶意软件通过借用(或盗用)用户的身份滥用这些验证码,从而达到其最终的目的。传统的保护方法一般是对接收到的短信验证码进行阅读后立刻销毁或者是对验证码进行加密存放的方式来保护短信验证码的安全,但是这些传统方法都有明显的弊端,它们无法确保自己优先于恶意应用获得短信。另一类保护方法是通过修改安卓框架层中访问短信的API函数来判断调用该API函数的应用是否是一个存在于自定义安全列表中的安全应用,从而防止恶意应用获取短信验证码信息。这类方法的问题是只能保护从短信数据库中读取的短信,而无法防止在接收短信时从广播途径直接获取短信内容(并发送出去)的攻击方式。所以,现有方法都无法很好的防止手机短信验证码被窃取。
发明内容
本发明的目的在于针对上述现有技术中的问题,提供一种防止安卓手机短信验证码被窃取的方法,通过数据流抵御恶意软件窃取手机短信验证码的行为,进而有效地保护用户智能手机系统中个人敏感信息的安全,并且具有良好的适用性和扩展性。
为了实现上述目的,本发明采用的技术方案包括以下步骤:
步骤一、按照以下过程进行模块初始化:1.1.设置短信验证码发送地址列表commonNumberList;根据发送短信的源地址是否在commonNumberList列表中判断该短信是否可能是一个验证码短信;1.2对字符数组和字节数组进行标记,在数据末尾添加一个位向量,所述位向量的每一个数据位代表一种标签,定义四个污点标签常量:空污点标签、短信数据标签、数据库标签、验证码标签;1.3.修改安卓系统数组在内存中的分配方式与数组大小的计算方式,让每个数组拥有一个污点标签成员字段,使每个数组能够存储有效的污点标签;1.4.在安卓系统中自定义污点标签添加和读取方法,并注册成虚拟机内部方法,满足污点标签操作相关方法调用的需求;1.5.修改安卓系统中数组在native层和框架层的复制方式,使数组复制时满足污点传播的需求;1.6.安卓系统中每个方法都运行在线程中,在安卓系统中为线程类添加污点标签成员字段,并修改安卓编译器对数组存取操作的编译操作,满足污点传播的需求;1.7.修改安卓系统框架层中字符串类的构造方法和相关操作函数,使字符串类的操作满足污点传播的需求;1.8.修改安卓系统中短信广播机制的信息存储方式,满足污点传播的需求;1.9.修改安卓系统中框架层文件的读写操作,满足短信验证码数据二次存储时污点标签传播的需求;1.10.修改安卓系统中数据库的插入和更新操作,防止短信数据库被污染;
步骤二、接收短信时的标签添加模块;
2.1.在框架层读取短信协议数据单元PDU;
2.2.为短信PDU的字节数组添加污点标签TAINT_SMS;
步骤三、读取短信时的标签添加模块:3.1.读取短信数据库中一条短信的内容;3.2.添加TAINT_DB污点标签到短信内容字符串的污点标签位置;3.3.读取短信的源地址字段;3.4.判断源地址字段是否在地址列表commonNumberList中;如是,表明该条短信是一个疑似验证码短信,执行3.5,否则跳转到3.8;3.5.判断短信内容字段中是否包含4-8位的连续数字或数字加英文,如是,执行3.6,否则跳转到3.8;3.6.判断短信内容字段中是否包含“验证”或“密码”关键字,如是,表明这是一个短信验证码数据,执行3.7,否则跳转到3.8;3.7.添加TAINT_DB_VALIDATECODE污点标签到短信内容字符串的污点标签位置;3.8返回短信内容;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710035104.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于云计算的智能健康监控装置
- 下一篇:一种信息保护方法和移动终端