1.本发明涉及应用程序管理技术领域,尤其涉及一种设备运行时的应用权限管理方法、装置及电子设备。
背景技术:2.随着电子设备中应用程序的日益增多,电子设备的系统及数据安全越来越受到重视。为了对电子设备运行时的应用权限进行管理,在android系统中,从android4.3开始引入了appops机制,但由于不太成熟,一直没有启用,直到android6.0引入runtime permission机制后,允许用户在运行的时候动态控制权限。
3.但是,对于android系统的runtime permission机制,它只保护android系统认为是dangerous(有风险)权限的应用调用,对于具有normal(一般的)权限的应用调用,android系统并不会拦截,而且它需要第三方应用进行适配才能实现,导致不能对应用权限进行有效管理,从而不能有效保护电子设备中用户数据的安全。
技术实现要素:4.本发明提供的设备运行时的应用权限管理方法、装置及电子设备,能够通过监测跨进程调用或远程进程调用,过滤上层应用程序可能对用户数据造成安全风险的敏感调用,从而保护用户数据的安全。
5.第一方面,本发明提供一种设备运行时的应用权限管理方法,所述方法应用于服务端,,所述方法包括:
6.通过binder驱动接收客户端在检测到有上层应用调用通过应用程序接口api时发起的远程过程调用rpc请求;
7.根据所述rpc请求查询此次调用的授权状态;
8.根据查询到的授权状态进行相应处理。
9.可选地,所述rpc请求中至少包括服务名、操作标识和应用标识;
10.所述根据所述rpc请求查询此次调用的授权状态包括:
11.根据所述服务名和操作标识,从binder hook映射表中查询对应的授权标识;
12.根据所述应用标识和所述授权标识,从权限配置表中查询对应的授权状态。
13.可选地,所述根据查询到的授权状态进行相应处理包括:
14.判断此次调用是否是拒绝授权;
15.若此次调用是拒绝授权,则向客户端提示拒绝此次调用;
16.若此次调用不是拒绝授权,则判断此次调用是否是允许授权;
17.若此次调用是允许授权,则继续处理,并在rpc调用结束后唤醒客户端;
18.若此次调用不是允许授权,则进行弹框由用户选择是否授权,判断用户是否选择授权;
19.若用户选择授权,则将该应用的授权状态写入权限配置表,并继续处理,在rpc调
用结束后唤醒客户端;
20.若用户未选择授权,则将该应用的授权状态写入权限配置表,向客户端提示拒绝此次调用。
21.可选地,所述方法还包括:
22.对所述权限配置表中,一组或多组应用标识和授权标识对应的授权状态进行修改。
23.第二方面,本发明提供一种设备运行时的应用权限管理装置,所述装置包括:
24.接收单元,用于通过binder驱动接收客户端在检测到有上层应用调用通过应用程序接口api时发起的远程过程调用rpc请求;
25.查询单元,用于根据所述rpc请求查询此次调用的授权状态;
26.处理单元,用于根据查询到的授权状态进行相应处理。
27.可选地,所述rpc请求中至少包括服务名、操作标识和应用标识;
28.所述查询单元包括:
29.第一查询模块,用于根据所述服务名和操作标识,从binder hook映射表中查询对应的授权标识;
30.第二查询模块,用于根据所述应用标识和所述授权标识,从权限配置表中查询对应的授权状态。
31.可选地,所述处理单元包括:
32.第一判断模块,用于判断此次调用是否是拒绝授权;
33.第一处理模块,用于当此次调用是拒绝授权时,向客户端提示拒绝此次调用;
34.第二判断模块,用于当此次调用不是拒绝授权时,判断此次调用是否是允许授权;
35.第二处理模块,用于当此次调用是允许授权时,继续处理,并在rpc调用结束后唤醒客户端;
36.第三判断模块,用于当此次调用不是允许授权时,进行弹框由用户选择是否授权,判断用户是否选择授权;
37.写入模块,用于当用户选择授权时,将该应用的授权状态写入权限配置表,之后由第二处理模块继续处理,在rpc调用结束后唤醒客户端;
38.所述写入模块,还用于当用户未选择授权时,将该应用的授权状态写入权限配置表,之后由第一处理模块向客户端提示拒绝此次调用。
39.可选地,所述装置还包括:
40.修改单元,用于对所述权限配置表中,一组或多组应用标识和授权标识对应的授权状态进行修改。
41.第三方面,本发明提供一种电子设备,所述电子设备包括:
42.至少一个处理器;以及
43.与所述至少一个处理器通信连接的存储器;其中,
44.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述设备运行时的应用权限管理方法。
45.第四方面,本发明提供一种芯片,所述芯片包括:
46.至少一个处理器;以及
47.与所述至少一个处理器通信连接的存储器;其中,
48.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述设备运行时的应用权限管理方法。
49.第五方面,本发明提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现上述设备运行时的应用权限管理方法。
50.本发明实施例提供的设备运行时的应用权限管理方法、装置及电子设备,服务端能够对客户端检测到的所有上层应用调用进行监控,过滤上层应用程序可能对用户数据造成安全风险的敏感调用,确保上层应用的跨进程调用都是安全调用,从而保护用户数据的安全。
附图说明
51.图1为本发明一实施例设备运行时的应用权限管理方法的流程图;
52.图2为本发明实施例提供的服务端进行binder hook的示意图;
53.图3为本发明另一实施例设备运行时的应用权限管理方法的流程图;
54.图4为本发明一实施例设备运行时的应用权限管理装置的结构示意图;
55.图5为本发明另一实施例设备运行时的应用权限管理装置的结构示意图;
56.图6为本发明再一实施例设备运行时的应用权限管理装置的结构示意图;
57.图7为本发明又一实施例设备运行时的应用权限管理装置的结构示意图。
具体实施方式
58.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
59.本发明实施例提供一种设备运行时的应用权限管理方法,所述方法应用于服务端,如图1所示,所述方法包括:
60.s11、服务端通过binder驱动接收客户端在检测到有上层应用调用通过应用程序接口api时发起的远程过程调用rpc请求。
61.s12、服务端根据所述rpc请求查询此次调用的授权状态。
62.s13、服务端根据查询到的授权状态进行相应处理。
63.本发明实施例提供的设备运行时的应用权限管理方法,服务端能够对客户端检测到的所有上层应用调用进行监控,过滤上层应用程序可能对用户数据造成安全风险的敏感调用,确保上层应用的跨进程调用都是安全调用,从而保护用户数据的安全。
64.下面结合具体实施例对本发明设备运行时的应用权限管理方法进行详细说明。
65.在android系统中,涉及到多进程间的通信底层都是依赖于binder ipc(inter-process communication,进程间通信)机制。例如,当进程a中的activity要向进程b中的service通信,这便需要依赖于binder ipc。不仅于此,整个android系统架构中,大量采用了binder机制作为方案。
66.本实施例的核心是在服务端(server)进行binder hook,如图2所示,所有经过跨进程调用的调用者都被会监控。例如,可以采用dojudge方法,确保上层应用的跨进程调用都是安全调用。
67.如图3所示,本实施例提供的设备运行时的应用权限管理方法包括:
68.s301、上层应用调用通过api(application programming interface,应用程序接口)。
69.s302、客户端(client)向binder驱动发起rpc(remote procedure call,远程过程调用)请求,挂起自己并等待rpc调用结束。
70.其中,所述rpc请求中至少包括服务名(service name)、操作标识(operation id)、应用标识(uid)。
71.s303、binder驱动收到所述rpc请求后,将所述rpc请求转发给服务端(server)。
72.s304、服务端在收到所述rpc请求后,从权限配置数据库查询此次调用的授权状态。
73.具体地,服务端根据所述rpc请求中的服务名和操作标识,从表1所示的binder hook映射表中查找到对应的授权标识(permission id)。
74.其中,根据服务名和操作标识,映射到transaction(业务),每个transaction对应一个授权标识。
75.表1:binder hook映射表
[0076][0077]
然后,服务端根据所述应用标识和所述授权标识,从表2所示的权限配置表中查找到对应的授权状态(permission status),其中,授权状态值为0、1、2分别表示允许、拒绝、提示。当然,这里的授权状态值所表示的允许、拒绝、提示的对应关系仅为其中一种示例,授权状态值所表示的允许、拒绝或提示的对应关系也可以设置为其它关系。
[0078]
表2:权限配置表
[0079]
uidpackage namepermission idpermission status10105com.*******.****101210105com.*******.****1021
10105com.*******.****103010105com.*******.****106110107******.mobilemusic103010107******.mobilemusic3012
[0080]
需要说明的是,上述表1所示的binder hook映射表以及表2所示的权限配置表为示例性表格,仅列出了部分内容,实际应用中,表格中的内容不仅限于此。
[0081]
进一步地,用户还可以通过权限配置窗口,对权限配置表中的授权状态值进行修改,来授权或拒绝某个应用的某跨进程调用。
[0082]
s305、服务端判断该调用者的此次调用是否是拒绝授权,若是,则执行步骤s309;否则执行步骤s306。
[0083]
例如,若服务端根据所述应用标识和所述授权标识,从表2所示的权限配置表中查找到对应的授权状态授权状态值为1,则表示该调用者的此次调用是拒绝授权;若查找到对应的授权状态授权状态值为0,则表示该调用者的此次调用是允许授权;若查找到对应的授权状态授权状态值为2,则表示该调用者的此次调用为首次调用,服务端进行弹框,提示由用户选择是否授权。
[0084]
s306、服务端判断该调用者的此次调用是否是允许授权,若是,则执行步骤s310;否则执行步骤s307。
[0085]
s307、服务端进行弹框由用户选择是否授权,判断用户是否选择授权,若用户选择授权,则执行步骤s308及s310;否则执行步骤s308及s309。
[0086]
s308、将该应用的权限写入权限配置数据库。
[0087]
s309、服务端返回并提示拒绝。
[0088]
s310、服务端继续处理,在rpc调用结束后唤醒客户端。
[0089]
本发明实施例还提供一种设备运行时的应用权限管理装置,所述装置位于电子设备,如图4所示,所述装置包括:
[0090]
接收单元11,用于通过binder驱动接收客户端在检测到有上层应用调用通过应用程序接口api时发起的远程过程调用rpc请求;
[0091]
查询单元12,用于根据所述rpc请求查询此次调用的授权状态;
[0092]
处理单元13,用于根据查询到的授权状态进行相应处理。
[0093]
本发明实施例提供的设备运行时的应用权限管理装置,服务端能够对客户端检测到的所有上层应用调用进行监控,过滤上层应用程序可能对用户数据造成安全风险的敏感调用,确保上层应用的跨进程调用都是安全调用,从而保护用户数据的安全。
[0094]
可选地,所述rpc请求中至少包括服务名、操作标识和应用标识;
[0095]
如图5所示,所述查询单元12包括:
[0096]
第一查询模块121,用于根据所述服务名和操作标识,从binder hook映射表中查询对应的授权标识;
[0097]
第二查询模块122,用于根据所述应用标识和所述授权标识,从权限配置表中查询对应的授权状态。
[0098]
可选地,如图6所示,所述处理单元13包括:
[0099]
第一判断模块131,用于判断此次调用是否是拒绝授权;
[0100]
第一处理模块132,用于当此次调用是拒绝授权时,向客户端提示拒绝此次调用;
[0101]
第二判断模块133,用于当此次调用不是拒绝授权时,判断此次调用是否是允许授权;
[0102]
第二处理模块134,用于当此次调用是允许授权时,继续处理,并在rpc调用结束后唤醒客户端;
[0103]
第三判断模块135,用于当此次调用不是允许授权时,进行弹框由用户选择是否授权,判断用户是否选择授权;
[0104]
写入模块136,用于当用户选择授权时,将该应用的授权状态写入权限配置表,之后由第二处理模块134继续处理,在rpc调用结束后唤醒客户端;
[0105]
所述写入模块136,还用于当用户未选择授权时,将该应用的授权状态写入权限配置表,之后由第一处理模块132向客户端提示拒绝此次调用。
[0106]
可选地,如图7所示,所述装置还包括:
[0107]
修改单元14,用于对所述权限配置表中,一组或多组应用标识和授权标识对应的授权状态进行修改。
[0108]
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0109]
本发明实施例还提供一种电子设备,所述电子设备包括:
[0110]
至少一个处理器;以及
[0111]
与所述至少一个处理器通信连接的存储器;其中,
[0112]
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述设备运行时的应用权限管理方法。
[0113]
本发明实施例还提供一种芯片,所述芯片包括:
[0114]
至少一个处理器;以及
[0115]
与所述至少一个处理器通信连接的存储器;其中,
[0116]
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述设备运行时的应用权限管理方法。
[0117]
本发明实施例还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述计算机指令被处理器执行时实现上述设备运行时的应用权限管理方法。
[0118]
本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0119]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。