当前位置: 首页 > 专利查询>中南大学专利>正文

一种支持Android运行时权限机制的第三方应用间通信访问控制方法技术

技术编号:16153603 阅读:35 留言:0更新日期:2017-09-06 18:40
本发明专利技术公开了一种支持Android运行时权限机制的第三方应用间通信访问控制方法,包括以下几个步骤:1)在Android系统中间件层扩展PMS;2)扩展ActivityManager中的应用间组件间通信(ICC)管理机制;3)新增一个访问控制决策管理组件以及由其动态维护的访问控制信息库,通过实时查询访问控制信息库或进一步比较通信双方运行时权限的方式,拒绝不具有客体应用危险权限的第三方应用所发起的通信请求。本发明专利技术能够根据通信双方的所具有的危险权限组对Android第三方应用间的通信进行访问控制,从而防范企图利用第三方应用危险权限的混淆代理人攻击,为第三方应用及其相应危险权限提供保护。

【技术实现步骤摘要】
一种支持Android运行时权限机制的第三方应用间通信访问控制方法
本专利技术属于Android系统访问控制领域,特别涉及一种支持Android运行时权限机制的第三方应用间通信访问控制方法。
技术介绍
Android是目前市场占有率最高的开源移动平台操作系统,系统采用了软件叠层架构,由定制的Linux内核层、中间件层及应用层组成。其中,中间件层提供了大量的系统服务,例如该层中的ActivityManager组件包含了对应用间通信进行强制访问控制的功能。Android系统通过沙箱机制隔离各应用的运行环境(签名相同的应用将运行于同一沙箱内,共享其中的资源与权限);同时,Android权限机制利用由其定义的权限标签以及强制访问控制机制,控制应用对沙箱外资源的访问过程。当应用请求访问沙箱外的资源(包括系统API、其他应用等)时,Android权限机制将根据被访问者所设定的访问权限限制要求,对该应用所拥有的权限进行检查,从而对该访问进行控制。Android系统将其定义的权限分为普通级(Normal),危险级(dangerous),签名级(signature)和系统/签名级(signatureorsystem)。其中,普通权限与危险权限是第三方应用普遍使用的权限类别,而危险权限则进一步根据其功能相关性被分为若干组。由于危险权限涉及通话、短信等敏感服务,更易造成用户损失,成为了各类基于权限的保护技术的关注重点。此外,从Android6.0Marshmallow(APILevel23)开始,Android系统引入了运行时权限机制。应用在安装时,其在Manifest.xml文件中所声明的危险权限不会被立即授予,而是在应用运行时发出权限请求,由用户以权限组为单位自行决定是否授予。即当用户根据应用请求授予其某一危险权限时,系统将自动赋予该应用在Manifest.xml文件中声明的其它同组权限。另外,在系统运行时,用户可以随时以组为单位对应用的危险权限进行授予或撤销操作。Android系统为应用提供了组件间通讯机制(Inter-ComponentCommunitation,ICC),为不同应用间的通信与功能重用提供了极大的便利,然而Android权限机制由于依赖开发者自主制定的应用访问限制策略来实现对应用间通信的控制,因此留下了巨大的安全隐患:一个未被授予相关权限的恶意程序可以通过ICC通信调用其它具有相关权限的应用的未受保护的接口,利用后者非法使用相关服务及数据,从而实现一类特定的权限提升攻击:混淆代理人攻击。在Android市场中,由于第三方应用的开发者往往缺乏相应的安全意识,未对其应用设置适当的访问策略,因而十分容易成为混淆代理人攻击的对象。
技术实现思路
本专利技术提出了一种支持Android运行时权限机制的第三方应用间通信访问控制方法,其目的在于,通过增加对通信请求双方间的访问控制关系进行合法性计算,依据合法性计算结果对通信请求进行管理控制,从而避免Android系统中发生的混淆代理人攻击的问题。一种支持Android运行时权限机制的第三方应用间通信访问控制方法,其特征在于,首先,通过在Android系统中间件层扩展PMS服务和扩展ActivityManager中的ICC监控器;其次,构建应用危险权限编码映射表、访问控制决策管理器及由其动态维护的访问控制信息库;接着,访问控制决策管理器实时查询访问控制信息库中通信请求中双方应用的运行权限,同时更新访问控制信息库,拒绝不具有客体应用危险权限的第三方应用所发起的通信请求,实现对Android第三方应用间通信的访问控制;所述扩展PMS服务是指增加将应用程序最新的危险权限信息与应用UID打包发送至控制决策管理器的过程语句;所述扩展ICC监控器是指对checkComponentPermission()方法增加将通信双方的应用UID打包发送至控制决策管理器,并依据控制决策管理器的决策结果,返回是否允许本次通信;所述访问控制信息库包括访问控制关系图和应用危险权限状态字集,其中,所述访问控制关系图用于记录应用间的合法通信关系的有向图,由邻接矩阵与十字链表构成,所述邻接矩阵记录应用间访问控制关系的合法性计算结果,所述十字链表记录应用间的访问控制关系;所述应用危险权限状态字集为Short数组,其中第i个数是UID为10000+i的应用的危险权限状态字;PMS为PackageManagerServices,ICC为应用间组件间通信,UID为标识符;所述危险权限编码映射表是指对具有危险权限的应用进行映射编码;所述访问控制决策管理器包括应用权限信息管理模块和ICC通信处理模块,应用权限信息管理模块通过接收来自扩展的PMS服务的消息,对访问控制信息库进行实时维护;ICC通信处理模块同时通过扩展的ICC通信监控器实时监控Android系统中发起的ICC通信。所述危险权限编码映射表为HASH表结构。提供了将危险权限字符串映射为一个特定整数编号的查询功能。其中,属于同一个group的权限将被分配至同一个状态字位号。进一步地,在系统初次启动时,对访问控制信息库进行初始化,过程如下:首先,应用权限信息管理模块在系统启动时检查访问控制信息库是否已经初始化,并返回结果;若访问控制信息库尚未初始化,应用权限信息管理模块将扫描系统中所有应用的信息,并根据信息更新访问控制信息库中的应用危险权限状态字集,同时将访问控制关系图进行初始化,十字链表初始化为空,并将邻接矩阵初始化为合法性未计算状态。进一步地,所述访问控制决策管理器实时查询访问控制信息库中通信请求中双方应用的运行权限,同时更新访问控制信息库的过程如下:首先,依据发起通信请求的应用方查询邻接矩阵中通信请求双方的访问控制关系是否合法,返回查询结果;若所查询的访问控制关系合法性尚未计算,则依据危险权限比较方法计算通信请求双方的访问控制关系的合法性,将合法性计算结果返回,并更新邻接矩阵,且在十字链表中增加通信请求双方间的访问控制关系节点。进一步地,应用权限信息管理模块对访问控制信息库的维护过程如下:1.1)在系统开机时对访问控制信息库进行检查,若访问控制信息库尚未初始化,则调用扩展的PMS服务扫描应用信息,通过查询危险权限编码映射表将已安装应用的危险权限状态写入访问控制信息库中的应用危险权限状态字集中,并将访问控制关系图初始化;1.2)当接收到扩展的PMS服务传来的应用安装的消息时,获取待安装应用的所有权限更新引用危险权限状态字集。进一步地,ICC通信处理模块对通信请求进行监测过程如下:2.1)当接收到来自扩展的ICC通信管理机制的消息时,调用扩展后的PMS服务,对存放通信双方应用的mPackage进行扫描,实时获取双方应用的flag及UID,依据flag和UID判断当前应用中存在非第三方应用,则不对此次通信实施访问限制,否则,进入步骤2.2);.2.2)查询访问控制信息库,对邻接矩阵对应的两应用间的访问控制关系进行查找,若其值为1,则认为访问合法,不对本次访问进行限制,若值为0,则认为本次访问不合法,通知ICC通信监控器拒绝本次访问,若值为-1或发生ArrayIndexOutOfBoundException异常,则转入步骤2.3);2.3)利用危险权限比较方法本文档来自技高网
...
一种支持Android运行时权限机制的第三方应用间通信访问控制方法

