一种安卓混合应用的细粒度访问控制方法技术

技术编号:15652946 阅读:130 留言:0更新日期:2017-06-17 06:51
本发明专利技术公开了一种Android混合应用的细粒度访问控制方法,将对Android设备系统资源的访问操作以插件对象的形式进行封装,并通过配置访问控制策略,对混合应用中加载的来自不同源的网络内容授予不同的插件访问权限,当混合应用触发访问系统资源的操作时,访问控制框架根据访问控制策略判断当前的访问请求是否具有对其所请求的资源的访问权限,以此来控制混合应用中加载的不同网络代码对系统资源的访问操作;本方法相对于Android平台原生的基于权限的访问控制机制来说,访问控制粒度更加细致,对混合应用中不同的网络代码授予了不同的系统资源访问权限,使用灵活,不需对Android系统和Web页面进行修改,具有很好的可用性。

【技术实现步骤摘要】
一种安卓混合应用的细粒度访问控制方法
本专利技术属于计算机网络
,更具体地,涉及一种安卓混合应用的细粒度访问控制方法。
技术介绍
安卓(Android)混合应用是使用Web技术和Java语言混合编写开发的移动应用;Android混合应用与Android原生应用相比,采用Web技术开发的混合应用的新特性带来了原生应用中并不存在的安全问题,尤其是混合应用需要从网络中加载内容和执行网络代码,并且混合应用核心组件WebView提供了addJavaScriptInterface等接口将对设备资源的访问能力暴露给了从网络中加载的可信度未知的JavaScript代码,使得用户设备上的资源信息和隐私数据可能被恶意攻击者窃取,带来安全隐患。为解决Android混合应用中加载的网络代码访问系统资源可能带来的安全问题,国内外的研究人员已经进行了一些探索与研究。目前的Android系统对权限的授予范围是整个应用程序,只要应用程序申请了某一权限,则应用中的任何代码都可以访问与该权限对应的系统资源。对于Android原生应用,应用代码都是本地端的Java代码,这些代码的可信程度是一致的,Android系统提供的权限机制可以有效的控制应用代码对设备资源访问;但在扩展到混合应用后,由于混合应用中实现业务逻辑的代码主要由Web技术实现,需要加载不同源的网络内容,而这些网络内容中包含的代码的可信程度是有区别的,此时Android系统提供的权限机制就不能很好的控制这些网络代码对系统资源的访问了。GeorgievM等人(GeorgievM,JanaS,ShmatikovV.Breakingandfixingorigin-basedaccesscontrolinhybridwebmobileapplicationframeworks.NDSSsymposium.NIHPublicAccess,2014,SanDiego,California,2014:1)采用NoFrak框架来保证混合应用中未授权的网络源中的Web内容不能访问设备资源,保证混合应用中可以自由加载来自不同网络域的Web页面,通过设置白名单来限制不同源的网络内容是否能访问系统资源;NoFrak框架在一定程度上起到了保护系统资源不被恶意网络代码访问的作用,但是它控制粒度比较粗糙,不能满足不同网络域的网络内容访问不同系统资源的要求,同时其访问控制策略采用开发者静态配置的方式,缺乏灵活性,用户无法根据自己的需求配置访问控制策略。Luo等人(JinX,WangL,LuoT,etal.Fine-grainedaccesscontrolforhtml5-basedmobileapplicationsinandroid.InformationSecurity.SpringerInternationalPublishing,2015:309-318)提出了一种针对混合应用中加载的Web内容的访问控制机制,通过修改Android系统和Webkit引擎,通过修改HTML元素标签的属性,设置其访问系统资源的能力,在应用运行时,Webkit解析引擎解析HTML页面,获取页面元素的访问权限并结合应用本身申请的权限来得到其实际的访问控制权限,从而进行访问控制,这种方式需要修改Android系统本身,且需要开发者对HTML中的各个元素设置访问权限,过程比较复杂,在实用性方面存在一定的问题。综上所述,当前对于Andorid混合应用中如何保护系统资源不被非可信的网络内容访问的相关研究还不够系统和深入,现有的解决方案能在一定程度上解决混合应用中非可信网络代码访问系统资源所造成的安全问题,但从实施的角度来看,现有技术在访问控制粒度和灵活性上均存在不足,且需要修改Android系统本身,兼容性较差,不易于实施。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种安卓混合应用的细粒度访问控制方法,在无需对Android系统本身和Web页面进行修改的情况下,将Android混合应用对设备系统资源访问权限的分配细化到针对Android混合应用中加载的不同的网络域,以克服Android系统无法精细控制Android混合应用中网络代码对系统资源的访问而引发的安全问题。为实现上述目的,按照本专利技术的一个方面,提供了一种安卓混合应用的细粒度访问控制方法,包括如下步骤:(1)对安卓混合应用中可能加载的各类的网络域配置访问控制策略;(2)通过解析开发者预先定义策略配置文件,或者通过用户动态配置来获取所运行的安卓混合应用的访问控制策略;(3)在安卓混合应用的运行中,当安卓混合应用的WebView中加载的网络页面中的代码需要访问系统资源时,通过截取访问请求对插件管理模块(PluginManager)的调用链,获取发起访问请求的来源和拟访问的插件信息,并将这些相关信息进行封装;(4)据访问请求的来源、拟访问的插件的信息,查询访问控制策略库,根据访问控制策略判断是否允许该访问请求;(5)插件管理模块根据判断的结果进行处理;若允许该访问,则调用拟访问插件的具体响应函数处理该访问请求,若拒绝该访问,则结束。优选地,上述安卓混合应用的细粒度访问控制方法,其步骤(1)包括如下子步骤:(1)根据安卓混合应用开发框架的命令行工具创建安卓混合应用;(1.2)在应安卓混合应用的assets/www目录中实现完成应用逻辑功能的各HTML、CSS和js文件;(1.3)配置应用的Manifest.xml文件res/xml/config.xml文件来指定应用申请的权限和使用的插件;(1.4)配置应用的res/xml/permission.xml文件来指定应用中需要加载的各网络域对各插件的访问控制策略。优选地,上述安卓混合应用的细粒度访问控制方法,其步骤(2)具体包括以下子步骤:(2.1)由权限管理模块(PermissionManager)获取开发者预先定义的策略配置文件并对其进行解析;(2.2)根据解析获得的访问控制主体、客体和动作相关信息构建访问控制策略集合;(2.3)由用户根据应用需求对上述问控制策略集合进行增加、删除或修改,来更新访问控制策略集合。优选地,上述安卓混合应用的细粒度访问控制方法,其步骤(3)具体包括以下子步骤:(3.1)当安卓混合应用的WebView中加载的Web页面拟访问系统资源时,通过JavaScript代码调用相关插件的js文件中提供的函数;(3.2)所述插件的js文件中的处理函数将相关的访问请求的参数进行封装,采用安卓混合应用开发框架提供的接口方法进行统一处理;(3.3)通过在初始化过程将安卓混合应用绑定到安卓混合应用WebView的桥接接口,将网络页面中对系统资源的访问请求传递给Java层;(3.4)由插件管理模块根据访问请求的参数,查找对应的插件对象;若存在插件对象,则将访问请求的来源和拟访问的插件信息进行封装,形成访问请求信息后发送给权限管理模块(PermissionManager);若不存在插件对象,则结束本次访问。优选地,上述安卓混合应用的细粒度访问控制方法,其步骤(4)具体包括以下子步骤:(4.1)权限管理模块对访问请求信息进行解析,获取访问请求的主体和客体信息,即发起访问请求的网络域和拟访问的插件;(4本文档来自技高网
...
一种安卓混合应用的细粒度访问控制方法

【技术保护点】
一种安卓混合应用的细粒度访问控制方法,其特征在于,包括如下步骤:(1)对安卓混合应用中可能加载的各类的网络域配置访问控制策略;(2)通过解析开发者预先定义策略配置文件,或者通过用户动态配置来获取所运行的安卓混合应用的访问控制策略;(3)在安卓混合应用的运行中,当安卓混合应用的WebView中加载的网络页面中的代码需要访问系统资源时,通过截取访问请求对插件管理模块的调用链,获取发起访问请求的来源和拟访问的插件信息,并将这些相关信息进行封装;(4)据访问请求的来源、拟访问的插件的信息,查询访问控制策略库,根据访问控制策略判断是否允许该访问请求;(5)插件管理模块根据判断的结果进行处理;若允许该访问,则调用拟访问插件的具体响应函数处理该访问请求,若拒绝该访问,则结束。

【技术特征摘要】
1.一种安卓混合应用的细粒度访问控制方法,其特征在于,包括如下步骤:(1)对安卓混合应用中可能加载的各类的网络域配置访问控制策略;(2)通过解析开发者预先定义策略配置文件,或者通过用户动态配置来获取所运行的安卓混合应用的访问控制策略;(3)在安卓混合应用的运行中,当安卓混合应用的WebView中加载的网络页面中的代码需要访问系统资源时,通过截取访问请求对插件管理模块的调用链,获取发起访问请求的来源和拟访问的插件信息,并将这些相关信息进行封装;(4)据访问请求的来源、拟访问的插件的信息,查询访问控制策略库,根据访问控制策略判断是否允许该访问请求;(5)插件管理模块根据判断的结果进行处理;若允许该访问,则调用拟访问插件的具体响应函数处理该访问请求,若拒绝该访问,则结束。2.如权利要求1所述的细粒度访问控制方法,其特征在于,所述步骤(2)包括如下子步骤:(2.1)由权限管理模块获取预先定义的策略配置文件并对其进行解析;(2.2)根据解析获得的访问控制主体、客体和动作相关信息构建访问控制策略集合;(2.3)由用户根据应用需求对上述问控制策略集合进行增加、删除或修改,来更新访问控制策略集合。3.如权利要求1或2所述的细粒度访问控制方法,其特征在于,所述步骤(3)包括如下子步骤:(3.1)当安卓混合应用的WebView中加载的Web页面拟访问系统资源时,通过JavaScript代码调用相关插件...

【专利技术属性】
技术研发人员:李瑞轩王葵辜希武章衡韩洪木汤俊伟
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1