CN110851802A - 权限控制方法、装置、设备及计算机可读介质 - Google Patents

权限控制方法、装置、设备及计算机可读介质 Download PDF

Info

Publication number
CN110851802A
CN110851802A CN201911076955.4A CN201911076955A CN110851802A CN 110851802 A CN110851802 A CN 110851802A CN 201911076955 A CN201911076955 A CN 201911076955A CN 110851802 A CN110851802 A CN 110851802A
Authority
CN
China
Prior art keywords
functional module
identification information
functional
authority
determining
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.)
Pending
Application number
CN201911076955.4A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911076955.4A priority Critical patent/CN110851802A/zh
Publication of CN110851802A publication Critical patent/CN110851802A/zh
Pending legal-status Critical Current

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了一种权限控制方法、装置、设备及计算机可读介质;所述方法包括:确定目标应用程序的功能模块集合;根据所述功能模块集合中功能模块的服务信息和所述目标应用程序的标识信息,确定所述功能模块的标识信息;根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限;如此,实现了针对目标应用程序的不同功能模块设定不同的权限,使得操作系统对于目标应用程序拥有的权限能够进行动态管理。

Description

权限控制方法、装置、设备及计算机可读介质
技术领域
本发明涉及计算机技术领域,尤其涉及权限控制方法、装置、设备及计算机可读介质。
背景技术
在相关技术中,在操作系统的权限设定中,一旦应用被授予权限后,该权限的作用域是整个应用本身;这样,在操作系统中的运行应用的过程中,由于该应用的权限作用于该整个应用,所以无法满足用户对于应用权限的多种多样的需求。
发明内容
本发明实施例提供一种权限控制方法、装置、设备及计算机可读介质,能够针对一个应用程序的不同功能模块设定不同的权限,从而实现了操作系统对于目标应用程序拥有的权限的动态管理。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种权限控制方法,包括:
确定目标应用程序的功能模块集合;
根据所述功能模块集合中功能模块的服务信息和所述目标应用程序的标识信息,确定所述功能模块的标识信息;
根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限。
第二方面,本发明实施例提供一种权限控制装置,包括:
第一确定模块,用于确定目标应用程序的功能模块集合;
第二确定模块,用于根据所述功能模块集合中功能模块的服务信息和所述目标应用程序的标识信息,确定所述功能模块的标识信息;
第一设定模块,用于根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限。
第三方面,本发明实施例提供一种权限控制设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现上述权限控制方法。
第四方面,本发明实施例提供一种计算机可读介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的权限控制方法。
本发明实施例具有以下有益效果:通过对目标应用程序的功能模块赋予服务信息,基于不同的服务信息和目标应用程序的标识信息,设定功能模块的标识信息,综合考虑该标识信息和功能模块的功能,为不同的功能模块设定不同的访问权限;从而实现了在一个操作系统中为目标应用程序的不同功能模块设定不同的权限,使得操作系统能够动态管理目标应用程序拥有的权限。
附图说明
图1是本发明实施例提供的权限控制系统的一个可选的架构示意图;
图2是本发明实施例提供的权限控制的系统的结构示意图;
图3A是本发明实施例提供的权限控制方法的实现流程示意图;
图3B是本发明实施例提供的权限控制方法的另一实现流程示意图;
图4是本发明实施例提供的权限控制方法的再一实现流程示意图;
图5A是本发明实施例实现同一应用拥有同一权限的实现流程示意图;
图5B是本发明实施例实现同一应用拥有不同权限的实现流程示意图;
图6是本发明实施例实现权限控制方法的界面图;
图7是本发明实施例实现权限控制方法的应用场景示意图;
图8是本发明实施例实现权限控制方法的另一应用场景示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)改造(hook):比如,如果当用户需要创建代理对象,把原始对象替换为用户的代理对象,那么就可以对这个代理对象进行修改参数或替换返回值等操作,这一过程称之为hook。在一个具体例子中,hook掉启动活动(start Activity)的目的是使得每次调用这个方法之前输出一条日志。
2)用户身份证明(User Identification,UID):用户在注册会员后,系统会自动的反馈一个UID的数值,即就是给这名用户编个号。比如,甲在论坛注册后获得UID23,那其后乙注册应该是UID24但是也有可能是其他,这个是整个论坛系统自动分配的。或者,甲注册在论坛注册后获得UID20,但是后来甲退出了,那么甲的编号UID20为空,即使该编号UID20为空,在甲之后注册的人仍然不能得到编号UID20。
3)进程身份证明(Process Identification,PID):操作系统里指进程识别号,也就是进程标识符。操作系统里每打开一个程序都会创建一个进程ID,即PID;属于电工电子类技术术语。PID是各进程的代号,每个进程有唯一的PID编号。它是进程运行时系统分配的,并不代表专门的进程。在运行时PID是不会改变标识符的,但是进程终止后PID标识符就会被系统回收,就可能会被继续分配给新运行的程序。只要运行一段程序,系统会自动为运行的程序分配一个标识。在进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。只要没有成功运行其他程序,这个PID会继续分配给当前要运行的程序。如果成功运行一个程序,然后再运行别的程序时,系统会自动分配另一个PID。
4)活动管理服务(Activity Manager Service,AMS):AMS的启动是在系统服务器(System Server)进程中启动的,职责是用于和所有应用程序的四大组件进行通信,Activity的启动过程就是应用端与AMS端进行通信,首先理解的一点是应用端与AMS是在两个不同的进程中,因此,应用端与AMS是通过跨进程通信的。
5)Binder机制:Binder通信的四个角色,包括:服务器(Server)进程、客户端(client)进程、服务管理器(Service Manager)进程以及Binder驱动;其中,客户端进程:为使用服务的进程;Server进程:为提供服务的进程;ServiceManager的作用是将字符形式的Binder名字转化成客户端中对该Binder的引用,使得客户端能够通过Binder名字获得对Server中Binder实体的引用;Binder驱动:负责进程之间Binder通信的建立,Binder在进程之间的传递,Binder引用计数管理,数据包在进程之间的传递和交互等一系列底层支持。Binder是操作系统进程间通信(Inter-Process Communication,IPC)的方式之一。Server、客户端和Service Manager运行于用户空间,Binder驱动运行于内核空间。Binder驱动程序提供设备文件与用户空间交互,客户端、Server和Service Manager通过打开文件操作函数与Binder驱动程序进行通信。
在相关技术中,操作系统中权限的目的是保护用户的隐私。操作系统应用程序必须申请访问敏感用户数据(如联系人和短信)的权限,以及某些系统功能(如摄像头和互联网)。权限不仅局限于请求系统功能,应用(application)提供的服务可以强制执行自定义权限,以限制谁可以使用该应用。在操作系统权限方案,无论是系统自动授予,还是提示用户批准申请,无论是系统权限,还是自定义权限,一旦应用被授予权限后,该权限的作用域是整个应用本身;这样,在实现较为复杂的工程项目的情况下,无法满足对于应用中的不同功能模块的权限的多种多样的需求。
针对上述技术问题,本发明实施例提供一种权限控制方法、设备及计算机可读介质,对于操作系统中的目标应用程序,首先,按照功能的不同,对该目标应用程序进行划分,得到功能模块集合;然后,对每一功能模块赋予服务信息,结合该服务信息和目标应用程序的标识信息,设定该功能模块的标识信息;最后,将该标识信息和该功能模块的功能相结合,为该功能模块设定拥有的权限。当接收到多个服务请求时,确定服务请求待实现的功能,然后,确定实现该功能所需的候选权限,然后,比较候选权限和功能模块拥有的权限,确定二者之间的关联关系,如果所述关联关系表明所述功能模块包含所述服务请求所需权限,将所述功能模块的标识信息替换为预设的标识信息,以使得所述服务请求的发送方能够识别替换后的功能模块;最后,采用替换后的功能模块,实现所述服务请求所需的功能。这样,实现了针对同一个应用中的不同模块的权限,进行动态管理,满足在大工程项目下,多种多样的需求。
下面说明本发明实施例提供的权限控制的设备的示例性应用,本发明实施例提供的设备可以实施为笔记本电脑或平板电脑等各种类型的设备,也可以实施为服务器。下面,将说明设备实施为设备或服务器时示例性应用。
参见图1,图1是本发明实施例提供的权限控制系统的一个可选的架构示意图,为实现支撑一个示例性应用,将目标应用程序11按照功能的不同,划分为三个功能模块101、102和103,基于各功能模块的功能和标识信息分别设定不同的权限,比如,功能模块101拥有权限1;功能模块102拥有权限2;功能模块103拥有权限3;这样,就实现了对于目标应用程序11中不同的功能模块设定了不同的访问权限。当服务器13接收到服务请求12时,可以依据各个功能模块的标识信息,判断该功能模块是否拥有实现该服务请求12的权限;如果该功能模块没有实现该服务请求12的权限,返回拒绝信息;如果该功能模块拥有实现该服务请求12的权限,则将所述功能模块的标识信息替换为目标应用程序11的标识信息,以使得所述服务请求12能够被系统识别,从而基于该替换后的功能模块,实现所述服务请求所需的功能;这样,通过在一个操作系统中为目标应用程序的不同功能设定不同权限,使得操作系统对于目标应用程序的拥有的权限的能够进行动态管理,满足了较大项目中,对于同一应用程序中多种多样的权限的需求。
参见图2,图2是本发明实施例提供的权限控制的系统的结构示意图,图2所示的设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,在一些示例中键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(Read Only Memory,ROM),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本发明实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证、和通用串行总线(UniversalSerial Bus,USB)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的权限控制的服务器455,其可以是程序和插件等形式的软件,包括以下软件模块:第一确定模块4551、第二确定模块4552和第一设定模块4553;这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的装置可以采用硬件方式实现,作为示例,本发明实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的权限控制方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific Integ rated Circuit,ASIC)、DSP、可编程逻辑器件(Programmable Logic Device,PLD)、复杂可编程逻辑器件(Complex ProgrammableLogic Device,CPLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他电子元件。
将结合本发明实施例提供的设备的示例性应用和实施,说明本发明实施例提供的权限控制方法。
参见图3A,图3A是本发明实施例提供的权限控制方法的实现流程示意图,结合图3A示出的步骤进行说明:
步骤S301,确定目标应用程序的功能模块集合。
在一些实施例中,所述目标应用程序可以是操作系统中安装的任意应用包含的程序。所述功能模块集合中包含至少两个功能模块,其中每一功能模块实现所述目标应用程序的部分功能,并且所述至少两个功能模块可以是处于同一进程,或不同进程中。
步骤S302,根据所述功能模块集合中功能模块的服务信息和所述目标应用程序的标识信息,确定所述功能模块的标识信息。
在一些实施例中,所述功能模块的服务信息,为根据输入的设定指令,为所述功能模块集合中的每一功能模块设定的,比如,为每一功能模块定义一个操作系统的service(服务),用来设定功能模块的标识信息。在一个具体例子中,所述步骤S302可以理解为,目标应用程序的标识信息为A123456,服务信息为b,可以设定功能模块的标识信息为Ab、123b或者A123456b等等。
步骤S303,根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限。
在一些实施例中,所述功能模块的功能属性用于表征该功能模块能够实现的功能。所述步骤S303可以通过以下三种方式实现:
方式一:基于该功能模块的功能,确定该功能模块拥有的访问权限。
比如,该功能模块的功能是拨打电话,确定拨打电话的过程中需要的访问权限,为该功能模块拥有的访问权限。
方式二:基于该功能模块的标识信息判断该功能模块所在的进程中,是否存在其他功能模块,然后将其他功能模块拥有的权限与实现该功能模块的功能所需的权限不同的部分,将该不同的部分作为该功能模拥有的权限,这样,在一个进程中不会重复多个相同的权限,实现了对不同功能模块的权限的动态管理。
方式三:基于该功能模块的标识信息确定该功能模块所在进程所需要的权限,以及该进程中其他功能模块当前拥有的权限,为功能模块设定访问权限。
比如,进程所需要的权限有5个,而其他功能模块当前拥有的权限有4个,那么剩余的一个权限设定为该功能模块拥有的访问权限。
在一个具体例子中,对于相关技术中的虚拟操作系统中的应用程序A,如果该整个应用程序A的所有功能均拥有一组相同的访问权限,那么在调用应用程序A发出服务请求时,所有功能模块均参与其中,这样势必会影响访问时间;而通过上述方式一至三中任一方式,对于同一目标应用程序中的不同功能模块设置不同的访问权限,使得应用程序A中不同的功能模块拥有不同的访问权限,这样,既可以对应用程序A设定更多的访问权限,还可以使得应用程序A发出服务请求时,降低权限的访问时间,不会造成访问拥堵。
在本发明实施例中,通过对目标应用程序的功能模块赋予服务信息,基于不同的服务信息和目标应用程序的标识信息,设定功能模块的标识信息,综合考虑该标识信息和功能模块的功能,为不同的功能模块设定不同的权限;从而实现了在一个操作系统中为目标应用程序的不同功能设定不同权限,使得操作系统对于目标应用程序的拥有的权限的能够进行动态管理。
在一些实施例中,为了能够唯一的标识不同的功能模块,对所述目标应用程序进行划分,得到包含至少两个功能模块的功能模块集合,可以通过以下步骤实现:
第一步,根据输入的设定指令,为所述功能模块集合中的每一功能模块设定服务信息。
在一些实施例中,每一功能模块的服务信息可以是操作者任意设定的;用于形成对应功能模块的标识信息。
第二步,根据所述功能模块的服务信息,确定用于实现所述功能模块对应功能的接口的标识信息。
在一些实施例中,通过启动该功能模块的service,以启动该功能模块能够实现的业务,从而确定实现该业务的接口的标识信息。
第三步,根据所述接口的标识信息和所述目标应用程序的标识信息,生成所述功能模块的标识信息。
在一些可能的实现方式中,将接口的标识信息与目标应用程序的标识信息相结合,得到该功能模块的标识信息;比如,接口的标识信息为J,目标应用程序的标识信息为M,可以设定功能模块的标识信息为MJ。
在一些实施例中,为了能够实现动态的控制目标应用程序中不同功能模块的权限,所述步骤S303可以通过以下步骤实现,图3B是本发明实施例提供的权限控制方法的另一实现流程示意图,结合图3A,进行以下说明:
步骤S321,确定实现所述功能属性包含的功能,所需的目标访问权限。
比如,功能属性包含的功能为外卖送单,确定实现通话所需的目标访问权限,即需要获取用户的位置、电话号码、快递员的电话号码和商家位置等。
步骤S322,根据所述标识信息确定所述功能模块所处的当前进程。
在一些实施例中,确定功能模块的标识信息之后,基于该标识信息查找该功能模块当前所在的进程,以确定该进程中是否还包含其他功能模块。
步骤S323,确定所述当前进程中包含的其他功能模块的访问权限。
比如,确定该进程中同时运行的其他几个功能模块,并确定这些其他功能模块的访问权限。
步骤S324,将所述目标访问权限中与所述其他功能模块的访问权限不同的权限,设定为所述功能模块拥有的访问权限。
比如,其他功能模块的访问权限包括ABCDE,而目标访问权限包括ABEFR,那么将访问权限FR设定为功能模块拥有的访问权限;如此,在一个进程中,不同功能模块之间相同的权限保留一个,避免多个功能模块同时访问一个权限,造成访问拥堵等情况;同时实现了对于不同功能模块的访问权限的动态管理。
在一些实施例中,为了能够实现目标应用程序的不同功能模块访问系统服务的过程,在步骤S303之后,所述方法还包括以下步骤,如图4所示,图4是本发明实施例提供的权限控制方法的再一实现流程示意图,结合图3A,进行以下说明:
步骤S401,当接收到服务请求时,检测所述功能模块与所述服务请求所需权限的关联关系。
在一些实施例中,所述服务请求用于请求访问系统服务。比如,请求访问一张图片等。所述功能模块与所述服务请求所需权限的关联关系,包括:功能模块拥有的访问权限不包含该服务请求所需权限,功能模块拥有的访问权限包含该服务请求所需权限。所述步骤S401可以通过以下过程实现:首先,当接收到服务请求时,确定所述服务请求的待实现功能;比如,服务请求是请求访问一张图片,那么所述服务请求的待实现功能即为访问一张图片需要的功能。然后,确定实现所述待实现功能,所需的候选权限;比如,确定访问一张图片需要的权限;最后,根据所述候选权限和所述功能模块拥有的权限,确定所述关联关系;比如,比较候选权限和所述功能模块拥有的权限,确定功能模块拥有的访问权限是否包含该候选权限。
步骤S402,根据所述关联关系,响应所述服务请求。
在一些实施例中,根据功能模块拥有的访问权限是否包含该服务请求所需权限,响应所述服务请求;如果所述关联关系表明所述功能模块不包含所述服务请求所需权限,返回拒绝信息;比如,功能模块不包含访问一张图片所需权限,则返回拒绝信息;如果所述关联关系表明所述功能模块包含所述服务请求所需权限,将所述功能模块的标识信息替换为预设的标识信息,以使得系统能够识别所述功能模块;在一个具体例子中,将功能模块的标识信息替换为目标应用程序的标识信息,以保证系统能够识别所述功能模块;最后,基于所述替换后的功能模块,实现所述服务请求所需的功能;这样,由于替换后的功能模块拥有服务请求所需的权限,所以基于该替换后的功能模块,可实现所述服务请求所需的功能;比如,基于具有访问一张图片的权限的功能模块,完成对该图片的访问。
在其他实施例中,当同一进程内多个线程内的功能模块在同时访问系统服务时,为保证多个功能模块之间调用的同步性,所述方法可以通过以下步骤实现:
第一步,当接收到多个服务请求时,确定所述多个服务请求对应的线程。
在一些实施例中,所述多个服务请求属于同一进程内多个线程或一个线程。
第二步,如果所述多个服务请求对应的线程不同,基于每一所述服务请求的标识信息,同步响应所述多个服务请求。
在一些实施例中,如果所述多个服务请求对应的线程不同,为每一个服务请求增加一个同步模块,利用该同步模块记录每次服务请求的标识信息,以及负责IPC调用返回后的确认。这样针对每一个服务请求创建一个同步模块,既可以保证对多个服务请求响应的时效性,还保证了对于多个服务请求的同步响应;如此,既能够解决多线程内功能模块的同步性,也能保证IPC调用的时效性。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用,以在统一端点管理(Unified Endpoint Management,UEM)的安全空间内部,动态设置安全空间内的应用拥有或禁止某些特定权限,以保证安全空间内部的数据隐私和外部实现隔离为例,进行说明。
在相关技术中,无论是系统自动授予,还是提示用户批准申请,无论是系统权限,还是自定义权限,一旦应用被授予权限后,该权限的作用域是整个应用本身,如图5A所示,图5A是本发明实施例实现同一应用拥有同一权限的实现流程示意图,结合图5进行以下说明:对于整个目标应用程序501拥有系统权限1、2和3的访问权限,也就是说,属于同一应用的不同功能,拥有访问系统服务1和2的权限,且,该目标应用程序501拥有访问另外一个应用502的自定义权限3。但是在实现较为复杂的工程项目的情况下,对于应用的不同模块的权限的需求是多种多样的,所以需要动态的设置每个功能块的拥有的权限,以满足多种多样需求。
基于此,本发明实施例提供一种权限控制方法,图5B是本发明实施例实现同一应用拥有不同权限的实现流程示意图,结合图5B进行以下说明:
对于属于同一应用的功能模块A501、功能模块B502和功能模块C503,其中,功能模块A501拥有系统权限1的访问权限;功能模块B502拥有系统权限2的访问权限;功能模块C503拥有自定义权限3的访问权限和访问另外一个应用中功能模块D504的权限;功能模块A501和功能模块B502分别具有访问系统服务1和2的权限。这样,每一功能模块根据自身需求可以拥有不同的访问权限,实现了同一应用内部按照功能模块进行动态管理的方法。
图6是本发明实施例实现权限控制方法的界面图,在图6中,动态设置了安全空间内的应用拥有或禁止某些特定权限,以保证安全空间内部的数据隐私和外部实现隔离。被禁止的权限对应的系统服务将会被拒绝访问。比如,在安全空间内的应用的权限设置界面60中,分别设置剪切板601是否安全空间级允许、是否禁止分享数据602、是否使用水印603、是否水印使用用户名604、是否自定义水印605、是否网络限制606、是否禁止截屏607、是否禁止获取位置608、是否禁止拨打电话609、是否禁止发送短信610、是否禁止读取短信611、是的禁止读取联系人612、是否禁止读取通话记录613、是否禁止读取手机号码614、是否禁止打印功能615和是否禁止调用媒体库616等。
在本发明实施例中,操作系统的权限检查需要的几个参数,前两个权限参数允许(permission)和PID分别为访问服务对应的权限以及当前应用的进程号。对于功能模块来说,permission和PID,可以从当前应用中直接获得。但是对于参数UID,由于所有的功能模块和所处的应用共享同一个UID,并且在同一个进程中,无法针对不同的功能块控制不同的权限,因此UID是功能模块划分的关键。
针对不同的功能块设置不同的权限,包括以下两种场景:
场景一:如果所有的功能模块处在同一个进程中,那么目标应用程序是可以通过功能模块的进程标识来管理功能模块的权限。
场景二:如果所有的或者部分的功能模块处在相同的进程中,则通过进程ID则无法区分功能模块,在这种情况下可以通过以下两种当时实现:
方式一:所有的功能模块运行在不同的进程中,这样就可以通过场景一中的实现方式来实现。但是每一个功能模块都启动新的进程,对于少量的功能模块来说,这种实现方式是可以接受的。但是对于存在大量的功能模块的应用来说,启动太多的进程会给整个系统带来很大的资源消耗,同时,各个功能模块间的协同依赖由于进程的隔离,变得低性能,高消耗,也会破坏整个应用的架构设计。
方式二:为每个功能模块设定单独的标识信息(比如,设定一个子UID),可以通过以下步骤实现:
第一步,为每个功能模块定义一个服务信息(servcie),结合目标应用程序的标识信息,确定每个功能模块的标识信息。
第二步,将已确定标识信息的功能模块输入活动管理服务的平台。
比如,通过绑定hook的方式来确定AMS系统服务中,输入已确定标识信息的功能模块的接口的参数等。
第三步,通过启动每个功能模块的服务信息来启动该功能模块的业务。
第四步,在服务信息启动的过程中通过改造AMS中的参数,以启动服务信息的接口。
在一个具体例子中,AMS中的参数包括:AMS中类的名称或者函数返回值等。所述启动服务信息的接口,即开始服务或绑定服务接口(start Service或bind Service)。
第五步,在被hook住的start Service或bind Service方法中,在目标应用程序的基础上为当前功能块生成子UID,并根据当前service的结构(component),缓存到目标应用程序的一个映射表(map)中。
第六步,目标应用程序为了能够动态的识别功能模块,有两种情况需要考虑:
情况一:多个功能模块在同一线程访问系统服务,在调用系统服务前,将功能模块的标识信息反馈给目标应用程序,然后在系统服务接口获取调用方的用户标识信息即可实现目标应用程序识别功能模块。
情况二:针对不同的线程同时访问系统服务的情况,在操作系统中,当目标应用程序在调用系统接口时,为了保证进程间通信(Inter-Process Communication,IPC)调用的时效性,服务信息会为每一次请求从线程池中分配一个绑定线程来处理请求业务,如图7所示,当带线程的进程A701中2个线程(即服务请求71和服务请求72)同时访问系统服务时,将服务请求71和72传递到客户端702中,然后客户端702将服务请求71和72传递给绑定驱动703,接着,绑定驱动703将服务请求71和72传递给绑定线程的服务进程704;最后,绑定线程的服务进程704针对服务请求71和72提供两个绑定线程73和74,通过这两个绑定线程73和74分别对服务请求71和72进行响应和处理,得到处理结果75和76,将处理结果75和76,依次经过绑定驱动703和客户端702传递给带线程的进程A701。
在同一进程内多个线程内的功能块在同时访问系统服务时,无法实现功能模块的调用的同步性(在同一个进程中,由于资源共享的原因,只有保证系统服务调用的同步性,目标应用程序层才能识别当前的功能模块),而且也不能为了同步而牺牲IPC的时效性。因此本发明实施例提供一种权限控制方法,既能够解决多线程内功能模块的同步性,也能保证IPC调用的时效性。
如图8所示,在目标应用程序内增加一个同步识别器801(sync recognizer),用于控制多线程功能模块调用系统服务的同步。每当功能模块调用系统服务的请求时,syncrecognizer模块会为每次的请求创建一个同步模型(sync model),负责记录每次服务请求的标识信息,以及负责IPC调用返回后的确认。
第七步,操作系统中,在系统服务接口被调用的过程,通过AMS的检查权限(checkPermission)的方式来检查权限。
在一些实施例中,如图8所示,当带线程的进程A802中两个线程(即服务请求81和服务请求82)同时访问系统服务时,将服务请求81和82传递到同步识别器801中,然后同步识别器801针对服务请求81和82分别创建同步模型803和804,比如,同步模块803负责记录服务请求81的UID810,以及负责IPC调用返回后的确认;同步模块804负责记录服务请求82的UID820,以及负责IPC调用返回后的确认。然后,将服务请求81和82传递到客户端805中,然后客户端805将服务请求81和82传递给绑定驱动806;接下来,绑定驱动806将服务请求81和82传递给绑定线程的服务进程807;最后,绑定线程的服务进程807针对服务请求81和82提供两个绑定线程83和84,通过这两个绑定线程83和84分别对服务请求81和82进行响应和处理,得到处理结果85和86;并将处理结果85和86,通过同步模型803和804传递给带线程的进程A802,比如,绑定线程83将处理结果85通过同步模块803传递给带线程的进程A802;绑定线程84将处理结果86通过同步模块804传递给带线程的进程A802。对于处理结果的传递,还可以是直接通过绑定程序将处理结果反馈给带线程的进程A802,比如,从绑定线程83将处理结果85直接传递给带线程的进程A802。
第八步,在check Permission被调用时,通过查看所述服务信息来确定功能模块。
在一些实施例中,由于每一个功能模块设定有一个服务信息,而且每一个服务信息有一个标识信息,所以可通过查看服务信息,确定对应的功能模块。
第九步,对当前的功能模块进行权限检查时,如果权限被禁止,返回值为拒绝;如果权限未被禁止,将功能模块的标识信息在替换为目标应用程序的标识信息,以便传递给系统服务的标识信息是目标应用程序的标识信息。
在本发明实施例中,还可以通过hook系统的调用接口,并在此时对功能模块进行权限检查,如果权限被禁止,那么直接返回,而不在向系统服务发起请求,如此同样可以起到权限动态控制的功能,比如,如图8所示,通过hook系统的调用接口,将对服务请求81和82进行响应和处理的处理结果85和86,从绑定线程的服务进程805直接传递给带线程的进程A802。
下面继续说明本发明实施例提供的权限控制的服务器455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的权限控制的服务器455中的软件模块可以包括:
第一确定模块4551,用于确定目标应用程序的功能模块集合;
第二确定模块4552,用于根据所述功能模块集合中功能模块的服务信息和所述目标应用程序的标识信息,确定所述功能模块的标识信息;
第一设定模块4553,用于根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限。
在一些实施例中,所述第一确定模块4551,还用于:
确定所述目标应用程序中每一程序段实现的功能;
根据所述每一程序段实现的功能,对所述目标应用程序进行划分,得到多个功能模块,以得到所述功能模块集合;其中,所述多个功能模块处于同一进程,或不同进程中。
在一些实施例中,所述第一确定模块4551,还用于:
根据输入的设定指令,为所述功能模块集合中的每一功能模块设定服务信息;
对应地,所述第二确定模块4552,还用于:
根据所述功能模块的服务信息,确定用于实现所述功能模块对应功能的接口的标识信息;
根据所述接口的标识信息和所述目标应用程序的标识信息,生成所述功能模块的标识信息。
在一些实施例中,所述第一设定模块4553,还用于:
确定实现所述功能属性包含的功能,所需的目标访问权限;
根据所述标识信息确定所述功能模块所处的当前进程;
确定所述当前进程中包含的其他功能模块的访问权限;
将所述目标访问权限中与所述其他功能模块的访问权限不同的权限,设定为所述功能模块拥有的访问权限。
在一些实施例中,所述第一设定模块4553,还用于:
当接收到服务请求时,检测所述功能模块与所述服务请求所需权限的关联关系;其中,所述服务请求用于请求访问系统服务;
根据所述关联关系,响应所述服务请求。
在一些实施例中,所述第一设定模块4553,还用于:
当接收到服务请求时,确定所述服务请求的待实现功能;
确定实现所述待实现功能,所需的候选权限;
根据所述候选权限和所述功能模块拥有的权限,确定所述关联关系。
在一些实施例中,所述第一设定模块4553,还用于:
如果所述关联关系表明所述功能模块不包含所述服务请求所需权限,返回拒绝信息;
如果所述关联关系表明所述功能模块包含所述服务请求所需权限,将所述功能模块的标识信息替换为预设的标识信息,以使得系统能够识别所述功能模块;
基于所述替换后的功能模块,实现所述服务请求所需的功能。
本发明实施例提供一种存储有可执行指令的计算机可读介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的方法。
在一些实施例中,计算机可读介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper Text MarkupLanguage,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本发明实施例对于目标应用程序的不同功能模块,首先,确定目标应用程序的功能模块集合;然后,根据所述功能模块集合中功能模块的服务信息和所述目标应用程序的标识信息,确定所述功能模块的标识信息;最后,根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限;如此,通过对目标应用程序的功能模块赋予服务信息,基于不同的服务信息和目标应用程序的标识信息,设定功能模块的标识信息,综合考虑该标识信息和功能模块的功能,为不同的功能模块设定不同的权限;从而实现了在一个操作系统中为目标应用程序的不同功能设定不同权限,使得操作系统对于目标应用程序的拥有的权限的能够进行动态管理。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (10)

1.一种权限控制方法,其特征在于,所述方法包括:
确定目标应用程序的功能模块集合;
根据所述功能模块集合中功能模块的服务信息和所述目标应用程序的标识信息,确定所述功能模块的标识信息;
根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限。
2.根据权利要求1所述的方法,其特征在于,所述确定目标应用程序的功能模块集合,包括:
确定所述目标应用程序中每一程序段实现的功能;
根据所述每一程序段实现的功能,对所述目标应用程序进行划分,得到多个功能模块,以得到所述功能模块集合;其中,所述多个功能模块处于同一进程,或不同进程中。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述功能模块集合中功能模块的服务信息和所述目标应用程序的标识信息,确定所述功能模块的标识信息之前,所述方法还包括:
根据输入的设定指令,为所述功能模块集合中的每一功能模块设定服务信息;
对应地,根据所述功能模块的服务信息,确定用于实现所述功能模块对应功能的接口的标识信息;
根据所述接口的标识信息和所述目标应用程序的标识信息,生成所述功能模块的标识信息。
4.根据权利要求1所述的方法,其特征在于,所述根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限,包括:
确定实现所述功能属性包含的功能,所需的目标访问权限;
根据所述标识信息确定所述功能模块所处的当前进程;
确定所述当前进程中包含的其他功能模块的访问权限;
将所述目标访问权限中与所述其他功能模块的访问权限不同的权限,设定为所述功能模块拥有的访问权限。
5.根据权利要求1至4任一项所述的方法,其特征在于,在所述根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限之后,所述方法还包括:
当接收到服务请求时,检测所述功能模块与所述服务请求所需权限的关联关系;其中,所述服务请求用于请求访问系统服务;
根据所述关联关系,响应所述服务请求。
6.根据权利要求5所述的方法,其特征在于,所述当接收到服务请求时,检测所述功能模块与所述服务请求所需权限的关联关系,包括:
当接收到服务请求时,确定所述服务请求的待实现功能;
确定实现所述待实现功能,所需的候选权限;
根据所述候选权限和所述功能模块拥有的权限,确定所述关联关系。
7.根据权利要求5所述的方法,其特征在于,所述根据所述关联关系,响应所述服务请求,包括:
如果所述关联关系表明所述功能模块不包含所述服务请求所需权限,返回拒绝信息;
如果所述关联关系表明所述功能模块包含所述服务请求所需权限,将所述功能模块的标识信息替换为预设的标识信息,以使得系统能够识别所述功能模块;
基于所述替换后的功能模块,实现所述服务请求所需的功能。
8.一种权限控制装置,其特征在于,所述装置包括:
第一确定模块,用于确定目标应用程序的功能模块集合;
第二确定模块,用于根据所述功能模块集合中功能模块的服务信息和所述目标应用程序的标识信息,确定所述功能模块的标识信息;
第一设定模块,用于根据所述功能模块的标识信息和功能属性,设定所述功能模块拥有的访问权限。
9.一种权限控制设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的方法。
10.一种计算机可读介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至7任一项所述的方法。
CN201911076955.4A 2019-11-06 2019-11-06 权限控制方法、装置、设备及计算机可读介质 Pending CN110851802A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911076955.4A CN110851802A (zh) 2019-11-06 2019-11-06 权限控制方法、装置、设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911076955.4A CN110851802A (zh) 2019-11-06 2019-11-06 权限控制方法、装置、设备及计算机可读介质

Publications (1)

Publication Number Publication Date
CN110851802A true CN110851802A (zh) 2020-02-28

Family

ID=69599643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911076955.4A Pending CN110851802A (zh) 2019-11-06 2019-11-06 权限控制方法、装置、设备及计算机可读介质

Country Status (1)

Country Link
CN (1) CN110851802A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111381903A (zh) * 2020-03-18 2020-07-07 支付宝(杭州)信息技术有限公司 程序运行方法、装置、设备及介质
CN111767524A (zh) * 2020-05-19 2020-10-13 支付宝(杭州)信息技术有限公司 权限管理方法、装置、系统、服务器及介质
CN112073578A (zh) * 2020-08-20 2020-12-11 上海连尚网络科技有限公司 一种在社交应用中使用或限制应用功能的方法与设备
CN113050927A (zh) * 2021-04-12 2021-06-29 平安国际智慧城市科技股份有限公司 基于自定义指令的权限控制方法、装置和计算机设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111381903A (zh) * 2020-03-18 2020-07-07 支付宝(杭州)信息技术有限公司 程序运行方法、装置、设备及介质
CN111381903B (zh) * 2020-03-18 2023-05-26 支付宝(杭州)信息技术有限公司 程序运行方法、装置、设备及介质
CN111767524A (zh) * 2020-05-19 2020-10-13 支付宝(杭州)信息技术有限公司 权限管理方法、装置、系统、服务器及介质
CN112073578A (zh) * 2020-08-20 2020-12-11 上海连尚网络科技有限公司 一种在社交应用中使用或限制应用功能的方法与设备
CN112073578B (zh) * 2020-08-20 2022-07-12 上海连尚网络科技有限公司 一种在社交应用中使用或限制应用功能的方法与设备
CN113050927A (zh) * 2021-04-12 2021-06-29 平安国际智慧城市科技股份有限公司 基于自定义指令的权限控制方法、装置和计算机设备
CN113050927B (zh) * 2021-04-12 2024-01-23 平安国际智慧城市科技股份有限公司 基于自定义指令的权限控制方法、装置和计算机设备

Similar Documents

Publication Publication Date Title
CN110851802A (zh) 权限控制方法、装置、设备及计算机可读介质
CN112118224B (zh) 一种大数据区块链的可信机制权限管理方法和系统
US8832847B2 (en) Coordinating data sharing among applications in mobile devices
US9065771B2 (en) Managing application execution and data access on a device
JP5789624B2 (ja) イベント管理用のシステムおよび方法
WO2018119589A1 (zh) 账户管理方法、装置及账户管理系统
CN102592077A (zh) 提供安全边界
CN100375033C (zh) 一种用于在操作系统分区环境中使用细粒度特权模型管理进程活动的方法和设备
US10831915B2 (en) Method and system for isolating application data access
WO2020135492A1 (zh) 软件分层管理系统
CN102938043A (zh) 授权应用对安全资源的访问
US9104252B2 (en) Assignment of control of peripherals of a computing device
US9977660B2 (en) Method of controlling and managing electronic device and control system using same
US20210377277A1 (en) Service providing system, information processing system, and use permission assigning method
US9692858B2 (en) Security model for a memory of a network information system
CN113268450A (zh) 文件访问方法及装置、电子设备、存储介质
EP2725511A1 (en) Managing application execution and data access on a device
CN102446258B (zh) 一种附件权限类型扩展的方法、装置及系统
US10417410B2 (en) Access control to protected resource based on images at changing locations identifiable by their type
KR102491482B1 (ko) 전자문서 공유방법
US10097976B2 (en) Information processing apparatus and control method thereof
CN114721821A (zh) 集群系统的资源管理方法、装置、介质及电子设备
CN111638956A (zh) 一种应用的运行方法、设备及存储介质
JP6768439B2 (ja) 情報処理装置、情報処理方法、及びプログラム
CN112784283A (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