【技术保护点】
一种支持Android运行时权限机制的第三方应用间通信访问控制方法,其特征在于,首先,通过在Android系统中间件层扩展PMS服务和扩展ActivityManager中的ICC监控器;其次,构建应用危险权限编码映射表、访问控制决策管理器及由其动态维护的访问控制信息库;接着,访问控制决策管理器实时查询访问控制信息库中通信请求中双方应用的运行权限,同时更新访问控制信息库,拒绝不具有客体应用危险权限的第三方应用所发起的通信请求,实现对Android第三方应用间通信的访问控制;所述扩展PMS服务是指增加将应用程序最新的危险权限信息与应用UID打包发送至控制决策管理器的过程语句;所述扩展ICC监控器是指对checkComponentPermission()方法增加将通信双方的应用UID打包发送至控制决策管理器,并依据控制决策管理器的决策结果,返回是否允许本次通信;所述访问控制信息库包括访问控制关系图和应用危险权限状态字集,其中,所述访问控制关系图用于记录应用间的合法通信关系的有向图,由邻接矩阵与十字链表构成,所述邻接矩阵记录应用间访问控制关系的合法性计算结果,所述十字链表记录应用间的访问控制关系;所述应用危险权限状态字集为Short数组,其中第i个数是UID为10000+i的应用的危险权限状态字;所述危险权限编码映射表是指对具有危险权限的应用进行映射编码;所述访问控制决策管理器包括应用权限信息管理模块和ICC通信处理模块,应用权限信息管理模块通过接收来自扩展的PMS服务的消息,对访问控制信息库进行实时维护;ICC通信处理模块同时通过扩展的ICC通信监控器实时监控Android系统中发起的ICC通信。...

