CN106874037B - 应用程序安装方法、装置及移动终端 - Google Patents

应用程序安装方法、装置及移动终端 Download PDF

Info

Publication number
CN106874037B
CN106874037B CN201710025274.XA CN201710025274A CN106874037B CN 106874037 B CN106874037 B CN 106874037B CN 201710025274 A CN201710025274 A CN 201710025274A CN 106874037 B CN106874037 B CN 106874037B
Authority
CN
China
Prior art keywords
application
white list
user
installation
judgment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710025274.XA
Other languages
English (en)
Other versions
CN106874037A (zh
Inventor
李翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Anyun Century Technology Co Ltd
Original Assignee
Beijing Anyun Century Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Anyun Century Technology Co Ltd filed Critical Beijing Anyun Century Technology Co Ltd
Priority to CN201710025274.XA priority Critical patent/CN106874037B/zh
Publication of CN106874037A publication Critical patent/CN106874037A/zh
Application granted granted Critical
Publication of CN106874037B publication Critical patent/CN106874037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Abstract

本发明涉及终端安全技术领域,具体涉及一种应用程序安装方法、装置及移动终端,所述方法包括步骤:在监测到应用安装事件时获取待安装应用的标识信息;将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定;接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;当所述结果信息为白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下。基于本发明,可以有效避免虚假应用安装到系统中,并且让用户更便利地将安全性要求较高的应用安装到系统安全模式下。

Description

应用程序安装方法、装置及移动终端
【技术领域】
本发明涉及终端安全技术领域,具体涉及一种应用程序安装方法、装置及移动终端。
【背景技术】
一些移动终端出于安全考虑,设置了相应的安全模式,以保护用户在网上交易、网上支付、银行查询等等场合的安全,例如,360手机的财产隔离系统,该系统一方面通过内置安全应用商店的方式来防止盗取木马、仿冒应用的入侵,从源头上保证了应用的来源安全,同时,将金融理财等数据进行系统隔离,禁止恶意应用非法读取,从根本上保障了用户支付环境的安全。
而用户在安装应用时基本都是在系统普通模式下安装,并且由于安卓阵营的碎片化,用户仍然可能选择多种应用的下载、安装途径,造成虚假应用也同样可能被安装到系统中,并且对于安全性要求较高的应用,安装到系统普通模式下无法更好地保证应用的运行安全。
综上所述,如何避免虚假应用安装到系统中、如何让用户更便利地将安全性要求较高的应用安装到系统安全模式下是终端安全技术领域亟需解决的问题。
【发明内容】
鉴于上述问题,本发明提出一种应用安装方法、装置及移动终端,其可以在用户安装新应用时,检测应用的是否存在安全风险,避免虚假应用安装到系统中,并且将安全性要求较高的应用安装到系统安全模式下,减少用户需要手动选择的操作步骤,并且系统安全模式下能更好地保障应用的使用安全。
为实现该目的,本发明采用如下技术方案:
第一方面,本发明提供一种应用安装方法,包括如下步骤:
在监测到应用安装事件时获取待安装应用的标识信息;
将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定;
接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;当所述结果信息为白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下;所述系统安全模式配置有用于为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的。
结合第一方面,本发明的第一种可能的实现方式,所述预定应用包括支付相关的应用、理财相关的应用和银行相关的应用中的至少其中一种。
结合第一方面,本发明的第二种可能的实现方式,所述运行资源包括应用程序本身、应用程序配置数据和应用程序的用户数据其中至少一种,所述安全空间包括存储空间。
结合第一方面,本发明的第三种可能的实现方式,所述待安装应用的标识信息包括待安装应用的包名、版本号及对应的文件大小、数字签名的一项或多项。
结合第一方面,本发明的第四种可能的实现方式,在对所述待安装应用进行白名单判定之前,还包括对所述待安装应用进行安全性判定。
结合第一方面的第四种实现方式,本发明的第五种可能的实现方式,所述安全性判定包括仿冒检测和病毒检测。
结合第一方面的第五种实现方式,本发明的第六种可能的实现方式,所述仿冒检测通过比较待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名是否相同,若不同,则确定所述待安装应用为伪冒应用。
结合第一方面的第六种实现方式,本发明的第七种可能的实现方式,所述系统为安卓系统,通过获取PackageInfo类的对象packageName的属性以获取待安装应用的包名,通过PackageManger类中的packageInfo获得Signature数组以获取待安装应用的数字签名。
结合第一方面的第五种实现方式,本发明的第八种可能的实现方式,所述仿冒检测通过比较待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小是否相同,若不同,则确定所述待安装应用为伪冒应用。
结合第一方面的第八种实现方式,本发明的第九种可能的实现方式,所述系统为安卓系统,通过反射机制调用getPackageSizeInfo()方法获取待安装应用的文件大小,通过获取PackageInfo的对象versionName的属性获取待安装应用的版本号。
结合第一方面,本发明的第十种可能的实现方式,在所述当所述结果信息为白名单判定通过时之后,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下之前,还包括:
输出应用安装确认窗口以在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
结合第一方面的第六种实现方式或第八种实现方式,本发明的第十一种可能的实现方式,当确定所述待安装应用为伪冒应用时,输出应用安装终止窗口以在接收到用户的终止指令后终止安装所述待安装应用。
相应地,第二方面,本发明提供一种应用程序安装装置,该装置具有实现上述第一方面中应用程序安装方法的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,所述硬件或软件包括一个或多个与上述功能相对应的模块,具体包括:
监测模块:用于在监测到应用安装事件时获取待安装应用的标识信息;
上传模块:用于与将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定;
执行模块:用于接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;当所述结果信息为白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下;所述系统安全模式配置有用于为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的。
结合第二方面,本发明的第一种可能的实现方式,所述预定应用包括支付相关的应用、理财相关的应用和银行相关的应用中的至少其中一种。
结合第二方面,本发明的第二种可能的实现方式,所述运行资源包括应用程序本身、应用程序配置数据和应用程序的用户数据其中至少一种,所述安全空间包括存储空间。
结合第二方面,本发明的第三种可能的实现方式,所述待安装应用的标识信息包括待安装应用的包名、版本号及对应的文件大小、数字签名的一项或多项。
结合第二方面,本发明的第四种可能的实现方式,所述装置还包括:
安全判定模块:用于在对所述待安装应用进行白名单判定之前,对所述待安装应用进行安全性判定。
结合第二方面的第四种实现方式,本发明的第五种可能的实现方式,所述安全判定模块包括仿冒检测单元和病毒检测单元。
结合第二方面的第五种实现方式,本发明的第六种可能的实现方式,所述仿冒检测单元用于比较待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名是否相同,若不同,则确定所述待安装应用为伪冒应用。
结合第二方面的第六种实现方式,本发明的第七种可能的实现方式,所述系统为安卓系统,所述仿冒检测单元通过获取PackageInfo类的对象packageName的属性以获取待安装应用的包名,通过PackageManger类中的packageInfo获得Signature数组以获取待安装应用的数字签名。
结合第二方面的第五种实现方式,本发明的第八种可能的实现方式,所述仿冒检测单元用于比较待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小是否相同,若不同,则确定所述待安装应用为伪冒应用。
结合第二方面的第八种实现方式,本发明的第九种可能的实现方式,所述系统为安卓系统,所述仿冒检测单元通过反射机制调用getPackageSizeInfo()方法获取待安装应用的文件大小,通过获取PackageInfo的对象versionName的属性获取待安装应用的版本号。
结合第二方面,本发明的第十种可能的实现方式,还包括:
第一输出单元:用于在所述当所述结果信息为白名单判定通过时之后,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下之前,输出应用安装确认窗口以在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
结合第二方面的第六种实现方式或第八种实现方式,本发明的第十一种可能的实现方式,还包括:
第二输出单元:用于当确定所述待安装应用为伪冒应用时,输出应用安装终止窗口以在接收到用户的终止指令后终止安装所述待安装应用。
第三方面,本发明还提供一种移动终端,其特征在于,包括:
触敏显示器:用于显示该方法实现过程中产生的中间信息及结果信息;
存储器:用于存储上述方法实现过程中产生的候选中间数据以及结果数据;
一个或多个处理器:所述处理器被配置为用于执行实现上述方法的步骤。
与现有技术相比,本发明具备如下优点:
本发明考虑应用安装时的安全风险及应用运行的安全性要求,通过改写安卓终端系统的PackageManagerService类的installPackage()函数,以在监测到应用安装事件时对待安装应用进行安全性判定和白名单判定,避免非官方的虚假应用安装到系统中,确保所安装的应用安全运行;并且基于安卓系统的多用户模式,将安全性判定通过且白名单判定通过的应用安装到系统安全模式下,减少用户需要手动选择安装的操作步骤,并且该安全模式配置有为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的,更好地保障应用的使用安全;
同时,通过改写PackageManagerService类的installPackage()函数,不论应用是通过静默安装或非静默安装的形式进行安装,都将被监测到应用安装事件,进而对待安装应用进行安全性判定和白名单判定,避免应用通过静默安装的形式绕过监测机制。
显然,上述有关本发明优点的描述是概括性的,更多的优点描述将体现在后续的实施例揭示中,以及,本领域技术人员也可以本发明所揭示的内容合理地发现本发明的其他诸多优点。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
图1为本发明应用程序安装方法的一实施例流程示意图;
图2为本发明应用程序安装方法的一实施例流程示意图;
图3为本发明应用程序安装装置的一实施例流程示意图;
图4为本发明实施例提供的移动终端部分结构的一实施例示意框图。
【具体实施方式】
下面结合附图和示例性实施例对本发明作进一步地描述,其中附图中相同的标号全部指的是相同的部件。此外,如果已知技术的详细描述对于示出本发明的特征是不必要的,则将其省略。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“移动终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“移动终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(MobileInternet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
本技术领域技术人员可以理解,本发明所述的用户界面/操作界面泛指能够用于向智能终端发送控制指令的显示界面,例如,可以为Android系统的设置页面中的一个选项(或按键,由所述应用程序添加其中,下同),也可以是从桌面呼出的通知栏或者交互页面中的一个选项,还可以是所述应用程序的一个活动组件所构造的页面中的一个选项。
本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“应用软件”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。
第一方面,如图1所示是本发明应用安装方法的一实施例流程示意图,包括如下步骤:
步骤S100:在监测到应用安装事件时获取待安装应用的标识信息。
在安卓系统中,在安卓系统中,PackageManagerService用于处理应用的安装、卸载、管理等事件,应用安装包括了以下几种方式:
①开机时完成系统已有应用安装;
②从网络下载应用后安装;
③使用ADB(Android Debug Bridge,调试桥)工具安装应用;
④从SD卡里的APK文件安装;
其中,第②③④种应用安装方式都会调用到PackageManagerService类的installPackage()函数,本实施例通过改写installPackage()函数的逻辑以在监测到应用安装事件时进行相应的响应,即获取待安装应用的标识信息,进而执行本实施例的后续操作。
本实施例通过改写PackageManagerService类的installPackage()函数,不论应用是通过静默安装或非静默安装的形式进行安装,都将被监测到应用安装事件,进而对待安装应用进行安全性判定和白名单判定,避免应用通过静默安装的形式绕过监测机制。
具体的,所述待安装应用的标识信息包括待安装应用的包名、版本号及对应的文件大小、数字签名的一项或多项。
其中,包名(Package Name)为应用的唯一标识,一个包名代表一个应用,包名主要用于系统识别应用,在安卓系统中不允许安装两个相同包名的应用,包名在安装包中的AndroidManifest.xml文件中定义,本实施例通过PackageInfo类的对象packageName的属性获取待安装应用的包名。
另外,应用的版本号是用于区别不同阶段发布的应用的标识,在安卓系统中,应用的版本号是在其安装包中解析得到的AndroidManifest.xml文件中配置的,并且安卓系统的PackageInfo类封装了从AndroidManifest.xml文件中获取所有应用的多种信息,本实施例通过PackageInfo的对象versionName的属性获取应用的版本号;同时,文件大小为应用安装包的文件大小,并且,同一包名、不同版本号的应用的安装包大小也有所不同,安装包的大小信息封装在PackageStats类中,只要获取PackageStats类的对象可以获取到应用安装包的文件大小,本实施例通过反射机制调用getPackageSizeInfo()方法获取待安装应用的文件大小。
应用程序的数字签名是用来建立应用程序的开发者和在应用程序之间的信任关系,数字签名由应用程序的开发者完成,用来让应用程序包自我认证的,安卓系统要求每一个应用程序必须要经过数字签名后才能够被安装到系统中,应用程序的数字签名被封装在PackageInfo类中,本实施例通过PackageManager来获得包含有应用数字签名信息的PackageInfo,再通过packageInfo获得Signature数组,循环遍历将签名进行拼接完成获取数字签名。
因此,在一些实施例中,可以仅仅用包名和/或数字签名作为应用的标识信息。而在一些实施例中,在识别应用时,即使包名和/或数字签名都正确,也可能出现由于某些应用版本基于安全原因而弃用或者某些应用的安装包出现破坏而使得文件大小发生变化等现象,因此为了进一步提高识别应用的准确度,还可以将应用的版本号信息及对应的文件大小信息与上述的包名和/或数字签名一起作为标识信息。
可以理解的是,上述获取待安装应用的标识信息的方法为示例性方法,本领域技术人员可以根据本实施例的实现逻辑利用其他方法获取待安装应用的标识信息,不能将其理解为对本方法的限制。
步骤S200:将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定。
终端在获取了待安装应用的标识信息后,通过TCP/IP协议经远程接口将所述待安装应用的标识信息上传到云端服务器,并且请求云端服务器根据对所述待安装应用进行白名单判定。
具体的,在云端服务器中设有应用白名单,所述应用白名单中的应用包括支付相关的应用、理财相关的应用和银行相关的应用的一种或多种,并且每个应用以其官方发布时的包名作为区别特征标识存储在应用白名单中,服务器在接收到待安装应用的标识信息后,查询待安装应用的包名是否存储在所述应用白名单中,若存在,则白名单判定通过,否则,白名单判定不通过。
进一步的,由于安卓应用安装包的开放性,应用容易被他人反编译、修改并重新打包、发布,所以在应用安装前检测应用是否存在安全风险可以有效地避免虚假应用安装到终端系统中,本实施例在服务器对所述待安装应用进行白名单判定之前,先对其进行安全性判定,具体的,所述安全性判定包括仿冒检测和病毒检测。
在一种实施方式中,所述仿冒检测通过比较待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名是否相同,若不同,则确定所述待安装应用为伪冒应用。具体的,数字签名的比较通过比较待安装应用的数字签名的MD5值(或SHA1值)与官方数字签名的MD5值(或SHA1值),若两者相同,则确定待安装应用的数字签名与官方数字签名相同。
在另一种实施方式中,所述仿冒检测通过比较待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小是否相同,若不同,则确定所述待安装应用为伪冒应用。例如,待安装应用为“银联钱包”,终端获取得到该待安装应用的包名为com.unionpay、版本号为4.4.6、安装包大小为10.94M,服务器查询到包名为com.unionpay、版本号为4.4.6的“银联钱包”应用的官方安装包大小为10.83M,则此时服务器判定所述待安装应用为伪冒应用。
更佳地,当待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小相同,且待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名相同时,判定待安装应用通过伪冒检测,为可信任的安全应用,若其中有一项不相同,则判定待安装应用为伪冒应用。例如,待安装应用为“中国工商银行”,包名为com.icbc,版本号为1.5.5,服务器根据所述包名及版本号确定对应的官方文件大小为18.24MB,再与终端上传的待安装应用的文件大小比较是否相同,若相同再比较所述待安装应用的数字签名与官方数字签名是否相同,若数字签名也相同则确定所述待安装应用通过伪冒检测,为可信任的安全应用;若两次比较有一次不同,则确定所述待安装应用为伪冒应用。
对待安装应用的病毒检测则通过对比待安装应用的安装包文件的MD5值与云端服务器中的病毒库作对比,若该MD5值存在于病毒库中时,则判定待安装应用携带有病毒。
优选的,只有在所述待安装应用通过安全性判定后,才对所述待安装应用进行白名单判定,然后服务器将判定后的结果信息反馈给终端,所述结果信息包括安全性判定的结果信息和白名单判定的结果信息。
步骤S300:接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;当所述结果信息为白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下。
终端接收云端服务器对所述待安装应用进行安全性判定和白名单判定后反馈的结果信息数据包,然后解析得到所述结果信息并根据所述结果信息执行相应的操作。
具体的,本实施例中的所述终端基于安卓多用户模式创建了一个新的用户,在创建新用户后,会在/data/system/users/userlist.xml文件中保存新用户的id(uid),然后创建/data/system/users/uid目录,并将用户信息保存至其下的uid.xml文件中,每一个用户均分配有独立的存储空间,用于存放各自的应用数据和用户数据。安卓系统的默认用户(即管理员用户)uid为0,默认用户对应于本实施例的第一用户,新创建的第一个用户(即普通用户)uid为10,新创建的用户对应于本实施例的第二用户,安卓多用户模式支持创建多个新用户,若在创建10用户后再创建一个新用户,其uid为11,同样为本实施例所述的第二用户,并且,本实施例中,系统以第一用户登录时为系统普通模式,以第二用户登录时为系统安全模式,由于多用户模式下的数据资源相互独立且无法直接进行读写操作,本实施例中所述系统安全模式配置有用于为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的,并将安全性要求较高的预定应用安装到安全模式下对应的第二用户的存储目录下。
具体的,所述预定应用即能够通过服务器白名单判定的应用,其包括支付相关的应用(例如支付宝APP)、理财相关的应用(例如陆金所APP)和银行相关的应用(例如工商银行APP)中的至少其中一种。所述运行资源既可以是理解为应用程序本身,也可以理解为应用程序的配置数据,还可以理解为应用程序的用户数据,当然,运行资源还可以理解为运行保护策略,所述的安全空间就可以理解为存储空间及其相应的运行保护策略配置环境,运行保护策略配置环境为:在运行该应用时启动杀毒、查杀木马等等安全保护措施的配置环境。
基于上述的优选实施方式(只有在所述待安装应用通过安全性判定后,才对所述待安装应用进行白名单判定)可以知道,服务器判定后的结果信息包括:
①安全性判定通过且白名单判断通过;
②安全性判定通过而白名单判断不通过;
③安全性判定不通过。
如图2所示是本发明应用程序安装方法的另一实施例流程图。
当终端解析得到服务器反馈的结果信息为安全性判定通过且白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;例如,待安装应用为“中国工商银行”,包名为com.icbc,其通过安全性判断及白名单判定,将其安装到第二用户的存储目录下,即该待安装应用的安装目录为/data/user/10/com.icbc/。
当终端解析得到服务器反馈的结果信息为安全性判定通过而白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下;例如,待安装应用为“相机360”,包名为vStudio.Android.Camera360,其通过安全性判断而不通过白名单判定,将其安装到第一用户的存储目录下,即该待安装应用的安装目录为/data/user/0/vStudio.Android.Camera360/。
较佳地,在终端解析得到服务器反馈的结果信息为白名单判定通过时之后,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下之前,还包括步骤:
输出应用安装确认窗口以在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。例如,确认窗口上显示诸如“该应用即将安装到支付域(即系统安全模式)中,请确认”的提示信息,并提供诸如“确认”的按钮以接收用户的确认指令,并在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
另外,当终端解析得到服务器反馈的结果信息为安全性判定不通过时,则确定所述待安装应用为虚假应用,然后在用户界面上输出应用安装终止窗口以在接收到用户的终止指令后终止安装所述待安装应用。例如,在终止窗口上显示诸如“该应用可能是虚假应用,是否终止安装”的提示信息,并提供诸如“终止”的按钮以接收用户的终止指令,并在接收到用户的终止指令后终止安装所述待安装应用。
第二方面,如图3所示是本发明应用安装装置的一实施例示意图,包括:
监测模块100:用于在监测到应用安装事件时获取待安装应用的标识信息。
在安卓系统中,在安卓系统中,PackageManagerService用于处理应用的安装、卸载、管理等事件,应用安装包括了以下几种方式:
①开机时完成系统已有应用安装;
②从网络下载应用后安装;
③使用ADB(Android Debug Bridge,调试桥)工具安装应用;
④从SD卡里的APK文件安装;
其中,第②③④种应用安装方式都会调用到PackageManagerService类的installPackage()函数,本实施例通过改写installPackage()函数的逻辑以在监测模块100监测到应用安装事件时进行相应的响应,即获取待安装应用的标识信息,进而执行本实施例的后续操作。
具体的,所述待安装应用的标识信息包括待安装应用的包名、版本号及对应的文件大小、数字签名的一项或多项。
其中,包名(Package Name)为应用的唯一标识,一个包名代表一个应用,包名主要用于系统识别应用,在安卓系统中不允许安装两个相同包名的应用,包名在安装包中的AndroidManifest.xml文件中定义,本实施例通过PackageInfo类的对象packageName的属性获取待安装应用的包名。
另外,应用的版本号是用于区别不同阶段发布的应用的标识,在安卓系统中,应用的版本号是在其安装包中解析得到的AndroidManifest.xml文件中配置的,并且安卓系统的PackageInfo类封装了从AndroidManifest.xml文件中获取所有应用的多种信息,本实施例通过PackageInfo的对象versionName的属性获取应用的版本号;同时,文件大小为应用安装包的文件大小,并且,同一包名、不同版本号的应用的安装包大小也有所不同,安装包的大小信息封装在PackageStats类中,只要获取PackageStats类的对象可以获取到应用安装包的文件大小,本实施例通过反射机制调用getPackageSizeInfo()方法获取待安装应用的文件大小。
应用程序的数字签名是用来建立应用程序的开发者和在应用程序之间的信任关系,数字签名由应用程序的开发者完成,用来让应用程序包自我认证的,安卓系统要求每一个应用程序必须要经过数字签名后才能够被安装到系统中,应用程序的数字签名被封装在PackageInfo类中,本实施例通过PackageManager来获得包含有应用数字签名信息的PackageInfo,再通过packageInfo获得Signature数组,循环遍历将签名进行拼接完成获取数字签名。
可以理解的是,上述获取待安装应用的标识信息的方法为示例性方法,本领域技术人员可以根据本实施例的实现逻辑利用其他方法获取待安装应用的标识信息,不能将其理解为对本发明的限制。
上传模块200:用户与将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定;
在监测模块100获取了待安装应用的标识信息后,上传模块200通过TCP/IP协议经远程接口将所述待安装应用的标识信息上传到云端服务器,并且请求云端服务器根据对所述待安装应用进行白名单判定。
具体的,所述云端服务器包括白名单判定模块,白名单判定模块中设有应用白名单,所述应用白名单中的应用包括支付相关的应用、理财相关的应用和银行相关的应用的一种或多种,并且每个应用以其官方发布时的包名作为区别特征标识存储在应用白名单中,服务器在接收到待安装应用的标识信息后,白名单判定模块查询待安装应用的包名是否存储在所述应用白名单中,若存在,则白名单判定通过,否则,白名单判定不通过。
进一步的,由于安卓应用安装包的开放性,应用容易被他人反编译、修改并重新打包、发布,所以在应用安装前检测应用是否存在安全风险可以有效地避免虚假应用安装到终端系统中,本实施例所述云端服务器还包括安全判定模块,用于在对所述待安装应用进行白名单判定之前,先对其进行安全性判定,具体的,所述安全判定模块包括仿冒检测单元和病毒检测单元。
在一种实施方式中,所述仿冒检测单元用于比较待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名是否相同,若不同,则确定所述待安装应用为伪冒应用。具体的,数字签名的比较通过比较待安装应用的数字签名的MD5值(或SHA1值)与官方数字签名的MD5值(或SHA1值),若两者相同,则确定待安装应用的数字签名与官方数字签名相同。
在另一种实施方式中,所述仿冒检测单元用于比较待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小是否相同,若不同,则确定所述待安装应用为伪冒应用。例如,待安装应用为“银联钱包”,终端获取得到该待安装应用的包名为com.unionpay、版本号为4.4.6、安装包大小为10.94M,仿冒检测单元查询到包名为com.unionpay、版本号为4.4.6的“银联钱包”应用的官方安装包大小为10.83M,则此时仿冒检测单元判定所述待安装应用为伪冒应用。
更佳地,当待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小相同,且待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名相同时,仿冒检测单元即可判定待安装应用通过伪冒检测,为可信任的安全应用,若其中有一项不相同,则判定待安装应用为伪冒应用。例如,待安装应用为“中国工商银行”,包名为com.icbc,版本号为1.5.5,仿冒检测单元根据所述包名及版本号确定对应的官方文件大小为18.24MB,再与终端上传的待安装应用的文件大小比较是否相同,若相同再比较所述待安装应用的数字签名与官方数字签名是否相同,若数字签名也相同则确定所述待安装应用通过伪冒检测,为可信任的安全应用;若两次比较结果有一次不同,则确定所述待安装应用为伪冒应用。
所述病毒检测单元对待安装应用的病毒检测则通过对比待安装应用的安装包文件的MD5值与云端服务器中的病毒库作对比,若该MD5值存在于病毒库中时,则判定待安装应用携带有病毒。
优选的,只有在所述待安装应用通过安全性判定后,才对所述待安装应用进行白名单判定,然后服务器将判定后的结果信息反馈给终端,所述结果信息包括安全性判定的结果信息和白名单判定的结果信息。
执行模块300:用于接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;当所述结果信息为白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下。
执行模块300接收云端服务器对所述待安装应用进行安全性判定和白名单判定后反馈的结果信息数据包,然后解析得到所述结果信息并根据所述结果信息执行相应的操作。
具体的,本实施例中的所述终端基于安卓多用户模式创建了一个新的用户,在创建新用户后,会在/data/system/users/userlist.xml文件中保存新用户的id(uid),然后创建/data/system/users/uid目录,并将用户信息保存至其下的uid.xml文件中,每一个用户均分配有独立的存储空间,用于存放各自的应用数据和用户数据。安卓系统的默认用户(即管理员用户)uid为0,默认用户对应于本实施例的第一用户,新创建的第一个用户(即普通用户)uid为10,新创建的用户对应于本实施例的第二用户,安卓多用户模式支持创建多个新用户,若在创建10用户后再创建一个新用户,其uid为11,同样为本实施例所述的第二用户,并且,本实施例中,系统以第一用户登录时为系统普通模式,以第二用户登录时为系统安全模式,由于多用户模式下的数据资源相互独立且无法直接进行读写操作,本实施例中所述系统安全模式配置有用于为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的,并将安全性要求较高的预定应用安装到安全模式下对应的第二用户的存储目录下。
具体的,所述预定应用即能够通过服务器白名单判定的应用,其包括支付相关的应用(例如支付宝APP)、理财相关的应用(例如陆金所APP)和银行相关的应用(例如工商银行APP)中的至少其中一种。所述运行资源既可以是理解为应用程序本身,也可以理解为应用程序的配置数据,还可以理解为应用程序的用户数据,当然,运行资源还可以理解为运行保护策略,所述的安全空间就可以理解为存储空间及其相应的运行保护策略配置环境,运行保护策略配置环境为:在运行该应用时启动杀毒、查杀木马等等安全保护措施的配置环境。
基于上述的优选实施方式(只有在所述待安装应用通过安全性判定后,才对所述待安装应用进行白名单判定)可以知道,服务器判定后的结果信息包括:
①安全性判定通过且白名单判断通过;
②安全性判定通过而白名单判断不通过;
③安全性判定不通过。
当执行模块300解析得到服务器反馈的结果信息为安全性判定通过且白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;例如,待安装应用为“中国工商银行”,包名为com.icbc,其通过安全性判断及白名单判定,将其安装到第二用户的存储目录下,即该待安装应用的安装目录为/data/user/10/com.icbc/。
当执行模块300解析得到服务器反馈的结果信息为安全性判定通过而白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下;例如,待安装应用为“相机360”,包名为vStudio.Android.Camera360,其通过安全性判断而不通过白名单判定,将其安装到第一用户的存储目录下,即该待安装应用的安装目录为/data/user/0/vStudio.Android.Camera360/。
较佳地,所述装置还包括:
第一输出单元:用于在所述当所述结果信息为白名单判定通过时之后,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下之前,输出应用安装确认窗口以在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
例如,第一输出单元输出的确认窗口上显示诸如“该应用即将安装到支付域(即系统安全模式)中,请确认”的提示信息,并提供诸如“确认”的按钮以接收用户的确认指令,并在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
另外,所述装置还包括:
第二输出单元:用于当确定所述待安装应用为伪冒应用时,输出应用安装终止窗口以在接收到用户的终止指令后终止安装所述待安装应用。
当执行模块300解析得到服务器反馈的结果信息为安全性判定不通过时,则确定所述待安装应用为虚假应用,然后第二输出单元在用户界面上输出应用安装终止窗口以在接收到用户的终止指令后终止安装所述待安装应用。例如,在终止窗口上显示诸如“该应用可能是虚假应用,是否终止安装”的提示信息,并提供诸如“终止”的按钮以接收用户的终止指令,并在接收到用户的终止指令后终止安装所述待安装应用。
另外,第三方面,本发明还提供一种移动终端,用于实现应用程序安装方法,如图4所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以移动终端为手机为例:
图4示出的是与本发明实施例提供的移动终端相关的手机的部分结构的框图。参考图4,手机包括:基带处理模块410、存储器420、输入单元430、显示单元440、传感器450、音频电路460、无线保真(wireless fidelity,WiFi)模块470、处理器480、以及电源490等部件。本领域技术人员可以理解,图4中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基带处理模块410可用于合成即将发射的基带信号,或对接收到的基带信号进行解码。具体地说,就是发射时把音频信号编译成用来发射的基带码;接收时,把收到的基带码解译为音频信号。同时,也负责地址信息(手机号、网站地址)、文字信息(短讯文字、网站文字)、图片信息(彩信)的编译。
存储器420可用于存储软件程序以及模块,处理器480通过运行存储在存储器420的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元430可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元430可包括触控面板431以及其他输入设备432。触控面板431,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板431上或在触控面板431附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板431可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器480,并能接收处理器480发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板431。除了触控面板431,输入单元430还可以包括其他输入设备432。具体地,其他输入设备432可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元440可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元440可包括显示面板441,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板441。进一步的,触控面板431可覆盖显示面板441,当触控面板431检测到在其上或附近的触摸操作后,传送给处理器480以确定触摸事件的类型,随后处理器480根据触摸事件的类型在显示面板441上提供相应的视觉输出。虽然在图4中,触控面板431与显示面板441是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板431与显示面板441集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器450,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板441的亮度,接近传感器可在手机移动到耳边时,关闭显示面板441和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路460、扬声器461,传声器462可提供用户与手机之间的音频接口。音频电路460可将接收到的音频数据转换后的电信号,传输到扬声器461,由扬声器461转换为声音信号输出;另一方面,传声器462将收集的声音信号转换为电信号,由音频电路460接收后转换为音频数据,再将音频数据输出处理器480处理后,经RF电路410以发送给比如另一手机,或者将音频数据输出至存储器420以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了WiFi模块470,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器480是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器480可包括一个或多个处理单元;优选的,处理器480可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器480中。
手机还包括给各个部件供电的电源490(比如电池),优选的,电源可以通过电源管理系统与处理器480逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器480还具有以下功能:
在监测到应用安装事件时获取待安装应用的标识信息;
将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定;
接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
概括地说,本发明提供的技术方案如下:
A1、一种应用程序安装方法,包括如下步骤:
在监测到应用安装事件时获取待安装应用的标识信息;
将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定;
接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;当所述结果信息为白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下;所述系统安全模式配置有用于为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的。
A2、根据A1所述的方法,所述预定应用包括支付相关的应用、理财相关的应用和银行相关的应用中的至少其中一种。
A3、根据A1所述的方法,所述运行资源包括应用程序本身、应用程序配置数据和应用程序的用户数据其中至少一种,所述安全空间包括存储空间。
A4、根据A1所述的方法,所述待安装应用的标识信息包括待安装应用的包名、版本号及对应的文件大小、数字签名的一项或多项。
A5、根据A1所述的方法,在对所述待安装应用进行白名单判定之前,还包括对所述待安装应用进行安全性判定。
A6、根据A5所述的方法,所述安全性判定包括仿冒检测和病毒检测。
A7、根据A6所述的方法,所述仿冒检测通过比较待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名是否相同,若不同,则确定所述待安装应用为伪冒应用。
A8、根据A7所述的方法,所述系统为安卓系统,通过获取PackageInfo类的对象packageName的属性以获取待安装应用的包名,通过PackageManger类中的packageInfo获得Signature数组以获取待安装应用的数字签名。
A9、根据A6所述的方法,所述仿冒检测通过比较待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小是否相同,若不同,则确定所述待安装应用为伪冒应用。
A10、根据A9所述的方法,所述系统为安卓系统,通过反射机制调用getPackageSizeInfo()方法获取待安装应用的文件大小,通过获取PackageInfo的对象versionName的属性获取待安装应用的版本号。
A11、根据A1所述的方法,在所述当所述结果信息为白名单判定通过时之后,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下之前,还包括:
输出应用安装确认窗口以在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
A12、根据A7或A9所述的方法,当确定所述待安装应用为伪冒应用时,输出应用安装终止窗口以在接收到用户的终止指令后终止安装所述待安装应用。
B13、一种应用安装装置,包括:
监测模块:用于在监测到应用安装事件时获取待安装应用的标识信息;
上传模块:用于与将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定;
执行模块:用于接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;当所述结果信息为白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下;所述系统安全模式配置有用于为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的。
B14、根据B13所述的装置,所述预定应用包括支付相关的应用、理财相关的应用和银行相关的应用中的至少其中一种。
B15、根据B13所述的装置,所述运行资源包括应用程序本身、应用程序配置数据和应用程序的用户数据其中至少一种,所述安全空间包括存储空间。
B16、根据B13所述的装置,所述待安装应用的标识信息包括待安装应用的包名、版本号及对应的文件大小、数字签名的一项或多项。
B17、根据B13所述的装置,还包括:
安全判定模块:用于在对所述待安装应用进行白名单判定之前,对所述待安装应用进行安全性判定。
B18、根据B17所述的装置,所述安全判定模块包括仿冒检测单元和病毒检测单元。
B19、根据B18所述的装置,所述仿冒检测单元用于比较待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名是否相同,若不同,则确定所述待安装应用为伪冒应用。
B20、根据B19所述的装置,所述系统为安卓系统,所述仿冒检测单元通过获取PackageInfo类的对象packageName的属性以获取待安装应用的包名,通过PackageManger类中的packageInfo获得Signature数组以获取待安装应用的数字签名。
B21、根据B18所述的装置,所述仿冒检测单元用于比较待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小是否相同,若不同,则确定所述待安装应用为伪冒应用。
B22、根据B21所述的装置,所述系统为安卓系统,所述仿冒检测单元通过反射机制调用getPackageSizeInfo()方法获取待安装应用的文件大小,通过获取PackageInfo的对象versionName的属性获取待安装应用的版本号。
B23、根据B13所述的装置,其特征在于,还包括:
第一输出单元:用于在所述当所述结果信息为白名单判定通过时之后,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下之前,输出应用安装确认窗口以在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
B24、根据B19或B21所述的装置,其特征在于,还包括:
第二输出单元:用于当确定所述待安装应用为伪冒应用时,输出应用安装终止窗口以在接收到用户的终止指令后终止安装所述待安装应用。
C25、一种移动终端,其特征在于,包括:
触敏显示器;
存储器;
一个或多个处理器;
所述一个或多个处理器被配置为用于执行如C1~C12所述任意一项所述方法的步骤。
本发明考虑应用安装时的安全风险及应用运行的安全性要求,通过改写安卓终端系统的PackageManagerService类的installPackage()函数,以在监测到应用安装事件时对待安装应用进行安全性判定和白名单判定,避免非官方的虚假应用安装到系统中,确保所安装的应用安全运行;并且基于安卓系统的多用户模式,将安全性判定通过且白名单判定通过的应用安装到系统安全模式下,减少用户需要手动选择安装的操作步骤,并且该安全模式配置有为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的,更好地保障应用的使用安全;
同时,通过改写PackageManagerService类的installPackage()函数,不论应用是通过静默安装或非静默安装的形式进行安装,都将被监测到应用安装事件,进而对待安装应用进行安全性判定和白名单判定,避免应用通过静默安装的形式绕过监测机制。
虽然上面已经示出了本发明的一些示例性实施例,但是本领域的技术人员将理解,在不脱离本发明的原理或精神的情况下,可以对这些示例性实施例做出改变,本发明的范围由权利要求及其等同物限定。

Claims (23)

1.一种应用安装方法,其特征在于,包括如下步骤:
在监测到应用安装事件时获取待安装应用的标识信息;所述安装事件包括静默安装事件或非静默安装事件;
对所述待安装应用进行安全性判定,当所述待安装应用通过安全性判定后,将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定;
接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;当所述结果信息为白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下;所述系统安全模式配置有用于为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的。
2.根据权利要求1所述的方法,其特征在于,所述预定应用包括支付相关的应用、理财相关的应用和银行相关的应用中的至少其中一种。
3.根据权利要求1所述的方法,其特征在于,所述运行资源包括应用程序本身、应用程序配置数据和应用程序的用户数据其中至少一种,所述安全空间包括存储空间。
4.根据权利要求1所述的方法,其特征在于,所述待安装应用的标识信息包括待安装应用的包名、版本号及对应的文件大小、数字签名的一项或多项。
5.根据权利要求1所述的方法,其特征在于,所述安全性判定包括仿冒检测和病毒检测。
6.根据权利要求5所述的方法,其特征在于,所述仿冒检测通过比较待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名是否相同,若不同,则确定所述待安装应用为伪冒应用。
7.根据权利要求6所述的方法,其特征在于,所述系统为安卓系统,通过获取PackageInfo类的对象packageName的属性以获取待安装应用的包名,通过PackageManger类中的packageInfo获得Signature数组以获取待安装应用的数字签名。
8.根据权利要求5所述的方法,其特征在于,所述仿冒检测通过比较待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小是否相同,若不同,则确定所述待安装应用为伪冒应用。
9.根据权利要求8所述的方法,其特征在于,所述系统为安卓系统,通过反射机制调用getPackageSizeInfo()方法获取待安装应用的文件大小,通过获取PackageInfo的对象versionName的属性获取待安装应用的版本号。
10.根据权利要求1所述的方法,其特征在于,在所述当所述结果信息为白名单判定通过时之后,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下之前,还包括:
输出应用安装确认窗口以在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
11.根据权利要求6或8所述的方法,其特征在于,当确定所述待安装应用为伪冒应用时,输出应用安装终止窗口以在接收到用户的终止指令后终止安装所述待安装应用。
12.一种应用安装装置,其特征在于,包括:
监测模块:用于在监测到应用安装事件时获取待安装应用的标识信息;所述安装事件包括静默安装事件或非静默安装事件;
安全判定模块:用于在对所述待安装应用进行白名单判定之前,对所述待安装应用进行安全性判定;
上传模块:用于将所述待安装应用的标识信息上传到云端服务器以对所述待安装应用进行白名单判定;
执行模块:用于接收云端服务器反馈的白名单判定的结果信息并根据所述结果信息执行相应操作,其中,当所述结果信息为白名单判定通过时,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下;当所述结果信息为白名单判定不通过时,将所述待安装应用安装到系统普通模式对应的第一用户的存储目录下;所述系统安全模式配置有用于为预定应用的运行提供运行资源的安全空间,该安全空间在系统普通模式下是不可访问的。
13.根据权利要求12所述的装置,其特征在于,所述预定应用包括支付相关的应用、理财相关的应用和银行相关的应用中的至少其中一种。
14.根据权利要求12所述的装置,其特征在于,所述运行资源包括应用程序本身、应用程序配置数据和应用程序的用户数据其中至少一种,所述安全空间包括存储空间。
15.根据权利要求12所述的装置,其特征在于,所述待安装应用的标识信息包括待安装应用的包名、版本号及对应的文件大小、数字签名的一项或多项。
16.根据权利要求12所述的装置,其特征在于,所述安全判定模块包括仿冒检测单元和病毒检测单元。
17.根据权利要求16所述的装置,其特征在于,所述仿冒检测单元用于比较待安装应用的数字签名与由所述待安装应用的包名确定的官方数字签名是否相同,若不同,则确定所述待安装应用为伪冒应用。
18.根据权利要求17所述的装置,其特征在于,所述系统为安卓系统,所述仿冒检测单元通过获取PackageInfo类的对象packageName的属性以获取待安装应用的包名,通过PackageManger类中的packageInfo获得Signature数组以获取待安装应用的数字签名。
19.根据权利要求16所述的装置,其特征在于,所述仿冒检测单元用于比较待安装应用的文件大小与由所述待安装应用的包名、版本号确定的官方文件大小是否相同,若不同,则确定所述待安装应用为伪冒应用。
20.根据权利要求19所述的装置,其特征在于,所述系统为安卓系统,所述仿冒检测单元通过反射机制调用getPackageSizeInfo()方法获取待安装应用的文件大小,通过获取PackageInfo的对象versionName的属性获取待安装应用的版本号。
21.根据权利要求12所述的装置,其特征在于,还包括:
第一输出单元:用于在所述当所述结果信息为白名单判定通过时之后,将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下之前,输出应用安装确认窗口以在接收到用户的确认指令后将所述待安装应用安装到系统安全模式对应的第二用户的存储目录下。
22.根据权利要求17或19所述的装置,其特征在于,还包括:
第二输出单元:用于当确定所述待安装应用为伪冒应用时,输出应用安装终止窗口以在接收到用户的终止指令后终止安装所述待安装应用。
23.一种移动终端,其特征在于,包括:
触敏显示器;
存储器;
一个或多个处理器;
所述一个或多个处理器被配置为用于执行如权利要求1~11任意一项所述方法的步骤。
CN201710025274.XA 2017-01-13 2017-01-13 应用程序安装方法、装置及移动终端 Active CN106874037B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710025274.XA CN106874037B (zh) 2017-01-13 2017-01-13 应用程序安装方法、装置及移动终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710025274.XA CN106874037B (zh) 2017-01-13 2017-01-13 应用程序安装方法、装置及移动终端

Publications (2)

Publication Number Publication Date
CN106874037A CN106874037A (zh) 2017-06-20
CN106874037B true CN106874037B (zh) 2020-08-18

Family

ID=59157353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710025274.XA Active CN106874037B (zh) 2017-01-13 2017-01-13 应用程序安装方法、装置及移动终端

Country Status (1)

Country Link
CN (1) CN106874037B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273168B (zh) * 2017-06-29 2019-10-15 Oppo广东移动通信有限公司 一种应用安装方法、移动终端和计算机可读存储介质
CN108121604A (zh) * 2017-12-20 2018-06-05 金华芒果信息技术有限公司 计算机软件的管理系统及方法
CN108365972A (zh) * 2018-01-11 2018-08-03 福建联迪商用设备有限公司 终端应用管理方法、计算机存储介质
CN110287087B (zh) * 2018-03-19 2023-06-13 百度在线网络技术(北京)有限公司 用于检测应用的方法和装置
CN109683919A (zh) * 2018-12-24 2019-04-26 广州微算互联信息技术有限公司 云手机应用安装和卸载方法
CN110515630B (zh) * 2019-08-16 2023-03-24 维沃移动通信有限公司 一种应用安装方法及终端
CN113495729A (zh) * 2020-03-20 2021-10-12 株洲中车时代电气股份有限公司 一种软件升级方法及装置
CN113535189A (zh) * 2020-04-17 2021-10-22 深圳市帕尔卡科技有限公司 一种防止网络劫持的应用安装方法
CN112134905B (zh) * 2020-11-20 2021-02-09 深圳市房多多网络科技有限公司 基于安卓系统的签名方法、装置以及设备
CN115086754B (zh) * 2022-07-25 2022-11-22 北京智象信息技术有限公司 一种用于智能电视系统统一安全接入外网的方法
CN116700552B (zh) * 2022-09-28 2024-04-19 荣耀终端有限公司 应用接续方法和终端设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744686A (zh) * 2013-10-18 2014-04-23 青岛海信传媒网络技术有限公司 智能终端中应用安装的控制方法和系统
CN104765629A (zh) * 2015-03-24 2015-07-08 广东欧珀移动通信有限公司 一种系统应用的安装方法及装置
CN106155753A (zh) * 2016-08-22 2016-11-23 广东欧珀移动通信有限公司 一种应用程序安装方法、装置和终端

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8413135B2 (en) * 2006-10-30 2013-04-02 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for controlling software application installations
US9075988B2 (en) * 2012-12-28 2015-07-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Inferring security decisions from trusted users
US20160162269A1 (en) * 2014-12-03 2016-06-09 Oleg POGORELIK Security evaluation and user interface for application installation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744686A (zh) * 2013-10-18 2014-04-23 青岛海信传媒网络技术有限公司 智能终端中应用安装的控制方法和系统
CN104765629A (zh) * 2015-03-24 2015-07-08 广东欧珀移动通信有限公司 一种系统应用的安装方法及装置
CN106155753A (zh) * 2016-08-22 2016-11-23 广东欧珀移动通信有限公司 一种应用程序安装方法、装置和终端

Also Published As

Publication number Publication date
CN106874037A (zh) 2017-06-20

Similar Documents

Publication Publication Date Title
CN106874037B (zh) 应用程序安装方法、装置及移动终端
CN107276789B (zh) 日志上传方法、装置及计算机可读存储介质
CN109558734B (zh) 一种堆栈安全性的检测方法及装置、移动设备
EP3647981B1 (en) Security scanning method and apparatus for mini program, and electronic device
US8484728B2 (en) Managing securely installed applications
US8850135B2 (en) Secure software installation
CN107908952B (zh) 识别真机和模拟器的方法、装置和终端
CN107766747B (zh) 校验应用程序安装包完整性的方法、移动终端及服务器
CN106598584B (zh) 一种处理资源文件的方法、装置和系统
CN109726067B (zh) 一种进程监控方法以及客户端设备
US20150163232A1 (en) Method, device and system for detecting malware in a mobile terminal
CN111191224B (zh) 虚拟机检测的对抗方法、装置及计算机可读存储介质
US20110010699A1 (en) Methods and Systems for Upgrade and Synchronization of Securely Installed Applications on a Computing Device
US20160350543A1 (en) Electronic device and method of accessing kernel data
US10152660B2 (en) Smart card read/write method and apparatus
CN110362328B (zh) Ota升级的方法、装置和计算机设备
WO2017211205A1 (zh) 一种白名单更新方法和装置
CN110869907A (zh) 一种浏览应用页面的方法及终端
CN107153792B (zh) 一种数据安全处理方法、装置及移动终端
WO2018024138A1 (zh) 检测恶意网址的方法、装置、终端以及计算机存储介质
CN112835495B (zh) 开启应用程序的方法、装置及终端设备
CN108460251B (zh) 运行应用程序的方法、装置及系统
CN108304697B (zh) 检测app二次打包的方法、装置及移动终端
CN116679967B (zh) 一种基本输入输出系统固件升级方法和装置
CN109145598B (zh) 脚本文件的病毒检测方法、装置、终端及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170719

Address after: 100102, 18 floor, building 2, Wangjing street, Beijing, Chaoyang District, 1801

Applicant after: BEIJING ANYUN SHIJI SCIENCE AND TECHNOLOGY CO., LTD.

Address before: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant before: Beijing Qihu Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant