CN115114636A - 访问控制方法、相关装置及系统 - Google Patents

访问控制方法、相关装置及系统 Download PDF

Info

Publication number
CN115114636A
CN115114636A CN202210209990.4A CN202210209990A CN115114636A CN 115114636 A CN115114636 A CN 115114636A CN 202210209990 A CN202210209990 A CN 202210209990A CN 115114636 A CN115114636 A CN 115114636A
Authority
CN
China
Prior art keywords
instance
callee
resource
access
electronic device
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
CN202210209990.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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN115114636A publication Critical patent/CN115114636A/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/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Telephone Function (AREA)

Abstract

本申请提供了访问控制方法、相关装置及系统。在该方法中,主体设备为调用者和被调用者分别创建一个实例,并且为两个实例赋予相同的UID。之后,主体设备可以在该被调用者对应的权限范围内运行为该被调用者的第一部分创建的实例。实施该方法,调用者和被调用者共享同一个UID,无需额外消耗系统性能,并且通过不同的实例,主体设备可以保证被调用者的实例在自身对应的权限范围内运行,实现被调用者的权限最小化,避免调用者调用被调用者的过程中,该被调用者窃取在其权限范围之外的数据等问题,保证主体设备中的数据安全。

Description

访问控制方法、相关装置及系统
本申请要求于2021年03月09日提交中国专利局、申请号为202110257325.8、申请名称为“访问控制方法、相关装置及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机及通信技术领域,尤其涉及访问控制方法、相关装置及系统。
背景技术
随着智能终端的发展,用户生活中的设备种类及数量越来越多,各个设备互通互联的分布式场景也正在逐渐实现。在分布式场景中,设备中的应用程序(application,APP)之间互相调用、共享资源等等,将成为未来的趋势。
如何避免调用过程中的数据泄露及滥用,保障设备之间能够安全地共享资源,从而为用户提供安全、有效的全联接场景,是一个新的挑战。
发明内容
本申请提供了访问控制方法、相关装置及系统,可以避免调用者调用被调用者的过程中,该被调用者窃取在其权限范围之外的数据等问题,保证主体设备中的数据安全。
第一方面,本申请实施例提供了一种访问控制方法,应用于第一设备,第一设备中安装有调用者,调用者为APP或功能组件,APP为实现多个功能的程序实体,功能组件为实现单一功能的程序实体。该方法包括:第一设备创建调用者的第一实例,并在第一权限范围内运行第一实例;第一设备在运行第一实例的过程中,生成访问请求,访问请求用于调用者调用被调用者以访问第一资源,被调用者为APP或功能组件,被调用者被部署于第一设备和/或第二设备中,第一资源包括第一设备和/或第二设备中的资源;第一设备创建被调用者的第二实例,并在第二权限范围内运行第二实例,以访问第一资源;第二实例和第一实例具有相同的用户身份UID,第二权限范围和第一权限范围不同。
实施第一方面提供的方法,第一实例和第二实例共享同一个用户身份(UID),即第一设备仅运行了一个应用,无需额外消耗系统性能。在此基础上,通过创建不同的实例,第一设备可以明确地区分开调用者和被调用者,并能保证被调用者的实例在自身对应的权限范围内运行,实现被调用者的权限最小化,避免后续调用者调用被调用者的过程中,该被调用者窃取在其权限范围之外的数据等问题,保证第一设备中的数据安全。
结合第一方面,第一资源可以包括硬件资源,也可以包括软件资源。
结合第一方面,在一些实施方式中,被调用者包含第一部分和第二部分,第一部分部署于第一设备中,第二部分部署于第二设备中。调用者和被调用者可以由不同的开发者开发。被调用者和调用者同时部署在第一设备中,并对外形成一个整体应用。第一资源包括第一设备和第二设备中的资源。
例如,被调用者可以为提供定位功能的FA,第一部分可以用于实现业务逻辑,第二部分可用于提供UI,该第一资源可以包括:第一设备中的定位功能,以及,第二设备中的显示屏。
在上述实施方式中,第一设备访问第一资源之前,可以将访问请求发送给第二设备。第一设备可以创建被调用者的第一部分的第二实例;在第一设备在第二权限范围内运行第二实例的过程中,在第二设备运行第三实例的过程中,第一设备和第二设备通信,以访问第一资源;第三实例是第二设备响应于访问请求,创建的被调用者的第二部分的实例。
通过上述实施方式,调用者和被调用者的第一部分共享同一个用户身份(UID),即第一设备仅运行了一个应用,无需额外消耗系统性能。在此基础上,通过创建不同的实例,第一设备可以明确地区分开调用者和被调用者的第一部分,并能保证被调用者的第一部分的实例在自身对应的权限范围内运行,实现被调用者的第一部分的权限最小化,避免后续调用者调用被调用者的过程中,该被调用者的第一部分窃取在其权限范围之外的数据等问题,保证第一设备中的数据安全。
结合上述实施方式,第一设备和第二设备通信以访问第一资源的方式可包括以下两种:
1,第一设备在第二权限范围内运行第二实例,访问第一资源中的第二资源,得到第一访问结果,并将第一访问结果发送给第二设备,以使得第二设备运行第三实例,并根据第一访问结果访问第一资源中的第三资源。
例如,第一访问结果可以是第二实例运行时访问第一设备的定位功能,获取到的定位数据。
在一些实施例中,被调用者的第一部分用于实现业务逻辑,被调用者的第二部分用于提供UI。第二设备可以运行第三实例,并根据第一访问结果显示第一用户界面,以实现访问第三资源。第一用户界面例如可以是定位页面等等。
2,第一设备接收到第二访问结果,第二访问结果由第二设备响应于访问请求,运行第三实例并访问第一资源中的第三资源得到;第一设备在第二权限范围内运行第二实例,并根据第二访问结果访问第一资源中的第二资源。
结合上述实施方式,在一些实施方式中,第一设备将访问请求发送给第二设备之后,还可以将被调用者的第二部分发送给第二设备。
结合第一方面,在一些实施方式中,被调用者为三方库,三方库部署于第一设备中,第一资源包括第一设备中的资源。电子设备可以创建三方库的第二实例,并在第二权限范围内运行第二实例,以访问第一资源。
在上一实施方式中,被调用者以三方库的形式,和调用者部署在同一个电子设备中,并对外形成一个整体应用。调用者和三方库可以由不同的开发者开发。
通过上一实施方式,调用者和三方库共享同一个用户身份(UID),即电子设备仅运行了一个应用,无需额外消耗系统性能。在此基础上,通过创建不同的实例,电子设备可以明确地区分开调用者和三方库,并能保证三方库的实例在自身对应的权限范围内运行,实现三方库的权限最小化,避免后续调用者调用三方库的过程中,该三方库窃取在其权限范围之外的数据等问题,保证电子设备中的数据安全。
在上一实施方式中,三方库可以是lib库、SDK库或动态链接库(.so文件)等等。
结合第一方面,在一些实施方式中,被调用者包含第一部分和第二部分,第一部分和第二部分部署于第一设备中。调用者和被调用者可以由不同的开发者开发。被调用者和调用者同时部署在第一设备中,并对外形成一个整体应用。第一资源包括第一设备中的资源。
在上述实施方式中,第一设备可以创建被调用者的第一部分的第二实例;创建被调用者的第二部分的第三实例;在第二权限范围内运行第二实例,运行第三实例,以访问第一资源。
结合第一方面以及上述任意一种实施方式,在一些实施方式中,第一设备创建调用者的第一实例之后,可以为第一实例分配第一安全域身份,第一安全域身份对应的第一访问策略指示:不允许第一实例和第二实例通信,或者,不允许第一实例向第二实例发送数据,或者,不允许第一实例接收第二实例发送的数据。第一设备可以在第一权限范围内,根据第一访问策略运行第一实例。这样可以避免第一设备中第一实例根据第一权限范围获取到的数据,通过第二实例发送给第二设备,还可以避免第二设备获取到的数据,通过第二实例发送给第一设备中的第一实例。也就是说,这样可以避免第一设备和第二设备之间的数据相互泄露,保证两个设备的数据安全。
结合第一方面以及上述任意一种实施方式,在一些实施方式中,第一设备创建被调用者的第二实例之后,可以为第二实例分配第二安全域身份,第二安全域身份对应的第二访问策略指示:不允许第二实例和第一实例通信,或者,不允许第二实例向第一实例发送数据,或者,不允许第二实例接收第一实例发送的数据。第一设备可以在第二权限范围内,根据第二访问策略运行第二实例。这样可以避免第一设备中第一实例根据第一权限范围获取到的数据,通过第二实例发送给第二设备,还可以避免第二设备获取到的数据,通过第二实例发送给第一设备中的第一实例。也就是说,这样可以避免第一设备和第二设备之间的数据相互泄露,保证两个设备的数据安全。
结合第一方面以及上述任意一种实施方式,在一些实施方式中,第一设备可以为第一实例分配第一UID、第一进程标识PID;为第二实例分配第一UID、第二PID。这样可以让第一实例和第二实例共享相同的UID,即作为同一个应用运行。此外,第一设备可以通过PID来区分第一实例和第二实例,从而对各个实例进行权限控制。
结合第一方面以及上述任意一种实施方式,在一些实施方式中,第一设备可以响应于检测到的用于启动调用者的第一操作,创建第一实例。
结合第一方面以及上述任意一种实施方式,在一些实施方式中,第一设备可以显示第二用户界面,并响应于在第二用户界面上接收到的第二操作,向第二设备发送访问请求。
结合第一方面以及上述任意一种实施方式,在一些实施方式中,第二权限范围和第一权限范围可以有部分相同,也可以完全不同。在一些实施方式中,第二权限范围可以是第一权限范围的部分。
第一权限范围可以是第一设备默认授予给调用者的,也可以是用户授予给调用者的。
第二权限范围可以是第一设备中的调用者默认授予给被调用者的,也可以是用户授予给被调用者的。例如,第一设备可以显示第三用户界面,并在第三用户界面上接收到第三操作,并根据该第三操作,确定第二权限范围。
第二方面,本申请实施方式提供了一种访问控制方法,应用于包含第一设备、第二设备的通信系统。该方法包括:第一设备创建调用者的第一实例,并在第一权限范围内运行第一实例;第一设备在运行第一实例的过程中,向第二设备发送访问请求,访问请求携带有:被调用者的标识、第一资源的标识;调用者、调用者为APP或功能组件,APP为实现多个功能的程序实体,功能组件为实现单一功能的程序实体;第一设备创建被调用者的第一部分的第二实例;第二设备响应于访问请求,创建被调用者的第二部分的第三实例;在第一设备在第二权限范围内运行第二实例的过程中,在第二设备运行第三实例的过程中,第一设备和第二设备通信,以访问第一资源;其中,第二实例和第一实例具有相同的用户身份UID,第二权限范围和第一权限范围不同。
在第二方面提供的方法中,被调用者分开部署在第一设备和第二设备中。调用者和被调用者可以由不同的开发者开发。被调用者和调用者同时部署在第一设备中,并对外形成一个整体应用。
实施第二方面提供的方法,调用者和被调用者的第一部分共享同一个用户身份(UID),即第一设备仅运行了一个应用,无需额外消耗系统性能。在此基础上,通过创建不同的实例,第一设备可以明确地区分开调用者和被调用者的第一部分,并能保证被调用者的第一部分的实例在自身对应的权限范围内运行,实现被调用者的第一部分的权限最小化,避免后续调用者调用被调用者的过程中,该被调用者的第一部分窃取在其权限范围之外的数据等问题,保证第一设备中的数据安全。
结合第二方面,第一资源可以包括硬件资源,也可以包括软件资源。第一资源可以包括位于第一设备中的第二资源,和,位于第二设备中的第三资源。例如,被调用者为提供定位功能的FA时,该第一资源可以包括:第一设备中的定位功能,以及,第二设备中的显示屏。
结合第二方面,第一设备和第二设备通信以访问第一资源的方式可包括以下两种:
1,第一设备在第二权限范围内运行第二实例,访问第一资源中的第二资源,得到第一访问结果,并将第一访问结果发送给第二设备;第二设备运行第三实例,并根据第一访问结果访问第一资源中的第三资源。
例如,第一访问结果可以是第二实例运行时访问第一设备的定位功能,获取到的定位数据。
在一些实施例中,被调用者的第一部分用于实现业务逻辑,被调用者的第二部分用于提供UI。第二设备可以运行第三实例,并根据第一访问结果显示第一用户界面,以实现访问第三资源。第一用户界面例如可以是定位页面等等。
2,第二设备响应于访问请求,运行第三实例,访问第一资源中的第三资源,得到第二访问结果,并将第二访问结果发送给第一设备;第一设备在第二权限范围内运行第二实例,并根据第二访问结果访问第一资源中的第二资源。
结合第二方面,在一些实施方式中,第二设备响应于访问请求,创建被调用者的第二部分的第三实例之前,第一设备可以将被调用者的第二部分发送给第二设备;或者,第二设备可以响应于访问请求,从网络中下载被调用者的第二部分。
结合第二方面,在另一些实施方式中,第二设备可以预置该被调用者的第二部分。
结合第二方面,在一些实施方式中,第一设备创建第一实例之后,可以为第一实例分配第一安全域身份,第一安全域身份对应的第一访问策略指示:不允许第一实例和第二实例通信,或者,不允许第一实例向第二实例发送数据,或者,不允许第一实例接收第二实例发送的数据。并且,第一设备在第一权限范围内,根据第一访问策略运行第一实例。这样可以避免第一设备中第一实例根据第一权限范围获取到的数据,通过第二实例发送给第二设备,还可以避免第二设备获取到的数据,通过第二实例发送给第一设备中的第一实例。也就是说,这样可以避免第一设备和第二设备之间的数据相互泄露,保证两个设备的数据安全。
结合第二方面,在一些实施方式中,第一设备创建第二实例之后,可以为第二实例分配第二安全域身份,第二安全域身份对应的第二访问策略指示:不允许第二实例和第一实例通信,或者,不允许第二实例向第一实例发送数据,或者,不允许第二实例接收第一实例发送的数据。并且,第一设备在第二权限范围内,根据第二访问策略运行第二实例。这样可以避免第一设备中第一实例根据第一权限范围获取到的数据,通过第二实例发送给第二设备,还可以避免第二设备获取到的数据,通过第二实例发送给第一设备中的第一实例。也就是说,这样可以避免第一设备和第二设备之间的数据相互泄露,保证两个设备的数据安全。
结合第二方面,在一些实施方式中,第一设备可以为第一实例分配第一UID、第一进程标识PID;为第二实例分配第一UID、第二PID。这样可以让第一实例和第二实例共享相同的UID,即作为同一个应用运行。此外,第一设备可以通过PID来区分第一实例和第二实例,从而对各个实例进行权限控制。
结合第二方面,在一些实施方式中,第一设备可以响应于检测到的用于启动调用者的第一操作,创建第一实例。
结合第二方面,在一些实施方式中,第一设备可以显示第二用户界面,并响应于在第二用户界面上接收到的第二操作,向第二设备发送访问请求。
结合第二方面,在一些实施方式中,第二权限范围和第一权限范围可以有部分相同,也可以完全不同。在一些实施方式中,第二权限范围可以是第一权限范围的部分。
第一权限范围可以是第一设备默认授予给调用者的,也可以是用户授予给调用者的。
第二权限范围可以是第一设备中的调用者默认授予给被调用者的,也可以是用户授予给被调用者的。例如,第一设备可以显示第三用户界面,并在第三用户界面上接收到第三操作,并根据该第三操作,确定第二权限范围。
第三方面,本申请实施例提供了一种电子设备,包括:存储器、一个或多个处理器;存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行如第一方面或第一方面任意一种实施方式的方法。
第四方面,本申请实施例提供了通信系统,包括第一设备、第二设备,第一设备用于执行如第一方面或第一方面任意一种实施方式的方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行如第一方面或第一方面任意一种实施方式的方法。
第六方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面或第一方面任意一种实施方式的方法。
实施本申请提供的技术方案,电子设备可以为调用者和被调用者创建不同的实例,但共享一个UID。这样,电子设备仅运行了一个应用,无需额外消耗系统性能。在此基础上,通过创建不同的实例,电子设备可以明确地区分开调用者和被调用者,并能保证被调用者的实例在自身对应的权限范围内运行,实现被调用者的权限最小化,避免后续调用者调用被调用者的过程中,该被调用者窃取在其权限范围之外的数据等问题,保证电子设备中的数据安全。
附图说明
图1本申请实施例提供的通信系统10的结构示意图;
图2A为本申请实施例提供的一种分布式场景;
图2B为三方库为调用者提供服务的一种形式;
图3为避免被调用者的权限扩大化的几种方式;
图4A为本申请实施例提供的访问控制方法的流程图;
图4B为本申请实施例提供的应用的运行模型;
图5A-图5D为本申请实施例提供的在主体设备上实现的一组用户界面;
图5E-图5F为本申请实施例提供的在客体设备上实现的一组用户界面;
图6A为本申请实施例提供的电子设备的硬件结构图;
图6B为本申请实施例提供的电子设备的软件结构图;
图6C为本申请实施例提供的电子设备的软件结构图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请以下实施例中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面是通过java、可扩展标记语言(extensible markuplanguage,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
首先,介绍本申请实施例提供的通信系统。
如图1所示,本申请实施例提供了通信系统10。通信系统10包括:多个电子设备。通信系统10也可以称为分布式系统10。
分布式系统10中包含的多个电子设备均为智能终端设备,可以为各种类型,本申请实施例对该多个电子设备的具体类型不作限制。例如,该多个电子设备包括手机,还可以包括平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、智慧屏、可穿戴式设备、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、车机、智能耳机,游戏机,还可以包括物联网(internet of things,IOT)设备或智能家居设备如智能热水器、智能灯具、智能空调等等。不限于此,分布式系统10中的多个设备还可以包括具有触敏表面或触控面板的膝上型计算机(laptop)、具有触敏表面或触控面板的台式计算机等非便携式终端设备等等。
分布式系统10中的多个电子设备均为部署在家庭中的设备时,分布式系统10也可被称为家庭分布式系统。
分布式系统10中的多个电子设备之间可以通过登录相同的账号进行连接。例如,多个电子设备可以登录同一华为账号,并通过服务器来远程连接并通信。
分布式系统10中的多个电子设备也可以登录不同账号,但通过绑定的方式进行连接。例如,电子设备100登录账号后,可以在设备管理应用中,绑定登录不同账号或未登录的电子设备200,之后电子设备100和电子设备200可以通过该设备管理应用通信。在本申请以下实施例中,电子设备100可以为分布式系统10中的任意一个电子设备,电子设备200也可以为分布式系统10中的任意一个电子设备。例如,电子设备100为智能手表,电子设备200为智慧屏。
分布式系统10中的多个电子设备还可以通过扫描二维码、NFC碰一碰等方式建立连接,这里不做限制。
分布式系统10中的多个电子设备之间建立的通信连接可包括但不限于:有线连接、无线连接例如蓝牙(bluetooth,BT)连接、无线局域网(wireless local areanetworks,WLAN)例如无线保真点对点(wireless fidelity point to point,Wi-Fi P2P)连接、近距离无线通信技术(near field communication,NFC)连接,红外技术(infrared,IR)连接,以及远程连接等等。
此外,分布式系统中的多个电子设备也可以结合上述任意几种方式来连接并通信,本申请实施例对此不做限制。
该多个电子设备可以配置不同的软件操作系统(operatingsystem,OS),包括但不限于
Figure BDA0003530600590000071
等等。其中,
Figure BDA0003530600590000072
为华为的鸿蒙系统。
该多个电子设备也可以都配置相同的软件操作系统,例如可以均配置
Figure BDA0003530600590000073
在多个电子设备的软件系统均为
Figure BDA0003530600590000074
时,分布式系统10可以看作一个超级终端。
在本申请实施例中,分布式系统10中的各个设备可以安装传统应用程序(application,APP),例如相机应用、图库应用、设置应用等等。后续实施例中,传统APP可以简称为APP。
此外,本申请实施例提供的分布式系统10可以安装分布式应用(distributedapplication)。该分布式应用可以为系统应用,也可以为第三方应用,这里不做限制。
与包含多种能力(ability)的APP不同,分布式应用支持以单一能力(ability)为单位进行部署。一个分布式应用包括一个或多个功能组件。
功能组件是电子设备中可独立运行的最小能力单元,是对单一能力进行抽象封装的概念。APP将多个功能集合在一起,而功能组件将各个功能作为单独的服务化基础能力,独立存在。即,功能组件是实现单一功能的程序实体。
每个功能组件都可以独立下载、安装并运行。组成同一个分布式应用的多个功能组件,可以部署在分布式系统10中的同一个电子设备中,也可以部署在不同电子设备中。
功能组件只是本实施例中所使用的一个词语,其代表的含义在本实施例中已经记载,其名称并不能对本实施例构成任何限制。另外,在本申请其他一些实施例中,功能组件也可以称为系统组件、系统服务、业务功能等其他名词。本申请后续实施例统一以“功能组件”进行描述。
Figure BDA0003530600590000075
为例,
Figure BDA0003530600590000076
中的功能组件可以包括以下两种类别:
(1)feature ability,FA。
FA是包含一组或若干组UI的功能组件,可以提供与用户交互的能力。例如,地图应用中的导航界面、即时通讯应用中的视频通话界面等,可以实现为FA。
在一些实施例中,FA基于MVVM(model-view-view-model)模式开发,将UI和业务逻辑分离。即,FA的业务逻辑部分和UI部分分开部署。例如,FA的UI部分可以部署在一个电子设备中,而FA的业务逻辑部分可以集成到其他APP中并且安装于另一个电子设备中。
FA的UI部分用于提供或展示UI。FA的UI部分可以实现为代码或者功能模块,这里不做限制。
FA的业务逻辑部分用于提供展示上述UI所需的数据。FA的业务逻辑部分可以实现为代码或者功能模块,这里不做限制。
具体实现中,FA的UI部分所在设备,可以和FA的业务逻辑部分所在设备进行通信,并获取到展示UI所需要的数据,然后根据该数据展示该UI。
FA支持page模板的能力,例如Empty Ability,Login Ability,Setting Ability等。FA采用脚本语言(java script,JS)提供声明式开发模式,采用类HTML和层叠样式表(cascading style sheet,CSS)声明式编程语言作为页面布局和页面样式的开发语言,并支持ECMAScript规范的JS语言提供页面业务逻辑。
FA具有免安装、独立运行、跨设备UI迁移、跨设备二进制迁移等能力。FA还具有多端部署、分布执行的特性。
FA可以调用AA或APP,实现更多、更复杂的功能。
(2)particle ability,PA。
PA是无UI的功能组件,可以为FA提供支持,例如PA可以作为后台服务提供计算能力,或作为数据仓库提供数据访问能力。例如,美颜功能、定位功能、音视频编解码功能等,可以封装为PA。
PA同样具有多端部署、分布式执行等特性。PA仅对系统服务有依赖关系,和其他PA之间不存在依赖关系。
PA实际上将远程虚拟化、远程调用、PA管理、跨平台兼容、安全等实现做封装,对开发者开放跨设备的服务使能和唤起,以供其他设备调用本设备的计算能力,协同其他设备完成计算工作。PA支持Service Ability,Data Ability等。Service Ability用于提供后台运行任务的能力。Data Ability用于对外部提供统一的数据访问抽象。
PA可以调用FA或APP,实现更多、更复杂的功能。
可以理解的是,“FA”、“PA”只是本实施例中所使用的一个词语,在本申请其他一些实施例中,其还可以被称为其他名词。例如,“PA”、“FA”也可以被称为例如原子能力(atomicability,AA)、原子应用、元能力、原子化服务、特性能力等其他名词。
组成一个分布式应用的多个功能组件可以由同一个开发者来开发或提供,可以由多个开发者分别开发或提供,这里不做限制。不同开发者共同开发功能组件,可以提高分布式应用的开发效率。
在本申请实施例中,功能组件对外提供标准化的接口,以供调用。APP可调用功能组件。在一些情况下,功能组件也可以调用其他功能组件或APP。此外,被调用的功能组件也可以继续调用另外的功能组件或APP,这样多级调用的方式可称为链式调用。
分布式系统10中的各个设备建立通信连接后,各个设备将同步分布式系统中其他设备的功能组件信息以及APP信息。具体的,各个设备可以将自身安装的功能组件及APP的名称同步给其他设备,以供后续在分布式系统10中调用其他设备的FA、PA等功能组件。FA、PA等功能组件能够被哪些调用者调用,以及,能够调用哪些其他的功能组件,可以预先设置并记录在各个电子设备中。在其他一些实施例中,各个设备还可以将自己的设备标识、设备类型等等同步给分布式系统中的其他设备。
在本申请后续实施例中:发起调用功能组件或APP的一方,可以称为调用者。调用者例如可以为APP、服务、FA或PA。整个调用链的初始发起者,可以称为首调者。首调者例如可以为APP或FA。举例来说,调用链为:APP1调用PA1,PA1调用PA2,PA2调用FA1,则APP1为首调者。再举例来说,调用链为:FA1调用PA1,PA1调用PA2,则FA1为首调者。
在整个调用链中,中间被调用的一方以及最后被调用的一方,都可以称为被调用者。被调用者例如可以为APP、FA或PA。
在本申请一些实施例中,调用者也可以称为主体应用,被调用者还可以称为客体应用。
在调用链中,调用者,以及,被调用者,可以部署在同一个电子设备中,也可以部署在不同的电子设备中。
调用者所在设备称为主体设备,被调用者所在设备为客体设备。图1所示的分布式系统中的主体设备以及客体设备的作用,可参考后续方法实施例的相关描述,这里暂不赘述。
本申请以下实施例所称的应用,可以包括APP,也可以包括功能组件。应用之间可以通过不同的应用标识(APP ID)来区分。
参考图2A,图2A示例性示出了本申请实施例提供的一种可能的分布式业务场景。
如图2A所示,分布式系统包含智能手表和智能手机。智能手表和智能手机相互连接。智能手表和智能手机可以配置不同的软件操作系统(operatingsystem,OS),例如智能手表和智能手表可以配置
Figure BDA0003530600590000091
系统,智能手机可以配置
Figure BDA0003530600590000092
系统。
其中,智能手机上可以安装有外卖类APP。外卖类APP是安装于电子设备中,用于为用户提供外卖服务的应用程序。智能手机中的外卖类APP可以集成提供定位功能的FA的业务逻辑部分,而该FA的UI部分则部署在智能手表中。提供定位功能的FA的UI部分,可以预置到智能手表中,也可以由该智能手机迁移到智能手表中,还可以由智能手表从网络中下载得到。
智能手机中的外卖类APP可以作为调用者,调用提供定位功能的FA,以访问该FA的定位能力。具体的,智能手机可以运行该外卖类APP中集成的FA的业务逻辑部分,以获取定位页面所需的数据,并将该数据发送给智能手表。智能手表可以运行该FA的UI部分并利用该数据提供用于查看配送员的位置的定位页面。
可见,通过图1所示的分布式系统10,以及,图2A所示的分布式场景,可以整合不同设备的软硬件能力,实现智慧化的全场景体验。
在调用者集成FA的业务逻辑部分时,该业务逻辑部分和该调用者自身以相同的用户身份或用户标识(user ID,UID)运行,因此会带来潜在的权限扩大化和数据泄露风险。例如,FA的业务逻辑部分运行时可以利用调用者的权限获取到主体设备的敏感资源,并可能将该敏感资源传递给和其通信的FA的UI部分所在的设备,导致数据泄露。敏感资源是指设备中安全等级较高的、泄露将对用户造成极大风险的资源。又例如,FA的UI部分将重要业务数据发送给业务逻辑部分后,该业务数据可能被调用者自身恶意获取,导致数据泄露。
除了图2A所示的调用者调用FA时可能出现数据泄露情况,在其他一些调用者集成三方代码时,也可能出现类似的数据泄露问题。
参考图2B,图2B示例性示出了被调用者以三方库的形式为调用者提供服务的场景。
如图2B所示,电子设备中的调用者(例如APP)可以集成三方库。调用者运行时可以调用该三方库,以获取该三方库提供的各项服务。由于三方库和该调用者自身的代码以相同的用户身份运行,该三方库可以利用调用者的权限获取到电子设备的敏感资源,并可能将该敏感资源传递给其他设备或者该电子设备中的其他应用,导致数据泄露。
这里,三方库的开发者和调用者的开发者不同。三方库例如可包括软件开发包(software development kit,SDK)库或动态链接库(.so文件)等等,这里不做限制。
为了避免图2A或图2B中的数据泄露问题,可以通过监控器(monitor)来监控FA的业务逻辑部分/三方库的权限。
参考图3中的(1),监控器可以设置在应用程序层,例如可以集成在调用者中。
参考图3中的(2),监控器也可以设置在框架层。
监控器可以根据电子设备中FA的业务逻辑部分/三方库实际具有的权限,监控FA的业务逻辑部分/三方库在运行过程中所能够执行的操作,尽量保证FA的业务逻辑部分/三方库在自身权限范围内运行。
但是,即使引入监控器,FA的业务逻辑部分/三方库仍然和调用者自身的代码以相同的用户身份(UID)运行,监控器并不容易明确地区分开调用者自身的代码和FA的业务逻辑部分/三方库,因此监控器的监管作用有限,仍然无法保证调用过程中没有数据泄露风险。
为了避免调用者调用被调用者的过程中的数据泄露问题,本申请以下实施例提供了一种访问控制方法。
在该访问控制方法中,主体设备中安装有调用者,该调用者为APP或功能组件。在该方法中,调用者在调用被调用者时,主体设备可以为调用者和被调用者分别创建一个实例,并且为两个实例赋予相同的用户身份(UID)。之后,主体设备可以在该被调用者对应的权限范围内运行为该被调用者创建的实例。
在一些实施例中,该被调用者可以包含第一部分和第二部分,第一部分和第二部分可以部署在同一设备或不同设备中。在另一些实施例中,该被调用者可以实现为三方库,三方库和调用者可以部署在同一个主体设备中。
一方面,该方法可以应用于包含多个电子设备的分布式系统。该分布式系统包括主体设备和客体设备。主体设备安装有调用者,和,被调用者的第一部分。并且,主体设备中的调用者和被调用者的第一部分集成为一个整体应用。而该被调用者的另一部分,即被调用者的第二部分可以安装在客体设备中。
其中:
该调用者可以为APP或功能组件。调用者具体用于提供该调用者本身实现的各项功能。例如,主体设备中的调用者为图2A示例的外卖类APP时,该调用者用于提供外卖服务,例如为用户提供外卖商家浏览、提交外卖订单、评价外卖订单等服务。该调用者可以实现为调用者本身的代码或功能模块。
被调用者也可以为APP或功能组件。
被调用者的第一部分,用于提供被调用者的一部分功能。被调用者的第二部分,用于提供被调用者的另一部分功能。被调用者的第一部分和第二部分共同完成该被调用者所提供的全部功能。
例如,被调用者为图2A示例的提供定位功能的FA时,该第一部分可以是用于获取展示上述UI所需数据的业务逻辑部分,主要负责计算、检测等内部处理操作,该第二部分可以是用于提供或展示UI的UI部分。
总的来说,主体设备集成调用者和被调用者的第一部分后,其实际提供的功能包括:该调用者提供的功能,和,该被调用者的第一部分所提供的功能。
调用者和被调用者可以由不同的开发者开发。
集成了调用者和被调用者的第一部分的整体应用,其对外形成一个整体,对于用户来说并不区分或者并不感知该整体应用实际包含两部分。
例如,用户通过主体设备从应用商店下载该整体应用时,电子设备直接下载该调用者和被调用者的第一部分,用户仅获知当前主体设备下载了一个整体应用,并不感知主体设备下载了该调用者和被调用者的第一部分。
又例如,主体设备可以将该整体应用中的调用者和被调用者的第一部分存储在同一个存储区域中。
又例如,用户触发主体设备运行整体应用后,主体设备将提供一系列该调用者的用户界面,用户可以通过这些用户界面使用调用者和被调用者的第一部分各自提供的功能。在此过程中,由于用户总是在同一个整体应用提供的用户界面中操作,因此不会感知到调用者和被调用者的第一部分的区别,而认为调用者和被调用者的第一部分各自的功能均为该整体应用提供的功能。
在本申请实施例提供的访问控制方法中,主体设备为调用者和被调用者的第一部分分别创建一个实例,并且为两个实例赋予相同的用户身份(UID)。之后,主体设备可以在该被调用者的第一部分对应的权限范围内运行为该被调用者的第一部分创建的实例。
其中,UID用于标识APP或功能组件所属用户。通常情况下,电子设备会为安装的不同APP或功能组件分配不同的UID,以作区分。电子设备可以通过UID来识别不同的APP或功能组件,并对APP或功能组件进行权限管控。
在本申请实施例中,调用者和被调用者的第一部分共享同一个用户身份(UID),即主体设备仅运行了一个应用,无需额外消耗系统性能。在此基础上,通过创建不同的实例,主体设备可以明确地区分开调用者和被调用者的第一部分,并能保证被调用者的第一部分的实例在自身对应的权限范围内运行,实现被调用者的第一部分的权限最小化,避免后续调用者调用被调用者的过程中,该被调用者的第一部分窃取在其权限范围之外的数据等问题,保证主体设备中的数据安全。
实例是运行态的APP或功能组件。在本申请实施例中,实例可以指进程,也可以指线程。进程是应用程序在计算机上的一次执行活动。线程是应用程序执行中一个单一的顺序控制流程。一个进程可以包括多个线程。实例可以通过进程标识(process identifier,PID)来区分。电子设备每创建一个实例即会给该实例分配一个唯一的PID。
在一些实施例中,主体设备还可以为调用者的实例、被调用者的第一部分的实例分配不同的安全域身份,并且按照各自安全域身份对应的访问策略来运行调用者的实例、被调用者的第一部分的实例。如果访问策略指示,调用者的实例和被调用者的第一部分的实例之间不能通信,则可以保证调用者的实例能够获取到的数据,和,被调用者的第一部分的实例能够获取到的数据不会相互泄露,可以保证主体设备以及客体设备中的数据安全。关于访问策略的具体内容,可参考后续方法实施例的相关描述。
下面详细介绍应用于分布式系统中的访问控制方法。
参考图4A,图4A为本申请实施例提供的访问控制方法的流程示意图。如图4A所示,该方法可包括如下步骤:
S101,主体设备检测到启动调用者的用户操作。
在本申请实施例中,主体设备预置有包括调用者。
在图4A所示的方法中,调用者、被调用者的第一部分、被调用者的第二部分的定义及介绍,可参考前文相关描述。
本申请实施例对启动调用者的用户操作不做限定,例如可以是主体设备检测到的作用于显示屏的触摸操作、语音指令、摇晃操作等等。启动调用者的用户操作,可以被称为第一操作。
示例性地,参考图2A所示的分布式业务场景,智能手机作为主体设备,外卖类APP作为调用者时,该主体设备可以显示如图5A所示的用户界面51。
图5A示出了主体设备上的用于展示已安装应用的示例性用户界面51。该用户界面51显示有:状态栏、日历指示符、天气指示符、具有常用应用程序图标的托盘、其他应用程序图标例如外卖类APP的图标501、图库的图标、文件浏览器的图标等等。其中,状态栏可包括:移动通信信号(又可称为蜂窝信号)的一个或多个信号强度指示符、蓝牙指示符、Wi-Fi信号的一个或多个信号强度指示符,电池状态指示符、时间指示符等等。不限于此,图5A所示的用户界面还可包括导航栏、侧边栏等等。在一些实施例中,图5A示例性所示的用户界面51可以称为主界面(Home screen)。
如图5A所示,主体设备检测到的启动调用者的用户操作,可以是主体设备检测到的作用于外卖类APP的图标501上的用户操作(例如点击操作、触摸操作等等)。
S102,响应于启动调用者的用户操作,主体设备创建调用者的实例。
实例的定义及介绍可参考前文相关描述。
具体的,主体设备可以响应于启动调用者的用户操作,运行调用者的代码,即创建调用者的实例。为了描述简单,后续将主体设备创建的调用者的实例称为第一实例。
主体设备在创建第一实例时,可以为该第一实例分配第一UID。具体的,主体设备可以在自身预置的数据区间内,选择一个UID分配给该第一实例。主体设备会为自身运行的其他APP或功能组件分配其他的UID。因此,第一UID可用于将该第一实例,和区别于调用者的其他APP或功能组件,区分开来。
主体设备在创建第一实例时,可以为该第一实例分配第一PID。第一PID可用于将该第一实例和主体设备中的其他实例区分开来。
S103,主体设备在第一权限范围内运行该第一实例。
创建第一实例之后,主体设备可以在第一权限范围内运行该第一实例,以提供在该第一权限范围内的各项功能,例如,外卖类APP所提供的外卖服务,如为用户提供外卖商家浏览、提交外卖订单、评价外卖订单等等。
其中,第一权限范围可以是主体设备默认授予给调用者的,也可以是用户授予给调用者的。例如主体设备默认调用者具有访问显示屏、音频设备等权限。又例如,用户可以授予调用者使用主体设备的图库、网络连接功能、定位功能、通知功能、使用主体设备中存储的收货人信息等权限。本申请实施例对用户授予调用者第一权限范围的方式不做限制,例如,用户可以在主体设备的设置应用提供的用户界面中授予权限,也可以在该第一实例提供的用户界面(例如弹框)中授予权限,这里不做限制。
在一些实施例中,主体设备可以运行该第一实例,以显示对应的用户界面。示例性地,参考图5B,图5B示出了主体设备中第一实例所提供的用户界面52。该用户界面52可以是可供用户浏览外卖商家的界面。
S104,主体设备在运行第一实例过程中,生成访问请求,并向客体设备发送该访问请求,该访问请求中携带有:调用者的标识、被调用者的标识、第一资源的标识;该访问请求用于调用者调用被调用者以访问第一资源。
在一些实施例中,主体设备可以响应于接收到的用户操作,生成该访问请求。用于触发主体设备生成访问请求的用户操作,可以称为第二操作。
示例性地,参考图5C,图5C展示了用户通过主体设备发起外卖订单后,该主体设备所展示的一个用于展示订单状态的用户界面53。该用户界面53中可以显示有:商家名称、购买的货品名称及图片,订单的配送状态、配送信息(例如配送时间、地址、收货人等)、用于查看配送员位置的控件502等等。
如图5C所示,主体设备可以接收到作用于控件502的用户操作(例如点击操作、触摸操作等等),并响应于该用户操作生成对应的访问请求,该访问请求携带有调用者的标识(即外卖类APP的标识)、被调用者的标识(提供定位功能的FA的标识)、第一资源的标识(即定位能力的标识)。在图5C的示例中,用户界面53可以称为第二用户界面,作用于控件502的操作为第二操作。
在另一些实施例中,主体设备也可以在一些情况下自主地向客体设备发起该访问请求。例如,用户通过主体设备发起外卖订单后,主体设备可以自主生成用于外卖类APP调用提供定位功能的FA的访问请求,无需用户操作。
在本申请实施例中,调用者的标识、被调用者的标识,可以为应用标识(APP ID)。
在本申请实施例中,第一资源可以为软件资源或硬件资源。硬件资源例如可包括该设备具备的摄像头、指纹传感器、音频设备、显示屏、马达、闪光灯等等。软件资源例如可包括该设备具备的内存资源、计算能力(例如美颜算法能力、音视频编解码能力)、网络能力、定位功能等等。
在本申请实施例中,第一资源可以包括两部分:位于主体设备中的第二资源,和,位于客体设备中的第三资源。本申请实施例对第二资源、第三资源的具体内容不做限制。例如,当被调用者为图2A示例中的提供定位功能的FA时,则该第一资源包括:主体设备中的定位功能,以及,客体设备中的显示屏以及相关联的显示功能。
调用者、被调用者以及第一资源具体是什么,取决于用户操作或者主体设备的运行情况,这里不做限制。
S105,主体设备生成访问请求后,创建被调用者的第一部分的实例。
在一些实施例中,主体设备中预置有被调用者的第一部分,因此可以在生成访问请求后,直接创建该被调用者的第一部分的实例。
在另一些实施例中,主体设备并未预置被调用者的第一部分。在这种情况下,客体设备可以在接收到主体设备在S104中发送的访问请求后,将被调用者的第一部分发送给主体设备。
在另一些实施方式中,主体设备在S104中生成访问请求后,可以直接从网络中下载获取到该被调用者的第一部分。
主体设备获取到该被调用者的第一部分后,可以将该被调用者的第一部分和调用者本身集成为一个整体应用,并运行该被调用者的第一部分,即创建被调用者的第一部分的实例。
为了描述简单,后续将主体设备中被调用者的第一部分的实例称为第二实例。
主体设备在创建第二实例时,为该第二实例分配和第一实例相同的第一UID。也就是说,虽然主体设备同时运行了调用者中的调用者和被调用者的第一部分,由于调用者中的第一实例和第二实例共享同一个用户身份(UID),主体设备相当于运行了一个应用,无需额外消耗系统性能及资源。
主体设备在创建第二实例时,可以为该第二实例分配第二PID,第二PID和第一PID不相同。第二PID可用于将该第二实例和主体设备中的其他实例(例如第一实例)区分开来。
可选步骤S106,主体设备为第一实例分配第一安全域身份,为第二实例分配第二安全域身份。
主体设备可以在创建第一实例后,为其分配第一安全域身份,在创建第二实例后,为其分配第二安全域身份。
具体的,主体设备可以在内核层分配或者创建多个安全域,每个安全域对应一个安全域身份(即标识)。例如,第一安全域对应第一安全域身份,第二安全域对应第二安全域身份。
安全域位于内核层,是由在同一工作环境中、具有相同或相似的安全保护需求和保护策略、相互信任、相互关联或相互作用的逻辑区域的集合。安全域可以看做是内核级的沙箱,其提供了内核级的安全隔离,用户或应用都不能更改一个安全域的访问策略。安全域之间基于强制访问控制(mandatory access control,MAC)策略来实现访问控制,MAC策略定义了哪个主体能访问哪个对象,并且该策略只能由设备系统强制执行,任何用户或应用都不能更改。因此,不同的安全域可以实现内核级隔离,提供系统级别的安全制度。
每个安全域定义了对应的访问策略,包括哪些用户可以在哪些数据或进程上进行哪些类型的操作。例如,电子设备会为每个新创建的进程分配安全域身份,当进程访问特定文件或目录、与其它进程进行进程间通信时,根据安全策略文件中定义的该安全域身份对应的访问策略,来判断是否允许该实例执行这些操作。不同的安全身份所对应的访问策略可以不同。
简单地说,一个实例的安全策略,定义了该实例和其他进程之间的通信规则。
本申请实施例对第一安全域身份对应的第一安全策略,和第二安全域身份对应的第二安全策略的具体内容不做限制。
以第二安全域身份对应的第二安全策略为例,下面简单介绍该第二安全策略的几种可能的实现形式:
(1)该第二安全策略可以包括:允许同属于被调用者的第二实例和第三实例通信。
(2)该第二安全策略可以包括:不允许第二实例和主体设备中的其他实例通信,即不允许第二实例和第一实例通信。
(3)该第二安全策略可以包括:不允许第二实例接收来自属于同一UID的其他实例(例如第二实例)的敏感数据。
(4)该第二安全策略可以包括:允许第二实例接收主体设备中其他实例发送的数据,但不允许第二实例将自身获取到的数据发送给主体设备中的其他实例(例如第一实例)。即仅允许第二实例和其他实例之间单向通信。
第一安全域身份对应的第一安全策略和上述类似,下面简单列举:
(1)该第一安全策略可以包括:不允许第一实例和主体设备中的其他实例通信,即不允许第一实例和第二实例通信。
(2)该第一安全策略可以包括:不允许第一实例接收来自属于同一UID的其他实例(例如第二实例)的敏感数据。
(3)该第一安全策略可以包括:允许第一实例接收主体设备中其他实例发送的数据,但不允许第一实例将自身获取到的数据发送给主体设备中的其他实例(例如第二实例)。即仅允许第一实例和其他实例之间单向通信。
上述安全策略的具体内容仅为示例,具体实现中,该内容可以根据实际情况进行个性化的配置,这里不做限制。
在一些实施例中,电子设备100可以在确认调用者和被调用者的开发者不同时,才为第一实例、第二实例分配不同的安全域标识,而在两者开发者相同时,可以为其分配相同的安全域标识。这样可以保证不同开发者的调用者和被调用者之间的数据不发生泄露,在两者开发者相同时,减少分配安全域标识所消耗的资源。
S107,客体设备响应于接收到的访问请求,创建被调用者的第二部分的实例。
为了描述简单,后续将客体设备中被调用者的第二部分的实例称为第三实例。
在一些实施例中,客体设备预置有该被调用者的第二部分。
在另一些实施例中,客体设备并未预置被调用者的第二部分。在这种情况下,客体设备可以在接收到主体设备发送的该调用者的第二部分,或者,客体设备接收到主体设备发送的访问请求后,可以直接从网络中下载获取到该被调用者的第二部分。
在一些实施例中,客体设备接收到主体设备发送的访问请求后,可以直接响应该访问请求,创建被调用者的第二部分的实例。
在另一些实施例中,客体设备接收到主体设备发送的访问请求后,可以输出提示信息,以提示用户响应该访问请求,在用户同意响应该访问请求后,客体设备才会响应该访问请求创建被调用者的第二部分的实例。示例性地,参考图5E,图5E示例性示出了客体设备接收到访问请求后所显示的用户界面55。用户界面55中显示有:提示信息506,控件507和控件508。提示信息506用于提示用户是否响应主体设备发起的访问请求。控件507可监听用户操作,主体设备可响应于该用户操作,响应主体设备发起的访问请求。控件508可监听用户操作,主体设备可响应于该用户操作,拒绝响应主体设备发起的访问请求。
本申请实施例对S105-S106和S107之间的先后顺序不做限制。
S108,主体设备在第二权限范围内运行第二实例,客体设备运行第三实例,主体设备和客体设备通信以访问第一资源。
第二权限范围和第一权限范围不同。在一些实施例中,第二权限范围和第一权限范围可以有部分相同,也可以完全不同。在一些实施例中,第二权限范围可以是第一权限范围的部分。
该第二权限范围为被调用者的权限范围。
在一些实施例中,第二权限范围可以是主体设备中的调用者默认授予给被调用者的。例如,如果调用者具有的权限范围包括使用主体设备的图库、网络连接功能、定位功能、通知功能、使用主体设备中存储的收货人信息等,则调用者可以将使用主体设备的网络连接功能、定位功能的权限授予给被调用者。主体设备中的调用者默认授予哪些权限给被调用者,可以预先由开发者定义或设置。
在一些实施例中,第二权限范围可以是用户授予给被调用者的。用户可以在主体设备上授予被调用者该第二权限范围,也可以在客体设备上授予该调用者第二权限范围,这里不做限制。本申请实施例对用户授予被调用者该第二权限范围的方式不做限制,例如可以通过弹框、语音指令等方式授予权限等。
示例性地,参考图5D,图5D示出了一种用户通过主体设备授予被调用者权限的方式。
如图5D所示,主体设备可以显示有用户界面54,该用户界面54中显示有:提示信息503、控件504和控件505。该用户界面54可以是主体设备在运行第二实例之前显示的。其中,提示信息503用于提示用户是否授予被调用者(即提供定位功能的FA)访问主体设备的定位功能的权限。控件504可监听用户操作,主体设备可响应于该用户操作,授予被调用者访问主体设备中定位功能的权限。控件505可监听用户操作,主体设备可响应于该用户操作,授予被调用者访问主体设备中定位功能的权限。
在图5D所示的示例中,用户界面54可以称为第三用户界面,作用于控件504的用户操作可以称为第三操作。
在本申请实施例中,第一权限范围、第二权限范围均可以是动态变化的。
在本申请实施例中,主体设备和客体设备通信以访问第一资源的过程,可以包括以下一项或多项:
1,主体设备在第二权限范围内运行第二实例,访问第一资源中的第二资源,得到第一访问结果,并将第一访问结果发送给客体设备。客体设备运行第三实例,并根据第一访问结果访问第一资源中的第三资源。
该第一资源、第二资源、第三资源的定义及示例可参考前文相关描述。
第一访问结果例如可以是主体设备访问定位功能、访问内存资源、通过摄像头采集图像或者执行其他操作的结果,这里不做限制。
在一些实施例中,客体设备运行第三实例,并根据第一访问结果访问第一资源中的第三资源时,可以根据该第一访问结果来展示第一用户界面。第一用户界面中显示的内容包含该第一访问结果或者根据该第一访问结果处理后的内容。
示例性地,参考图5F,图5F示出了客体设备上的第三实例,利用主体设备运行第二实例获取到的第一访问结果(即定位数据)展示的用户界面56。该用户界面56为第一用户界面的示例。
如图5F所示,用户界面56为供用户查看配送员位置的定位页面。图5F中显示的“我的位置”所需的定位数据,是主体设备运行被调用者的第一部分(即提供定位功能的FA的业务逻辑部分)的实例获取到并发送给主体设备的。
在一些实施例中,如果S106中,主体设备为第二实例分配的第二安全域身份对应的安全策略中,允许第二实例和第三实例通信,则主体设备中的第二实例可以将获取到的数据发送给第三实例,客体设备可以通过第三实例利用该数据访问第一资源中的第三资源。
在本申请实施例中,由于调用者和被调用者的第一部分共享同一个UID,实现为同一个应用,因此,如果第一实例和第二实例在运行时需要展示UI,则可以通过同一个应用直接展示,不会出现呈现效果不佳的情况,可以保证展示给用户的效果。
2,客体设备响应于访问请求运行第三实例,访问第一资源中的第三资源,得到第二访问结果,并将第二访问结果发送给主体设备。之后,主体设备在第二权限范围内运行第二实例,并根据第二访问结果访问第一资源中的第二资源。
该第一资源、第二资源、第三资源的定义及示例可参考前文相关描述。
第二访问结果例如可以是主体设备访问定位功能、访问内存资源、通过摄像头采集图像或者执行其他操作的结果,这里不做限制。
在一些实施例中,主体设备运行第二实例,并根据第二访问结果访问第一资源中的第二资源时,可以根据该第二访问结果来展示UI、语音播报或者执行进一步的计算或内部处理操作等等,这里不做限制。
可见,在本申请实施例中,调用者调用被调用者,以访问第一资源的过程,涉及到主体设备和客体设备之间的通信,即涉及到主体设备和客体设备之间的数据交互。
在S108中,主体设备在第二权限范围内运行第二实例,可以实现被调用者的第一部分的实例的权限最小化,避免被调用者的第一部分的实例利用调用者的权限获取到主体设备的敏感资源,从而避免主体设备中的数据被泄露,保证数据安全。例如,在图5A-图5D的实例中,用户授予了被调用者访问主体设备中的定位功能的权限,但并未授予被调用者访问主体设备中存储的收货人信息的权限,则主体设备运行外卖类APP时,提供定位功能的FA的业务逻辑部分的实例不能获取到主体设备中存储的收货人信息,也就避免了信息泄露。
在一些实施例中,如果S106中第二安全策略实现为上述第(2)或(3)种情况,或者,如果第一安全策略实现为上述第(1)或(3)种情况,则主体设备在运行第二实例的过程中,第二实例和第一实例之间的通信受到限制,第二实例并不能接收到第一实例利用自身权限获取到的数据,这样就可以避免主体设备中的敏感数据被传送给客体设备,保证了主体设备中的数据安全。
在一些实施例中,如果S106中第二安全策略实现为上述第(2)或(4)种情况,或者,如果第一安全策略实现为上述第(1)或(2)种情况,则主体设备在运行第二实例的过程中,第二实例和第一实例之间的通信受到限制,第二实例并不能将自身获取到的数据发送给第一实例,这样就可以避免客体设备中的敏感数据被传送给主体设备中的第一实例,保证了客体设备中的数据安全。
也就是说,通过S106,可以保障第一实例能够获取到的主体设备中的数据,和,第三实例能够获取到的客体设备中的数据不会相互泄露,从而保证主体设备以及客体设备中的数据安全。
不限于图4A示例性列举的分布式系统,图4A所示的方法还可以应用于单个电子设备中。例如,该电子设备中安装有调用者、被调用者的第一部分,以及,被调用者的第二部分,并且该调用者和被调用者的第一部分集成为一个整体应用。此时,该电子设备既是主体设备,也是客体设备。图4A中涉及的由主体设备、客体设备各自执行的操作,均由该电子设备执行,并且,主体设备和客体设备之间的通信步骤可以省略。单个电子设备中如何执行访问控制方法,可参考图4A,这里不再详细描述。
在图4A所示的方法中,主体设备可以称为第一设备,客体设备可以称为第二设备。
另一方面,针对图2B中示出的被调用者以三方库的形式提供服务的场景,本申请实施例也提供了对应的访问控制方法。该方法应用于包含单个电子设备的单机系统中。该电子设备既为主体设备,又为客体设备。该电子设备安装有调用者和三方库,并且该调用者和三方库集成为一个整体应用。该电子设备也可以被称为第一设备。
其中:
调用者可参考前文。
三方库即为被调用者,用于提供各项功能,例如可以是lib库、SDK库或动态链接库(.so文件)等等。
集成了三方库的调用者,其调用者和三方库对外形成一个整体,对于用户来说并不区分或者并不感知该调用者实际包含两部分。
在该访问控制方法中,电子设备为调用者和三方库分别创建一个实例,并且为两个实例赋予相同的用户身份(UID)。之后,电子设备可以在该三方库对应的权限范围内运行为该三方库创建的实例。这里,电子设备为调用者创建的实例可以称为第一实例,为三方库创建的实例可以称为第二实例。
这样,调用者中的调用者和三方库共享同一个用户身份(UID),即电子设备仅运行了一个应用,无需额外消耗系统性能。在此基础上,通过创建不同的实例,电子设备可以明确地区分开调用者和三方库,并能保证三方库的实例在自身对应的权限范围内运行,实现三方库的权限最小化,避免后续调用者调用被调用者的过程中,该三方库窃取在其权限范围之外的数据等问题,避免三方库将电子设备中的数据泄漏给其他设备,保证该电子设备中的数据安全。
在一些实施例中,电子设备还可以为调用者的实例、三方库的实例分配不同的安全域身份,并且按照各自安全域身份对应的访问策略来运行调用者的实例、三方库的实例。访问策略定义了实例访问特定文件或目录,以及与其他实例之间通信时的规则及要求,这里不对其具体内容做限定。通过各自的访问策略,可以保证调用者的实例能够获取到的数据,和,三方库的实例能够获取到的数据的安全,不会出现泄露敏感资源的情况,可以保证电子设备中的数据安全。
电子设备中安装有三方库和调用者时,该访问控制方法的具体实现步骤,和图4A所示的方法类似,可参考相关描述,这里不再赘述。
参考图4B,图4B为实施本申请实施例提供的访问控制方法后,集成调用者和被调用者的第一部分的整体应用的运行模型。如图4B所示,电子设备可以为调用者、被调用者的第一部分/三方库分别创建一个实例,但共享同一个用户身份,还为两个实例分别分配一个安全域身份。这样可以避免调用者在调用被调用者的过程中,出现权限扩大化以及数据泄露问题。
参考图6A,图6A为本申请实施例提供的电子设备的硬件结构示意图。该电子设备可以为图1所示分布式系统10中的任意一个电子设备。该电子设备可以为图4A中的主体设备,也可以上述提及的单个电子设备。
电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-level cell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universalflash storage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备的表面,与显示屏194所处的位置不同。
在本申请实施例中,处理器110可用于为调用者和被调用者的第一部分分别创建一个实例,并且为两个实例赋予相同的用户身份(UID)。之后,该调用者的实例和被调用者的第一部分的实例,可以在电子设备的RAM中运行。
在一些实施例中,处理器110还可以为调用者的实例、被调用者的第一部分的实例分配不同的安全域身份,并且按照各自安全域身份对应的访问策略来运行调用者的实例、被调用者的第一部分的实例。
在本申请实施例中,处理器110可用于在电子设备运行集成了三方库的调用者时,为调用者和三方库分别创建一个实例,并且为两个实例赋予相同的用户身份(UID)。之后,该调用者的实例和三方库的实例,可以在电子设备的RAM中运行。
在一些实施例中,处理器110还可以为调用者的实例、三方库的实例分配不同的安全域身份,并且按照各自安全域身份对应的访问策略来运行调用者的实例、三方库的实例。
RAM作为处理器直接交换数据的内部存储器,可以随时读写且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
在一些实施例中,内部存储器121可用于存储该调用者的实例、三方库的实例或被调用者的第一部分的实例分别对应的权限。这样,可以使得电子设备在对应的权限范围内运行三方库的实例或被调用者的第一部分的实例。
在一些实施例中,内部存储器121还可以存储有各个安全域身份分别对应的访问策略,以使得电子设备根据各自安全域身份对应的访问策略来运行调用者的实例、三方库的实例或被调用者的第一部分的实例。
显示屏194用于显示本申请前文实施例提供的用户界面。
参考图6B,图6B为本申请实施例提供的电子设备的软件结构示意图。该电子设备可以为图4A中的主体设备,也可以上述提及的单个电子设备。
电子设备的软件系统均可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构等。示例性地,电子设备的软件系统包括但不限于
Figure BDA0003530600590000211
Figure BDA0003530600590000212
Linux或者其它操作系统。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图6B所示,应用程序包可以包括APP,例如相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。应用程序层还可包括功能组件,例如FA、PA等等。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图6B所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
参考图6C,图6C为本申请实施例提供的电子设备的软件结构示意图。该电子设备可以为图4A中的主体设备,也可以上述提及的单个电子设备。
如图6C所示,该电子设备可包括如下几个模块:应用信息管理模块、应用启动管理模块、实例管理模块、安全域管理模块、安全域策略管理模块、组管理模块、安全策略库、权限访问控制模块。
应用信息管理模块,用于管理电子设备所安装的各个APP、功能组件的信息。例如管理各个APP以及功能组件的名称等等。应用信息管理模块还用于将本机的APP、功能组件的信息同步到其他设备中,同时接收其他设备同步来的APP、功能组件的信息。
应用启动管理模块,用于管理各个APP、功能组件的启动工作。
实例管理模块,用于在调用者调用被调用者时,将为调用者和被调用者的第一部分分别创建一个实例,并且为两个实例赋予相同的用户身份(UID)。
该实例管理模块还用于在调用者调用三方库时,将为调用者和三方库分别创建一个实例,并且为两个实例赋予相同的用户身份(UID)。
实例管理模块还用于管理创建的各个实例的生命周期,例如启动、停止、销毁、重启等。
安全域管理模块,用于为各个实例分配安全上下文信息,以便内核创建相应内核安全域。具体的,该模块可以为调用者的实例、被调用者的第一部分的实例分配不同的安全域身份。该模块还可以为调用者的实例、三方库的实例分配不同的安全域身份。
安全域策略管理模块,用于提供各个安全域身份对应的安全策略,供内核层的安全域加载并使能。
安全策略库,用于存储各个安全域身份对应的安全策略,例如可包括允许FA的逻辑代码实例与该FA的UI实例通信,拒绝该FAP的逻辑代码实例与调用者的实例通信等等。
组管理模块,用于为被调用者的第一部分的实例或三方库的实例添加、修改、删除组信息。具体的,根据调用者所申请及授予被调用者的权限信息,在被调用者的第一部分的实例或三方库的实例时赋予相应组ID信息,并且在调用者的权限动态变更时,也同步更改该组ID信息。其中,该组ID标识的组内的成员具有访问该被调用者的第一部分的实例或三方库的实例的权限。
权限访问控制模块,用于根据调用者的实例、被调用者的第一部分的实例或三方库的实例各自的权限,控制其对设备资源的访问。具体的,该权限访问控制模块可以根据调用者授予被调用者的第一部分的实例或三方库的实例的权限信息,对其进行实例级的权限管控,仅允许被调用者的第一部分的实例或三方库的实例在对应的权限范围内运行。
图6C仅为示意性举例,本申请实施例提供的电子设备还可以包括更多或更少的模块,这里不做限制。
图6C中示出的电子设备的模块,可以位于图6B中电子设备的应用程序框架层、系统服务层、内核层等等,这里不做限制。
本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本发明技术方案的实施例而已,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (28)

1.一种访问控制方法,其特征在于,所述方法应用于第一设备,所述第一设备中安装有调用者,所述调用者为APP或功能组件,所述APP为实现多个功能的程序实体,所述功能组件为实现单一功能的程序实体;所述方法包括:
所述第一设备创建所述调用者的第一实例,并在第一权限范围内运行所述第一实例;
所述第一设备在运行所述第一实例的过程中,生成访问请求,所述访问请求用于所述调用者调用被调用者以访问第一资源,所述被调用者为所述APP或所述功能组件,所述被调用者被部署于所述第一设备和/或第二设备中,所述第一资源包括所述第一设备和/或所述第二设备中的资源;
所述第一设备创建所述被调用者的第二实例,并在第二权限范围内运行所述第二实例,以访问所述第一资源;所述第二实例和所述第一实例具有相同的用户身份UID,所述第二权限范围和所述第一权限范围不同。
2.根据权利要求1所述的方法,其特征在于,所述被调用者包含第一部分和第二部分,所述第一部分部署于所述第一设备中,所述第二部分部署于所述第二设备中;所述第一资源包括所述第一设备和所述第二设备中的资源;
所述第一设备访问所述第一资源之前,所述方法还包括:所述第一设备将所述访问请求发送给所述第二设备;
所述第一设备创建所述被调用者的第二实例,并在第二权限范围内运行所述第二实例,以访问所述第一资源,具体包括:
所述第一设备创建所述被调用者的所述第一部分的第二实例;
在所述第一设备在第二权限范围内运行所述第二实例的过程中,在所述第二设备运行第三实例的过程中,所述第一设备和所述第二设备通信,以访问所述第一资源;所述第三实例是所述第二设备响应于所述访问请求,创建的所述被调用者的所述第二部分的实例。
3.根据权利要求2所述的方法,其特征在于,在所述第一设备在第二权限范围内运行所述第二实例的过程中,在所述第二设备运行第三实例的过程中,所述第一设备和所述第二设备通信,以访问所述第一资源,具体包括:
所述第一设备在第二权限范围内运行所述第二实例,访问所述第一资源中的第二资源,得到第一访问结果,并将所述第一访问结果发送给所述第二设备,以使得所述第二设备运行第三实例,并根据所述第一访问结果访问所述第一资源中的第三资源。
4.根据权利要求3所述的方法,其特征在于,所述被调用者的第一部分用于实现业务逻辑,所述被调用者的第二部分用于提供UI;所述第一访问结果用于所述第二设备在运行所述第三实例时,显示第一用户界面。
5.根据权利要求2所述的方法,其特征在于,在所述第一设备在第二权限范围内运行所述第二实例的过程中,在所述第二设备运行第三实例的过程中,所述第一设备和所述第二设备通信,以访问所述第一资源,具体包括:
所述第一设备接收到第二访问结果,所述第二访问结果由所述第二设备响应于所述访问请求,运行第三实例并访问所述第一资源中的第三资源得到;
所述第一设备在第二权限范围内运行所述第二实例,并根据所述第二访问结果访问所述第一资源中的第二资源。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述第一设备将所述访问请求发送给所述第二设备之后,所述方法还包括:
所述第一设备将所述被调用者的第二部分发送给所述第二设备。
7.根据权利要求1所述的方法,其特征在于,所述被调用者为三方库,所述三方库部署于所述第一设备中,所述第一资源包括所述第一设备中的资源;
所述第一设备创建所述被调用者的第二实例,并在第二权限范围内运行所述第二实例,以访问所述第一资源,具体包括:
所述电子设备创建所述三方库的第二实例,并在第二权限范围内运行所述第二实例,以访问所述第一资源。
8.根据权利要求7所述的方法,其特征在于,所述三方库为软件开发包SDK库或动态链接库。
9.根据权利要求1-8任一项所述的方法,其特征在于,
所述第一设备创建所述调用者的第一实例之后,所述方法还包括:
所述第一设备为所述第一实例分配第一安全域身份,所述第一安全域身份对应的第一访问策略指示:不允许所述第一实例和所述第二实例通信,或者,不允许所述第一实例向所述第二实例发送数据,或者,不允许所述第一实例接收所述第二实例发送的数据;
所述第一设备在第一权限范围内运行所述第一实例,具体包括:所述第一设备在第一权限范围内,根据所述第一访问策略运行所述第一实例;
和/或,
所述第一设备创建所述被调用者的第二实例之后,所述方法还包括:
所述第一设备为所述第二实例分配第二安全域身份,所述第二安全域身份对应的第二访问策略指示:不允许所述第二实例和所述第一实例通信,或者,不允许所述第二实例向所述第一实例发送数据,或者,不允许所述第二实例接收所述第一实例发送的数据;
所述第一设备在第二权限范围内运行所述第二实例,具体包括:所述第一设备在第二权限范围内,根据所述第二访问策略运行所述第二实例。
10.根据权利要求1-9任一项所述的方法,其特征在于,
所述第一设备创建所述调用者的第一实例之后,所述方法还包括:所述第一设备为所述第一实例分配第一UID、第一进程标识PID;
所述第一设备创建所述被调用者的第二实例之后,所述方法还包括:所述第一设备为所述第二实例分配所述第一UID、第二PID。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述第一设备创建所述调用者的第一实例之前,所述方法还包括:
所述第一设备检测到用于启动所述调用者的第一操作。
12.根据权利要求1-11任一项所述的方法,其特征在于,所述第一设备在运行所述第一实例的过程中,生成访问请求之前,所述方法还包括:
所述第一设备显示第二用户界面;
所述第一设备在所述第二用户界面上接收到第二操作。
13.根据权利要求1-12任一项所述的方法,其特征在于,
所述第二权限范围为所述第一权限范围的部分;
或者,
所述第一设备在第二权限范围内运行所述第二实例之前,所述方法还包括:
所述第一设备显示第三用户界面;
所述第一设备在所述第三用户界面上接收到第三操作;
响应于所述第三操作,所述第一设备确定所述第二权限范围。
14.一种电子设备,其特征在于,包括:存储器、一个或多个处理器;所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
创建调用者的第一实例,并在第一权限范围内运行所述第一实例;所述调用者为APP或功能组件,所述APP为实现多个功能的程序实体,所述功能组件为实现单一功能的程序实体;
在运行所述第一实例的过程中,生成访问请求,所述访问请求用于所述调用者调用被调用者以访问第一资源,所述被调用者为所述APP或所述功能组件,所述被调用者被部署于所述电子设备和/或第二设备中,所述第一资源包括所述电子设备和/或所述第二设备中的资源;
创建所述被调用者的第二实例,并在第二权限范围内运行所述第二实例,以访问所述第一资源;所述第二实例和所述第一实例具有相同的用户身份UID,所述第二权限范围和所述第一权限范围不同。
15.根据权利要求14所述的电子设备,其特征在于,所述被调用者包含第一部分和第二部分,所述第一部分部署于所述电子设备中,所述第二部分部署于所述第二设备中;所述第一资源包括所述电子设备和所述第二设备中的资源;
所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:在访问所述第一资源之前,将所述访问请求发送给所述第二设备;
所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
创建所述被调用者的所述第一部分的第二实例;
在第二权限范围内运行所述第二实例的过程中,在所述第二设备运行第三实例的过程中,和所述第二设备通信,以访问所述第一资源;所述第三实例是所述第二设备响应于所述访问请求,创建的所述被调用者的所述第二部分的实例。
16.根据权利要求15所述的电子设备,其特征在于,所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
在第二权限范围内运行所述第二实例,访问所述第一资源中的第二资源,得到第一访问结果,并将所述第一访问结果发送给所述第二设备,以使得所述第二设备运行第三实例,并根据所述第一访问结果访问所述第一资源中的第三资源。
17.根据权利要求16所述的电子设备,其特征在于,所述被调用者的第一部分用于实现业务逻辑,所述被调用者的第二部分用于提供UI;所述第一访问结果用于所述第二设备在运行所述第三实例时,显示第一用户界面。
18.根据权利要求15所述的电子设备,其特征在于,所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
接收到第二访问结果,所述第二访问结果由所述第二设备响应于所述访问请求,运行第三实例并访问所述第一资源中的第三资源得到;
在第二权限范围内运行所述第二实例,并根据所述第二访问结果访问所述第一资源中的第二资源。
19.根据权利要求15-18任一项所述的电子设备,其特征在于,所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
将所述访问请求发送给所述第二设备之后,将所述被调用者的第二部分发送给所述第二设备。
20.根据权利要求14所述的电子设备,其特征在于,所述被调用者为三方库,所述三方库部署于所述电子设备中,所述第一资源包括所述电子设备中的资源;
所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
创建所述三方库的第二实例,并在第二权限范围内运行所述第二实例,以访问所述第一资源。
21.根据权利要求20所述的电子设备,其特征在于,所述三方库为软件开发包SDK库或动态链接库。
22.根据权利要求14-21任一项所述的电子设备,其特征在于,
所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
创建所述调用者的第一实例之后,为所述第一实例分配第一安全域身份,所述第一安全域身份对应的第一访问策略指示:不允许所述第一实例和所述第二实例通信,或者,不允许所述第一实例向所述第二实例发送数据,或者,不允许所述第一实例接收所述第二实例发送的数据;
所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:在第一权限范围内,根据所述第一访问策略运行所述第一实例;
和/或,
所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
创建所述被调用者的第二实例之后,为所述第二实例分配第二安全域身份,所述第二安全域身份对应的第二访问策略指示:不允许所述第二实例和所述第一实例通信,或者,不允许所述第二实例向所述第一实例发送数据,或者,不允许所述第二实例接收所述第一实例发送的数据;
所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:在第二权限范围内,根据所述第二访问策略运行所述第二实例。
23.根据权利要求14-22任一项所述的电子设备,其特征在于,所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
创建所述调用者的第一实例之后,为所述第一实例分配第一UID、第一进程标识PID;
创建所述被调用者的第二实例之后,为所述第二实例分配所述第一UID、第二PID。
24.根据权利要求14-23任一项所述的电子设备,其特征在于,所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
创建所述调用者的第一实例之前,检测到用于启动所述调用者的第一操作。
25.根据权利要求14-24任一项所述的电子设备,其特征在于,所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
在运行所述第一实例的过程中,生成访问请求之前,显示第二用户界面;
在所述第二用户界面上接收到第二操作。
26.根据权利要求14-25任一项所述的电子设备,其特征在于,
所述第二权限范围为所述第一权限范围的部分;
或者,
所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:
在第二权限范围内运行所述第二实例之前,显示第三用户界面;
在所述第三用户界面上接收到第三操作;
响应于所述第三操作,确定所述第二权限范围。
27.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-13中任一项所述的方法。
28.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求1-13中任一项所述的方法。
CN202210209990.4A 2021-03-09 2022-03-03 访问控制方法、相关装置及系统 Pending CN115114636A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021102573258 2021-03-09
CN202110257325 2021-03-09

Publications (1)

Publication Number Publication Date
CN115114636A true CN115114636A (zh) 2022-09-27

Family

ID=83324686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210209990.4A Pending CN115114636A (zh) 2021-03-09 2022-03-03 访问控制方法、相关装置及系统

Country Status (1)

Country Link
CN (1) CN115114636A (zh)

Similar Documents

Publication Publication Date Title
EP4002108B1 (en) Application start method and electronic device
US11853820B2 (en) Cross-process communication method, apparatus, and device
CN113553130B (zh) 应用执行绘制操作的方法及电子设备
EP4270230A1 (en) Access control method, electronic device and system
WO2022253158A1 (zh) 一种用户隐私保护方法及装置
WO2021169379A1 (zh) 权限复用方法、基于权限复用的资源访问方法及相关设备
WO2022199672A1 (zh) 精准撤销权限的访问控制方法、相关装置及系统
EP4280090A1 (en) Access control method, electronic device, and system
EP4177777A1 (en) Flexibly authorized access control method, and related apparatus and system
CN115238299A (zh) 基于安全等级的访问控制方法、相关装置及系统
CN115203716A (zh) 权限同步方法、相关装置及系统
WO2020062192A1 (zh) 一种操作控制方法及电子设备
CN115114637A (zh) 基于权限传递的访问控制方法、相关装置及系统
CN115203731A (zh) 基于安全敏感度的访问控制方法、相关装置及系统
CN115114636A (zh) 访问控制方法、相关装置及系统
CN115278642A (zh) 获取sim卡的信息的方法、电子设备及终端设备
WO2022247626A1 (zh) 基于应用身份的访问控制方法、相关装置及系统
US20240176872A1 (en) Access Control Method, Electronic Device, and System
CN115017536A (zh) 访问控制方法、相关装置及系统
US20240135033A1 (en) Access control method, electronic device, and system
US20240154966A1 (en) Distributed access control method and related apparatus and system
CN115146305A (zh) 基于访问策略的访问控制方法、相关装置及系统
CN114996667A (zh) 跨设备的访问控制方法、相关装置及系统
CN115426122A (zh) 基于权限适配的访问控制方法、相关装置及系统
CN116662270B (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