【技术特征摘要】
1.一种支持Android运行时权限机制的第三方应用间通信访问控制方法,其特征在于,首先,通过在Android系统中间件层扩展PMS服务和扩展ActivityManager中的ICC监控器;其次,构建应用危险权限编码映射表、访问控制决策管理器及由其动态维护的访问控制信息库;接着,访问控制决策管理器实时查询访问控制信息库中通信请求中双方应用的运行权限,同时更新访问控制信息库,拒绝不具有客体应用危险权限的第三方应用所发起的通信请求,实现对Android第三方应用间通信的访问控制;所述扩展PMS服务是指增加将应用程序最新的危险权限信息与应用UID打包发送至控制决策管理器的过程语句;所述扩展ICC监控器是指对checkComponentPermission()方法增加将通信双方的应用UID打包发送至控制决策管理器,并依据控制决策管理器的决策结果,返回是否允许本次通信;所述访问控制信息库包括访问控制关系图和应用危险权限状态字集,其中,所述访问控制关系图用于记录应用间的合法通信关系的有向图,由邻接矩阵与十字链表构成,所述邻接矩阵记录应用间访问控制关系的合法性计算结果,所述十字链表记录应用间的访问控制关系;所述应用危险权限状态字集为Short数组,其中第i个数是UID为10000+i的应用的危险权限状态字;所述危险权限编码映射表是指对具有危险权限的应用进行映射编码;所述访问控制决策管理器包括应用权限信息管理模块和ICC通信处理模块,应用权限信息管理模块通过接收来自扩展的PMS服务的消息,对访问控制信息库进行实时维护;ICC通信处理模块同时通过扩展的ICC通信监控器实时监控Android系统中发起的ICC通信。2.根据权利要求1所述的方法,其特征在于,在系统初次启动时,对访问控制信息库进行初始化,过程如下:首先,应用权限信息管理模块在系统启动时检查访问控制信息库是否已经初始化,并返回结果;若访问控制信息库尚未初始化,应用权限信息管理模块将扫描系统中所有应用的信息,并根据信息更新访问控制信息库中的应用危险权限状态字集,同时将访问控制关系图进行初始化,十字链表初始化为空,并将邻接矩阵初始化为合法性未计算状态。3.根据权利要求1所述的方法,其特征在于,所述访问控制决策管理器实时查询访问控制信息库中通信请求中双方应用的运行权限,同时更新访问控制信息库的过程如下:首先,依据发起通信请求的应用方查询邻接矩阵中通信请求双方的访问控制关系是否合法,返回查询结果;若所查询的访问控制关系合法性尚未计算,则依据危险权限比较方法计算通信请求双方的访问控制关系的合法性,将合法性计算结果返回,并更新邻接矩阵,且在十字链表中增加通信请求双方间的访问控制关系节点。4.根据权利要求3所述的方法,其特征在于,应用权限信息管理模块对访问控制信息库的维护过程如下:1.1)在系统开机时对访问控制信息库进行检查,若访问控制信息库尚未初始化,则调用扩展的PMS服务扫描应用信息,通过查询危险权限编码映射表将已安装应用的危险权限状态写入访问控制信息库中的应用危险权限状态字集中,并将访问控制关系图初始化;1.2)当接...

【专利技术属性】
技术研发人员:徐旸李建彬曾泉润高武强莫斌基
申请(专利权)人:中南大学
类型:发明
国别省市:湖南,43

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

1