一种应用于移动终端的深度安全解锁方法及装置制造方法
【专利摘要】本发明公开了一种应用于移动终端的深度安全解锁方法,该发明解决了在用户获取操作系统的root权限后,用户可以通过调试工具,卸载或临时关闭安全解锁APK,导致安全解锁失效的技术问题,可以更加高效、安全地对移动终端实施全方位的信息安全保护。该方法包括下列步骤:S1、移动终端设置安全解锁;S2、系统识别当前移动终端是否处于安全解锁状态;S3、进入深度安全状态,关闭任何第三方获取系统的root权限的功能,限制su的权限,限制run-as的权限,限制Android操作系统中使用adb和gdb调试工具,以达到限制任何第三方卸载APK及第三方主动关闭进程的功能的目的;S4、当用户解锁成功,则退出深度安全状态。
【专利说明】一种应用于移动终端的深度安全解锁方法及装置
【技术领域】
[0001]本发明涉及移动终端应用安全的【技术领域】,特别涉及一种应用于移动终端的深度安全解锁方法及装置。
【背景技术】
[0002]由于移动智能终端硬件处理能力的提升,移动终端操作系统已经开始从以前简单地提供通话管理的软件渐渐变成一个通用软件运行平台。该平台不再以提供通话管理为主要目的,而是提供一个包括通话管理、游戏娱乐、办公记事、移动支付等各类应用软件在内的运行环境,同时此类移动智能终端也就不可避免的涉及了大量的个人隐私、办公资料和移动银行账号等重要信息,移动终端的应用安全问题日益突出。
[0003]目前使用android操作系统的移动智能终端具有一些安全类的解锁技术方案,比如指纹、密码、图案、滑动手势、声纹、人脸识别等。但是目前市场上的解锁方案都是以APK的形式出现的,此类安全解锁在ROOT权限面前变得不堪一击,因为获取android操作系统的ROOT权限意味着可以做任何事情,比如干掉进程,更改数据,特权操作等等。如果用户获取android操作系统的ROOT权限之后,通过将对应的APK临时关闭或卸载,那么此类安全解锁软件就完全失效,失去了移动终端应用安全保护的意义。
【发明内容】
[0004]本发明的目的在于克服现有技术的缺点与不足,提供一种应用于移动终端的深度安全解锁方法,该方法发明解决了在用户获取操作系统的root权限后,用户可以通过调试工具,卸载或临时关闭安全解锁APK,导致安全解锁失效的技术问题。
[0005]本发明的另一目的是提供一种应用于移动终端的深度安全解锁装置。
[0006]本发明的第一个目的通过下述技术方案实现:
[0007]—种应用于移动终端的深度安全解锁方法,应用于使用Android操作系统的移动终端,包括下列步骤:
[0008]S1、移动终端设置安全解锁;
[0009]S2、锁屏系统识别当前移动终端是否处于安全解锁状态;
[0010]S3、进入深度安全状态,关闭任何第三方获取系统的root权限的功能以达到限制任何第三方卸载APK及第三方主动关闭进程的功能的目的;
[0011]S4、当用户解锁成功,则退出深度安全状态;
[0012]其中所述步骤S3又具体包括下列步骤:
[0013]S31、限制su的权限;
[0014]S32、更改run-as的权限以达到限制Android操作系统中使用gdb调试工具;
[0015]S33、限制Android操作系统中使用adb调试工具。
[0016]优选的,步骤S31中所述的限制su权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的su可执行文件,更改其权限,去掉SUID属性。
[0017]优选的,步骤S32中所述的限制run-as权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的run_as可执行文件,更改其所属用户为shell,达到禁止调用setuid设置进程的WD,同时也就限制Android操作系统中使用gdb调试工具。
[0018]优选的,步骤S33中所述的限制Android操作系统中使用adb调试工具的方法是当判断处于安全锁屏状态,则操作系统通过更改r0.secure = I关闭root权限,并且在系统的adb.c文件中禁止修改提升权限和重新挂载的对应内容。
[0019]优选的,步骤S2中所述的锁屏系统识别当前移动终端是否处于安全解锁状态的具体方法为通过申请划分一段共享内存,这块共享内存只有获得root权限的用户及系统用户可以进行读写操作,其他用户只能读,并且这块共享内存保存了安全解锁状态值,当移动终端进入安全解锁状态,在这段共享内存中写入指定的值,这样锁屏系统及内核可以根据这段共享内存读取到的指定值进而判断当前移动终端是否处于安全解锁状态。
[0020]优选的,步骤S4中所述的退出深度安全状态具体为恢复su、run-as的权限,恢复Android操作系统中adb、gdb工具的调试功能。
[0021]优选的,步骤SI中所述的设置安全解锁的方法包括指纹解锁、密码解锁、图案解锁、滑动手势解锁、声纹解锁、人脸识别解锁。
[0022]优选的,其特征在于:所述移动终端包括手机、笔记本电脑、平板电脑和掌上上网设备。
[0023]本发明的另一个目的,通过以下技术方案实现:
[0024]—种应用于移动终端的深度安全解锁装置,应用于使用Android操作系统的移动终端,包括下列装置:
[0025]设置安全解锁装置,用于移动终端设置安全解锁状态;
[0026]状态识别装置,用于锁屏系统识别当前移动终端是否处于安全解锁状态;
[0027]功能限制装置,用于进入深度安全状态,关闭任何第三方获取系统的root权限的功能以达到限制任何第三方卸载APK及第三方主动关闭进程的功能的目的;
[0028]深度安全状态退出装置,用于当用户解锁成功,退出深度安全状态;
[0029]其中所述功能限制装置又具体包括下列装置:
[0030]su权限限制装置,用于限制su的权限;
[0031 ] run-as权限限制装置,用于更改run_as的权限以达到限制Android操作系统中使用gdb调试工具;
[0032]调试工具限制装置,用于限制Android操作系统中使用adb和调试工具。
[0033]优选的,所述su权限限制装置中限制su权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的su可执行文件,更改其权限,去掉SUID属性。
[0034]优选的,所述run-as权限限制装置中限制run-as权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的run_as可执行文件,更改其所属用户为shell,达到禁止调用setuid设置进程的UID,同时也就限制Android操作系统中使用gdb调试工具。
[0035]优选的,所述调试工具限制装置中限制Android操作系统中使用adb调试工具的方法是当判断处于安全锁屏状态,则操作系统通过更改r0.secure = I关闭root权限,并且在系统的adb.c文件中禁止修改提升权限和重新挂载的对应内容。
[0036]优选的,所述状态识别装置中锁屏系统识别当前移动终端是否处于安全解锁状态的具体方法为通过申请划分一段共享内存,这块共享内存只有获得root权限的用户及系统用户可以进行读写操作,其他用户只能读,并且这块共享内存保存了安全解锁状态值,当移动终端进入安全解锁状态,在这段共享内存中写入指定的值,这样锁屏系统及内核可以根据这段共享内存读取到的指定值进而判断当前移动终端是否处于安全解锁状态。
[0037]优选的,所述深度安全状态退出装置中退出深度安全状态具体为恢复su、run-as的权限,恢复Android操作系统中adb、gdb工具的调试功能。
[0038]优选的,所述设置安全解锁装置中设置安全解锁的方法包括指纹解锁、密码解锁、图案解锁、滑动手势解锁、声纹解锁、人脸识别解锁。
[0039]优选的,所述移动终端包括手机、笔记本电脑、平板电脑和掌上上网设备。
[0040]本发明相对于现有技术具有如下的优点及效果:
[0041]1、针对目前市场上大部分root工具都是通过su实现的,本发明通过限制su权限,可以屏蔽大部分市场上的root工具的作用。
[0042]2、本发明提供的深度安全解锁方案针对用户获取操作系统的root权限后,通过调试工具卸载或临时关闭安全解锁APK的黑客技术针对性强,防范效果明显,可以更加高效、安全地对移动终端实施全方位的信息安全保护。
【专利附图】
【附图说明】
[0043]图1是本实施例一中一种应用于移动终端的深度安全解锁方法流程图;
[0044]图2是本实施例一中Linux下关于文件档案的类型与权限位的结构表述示意图。
【具体实施方式】
[0045]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0046]实施例一
[0047]本实施例公开了一种应用于移动终端的深度安全解锁方法,应用于使用Android操作系统的移动终端平台上,其中所述移动终端包括手机、笔记本电脑、平板电脑和掌上上网设备,该方法包括下列步骤:
[0048]一、步骤S1、移动终端设置安全解锁;
[0049]目前,常用的安全解锁的方法包括指纹解锁、密码解锁、图案解锁、滑动手势解锁、声纹解锁、人脸识别解锁,本实施例中使用图案解锁。
[0050]二、步骤S2、锁屏系统识别当前移动终端是否处于安全解锁状态;
[0051]本实施例中,采用的锁屏系统识别当前移动终端是否处于安全解锁状态的具体方法为通过申请划分一段共享内存,这块共享内存只有获得root权限的用户及系统用户可以进行读写操作,其他用户只能读,并且这块共享内存保存了安全解锁状态值,当移动终端进入安全解锁状态,在这段共享内存中写入指定的值,这样锁屏系统及内核可以根据这段共享内存读取到的指定值进而判断当前移动终端是否处于安全解锁状态。
[0052]三、步骤S3、进入深度安全状态,以达到限制任何第三方卸载APK及第三方主动关闭进程的功能的目的;再进一步细化,该步骤S3又具体包括:
[0053]步骤S31、限制su的权限;
[0054]步骤S32、更改run-as的权限以达到限制Android操作系统中使用gdb调试工具;
[0055]步骤S33、限制Android操作系统中使用adb调试工具。
[0056](一) su
[0057]su就是SuperUser,是一个可执行程序,目前市场上大部分的root工具都需要这个程序来完成。这个程序一般具有SUID权限:
[0058]当用户使用Is命令(Is命令可以说是Linux下最常用的命令之一)的时候,有显示“类型与权限”一列,具体如附图2所示,这一列的每个部分的意思如下:
[0059]档案的类型:
[0060]d:表示目录[0061 ]-:表不档案
[0062]1:表示连接档案
[0063]c:字符设备文件
[0064]b:块设备文件
[0065]档案的权限:
[0066]r:可读权限,值为4
[0067]w:可写权限,值为2
[0068]X:可执行权限,值为I
[0069]前面一直提到的档案、目录的权限就只有rwx这三个,有些档案、目录还会有是St等特殊权限,下面一一介绍。
[0070]当s这个标志出现在档案拥有者的X权限上时,如-rwsr-r-,就表明此档案拥有了 SUID的权限了,那么这个SUID的权限有什么特殊功能呢?
[0071 ] 1、SUID仅对二进制程序有效
[0072]2、执行者对本程序具有可执行权限
[0073]3、本权限仅在执行该程序的过程中有效
[0074]4、执行者将具有该程序拥有者的权限
[0075]su的拥有者是root,所以第三方用户执行这个su的时候就具有了 root权限,这就是提取权限。
[0076]当判断处于安全锁屏状态,则系统通过文件系统找到/system/bin或/system/xbin目录下的su可执行文件,更改其权限,去掉SUID属性。
[0077]( 二 ) run-as
[0078]run-as其实是一个与su类似的工具,它在设备上是自带的,位于/system/bin目录下,它的SUID权限位也是被设置了,并且它的所有者也是root,我们可以通过Is-1/system/bin/run-as 来看至丨J:
[0079]rootiandroid:/#ls-l/system/bin/run-as
[0080]-rwsr-s---root shell
[0081]但是与su又有不同,run-as不是让一个进程以root身份运行,而是让一个进程以指定的UID来运行,这也是通过setuid来实现的。run-as能够这样做是因为它运行的时候,所获得的UID是root。
[0082](三)调试工具adb
[0083]adb就是Android Debug Bridge,是android系统中的一种命令行工具,通过它可以和android设备或模拟器通信,达到调试的目的。
[0084]adb命令格式:
[0085]adb[_d|_e|-s<serialNumber>]〈command〉
[0086]adb命令分类:
[0087]Target device:-d/-e/-s<serialNumber>
[0088]General:devices/help/vers1n
[0089]Debug:logcat [opt1n] [filter-specs] /bugreport/jdwp
[0090]Data: instalI<path-to-apk>/pulKremoteXlocal>/push<local><remote>
[0091]Ports and Networking:forward<local><remote>/ppp<tty>[parm]...
[0092]Scripting:get-serialno/get-state/wait-for-device
[0093]Server: start-server/ki 11-server
[0094]Shell:shell/shell[she11Command]
[0095]调试工具adb在Debug版本情况下,开放了 root的权限,在User版本下关闭了root权限,市场上一般是User版本,但是不能避免市场上的一些工具能够重新打开这个root权限。
[0096]关闭调试工具adb的root权限的方法是:
[0097]当判断处于安全锁屏状态,则系统通过更改r0.secure = I关闭root权限,并且在adb.c文件中提升权限的地方和重新挂载的地方判断处于安全锁屏状态,则提升权限和重新挂载失败。
[0098]adb中提权功能有一个入口在adb.c文件中,只需在这个入口处判断是否处于安全锁屏状态,如果是,提权失效,直接返回:
[0099]第一步:当用户使用adb的提权功能
[0100]第二步:在入口处判断处于安全锁屏状态
[0101]第三步:如果处于安全锁屏状态,则提权失效,直接返回
[0102]也可以采用直接降权的方式,当通过调试工具adb调试时,在代码层面上都有一个入口,在入口处监测到安全锁屏状态,Android系统强制降低adb的权限。
[0103]adb默认按照只读模式挂载,通过adb remount命令可以以可读可写的方式挂载。
[0104](四)调试工具gdb
[0105]gdb是GNU开源组织发布的一个强大的UNIX下的程序调试工具,作为命令行的调试工具,gdb不同于VC、BCB之类的图形化调试器,具有下面四个方面的功能:
[0106]1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
[0107]2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
[0108]3、当程序被停住时,可以检查此时你的程序中所发生的事。
[0109]4、动态的改变你程序的执行环境。
[0110]调试工具gdb的调试功能就是通过run-as获得与目标进程相同的WD,然后就可以ptrace (ptrace提供了一种父进程可以控制子进程运行,并可以检查和改变它的核心image。它主要用于实现断点调试)到目标进程去调试了。
[0111]当判断处于安全锁屏状态,则Android系统通过文件系统找到/system/bin或/system/xbin目录下的run_as可执行文件,更改其所属用户为shell,这样就调用不了setuid设置进程的UID。
[0112]实际上,限制操作系统使用调试工具gdb的调试功能就是通过更改run-as权限的用户属性为shell来完成。
[0113]四、步骤S4、当用户解锁成功,则退出深度安全状态;实质上即为恢复su、run-as的权限,恢复Android操作系统中adb、gdb工具的调试功能。
[0114]实施例二
[0115]本实施例公开了一种应用于移动终端的深度安全解锁装置,应用于使用Android操作系统的移动终端,其中所述移动终端包括手机、笔记本电脑、平板电脑和掌上上网设备,包括下列装置:
[0116]一、设置安全解锁装置,用于移动终端设置安全解锁状态。
[0117]其中,全解锁的方法包括指纹解锁、密码解锁、图案解锁、滑动手势解锁、声纹解锁、人脸识别解锁。
[0118]二、状态识别装置,用于锁屏系统识别当前移动终端是否处于安全解锁状态。
[0119]其中,锁屏系统识别当前移动终端是否处于安全解锁状态的具体方法为通过申请划分一段共享内存,这块共享内存只有获得root权限的用户及系统用户可以进行读写操作,其他用户只能读,并且这块共享内存保存了安全解锁状态值,当移动终端进入安全解锁状态,在这段共享内存中写入指定的值,这样锁屏系统及内核可以根据这段共享内存读取到的指定值进而判断当前移动终端是否处于安全解锁状态。
[0120]三、功能限制装置,用于进入深度安全状态,以达到限制任何第三方卸载APK及第三方主动关闭进程的功能的目的。
[0121]其中所述功能限制装置又具体包括下列装置:
[0122](三-1)su权限限制装置,用于限制su的权限。
[0123]其中,限制su权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的su可执行文件,更改其权限,去掉SUID属性。
[0124](三-2)run-as权限限制装置,用于更改run_as的权限以达到限制Android操作系统中使用gdb调试工具。
[0125]其中,限制run-as权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的run_as可执行文件,更改其所属用户为shell,达到禁止调用setuid设置进程的WD,同时也就限制Android操作系统中使用gdb调试工具
[0126](三-3)调试工具限制装置,用于限制Android操作系统中使用adb调试工具。
[0127]其中,限制Android操作系统中使用adb调试工具的方法是当判断处于安全锁屏状态,则操作系统通过更改r0.secure = I关闭root权限,并且在系统的adb.c文件中禁止修改提升权限和重新挂载的对应内容。
[0128]四、深度安全状态退出装置,用于当用户解锁成功,退出深度安全状态。
[0129]其中,退出深度安全状态具体为恢复su、run_as的权限,恢复Android操作系统中adb、gdb工具的调试功能。
[0130]值得注意的是,上述装置实施例中,所包括的各个模块和单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块和单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0131]另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘或光盘等。
[0132]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【权利要求】
1.一种应用于移动终端的深度安全解锁方法,应用于使用Android操作系统的移动终端,其特征在于,包括下列步骤: 51、移动终端设置安全解锁; 52、锁屏系统识别当前移动终端是否处于安全解锁状态; 53、进入深度安全状态,关闭任何第三方获取系统的root权限的功能以达到限制任何第三方卸载APK及第三方主动关闭进程的功能的目的; 54、当用户解锁成功,则退出深度安全状态; 其中所述步骤S3又具体包括下列步骤: 531、限制su的权限; 532、更改run-as的权限以达到限制Android操作系统中使用gdb调试工具; 533、限制Android操作系统中使用adb调试工具。
2.根据权利要求1所述的一种应用于移动终端的深度安全解锁方法,其特征在于:步骤S31中所述的限制su权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的su可执行文件,更改其权限,去掉SUID属性。
3.根据权利要求1所述的一种应用于移动终端的深度安全解锁方法,其特征在于:步骤S32中所述的限制run-as权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的run_as可执行文件,更改其所属用户为shell,达到禁止调用setuid设置进程的WD,同时也就限制Android操作系统中使用gdb调试工具。
4.根据权利要求1所述的一种应用于移动终端的深度安全解锁方法,其特征在于:步骤S33中所述的限制Android操作系统中使用adb调试工具的方法是当判断处于安全锁屏状态,则操作系统通过更改r0.secure = I关闭root权限,并且在系统的adb.c文件中禁止修改提升权限和重新挂载的对应内容。
5.根据权利要求1所述的一种应用于移动终端的深度安全解锁方法,其特征在于: 步骤S2中所述的锁屏系统识别当前移动终端是否处于安全解锁状态的具体方法为通过申请划分一段共享内存,这块共享内存只有获得root权限的用户及系统用户可以进行读写操作,其他用户只能读,并且这块共享内存保存了安全解锁状态值,当移动终端进入安全解锁状态,在这段共享内存中写入指定的值,这样锁屏系统及内核可以根据这段共享内存读取到的指定值进而判断当前移动终端是否处于安全解锁状态。
6.根据权利要求1所述的一种应用于移动终端的深度安全解锁方法,其特征在于:步骤S4中所述的退出深度安全状态具体为恢复su、run-as的权限,恢复Android操作系统中adb、gdb工具的调试功能。
7.根据权利要求1-6任一所述的一种应用于移动终端的深度安全解锁方法,其特征在于:步骤SI中所述的设置安全解锁的方法包括指纹解锁、密码解锁、图案解锁、滑动手势解锁、声纹解锁、人脸识别解锁。
8.根据权利要求1-6任一所述的一种应用于移动终端的深度安全解锁方法,其特征在于:所述移动终端包括手机、笔记本电脑、平板电脑和掌上上网设备。
9.一种应用于移动终端的深度安全解锁装置,应用于使用Android操作系统的移动终端,其特征在于,包括下列装置: 设置安全解锁装置,用于移动终端设置安全解锁状态; 状态识别装置,用于锁屏系统识别当前移动终端是否处于安全解锁状态; 功能限制装置,用于进入深度安全状态,关闭任何第三方获取系统的root权限的功能以达到限制任何第三方卸载APK及第三方主动关闭进程的功能的目的; 深度安全状态退出装置,用于当用户解锁成功,退出深度安全状态; 其中所述功能限制装置又具体包括下列装置: su权限限制装置,用于限制su的权限; run-as权限限制装置,用于更改run-as的权限以达到限制Android操作系统中使用gdb调试工具; 调试工具限制装置,用于限制Android操作系统中使用adb和调试工具。
10.根据权利要求9所述的一种应用于移动终端的深度安全解锁装置,其特征在于:所述SU权限限制装置中限制SU权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的su可执行文件,更改其权限,去掉SUID属性。
11.根据权利要求9所述的一种应用于移动终端的深度安全解锁装置,其特征在于:所述run-as权限限制装置中限制run-as权限的方法是操作系统通过文件系统找到/system/bin或/system/xbin目录下的run-as可执行文件,更改其所属用户为shell,达到禁止调用setuid设置进程的WD,同时也就限制Android操作系统中使用gdb调试工具。
12.根据权利要求9所述的一种应用于移动终端的深度安全解锁装置,其特征在于:所述调试工具限制装置中限制Android操作系统中使用adb调试工具的方法是当判断处于安全锁屏状态,则操作系统通过更改r0.secure = I关闭root权限,并且在系统的adb.c文件中禁止修改提升权限和重新挂载的对应内容。
13.根据权利要求9所述的一种应用于移动终端的深度安全解锁装置,其特征在于: 所述状态识别装置中锁屏系统识别当前移动终端是否处于安全解锁状态的具体方法为通过申请划分一段共享内存,这块共享内存只有获得root权限的用户及系统用户可以进行读写操作,其他用户只能读,并且这块共享内存保存了安全解锁状态值,当移动终端进入安全解锁状态,在这段共享内存中写入指定的值,这样锁屏系统及内核可以根据这段共享内存读取到的指定值进而判断当前移动终端是否处于安全解锁状态。
14.根据权利要求9所述的一种应用于移动终端的深度安全解锁装置,其特征在于: 所述深度安全状态退出装置中退出深度安全状态具体为恢复su、run-as的权限,恢复Android操作系统中adb、gdb工具的调试功能。
15.根据权利要求9-14任一所述的一种应用于移动终端的深度安全解锁装置,其特征在于: 所述设置安全解锁装置中设置安全解锁的方法包括指纹解锁、密码解锁、图案解锁、滑动手势解锁、声纹解锁、人脸识别解锁。
16.根据权利要求9-14任一所述的一种应用于移动终端的深度安全解锁装置,其特征在于:所述移动终端包括手机、笔记本电脑、平板电脑和掌上上网设备。
【文档编号】G06F21/31GK104134026SQ201410370984
【公开日】2014年11月5日 申请日期:2014年7月30日 优先权日:2014年7月30日
【发明者】丁少峰 申请人:广东欧珀移动通信有限公司