CN103885784A - 具有安全模块可插拔功能的Android平台构建方法 - Google Patents
具有安全模块可插拔功能的Android平台构建方法 Download PDFInfo
- Publication number
- CN103885784A CN103885784A CN201410138727.6A CN201410138727A CN103885784A CN 103885784 A CN103885784 A CN 103885784A CN 201410138727 A CN201410138727 A CN 201410138727A CN 103885784 A CN103885784 A CN 103885784A
- Authority
- CN
- China
- Prior art keywords
- security module
- module
- joint
- android platform
- calling
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种具有安全模块可插拔功能的Android平台构建方法,该方法首先在原生Android平台四层结构中查找与安全模块特征点相关的所有交汇点;其次,根据交汇点所在位置确定安全模块的类型及存储路径;最后在所有交汇点设置与其所在位置相对应的调用模块,该方法使得安全模块独立于特定的Android平台版本和特定的终端厂商,具有较好的独立性和可替换性。
Description
技术领域
本发明属于移动智能终端操作系统领域,尤其涉及具有安全模块可插拔功能的Android平台构建方法。
背景技术
在移动智能终端操作系统领域,随着Android平台市场份额的不断攀升和应用领域的不断扩展,各种病毒和恶意软件已开始高度关注Android平台,对Android终端实施安全防护的重要性愈发明显。现有的Android终端安全软件通常以第三方应用程序的方式提供给用户使用,这种利用第三方应用程序对移动智能终端实施安全防护的方式,最大弱点在于安全防护能力先天不足,对于获取root权限的攻击、未知恶意软件攻击的安全防护效果甚微。只有从Android平台操作系统的底层内核到上层应用对移动智能终端进行全方位的深度定制和修改,才能真正保证Android平台的安全可信。
目前,基于原生Android平台添加安全功能的常规流程为:直接修改特定版本的原生Android平台源代码,将安全功能的源代码添加到Android平台源代码中,编译源代码完成后,由终端厂商发布集成安全功能的Android平台,安全功能与Android平台紧密耦合。这种方法的缺点为:第一、Android平台是一个不断更新和不断完善的生态系统,自2007年底推出Android 1.0版本后,已发布十几个版本,目前的最新版本为Android 4.1版本,基于原生Android平台添加安全功能模块需要考虑不同Android版本之间的兼容问题,而众所周知,在多个Android版本之间进行源代码移植的工作量非常庞大;第二、Android平台是一个开源、开放平台,终端硬件厂商可以基于特定版本的原生Android平台添加修改自己的特色功能后形成一个定制版本,这就造成Android平台版本的分裂,而将安全功能模块在众多厂商的Android版本之间进行源代码移植的工作量也非常庞大;第三、不带安全功能模块的Android基础版本和安全功能模块不由同一个厂商开发,在进行功能集成时,需要获取对方的源代码,而交换源代码是个棘手和敏感的问题,容易造成合作障碍;而且,厂商之间的频繁交互,也会大大增加开发成本。
另外,Android平台是一个架构良好的层次化软硬件平台,可以分为四层:最上层为应用程序层,由操作系统厂商和第三方开发人员提供多种功能的应用程序;第二层为应用框架层,提供应用程序运行的Java层框架及基础服务模块;第三层为系统运行库层,提供系统库和Android运行时库;最底层为Linux内核层,提供基础的操作系统内核驱动和硬件驱动。
发明内容
本发明解决的技术问题为提供一种具有安全模块可插拔功能的Android平台构建方法。
为解决上述技术问题,本发明一种具有安全模块可插拔功能的Android平台构建方法,具体包括以下步骤:
步骤1、在原生Android平台四层结构中查找与安全模块特征点相关的所有交汇点;
步骤2、根据交汇点所在位置确定安全模块的类型及存储路径;
a 当交汇点在应用程序层时,将安全模块编译成APK的文件,其存放路径为Android平台的/system/app目录;
b 当交汇点在应用框架层时,将安全模块编译成Jar文件,存放路径不限制;
c 当交汇点在系统运行库层时,将安全模块编译成ELF文件、脚本文件或.so文件,其存放路径为Android平台的/system/lib目录;
d 当交汇点在Linux内核层时,将安全模块编译成LKM模块,存放路径不限制;
步骤3、在所有交汇点设置与其所在位置相对应的调用模块;
A、当交汇点位于应用程序层时,该调用模块的实现方式为通过Intent/Broadcast调用Activity来实现,该调用模块所调用的安全模块为安全模块APK文件;
B、当交汇点位于应用框架层时,该调用模块的实现方式为直接加载步骤2中b已知存放路径下的安全模块Jar包来实现,该调用模块所调用的安全模块为安全模块Jar包;
C、当交汇点位于系统运行库层时,该调用模块的实现方式为通过在路径/etc/init.rc中添加对安全模块ELF程序、so库或者脚本文件的调用来实现,该调用模块所调用的安全模块为安全模块ELF程序、so库或者脚本文件;
D、当交汇点位于Linux内核层时,该调用模块的实现方式为通过insmod命令加载步骤2中d绝对路径下的LKM模块到Linux内核中来实现,该调用模块所调用的安全模块为LKM模块;
步骤4、重新编译步骤3修改后Android平台。
进一步地优选方案,本发明具有安全模块可插拔功能的Android平台构建方法,步骤1中所述安全模块的特征点包括访问文件系统、短信接收上报、系统登录、应用程序之间互相访问。
进一步地优选方案,本发明具有安全模块可插拔功能的Android平台构建方法,该方法中安全模块可插拔的实现步骤具体如下:
安全模块插入调用过程:
将用户选择的执行点作为初始运行点,当运行过程中遇到交汇点时,交汇点处的调用模块执行相应的调用过程,若存在与调用模块相匹配的安全模块则调用并执行该安全模块,否则按原生Android流程继续执行;
安全模块删除过程:
将步骤2中放置到相应目录下的安全模块删除;再次执行安全模块的相应功能,该功能执行到交汇点时,调用方找不到相应的安全模块,继续执行原生Android平台流程。
进一步地优选方案,本发明具有安全模块可插拔功能的Android平台构建方法中,所述安全模块包括数据存储保护、增强用户认证、强制访问控制、细粒度权限控制、密码服务、特殊短信处理。
本发明与现有技术相比具有以下显著的优点:(1)本发明中安全功能以安全模块的形式构建,安全模块独立于特定的Android平台版本和特定的终端厂商,具有较好的独立性和可替换性;(2)本发明简化了开发安全模块时对Android平台的耦合依赖,大大减轻了开发人员的负担;(3)终端厂商可根据安全需求插拔不同的安全模块,以达到不同的安全防护目的;(4)安全模块的插拔不影响Android平台的运行。
附图说明
图1为Android平台中交汇点、调用模块以及安全模块三者结构示意图;
图2为实施例细粒度权限控制安全模块在Android平台进行插拔过程流程图。
具体实施方式
一种具有安全模块可插拔功能的Android平台构建方法,具体包括以下步骤:
步骤1、如图1所示,在原生Android平台四层结构中查找与安全模块特征点相关的所有交汇点;所述安全模块的特征点包括访问文件系统、短信接收上报、系统登录、应用程序之间互相访问;
步骤2、根据交汇点所在位置确定安全模块的类型及存储路径,所述安全模块包括数据存储保护、增强用户认证、强制访问控制、细粒度权限控制、密码服务、特殊短信处理;
a 当交汇点在应用程序层时,使用Google提供的Android应用程序编译工具ADT(Android Development Tools)配合Eclipse将安全模块编译成APK的文件,其存放路径为Android平台的/system/app目录;
b 当交汇点在应用框架层时,使用Java编译工具例如JDK6.0将安全模块编译成Jar文件,存放路径不限制;
c 当交汇点在系统运行库层时,根据源语言的类型选择编译工具,将安全模块编译成ELF文件、脚本文件或.so文件,其存放路径为Android平台的/system/lib目录;
d 当交汇点在Linux内核层时,使用C/C++编译工具GCC将安全模块编译成LKM模块,存放路径不限制;
步骤3、在所有交汇点设置与其所在位置相对应的调用模块;
A、当交汇点位于应用程序层时,该调用模块的实现方式为通过Intent/Broadcast调用Activity来实现,该调用模块所调用的安全模块为安全模块APK文件;
B、当交汇点位于应用框架层时,该调用模块的实现方式为使用PathClassLoader直接加载步骤2中b已知存放路径下的安全模块Jar包来实现,该调用模块所调用的安全模块为安全模块Jar包;
C、当交汇点位于系统运行库层时,该调用模块的实现方式为通过在路径/etc/init.rc中添加对安全模块ELF程序、so库或者脚本文件的调用来实现,该调用模块所调用的安全模块为安全模块ELF程序、so库或者脚本文件;
D、当交汇点位于Linux内核层时,该调用模块的实现方式为通过insmod命令加载步骤2中d绝对路径下的LKM模块到Linux内核中来实现,该调用模块所调用的安全模块为LKM模块;
步骤4、重新编译步骤3修改后Android平台。
其中,安全模块可插拔的实现步骤具体如下:
安全模块插入调用过程:
将用户选择的执行点作为初始运行点,当运行过程中遇到交汇点时,交汇点处的调用模块执行相应的调用过程,若存在与调用模块相匹配的安全模块则调用并执行该安全模块,否则按原生Android流程继续执行;
安全模块删除过程:
将步骤2中放置到相应目录下的安全模块删除;再次执行安全模块的相应功能,该功能执行到交汇点时,调用方找不到相应的安全模块,继续执行原生Android平台流程。
实施例
现以细粒度权限控制安全模块为例,具有细粒度权限控制安全模块可插拔功能的Android平台构建方法,具体实现过程如下:
细粒度权限控制安全模块可以实现单个应用程序的危险权限和多个应用程序组合的危险权限的控制。
步骤1原生Android平台四层结构中与细粒度权限控制安全模块特征点相关的交汇点为ActivityManagerService的checkPermission方法,如图2所示。Android应用框架层提供了一套授权机制,当应用程序访问资源时,会进行权限检查,只有被授权的操作才被允许继续运行。权限检查的位置为系统服务ActivityManagerService的checkPermission方法。细粒度权限控制安全模块在这个方法进行拦截,传入的参数有:访问主体应用程序的uid、需要检查的权限permission、访问客体应用程序的uid,返回的结果为是否允许该次访问操作;
步骤2 设计并实现细粒度权限控制安全模块。如图2所示,细粒度权限控制安全模块的功能为判断已运行的存在通信关联的多个应用程序之间是否有危险权限组合,应用程序获取与该组件通信的其他应用程序名称,并分别更新该应用程序和与之通信的其他应用程序的运行权限列表,判断该应用程序和与之通信的其他应用程序的运行权限列表中是否存在应用程序危险权限组合列表,若存在则提醒用户该应用程序存在安全隐患,弹出提示框提醒用户,让用户决定是否继续运行,如果用户选择是,则继续运行该应用程序;如果用户选择否,则停止运行;
步骤3 细粒度权限控制安全模块可插拔的实现步骤具体如下:
细粒度权限控制安全模块插入调用过程:
细粒度权限控制安全模块jar包名称为sec_authority.jar,放置于手机/system/framework目录,当Android平台运行至ActivityManagerService的checkPermission方法时,使用PathClassLoader加载sec_authority.jar,实例化sec_authority.jar的访问接口类,获取其引用mPermissionManager。执行mPermissionManager的检查危险权限方法。
细粒度权限控制安全模块删除过程:
细粒度权限控制安全模块/system/framework/sec_authority.jar文件删除;当Android平台运行至ActivityManagerService的checkPermission方法时,PathClassLoader无法加载sec_authority.jar文件,调用方找不到相应的安全模块,继续执行原生Android平台流程。
Claims (4)
1.一种具有安全模块可插拔功能的Android平台构建方法,其特征在于,
该方法包括以下步骤:
步骤1、在原生Android平台四层结构中查找与安全模块特征点相关的所有
交汇点;
步骤2、根据交汇点所在位置确定安全模块的类型及存储路径;
a 当交汇点在应用程序层时,将安全模块编译成APK的文件,其存放路径为Android平台的/system/app目录;
b 当交汇点在应用框架层时,将安全模块编译成Jar文件,存放路径不限制;
c 当交汇点在系统运行库层时,将安全模块编译成ELF文件、脚本文件或.so文件,其存放路径为Android平台的/system/lib目录;
d 当交汇点在Linux内核层时,将安全模块编译成LKM模块,存放路径不限制;
步骤3、在所有交汇点设置与其所在位置相对应的调用模块;
A、当交汇点位于应用程序层时,该调用模块的实现方式为通过Intent/Broadcast调用Activity来实现,该调用模块所调用的安全模块为安全模块APK文件;
B、当交汇点位于应用框架层时,该调用模块的实现方式为直接加载步骤2中b已知存放路径下的安全模块Jar包来实现,该调用模块所调用的安全模块为安全模块Jar包;
C、当交汇点位于系统运行库层时,该调用模块的实现方式为通过在路径/etc/init.rc中添加对安全模块ELF程序、so库或者脚本文件的调用来实现,该调用模块所调用的安全模块为安全模块ELF程序、so库或者脚本文件;
D、当交汇点位于Linux内核层时,该调用模块的实现方式为通过insmod命令加载步骤2中d绝对路径下的LKM模块到Linux内核中来实现,该调用模块所调用的安全模块为LKM模块;
步骤4、重新编译步骤3修改后Android平台。
2.根据权利要求1所述具有安全模块可插拔功能的Android平台构建方法,其特征在于,步骤1中所述安全模块的特征点包括访问文件系统、短信接收上报、系统登录、应用程序之间互相访问。
3.根据权利要求1所述具有安全模块可插拔功能的Android平台构建方法,其特征在于,该方法中安全模块可插拔的实现步骤具体如下:
安全模块插入调用过程:
将用户选择的执行点作为初始运行点,当运行过程中遇到交汇点时,交汇点处的调用模块执行相应的调用过程,若存在与调用模块相匹配的安全模块则调用并执行该安全模块,否则按原生Android流程继续执行;
安全模块删除过程:
将步骤2中放置到相应目录下的安全模块删除;再次执行安全模块的相应功能,该功能执行到交汇点时,调用方找不到相应的安全模块,继续执行原生Android平台流程。
4.根据权利要求1或2所述具有安全模块可插拔功能的Android平台构建方法,其特征在于,所述安全模块包括数据存储保护、增强用户认证、强制访问控制、细粒度权限控制、密码服务、特殊短信处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410138727.6A CN103885784B (zh) | 2014-04-09 | 2014-04-09 | 具有安全模块可插拔功能的Android平台构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410138727.6A CN103885784B (zh) | 2014-04-09 | 2014-04-09 | 具有安全模块可插拔功能的Android平台构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103885784A true CN103885784A (zh) | 2014-06-25 |
CN103885784B CN103885784B (zh) | 2017-01-18 |
Family
ID=50954694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410138727.6A Active CN103885784B (zh) | 2014-04-09 | 2014-04-09 | 具有安全模块可插拔功能的Android平台构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885784B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740701A (zh) * | 2016-02-01 | 2016-07-06 | 中国人民大学 | 一种Android平台应用执行环境重构方法及装置 |
CN106293708A (zh) * | 2016-07-29 | 2017-01-04 | 联想(北京)有限公司 | 信息处理方法及存储设备 |
CN107368301A (zh) * | 2017-06-27 | 2017-11-21 | 深圳市爱培科技术股份有限公司 | 一种串口框架协议实现方法、存储介质及装置 |
CN108595945A (zh) * | 2018-04-18 | 2018-09-28 | Oppo广东移动通信有限公司 | 权限提示方法、装置、移动终端、服务器及存储介质 |
CN111428128A (zh) * | 2020-02-20 | 2020-07-17 | 北京达佳互联信息技术有限公司 | 可插拔推荐系统的生成方法、服务推荐方法、装置及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067392B (zh) * | 2012-12-28 | 2015-07-01 | 中国人民解放军理工大学 | 一种基于Android终端的安全访问控制方法 |
CN103310153B (zh) * | 2013-04-28 | 2015-12-09 | 中国人民解放军理工大学 | 一种基于Android平台的细粒度权限控制方法 |
CN103268451B (zh) * | 2013-06-08 | 2017-12-05 | 上海斐讯数据通信技术有限公司 | 一种基于移动终端的动态权限管理系统 |
CN103593605B (zh) * | 2013-10-24 | 2016-11-09 | 复旦大学 | 一种基于权限使用行为的安卓平台应用程序动态分析系统 |
-
2014
- 2014-04-09 CN CN201410138727.6A patent/CN103885784B/zh active Active
Non-Patent Citations (3)
Title |
---|
戴威等: "基于Android 权限机制的动态隐私保护模型", 《计算机应用研究》 * |
蒋绍林等: "Android安全研究综述", 《计算机应用与软件》 * |
马红素: "Android开放平台应用程序的安全检测系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740701A (zh) * | 2016-02-01 | 2016-07-06 | 中国人民大学 | 一种Android平台应用执行环境重构方法及装置 |
CN106293708A (zh) * | 2016-07-29 | 2017-01-04 | 联想(北京)有限公司 | 信息处理方法及存储设备 |
CN107368301A (zh) * | 2017-06-27 | 2017-11-21 | 深圳市爱培科技术股份有限公司 | 一种串口框架协议实现方法、存储介质及装置 |
CN107368301B (zh) * | 2017-06-27 | 2020-12-15 | 深圳市爱培科技术股份有限公司 | 一种串口框架协议实现方法、存储介质及装置 |
CN108595945A (zh) * | 2018-04-18 | 2018-09-28 | Oppo广东移动通信有限公司 | 权限提示方法、装置、移动终端、服务器及存储介质 |
CN111428128A (zh) * | 2020-02-20 | 2020-07-17 | 北京达佳互联信息技术有限公司 | 可插拔推荐系统的生成方法、服务推荐方法、装置及设备 |
CN111428128B (zh) * | 2020-02-20 | 2021-09-10 | 北京达佳互联信息技术有限公司 | 可插拔推荐系统的生成方法、服务推荐方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103885784B (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11294663B2 (en) | Automated mobile application integration | |
EP3336690B1 (en) | Extensible data transformation authoring and validation system | |
CN103713902B (zh) | 一种基于Android系统的BOA编译方法和系统 | |
US9811393B2 (en) | Consistent extension points to allow an extension to extend functionality of an application to another application | |
CN105046116B (zh) | Android系统中保护dex文件不被反编译的方法 | |
CN103067392B (zh) | 一种基于Android终端的安全访问控制方法 | |
US20170192773A1 (en) | Mobile applications | |
CN106471466A (zh) | 短暂应用 | |
CN103885784A (zh) | 具有安全模块可插拔功能的Android平台构建方法 | |
CN103902859A (zh) | 基于JAVA下hook技术的代码保护方法及系统 | |
CN102930190B (zh) | 一种在安卓系统中阻止用户获取超级用户权限的方法 | |
CN105630518A (zh) | Android应用软件资源更新的方法和装置 | |
CN104615462A (zh) | 跨平台的移动应用生成服务端及系统 | |
CN103246848A (zh) | 保护软件安全的方法和设备 | |
CN107402792B (zh) | 应用软件安装包的集成方法、装置、设备及存储介质 | |
WO2022078366A1 (zh) | 应用保护方法、装置、设备及介质 | |
US11243748B2 (en) | Artificial intelligence mobile integration | |
US8959485B2 (en) | Security protection domain-based testing framework | |
CN103544434A (zh) | 用于确保应用程序安全运行的方法和终端 | |
CN108595950A (zh) | 一种结合远程认证的sgx安全增强方法 | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
CN104156247A (zh) | 一种应用升级方法及装置 | |
CN103186730A (zh) | 保护.net软件安全的方法和设备 | |
Shah | Penetration Testing Android Applications | |
CN116974583A (zh) | 数据处理方法、装置、计算机设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |