WO2017118330A1 - 一种应用程序数据访问隔离方法及装置 - Google Patents

一种应用程序数据访问隔离方法及装置 Download PDF

Info

Publication number
WO2017118330A1
WO2017118330A1 PCT/CN2016/112555 CN2016112555W WO2017118330A1 WO 2017118330 A1 WO2017118330 A1 WO 2017118330A1 CN 2016112555 W CN2016112555 W CN 2016112555W WO 2017118330 A1 WO2017118330 A1 WO 2017118330A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
domain
data
access
identifier
Prior art date
Application number
PCT/CN2016/112555
Other languages
English (en)
French (fr)
Inventor
裘绍翔
Original Assignee
阿里巴巴集团控股有限公司
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 阿里巴巴集团控股有限公司 filed Critical 阿里巴巴集团控股有限公司
Publication of WO2017118330A1 publication Critical patent/WO2017118330A1/zh
Priority to US16/028,107 priority Critical patent/US10831915B2/en

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/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
    • 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/2105Dual mode as a secondary aspect
    • 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

Definitions

  • the present application relates to data access technologies, and in particular, to an application data access isolation method.
  • the application also relates to an application data access isolation device.
  • Terminal devices such as personal computers and smart phones have become an indispensable part of people's lives. These terminal devices usually have multiple applications installed to provide people with weather consultation, shopping, chatting, video recording, email sending, etc. Service function. Each application typically stores data related to the running of the program in a directory of the file system, and the application accesses the data according to the needs of the operation. In order to ensure the stability and security of the entire system operation, it is usually necessary to provide a data access isolation mechanism between different applications.
  • the relatively simple isolation mechanism is that the applications are completely isolated from each other, that is, each application can only access its own data, but not other applications.
  • This strict isolation scheme can avoid some applications from maliciously accessing other application data, but in practical applications, some applications (such as some mutual trust applications from the same manufacturer) need to share data. And strict isolation mechanism, resulting in data sharing difficulties between mutual trust applications.
  • some systems allow data to be accessed between some applications, such as an Android system, which allows APPs with the same signature (applications installed on the phone) to access each other's data, for example: using the same The private key signs the APP that needs the data sharing function, and then uses the Manifest file to assign the same user ID to the APPs, that is, uid.
  • Android's isolation mechanism is actually based on uid isolation, the essence of which is that APPs of the same author can access each other's data.
  • the embodiment of the present application provides an application data isolation method to solve the problem that the existing isolation scheme is too simple to meet the complex application data isolation requirement.
  • the embodiment of the present application further provides an application data access isolation device.
  • the application provides an application data access isolation method, including:
  • Each application belongs to a domain and has a domain attribute that identifies the domain to which it belongs.
  • Applications belonging to the same domain can access data to each other; pre-defined hierarchical relationships between different domains, and applications based on hierarchical relationships. Program data access rules.
  • the application's domain properties are pre-set as follows:
  • the domain attribute of the application is preset according to a preset rule.
  • the preset hierarchical relationship includes: a parent-child domain relationship directly or indirectly included;
  • the application data access rule based on the hierarchical relationship includes: an application in a subdomain can access data of an application in a parent domain, and other applications belonging to different domains cannot access data to each other.
  • the determining, in the domain that the first application is in the access to the second application data includes:
  • the first application meets any one of the following data access conditions: belonging to the same domain as the second application, or the domain to which the first application belongs is a subdomain of the domain to which the second application belongs;
  • Each application is assigned a unique application identifier, and each domain is assigned a unique group, and each group has a unique group identifier;
  • the determining whether the first application meets any one of the data access conditions includes:
  • the method is run in a Linux-based software system, the application identifier is uid, and the group identifier is gid;
  • the determining whether the identifier of the first application is in the group corresponding to the group identifier of the accessed data is implemented by using a permission control mechanism of Linux.
  • the application data includes: data in a preset directory corresponding to the application.
  • the method before the receiving the first application to access the second application data, the method includes:
  • the dynamically adjusting domain attributes of the first application and/or the second application including:
  • the application further provides an application data access isolation device, including:
  • An access request receiving unit configured to receive an access request of the first application to the second application data
  • a permission judging unit configured to determine whether the first application is in a domain having access rights to the second application data
  • the access unit is configured to allow the first application to perform an access operation when the output of the authority determining unit is YES;
  • the access unit is rejected for rejecting the first application to perform an access operation when the output of the authority determining unit is negative.
  • the device includes:
  • the first domain attribute setting unit is configured to set the domain attribute of the application according to the configuration information carried in the installation package when the application is installed.
  • the device includes:
  • the second domain attribute setting unit is configured to preset a domain attribute of the application according to a preset rule.
  • the permission determining unit is specifically configured to determine whether the first application meets any one of the following data access conditions: belonging to the same domain as the second application, or the domain to which the first application belongs is the second application a subdomain of the domain to which the program belongs; if yes, determining that the first application has access to the second application data In the domain, otherwise the decision is not in the domain.
  • the device further includes the following units that are triggered before the access request receiving unit:
  • the application and group identifier allocation unit is configured to respectively assign a unique application identifier to each application, and assign a unique group to each of the preset domains, and each group has a unique group identifier;
  • a data identifier specifying unit configured to specify, for data of each application, a group identifier corresponding to a domain to which the corresponding application belongs;
  • An application identifier adding unit configured to add each application identifier to a group corresponding to the domain to which the application belongs and a group corresponding to the parent domain of the domain to which the application belongs;
  • the authority determining unit is specifically configured to determine whether the identifier of the first application is in a group corresponding to the group identifier of the accessed data; if yes, determining that the first application has access to the second application data The domain of the permission, otherwise the decision is not in the domain.
  • the authority determining unit is specifically configured to determine whether the identifier of the first application is in a group corresponding to the group identifier of the accessed data by using a permission control mechanism of the Linux.
  • the device includes:
  • the domain attribute dynamic adjustment unit is configured to dynamically adjust domain attributes of the first application and/or the second application before the access request receiving unit works.
  • the domain attribute dynamic adjustment unit is specifically configured to adjust a domain attribute of the corresponding application according to the received domain attribute adjustment instruction; or adjust a domain attribute of the corresponding application according to a preset timing authorization scheme. .
  • the application data access isolation method provided by the present application, after receiving the access request of the first application to the second application data, determining whether the first application is in a domain having access rights to the second application data, if Allowing the first application to perform an access operation, otherwise rejecting the access operation; wherein each application belongs to a domain and has a domain attribute that identifies the domain, and applications belonging to the same domain can access data from each other, different There are pre-defined hierarchical relationships between domains, as well as application data access rules based on hierarchical relationships.
  • the above method provided by the present application adopts a domain-based data isolation scheme with a hierarchical relationship, and by setting a hierarchical data access rule between different domains, it is equivalent to implementing a data isolation mechanism from multiple dimensions, which can
  • the application provides reasonable data access and flexible data sharing between applications.
  • Special The parent-child domain relationship based on direct or indirect inclusion is introduced between different domains, and the tree-shaped sharing relationship can be clearly constructed to meet the asymmetric data access requirements of the application.
  • FIG. 1 is a flow chart of an embodiment of an application data access isolation method of the present application
  • FIG. 2 is a schematic diagram of an embodiment of an application data access isolation device of the present application.
  • an application data isolation method and an application data access isolation device are respectively provided, which are described in detail in the following embodiments.
  • the core of the application data access isolation method provided by the present application is that a domain attribute identifying the domain to which it belongs and a data access rule based on the hierarchical relationship between different domains are set in advance for each application, and the first application pair is received.
  • the second application data is requested to access, if the first application is in a domain having access rights to the second application data, the first application is allowed to perform an access operation, otherwise it is not allowed.
  • the technical solution of the present application adopts a domain-based data isolation scheme with hierarchical relationship, which is equivalent to implementing a data isolation mechanism from multiple dimensions, and can provide an application for the application.
  • Reasonable data access rights flexible implementation of data sharing between applications.
  • the application data access isolation method provided by the present application may be implemented by an independent service provider during specific implementation, and a data access request between applications is submitted to the service provider, and the service provider determines whether access is permitted;
  • the method may also be implemented by the accessed application, that is, the data provider, after receiving the data access request, and the corresponding processing is performed according to the judgment result of the method.
  • FIG. 1 is a flowchart of an embodiment of an application data access isolation method of the present application.
  • the domain division may be performed first, and the hierarchical relationship and application between different domains may be set. Program data access rules and set the domain properties of the application.
  • the domain described in this embodiment refers to a logical application set.
  • the domain may be divided according to a preset rule.
  • the domain may be divided according to the company to which the application belongs, that is, : The application from the same company is composed of a domain; the domain can be divided according to the author of the application, that is, the application from the same author is composed into a domain; or the domain can be divided according to the function of the application, for example, Make a payment-related application into a domain.
  • the division of the domain may be performed in advance by using other methods than the foregoing manner. This embodiment does not limit the specific division manner.
  • Each application belongs to a domain, and applications belonging to the same domain can access data to each other, with pre-defined hierarchical relationships between different domains, and application data access rules based on hierarchical relationships.
  • a hierarchical attribute may be set for a domain according to specific requirements, and data access relationships between domains at different levels and the same level may be preset, for example, applications in different levels of domains cannot access each other.
  • the data while applications in the same level of the sibling domain can access each other's data and so on.
  • Setting data access rules in this way is equivalent to adding a hierarchical relationship dimension based on the domain partitioning dimension, thereby enabling data isolation mechanisms from multiple dimensions, providing reasonable data access permissions for applications, and flexibility. Realize data sharing between applications.
  • the embodiment provides a preferred embodiment based on the parent sub-domain, that is, the hierarchical relationship between the different domains includes: a parent-child domain relationship directly or indirectly included, and correspondingly, the hierarchical data-based application data access rule includes : Applications in the child domain can access the data of the application in the parent domain. Other applications belonging to different domains cannot access each other's data, including applications in the parent domain and applications in the child domain. Program data.
  • parent-child domain-based data access rule since an application in a child domain having the same parent domain can share data through the parent domain, the tree-shaped sharing relationship can be clearly constructed, and the application in the parent domain cannot be accessed. Application data in the subdomain, thus meeting asymmetric application data access requirements.
  • parent-child domain relationship may be directly included or indirectly included.
  • a domain that directly includes or indirectly includes a subdomain is referred to as a parent domain of the subdomain, and the same reason is to directly or indirectly include a domain of a parent domain, which is called The subdomain of the parent domain.
  • domain B is a subdomain of domain A
  • domain C is a subdomain of domain B
  • domain A directly contains domain B and indirectly contains domain C.
  • domain B and domain C are both subdomains.
  • domain A and domain B are their parent domains.
  • each application belongs to and belongs to only one domain, and the domain attribute is used to identify the domain to which it belongs.
  • the domain attribute of each application is usually preset. For example, you can set the application's domain attribute according to the configuration information carried in the installation package when installing the application, or you can set it with preset rules, or combine the above two types of information. Set the domain properties for the application.
  • each application has unique package information, which can be obtained from the configuration information carried in the installation package.
  • the preset rule for setting the application domain attribute is: firstly, according to the rule table, the domain to which the application belongs is initially determined, and the application that is not explicitly specified in the rule table and the application that is initially judged may be unique according to the application.
  • the Domain information contained in the package information further determines the domain to which it belongs.
  • a system is pre-divided into the following domains: Trust, pay, dom, sub, Cc, g1, and g2, where Trust and Cc are domains at the same level, and Trust domain is the parent domain of the dom domain, sub domain, and pay domain.
  • the domain is the parent domain of the sub domain
  • the Cc domain is the parent domain of the g1 domain and the g2 domain.
  • a series of applications with the package information as shown below are installed in the system: A0.sub.dom, A1. Sub.dom, A2.Dom, B0, B1, F1.g1.cc, F2.g1.cc, F3.g2.cc, F4.cc.
  • each application is assigned its own domain, and the affiliation as shown below is obtained, where the colon is followed by the name of the application directly included in the domain.
  • the domain attribute of the application is the sub domain.
  • the above provides an example of setting an application domain attribute based on a preset rule.
  • the domain attribute of the application may be set in another manner different from the above manner.
  • step 101 to step 103 of the embodiment may be performed to implement data access isolation between the applications.
  • Each step will be described one by one below.
  • Step 101 Receive an access request of the first application to the second application data.
  • an application In order to implement its functions, an application usually maintains application data related to the running of the application, accesses the data when needed, performs read and write operations, and the like.
  • the correspondence between the application and its data is usually maintained by the system hosting the application.
  • the application data includes: data in a preset directory corresponding to the application, and for the Android system as an example, each application running in the system has a preset and corresponding
  • the application directory (the directory name is usually the name of the package defined by the application in the AndroidManifest.xml file), and the data stored in the directory as a data file is usually referred to as the data of the application.
  • Step 102 Determine whether the first application is in a domain having access rights to the second application data, and if yes, execute step 103; otherwise, execute step 104.
  • This step may determine, according to the domain attributes of the first application and the second application, and the preset intra-domain and inter-domain data access rules, whether the first application is in a domain having access rights to the second application data.
  • the step may determine whether the first application meets any one of the following data access conditions: belonging to the same domain as the second application, or the domain to which the first application belongs is The subdomain of the domain to which the application belongs. As long as any item is satisfied, the first application is in a domain that has access to the second application.
  • each application is assigned a unique application identifier (id), which is preset.
  • Each domain is assigned a unique group, each group has a unique group identifier (groupid), which specifies the group identifier corresponding to the domain to which the corresponding application belongs for each application data, and adds each application identifier to the application.
  • groupid unique group identifier
  • the identifier of the first application is in the group corresponding to the group identifier of the accessed data, and if yes, the first application is specified.
  • the program is in a domain that has access to the second application, otherwise, the first application is not in the domain.
  • Groupid 1000 contains application IDs: 101, 102, 103, 104, 105
  • the identifier 101 of the first application A2 is not accessed.
  • the judgment process of this step is also similar, and will not be described here.
  • the data access isolation scheme based on the parent and child domains not only implements the data isolation mechanism from multiple dimensions, but also can be applied.
  • the program provides reasonable access to data, flexible data sharing between applications, and can meet asymmetric data access requirements of applications.
  • the above judgment process can be implemented by using the Linux permission control mechanism, thereby simplifying the implementation process: the application identifier assigned to each application is the only uid in the system.
  • the group identifier assigned to each domain is the only gid in the system.
  • the Linux system automatically checks whether the uid is in the group corresponding to the gid, and returns the corresponding check result. Thereby completing the judgment of this step.
  • Step 103 Allow the first application to perform an access operation.
  • the first application is in a domain having access rights to the second application data, thus allowing the first application to perform an access operation, for example, the first application can read corresponding to the second application.
  • the data file under the directory is a domain having access rights to the second application data, thus allowing the first application to perform an access operation, for example, the first application can read corresponding to the second application.
  • Step 104 Reject the first application to perform an access operation.
  • Executing this step indicating that the first application is not in the domain having access to the second application, and therefore rejecting the first application to perform an access operation, for example, not allowing the first application to read corresponding to the second application.
  • the data file under the directory indicating that the first application is not in the domain having access to the second application, and therefore rejecting the first application to perform an access operation, for example, not allowing the first application to read corresponding to the second application.
  • the domain attribute of the application is usually preset, but there may also be a situation in which the domain to which the application belongs needs to be adjusted. Therefore, the domain attribute of the application described in this embodiment is dynamically adjustable, thereby The ability to change the domain properties of the application while it is running, allowing the same application to have different data access capabilities in different systems to meet the security requirements of the actual application.
  • the specific implementation may be: dynamically adjusting the domain attributes of the first application and/or the second application before receiving the access request of the first application to the second application data, which is further described in two cases.
  • the domain attribute of the corresponding application can be adjusted according to the received domain attribute adjustment instruction.
  • the first application in this embodiment is considered to belong to the security realm at the initial stage, so it sets the domain attribute corresponding to the security realm, but the nature of the first application after some special events occur. It is re-determined, so it is necessary to adjust the domain to which the first application belongs, and modify the domain attribute of the first application accordingly to prevent its harm. In the specific implementation, it can be sent according to the server responsible for monitoring the security of the application.
  • the domain attribute adjustment instruction adjusts the domain attribute of the first application.
  • the domain attribute of the corresponding application can be adjusted according to a preset timing authorization scheme.
  • the first application in this embodiment may have special rights to access certain application data within a certain authorization time range. However, in the non-authorized time range, there is no access capability, which is equivalent to the recovery of its special rights.
  • the domain attribute of the first application can be dynamically adjusted according to a preset timing authorization scheme.
  • the application data access isolation method provided by this embodiment adopts a domain-based data isolation scheme with hierarchical relationship, and sets a hierarchical data access rule between different domains, which is equivalent to Multiple dimensions implement data isolation mechanism, which can provide reasonable data access rights for applications and flexibly realize data sharing between applications.
  • the introduction of parent-child domain relationships based on direct or indirect inclusion can clearly establish tree-sharing relationships to meet asymmetric application data access requirements.
  • an application data access isolation method is provided.
  • the application further provides an application data access isolation device.
  • FIG. 2 is a schematic diagram of an embodiment of an application data access isolation device of the present application. Since the device embodiment is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the description of the method embodiment. The device embodiments described below are merely illustrative.
  • An application data access isolation device of the embodiment includes: an access request receiving unit 201, configured to receive an access request of the first application for the second application data; and a permission determining unit 202, configured to determine the first application Whether in the domain having access rights to the second application data; allowing the access unit 203 to allow the first application to perform an access operation when the output of the authority determining unit is YES; rejecting the access unit 204 for When the output of the authority judging unit is no, the first application is denied to perform an access operation.
  • the device includes:
  • the first domain attribute setting unit is configured to set the domain attribute of the application according to the configuration information carried in the installation package when the application is installed.
  • the device includes:
  • the second domain attribute setting unit is configured to preset a domain attribute of the application according to a preset rule.
  • the permission determining unit is specifically configured to determine whether the first application meets any one of the following data access conditions: belonging to the same domain as the second application, or the domain to which the first application belongs is the second application a subdomain of the domain to which the program belongs; if so, determining that the first application is in a domain having access to the second application data, otherwise determining that the domain is not in the domain.
  • the device further includes the following units that are triggered before the access request receiving unit:
  • the application and group identifier allocation unit is configured to respectively assign a unique application identifier to each application, and assign a unique group to each of the preset domains, and each group has a unique group identifier;
  • a data identifier specifying unit configured to specify, for data of each application, a group identifier corresponding to a domain to which the corresponding application belongs;
  • An application identifier adding unit configured to add each application identifier to a group corresponding to the domain to which the application belongs and a group corresponding to the parent domain of the domain to which the application belongs;
  • the authority determining unit is specifically configured to determine whether the identifier of the first application is in a group corresponding to the group identifier of the accessed data; if yes, determining that the first application has access to the second application data The domain of the permission, otherwise the decision is not in the domain.
  • the authority determining unit is specifically configured to determine whether the identifier of the first application is in a group corresponding to the group identifier of the accessed data by using a permission control mechanism of the Linux.
  • the device includes:
  • the domain attribute dynamic adjustment unit is configured to dynamically adjust domain attributes of the first application and/or the second application before the access request receiving unit works.
  • the domain attribute dynamic adjustment unit is specifically configured to adjust a domain attribute of the corresponding application according to the received domain attribute adjustment instruction; or adjust a domain attribute of the corresponding application according to a preset timing authorization scheme. .
  • a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • processors CPUs
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • the memory may include non-persistent memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium, such as read only memory (ROM) or flash memory.
  • RAM random access memory
  • ROM read only memory
  • Memory is an example of a computer readable medium.
  • Computer readable media including both permanent and non-persistent, removable and non-removable media may be implemented by any method or technology.
  • the information can be computer readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory, or other Memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, magnetic cassette, magnetic tape storage or other magnetic storage device or any other non-transportable medium, available for Stores information that can be accessed by the computing device.
  • computer readable media does not include non-transitory computer readable media, such as modulated data signals and carrier waves.
  • embodiments of the present application can be provided as a method, system, or computer program product.
  • the present application can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment in combination of software and hardware.
  • the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

一种应用程序数据访问隔离方法及装置,该方法包括:接收第一应用程序对第二应用程序数据的访问请求(101);判断第一应用程序是否在对第二应用程序数据具有访问权限的域中(102);若是,允许第一应用程序执行访问操作(103),否则拒绝执行访问操作(104);其中,每个应用程序属于一个域、并且具有标识其所属域的域属性,属于同一个域的应用程序可以互相访问数据;不同域之间具有预先设定的层级关系、以及基于层级关系的应用程序数据访问规则。上述方法从多个维度实现了数据隔离机制,能够为应用程序提供合理的数据访问权限,灵活地实现应用程序之间的数据共享。

Description

一种应用程序数据访问隔离方法及装置
本申请要求2016年01月07日递交的申请号为201610009961.8、发明名称为“一种应用程序数据访问隔离方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据访问技术,具体涉及一种应用程序数据访问隔离方法。本申请同时涉及一种应用程序数据访问隔离装置。
背景技术
个人电脑、智能手机等终端设备已经成为了人们生活中不可或缺的组成部分,这些终端设备上通常安装有多个应用程序,为人们提供天气咨询、购物、聊天、摄像、发送电子邮件等多种服务功能。各应用程序通常会在文件系统的目录中存储与本程序运行相关的数据,应用程序根据运行的需求对所述数据进行访问。为了保证整个系统运行的稳定性及安全性,通常需要在不同的应用程序之间提供数据访问隔离机制。
其中,比较简单易行的隔离机制是:应用程序之间处于完全互相隔离的状态,即,每个应用程序都只能访问自己的数据,而不能访问其他应用程序的数据。采用这种严格的隔离方案可以避免出现某些应用程序恶意访问其他应用程序数据的情况,但在实际应用中,部分应用程序(例如相同厂家出品的某些互信应用程序)之间又需要共享数据,而严格的隔离机制,造成互信应用程序之间的数据共享困难。
针对上述问题,某些系统允许部分应用程序之间可以互访数据,例如安卓(Android)系统,其允许具有相同签名的APP(安装在手机上的应用程序)互相访问数据,例如:使用相同的私钥签署需要数据共享功能的APP,然后使用Manifest文件给这些APP分配相同的用户ID,即uid,这些具有相同uid的APP即可互相访问数据、实现彼此之间的数据共享。Android的隔离机制实际上是基于uid的隔离,其本质是:相同作者的APP可以互相访问数据。
上述基于uid的隔离方案虽然在数据隔离的基础上实现了部分APP的数据共享,但是由于具有相同签名这一强制性要求,维度单一,不够灵活,限制了应用程序数据访问隔离的自由度,无法满足实际应用中相对复杂的应用程序数据隔离需求。
发明内容
本申请实施例提供一种应用程序数据隔离方法,以解决现有的隔离方案过于简单、无法满足复杂的应用程序数据隔离需求的问题。本申请实施例还提供一种应用程序数据访问隔离装置。
本申请提供一种应用程序数据访问隔离方法,包括:
接收第一应用程序对第二应用程序数据的访问请求;
判断第一应用程序是否在对第二应用程序数据具有访问权限的域中;
若是,允许第一应用程序执行访问操作,否则拒绝执行访问操作;
其中,每个应用程序属于一个域、并且具有标识其所属域的域属性,属于同一个域的应用程序可以互相访问数据;不同域之间具有预先设定的层级关系、以及基于层级关系的应用程序数据访问规则。
可选的,应用程序的域属性是采用如下方式预先设置的:
在安装应用程序时,根据安装包携带的配置信息设置应用程序的域属性。
可选的,应用程序的域属性是根据预设规则预先设置的。
可选的,所述预先设定的层级关系包括:直接或者间接包含的父子域关系;
所述基于层级关系的应用程序数据访问规则包括:子域中的应用程序可以访问父域中的应用程序的数据,其他属于不同域的应用程序不可以互相访问数据。
可选的,所述判断第一应用程序是否在对第二应用程序数据具有访问权限的域中,包括:
判断第一应用程序是否满足以下数据访问条件中的任意一项:与第二应用程序属于同一域,或者第一应用程序所属域是第二应用程序所属域的子域;
若是,则判定所述第一应用程序在对第二应用程序数据具有访问权限的域中,否则判定不在所述域中。
可选的,在所述接收第一应用程序对第二应用程序数据的访问请求之前,执行下述操作:
为各应用程序分别分配唯一的应用程序标识,为预先设定的各域分别分配唯一的组,每个组具有唯一的组标识;
为各应用程序的数据指定相应应用程序所属域对应的组标识;
将各应用程序标识添加到应用程序所属域对应的组内、以及所属域的父域对应的组 内;
所述判断第一应用程序是否满足数据访问条件中的任意一项,包括:
判断第一应用程序的标识是否在被访问数据的组标识所对应的组内;若在,则判定第一应用程序满足所述数据访问条件中的任意一项,否则判定不满足。
可选的,所述方法在基于Linux的软件系统中运行,所述应用程序标识为uid,所述组标识为gid;
所述判断第一应用程序的标识是否在被访问数据的组标识所对应的组内,是利用Linux的权限控制机制实现的。
可选的,所述应用程序数据包括:在预先设定的、对应于应用程序的目录中的数据。
可选的,在所述接收第一应用程序对第二应用程序数据的访问请求之前,包括:
动态调整第一应用程序和/或第二应用程序的域属性。
可选的,所述动态调整第一应用程序和/或第二应用程序的域属性,包括:
根据接收到的域属性调整指令,调整相应应用程序的域属性;或者,
根据预先设定的定时授权方案,调整相应应用程序的域属性。
相应的,本申请还提供一种应用程序数据访问隔离装置,包括:
访问请求接收单元,用于接收第一应用程序对第二应用程序数据的访问请求;
权限判断单元,用于判断第一应用程序是否在对第二应用程序数据具有访问权限的域中;
允许访问单元,用于当所述权限判断单元的输出为是时,允许第一应用程序执行访问操作;
拒绝访问单元,用于当所述权限判断单元的输出为否时,拒绝第一应用程序执行访问操作。
可选的,所述装置包括:
第一域属性设置单元,用于在安装应用程序时,根据安装包携带的配置信息设置应用程序的域属性。
可选的,所述装置包括:
第二域属性设置单元,用于根据预设规则预先设置应用程序的域属性。
可选的,所述权限判断单元,具体用于判断第一应用程序是否满足以下数据访问条件中的任意一项:与第二应用程序属于同一域,或者第一应用程序所属域是第二应用程序所属域的子域;若是,则判定所述第一应用程序在对第二应用程序数据具有访问权限 的域中,否则判定不在所述域中。
可选的,所述装置还包括在所述访问请求接收单元之前触发的下列单元:
应用及组标识分配单元,用于为各应用程序分别分配唯一的应用程序标识,为预先设定的各域分别分配唯一的组,每个组具有唯一的组标识;
数据标识指定单元,用于为各应用程序的数据指定相应应用程序所属域对应的组标识;
应用标识添加单元,用于将各应用程序标识添加到应用程序所属域对应的组内、以及所属域的父域对应的组内;
所述权限判断单元,具体用于判断第一应用程序的标识是否在被访问数据的组标识所对应的组内;若在,则判定所述第一应用程序在对第二应用程序数据具有访问权限的域中,否则判定不在所述域中。
可选的,所述权限判断单元,具体用于利用Linux的权限控制机制,判断第一应用程序的标识是否在被访问数据的组标识所对应的组内。
可选的,所述装置包括:
域属性动态调整单元,用于在所述访问请求接收单元工作之前,动态调整第一应用程序和/或第二应用程序的域属性。
可选的,所述域属性动态调整单元,具体用于根据接收到的域属性调整指令,调整相应应用程序的域属性;或者,根据预先设定的定时授权方案,调整相应应用程序的域属性。
与现有技术相比,本申请具有以下优点:
本申请提供的应用程序数据访问隔离方法,在接收到第一应用程序对第二应用程序数据的访问请求后,判断第一应用程序是否在对第二应用程序数据具有访问权限的域中,若是,允许第一应用程序执行访问操作,否则拒绝执行访问操作;其中,每个应用程序属于一个域、并且具有标识其所述域的域属性,属于同一个域的应用程序可以互相访问数据,不同域之间具有预先设定的层级关系、以及基于层级关系的应用程序数据访问规则。
本申请提供的上述方法,由于采用了基于域的、且具有层级关系的数据隔离方案,通过在不同域间设定基于层级的数据访问规则,相当于从多个维度实现数据隔离机制,能够为应用程序提供合理的数据访问权限,灵活地实现应用程序之间的数据共享。特别 是在不同域之间引入基于直接或者间接包含的父子域关系,能够清晰的构建树形共享关系,满足非对称的应用程序数据访问需求。
此外,如果需要改变应用程序之间的数据访问关系,只需要动态调整应用程序的域属性即可,简便易行,从而允许相同应用程序在不同的系统中具有不同的数据访问能力,以满足实际应用中的安全性需求。
附图说明
图1是本申请的一种应用程序数据访问隔离方法的实施例的流程图;
图2是本申请的一种应用程序数据访问隔离装置的实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
在本申请中,分别提供了一种应用程序数据隔离方法,以及一种应用程序数据访问隔离装置,在下面的实施例中逐一进行详细说明。
本申请提供的应用程序数据访问隔离方法,其核心在于:预先为每个应用程序设定标识其所属域的域属性、以及不同域间基于层级关系的数据访问规则,在接收第一应用程序对第二应用程序数据的访问请求时,若第一应用程序在对第二应用程序数据具有访问权限的域中,则允许第一应用程序执行访问操作,否则不允许。
与单纯基于相同uid的数据访问隔离方案相比较,本申请的技术方案由于采用了基于域的、且具有层级关系的数据隔离方案,相当于从多个维度实现数据隔离机制,能够为应用程序提供合理的数据访问权限,灵活地实现应用程序之间的数据共享。
本申请提供的应用程序数据访问隔离方法,在具体实施时,可以由独立的服务提供方实施,应用程序之间的数据访问请求提交给所述服务提供方,由服务提供方判断是否允许访问;也可以由被访问的应用程序,即:数据提供方,在接收数据访问请求后实施本方法进行判断,并根据本方法的判断结果做出相应的处理。下面对本申请的实施例进行详细说明。
请参考图1,其为本申请的一种应用程序数据访问隔离方法的实施例的流程图。在实施本申请提供的方法之前,可以先进行域的划分、设置不同域之间的层级关系和应用 程序数据访问规则,并对应用程序的域属性进行设置。
本实施例所述的域,是指逻辑上的应用程序集合,在具体实施时,可以遵循某种预设规则进行域的划分,例如,可以根据应用程序所隶属的公司进行域的划分,即:将出自相同公司的应用程序组成一个域;可以根据应用程序的作者进行域的划分,即:将出自相同作者的应用程序组成一个域;也可以根据应用程序的功能进行域的划分,例如,将与支付相关的应用程序组成一个域。在具体实施时,还可以采用不同于上述方式的其他方式预先进行域的划分,本实施例不对具体的划分方式进行限定。
每个应用程序属于一个域,属于同一个域的应用程序可以互相访问数据,不同域之间具有预先设定的层级关系,以及基于层级关系的应用程序数据访问规则。在具体实施时,可以根据具体需求为域设置层级属性,并且预先设定处于不同层级、以及相同层级的域之间的数据访问关系,例如:处于不同层级的域中的应用程序不能互相访问彼此的数据,而处于相同层级的兄弟域中的应用程序可以互相访问彼此数据等。采用这种方式设置数据访问规则,相当于在域划分这一维度的基础上,增加了层级关系维度,从而可以从多个维度实现数据隔离机制,能够为应用程序提供合理的数据访问权限,灵活地实现应用程序之间的数据共享。
优选地,本实施例提供基于父子域的优选实施方式,即:不同域之间的层级关系包括:直接或者间接包含的父子域关系,相应的,所述基于层级关系的应用程序数据访问规则包括:子域中的应用程序可以访问父域中的应用程序的数据,其他属于不同域的应用程序之间不可以互相访问数据,其中包括父域中的应用程序也不可以访问子域中的应用程序的数据。采用上述基于父子域的数据访问规则,由于具有相同父域的子域中的应用程序能够通过父域共享数据,从而能够清晰的构建树形共享关系,同时由于父域中的应用程序不可以访问子域中的应用程序数据,因此可以满足非对称的应用程序数据访问需求。
需要说明的是,所述父子域关系可以是直接包含的、也可以是间接包含的。在本实施例中,将直接包含或者间接包含某一子域的域,称为所述子域的父域,同样的道理,将直接包含或者间接包含于某一父域的域,称为所述父域的子域。例如,域B是域A的子域,域C是域B的子域,则域A直接包含域B、间接包含域C,那么对于域A来说,域B和域C都是其子域,对于域C来说,域A和域B都是其父域。本实施例重点描述基于父子域的优选实施方式。
在本实施例中,每个应用程序属于且仅属于一个域,并且用域属性标识其所属的域。 每个应用程序的域属性通常是预先设置好的,例如可以在安装应用程序时根据安装包携带的配置信息设置应用程序的域属性,也可以采用预设规则进行设置,或者结合上述两类信息为应用程序设置域属性。
下面通过一个具体的例子,说明应用程序域属性的设置方式。在本例子中,每个应用程序都有唯一的package信息,该信息可以从安装包携带的配置信息中获取,其构成方式为:package=App.Domain,其中,App为应用程序的名称,Domain信息为可选的。进行应用程序域属性设置的预设规则为:首先根据规则表初步判断应用程序所属的域,对于未在规则表中显式指定的应用程序、以及进行初步判断后的应用程序,可以根据其唯一的package信息中包含的Domain信息进一步判断其所属的域。
例如:某系统预先划分以下域:Trust、pay、dom、sub、Cc、g1、g2,其中Trust和Cc是处于同一层级的域,Trust域是dom域、sub域以及pay域的父域,dom域是sub域的父域,Cc域是g1域和g2域的父域;此外,在所述系统中已安装了package信息分别如下所示的一系列应用程序:A0.sub.dom、A1.sub.dom、A2.Dom、B0、B1、F1.g1.cc、F2.g1.cc、F3.g2.cc、F4.cc。
预设规则表的语法为:所属域名:[package=?],规则表的具体内容为:
Trust:package=A0.sub.dom
Trust:package=A1.sub.dom
Trust:package=A2.dom
Trust.pay:package=B0
Trust.pay:package=B1
根据上述预先设定的规则以及规则表,为每个应用程序指定其所属的域,得到如下所示的从属关系,其中冒号后面为域直接包含的应用程序的名称。
Trust:
--dom:A2
--sub:A0,A1
--pay:B0,B1
Cc:F4
--g1:F1,F2
--g2:F3
通过上述方式确定每个应用程序所属的域,并相应设置应用程序的域属性,例如A0 应用程序的域属性为sub域。
上述给出了基于预设规则设置应用程序域属性的例子,在具体实施时,可以采用不同于上述方式的其他方式设置应用程序的域属性。
在为应用程序设置域属性后,可以执行本实施例的步骤101-步骤103,实现应用程序之间的数据访问隔离。下面对各个步骤逐一进行说明。
步骤101、接收第一应用程序对第二应用程序数据的访问请求。
应用程序为了实现其功能,通常会维护与本应用程序运行相关的应用程序数据,并在需要的时候访问所述数据,执行读写操作等。应用程序及其数据之间的对应关系通常由承载应用程序的系统负责维护。
所述应用程序数据包括:在预先设定的、对应于应用程序的目录中的数据,以安卓系统为例,运行于该系统中的每个应用程序,都有预先设定的、与之对应的应用程序目录(目录名通常是应用程序在AndroidManifest.xml文件中定义的包的名称),位于该目录下的以数据文件形式承载的数据,通常就称为所述应用程序的数据。
应用程序通常对自己的数据具有绝对的访问权限,但是不同应用程序间的数据访问则需要进行必要的访问隔离控制,当第一应用程序发起访问第二应用程序数据的相关调用操作后,实施本方法的应用程序或者系统就会接收到所述访问请求。
步骤102、判断第一应用程序是否在对第二应用程序数据具有访问权限的域中,若是,执行步骤103,否则,执行步骤104。
本步骤可以根据第一应用程序以及第二应用程序的域属性、以及预先设定的域内及域间数据访问规则,判断第一应用程序是否在对第二应用程序数据具有访问权限的域中。
对于采用了基于父子域的优选实施方式,本步骤则可以判断第一应用程序是否满足以下数据访问条件中的任意一项:与第二应用程序属于同一域,或者第一应用程序所属域是第二应用程序所属域的子域。只要满足任意一项,则说明第一应用程序在对第二应用程序具有访问权限的域中。
优选地,为了便于进行上述判断,在具体应用中可以引入组的概念,并采用如下实施方式:在执行本步骤之前:为各应用程序分别分配唯一的应用程序标识(id),为预先设定的各域分别分配唯一的组(group),每个组具有唯一的组标识(groupid),为各应用程序的数据指定相应应用程序所属域对应的组标识,并将各应用程序标识添加到应用程序所属域对应的组内、以及所属域的父域对应的组内。那么本步骤则可以直接判断第一应用程序的标识是否在被访问数据的组标识所对应的组内,若在,则说明第一应用 程序在对第二应用程序具有访问权限的域中,否则,说明第一应用程序不在所述域中。
仍沿用上面所列举的具体例子进行说明,为各应用程序分配的id以及为各域分配的groupid如下所示:
Trust(groupid=1000):
--dom(groupid=1001):A2(id=101)
--sub(groupid=1002):A0(id=102),A1(id=103)
--pay(groupid=1003):B0(id=104),B1(id=105)
Cc(groupid=1004):F4(id=106)
--g1(groupid=1005):F1(id=107),F2(id=108)
--g2(groupid=1006):F3(id=109)
各个组包含的应用程序标识如下:
groupid=1000包含的应用程序标识:101、102、103、104、105
groupid=1001包含的应用程序标识:101、102、103
groupid=1002包含的应用程序标识:102、103
groupid=1003包含的应用程序标识:104、105
groupid=1004包含的应用程序标识:106、107、108、109
groupid=1005包含的应用程序标识:107、108
groupid=1006包含的应用程序标识:109
如果本实施例中的第一应用程序为A0,第二应用程序为A2,由于为第二应用程序数据指定的组标识为1001,而第一应用程序A0的标识102在被访问数据(即,第二应用程序数据)的组标识所对应的groupid=1001的组内,因此本步骤的判断结果为第一应用程序A0在对第二应用程序A2具有访问权限的域中,可以执行后续步骤103。
同样的道理,如果本实施例中的第一应用程序为A2,第二应用程序为A0,由于为第二应用程序数据指定的组标识为1002,而第一应用程序A2的标识101不在被访问数据(即,第二应用程序数据)的组标识所对应的groupid=1002的组内,因此本步骤的判断结果为第一应用程序A2不在对第二应用程序A0具有访问权限的域中,执行后续步骤104。
对于其他应用程序之间的数据访问操作,本步骤的判断过程也都是类似的,此处不再赘述。通过上述对应用程序A0、A2彼此间的数据访问权限的判断过程,可以看出,采用基于父子域的数据访问隔离方案,不仅从多个维度实现数据隔离机制,能够为应用 程序提供合理的数据访问权限,灵活地实现应用程序之间的数据共享,而且可以满足非对称的应用程序数据访问需求。
在具体实施时,如果本方法在基于Linux的系统中实施,那么上述判断过程可以利用Linux的权限控制机制实现,从而简化实施过程:为每个应用程序分配的应用程序标识为系统内唯一的uid,为各个域分配的组标识为系统内唯一的gid,那么当第一应用程序访问第二应用程序数据时,Linux系统会自动检查uid是否在gid对应的group中,并返回相应的检查结果,从而完成本步骤的判断。
步骤103、允许第一应用程序执行访问操作。
执行到本步骤,说明第一应用程序在对第二应用程序数据具有访问权限的域中,因此允许第一应用程序执行访问操作,例如,第一应用程序可以读取与第二应用程序相对应的目录下的数据文件。
步骤104、拒绝第一应用程序执行访问操作。
执行到本步骤,说明第一应用程序不在对第二应用程序具有访问权限的域中,因此拒绝第一应用程序执行访问操作,例如:不允许第一应用程序读取与第二应用程序相对应的目录下的数据文件。
至此,通过上述步骤101-104,对本实施例提供的应用程序数据访问隔离方法进行了详细说明。在实际应用中,应用程序的域属性通常是预先设置好的,但是也可能会出现需要调整应用程序所属域的情况,因此本实施例所述的应用程序的域属性是可动态调整的,从而能够根据需求在应用程序运行过程中改变其域属性,允许相同的应用程序在不同的系统中具有不同的数据访问能力,以满足实际应用中的安全性等需求。具体实现可以是:在接收第一应用程序对第二应用程序数据的访问请求之前,动态调整第一应用程序和/或第二应用程序的域属性,下面分两种情况作进一步说明。
1)可以根据接收到的域属性调整指令,调整相应应用程序的域属性。例如,本实施例中的第一应用程序在起始阶段被认为是属于安全领域的,因此为其设置了对应于安全领域的域属性,但某些特殊事件发生后,第一应用程序的性质被重新确定,因而需要调整第一应用程序所属的域,并相应修改第一应用程序的域属性,以防止其出现危害,在具体实施时,可以根据负责监控应用程序安全性的服务端发送的域属性调整指令,调整第一应用程序的域属性。
2)可以根据预先设定的定时授权方案,调整相应应用程序的域属性。例如,本实施例中的第一应用程序在某个授权时间范围内,可以具备访问某些应用程序数据的特殊权 利,而在非授权时间范围内,则不具备访问能力,相当于回收了其特殊权利,在这种情况下可以根据预先设定的定时授权方案,动态调整第一应用程序的域属性。
综上所述,本实施例提供的应用程序数据访问隔离方法,由于采用了基于域的、且具有层级关系的数据隔离方案,通过在不同域间设定基于层级的数据访问规则,相当于从多个维度实现数据隔离机制,能够为应用程序提供合理的数据访问权限,灵活地实现应用程序之间的数据共享。特别是引入基于直接或者间接包含的父子域关系,能够清晰的构建树形共享关系,满足非对称的应用程序数据访问需求。
此外,如果需要改变应用程序之间的数据访问关系,只需要动态调整应用程序的域属性即可,简便易行,从而可以满足实际应用中的安全性需求,并允许相同应用程序在不同的系统中具有不同的数据访问能力。
在上述的实施例中,提供了一种应用程序数据访问隔离方法,与之相对应的,本申请还提供一种应用程序数据访问隔离装置。请参看图2,其为本申请的一种应用程序数据访问隔离装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种应用程序数据访问隔离装置,包括:访问请求接收单元201,用于接收第一应用程序对第二应用程序数据的访问请求;权限判断单元202,用于判断第一应用程序是否在对第二应用程序数据具有访问权限的域中;允许访问单元203,用于当所述权限判断单元的输出为是时,允许第一应用程序执行访问操作;拒绝访问单元204,用于当所述权限判断单元的输出为否时,拒绝第一应用程序执行访问操作。
可选的,所述装置包括:
第一域属性设置单元,用于在安装应用程序时,根据安装包携带的配置信息设置应用程序的域属性。
可选的,所述装置包括:
第二域属性设置单元,用于根据预设规则预先设置应用程序的域属性。
可选的,所述权限判断单元,具体用于判断第一应用程序是否满足以下数据访问条件中的任意一项:与第二应用程序属于同一域,或者第一应用程序所属域是第二应用程序所属域的子域;若是,则判定所述第一应用程序在对第二应用程序数据具有访问权限的域中,否则判定不在所述域中。
可选的,所述装置还包括在所述访问请求接收单元之前触发的下列单元:
应用及组标识分配单元,用于为各应用程序分别分配唯一的应用程序标识,为预先设定的各域分别分配唯一的组,每个组具有唯一的组标识;
数据标识指定单元,用于为各应用程序的数据指定相应应用程序所属域对应的组标识;
应用标识添加单元,用于将各应用程序标识添加到应用程序所属域对应的组内、以及所属域的父域对应的组内;
所述权限判断单元,具体用于判断第一应用程序的标识是否在被访问数据的组标识所对应的组内;若在,则判定所述第一应用程序在对第二应用程序数据具有访问权限的域中,否则判定不在所述域中。
可选的,所述权限判断单元,具体用于利用Linux的权限控制机制,判断第一应用程序的标识是否在被访问数据的组标识所对应的组内。
可选的,所述装置包括:
域属性动态调整单元,用于在所述访问请求接收单元工作之前,动态调整第一应用程序和/或第二应用程序的域属性。
可选的,所述域属性动态调整单元,具体用于根据接收到的域属性调整指令,调整相应应用程序的域属性;或者,根据预先设定的定时授权方案,调整相应应用程序的域属性。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (18)

  1. 一种应用程序数据访问隔离方法,其特征在于,包括:
    接收第一应用程序对第二应用程序数据的访问请求;
    判断第一应用程序是否在对第二应用程序数据具有访问权限的域中;
    若是,允许第一应用程序执行访问操作,否则拒绝执行访问操作;
    其中,每个应用程序属于一个域、并且具有标识其所属域的域属性,属于同一个域的应用程序可以互相访问数据;不同域之间具有预先设定的层级关系、以及基于层级关系的应用程序数据访问规则。
  2. 根据权利要求1所述的应用程序数据访问隔离方法,其特征在于,应用程序的域属性是采用如下方式预先设置的:
    在安装应用程序时,根据安装包携带的配置信息设置应用程序的域属性。
  3. 根据权利要求1所述的应用程序数据访问隔离方法,其特征在于,应用程序的域属性是根据预设规则预先设置的。
  4. 根据权利要求1所述的应用程序数据访问隔离方法,其特征在于,所述预先设定的层级关系包括:直接或者间接包含的父子域关系;
    所述基于层级关系的应用程序数据访问规则包括:子域中的应用程序可以访问父域中的应用程序的数据,其他属于不同域的应用程序不可以互相访问数据。
  5. 根据权利要求4所述的应用程序数据访问隔离方法,其特征在于,所述判断第一应用程序是否在对第二应用程序数据具有访问权限的域中,包括:
    判断第一应用程序是否满足以下数据访问条件中的任意一项:与第二应用程序属于同一域,或者第一应用程序所属域是第二应用程序所属域的子域;
    若是,则判定所述第一应用程序在对第二应用程序数据具有访问权限的域中,否则判定不在所述域中。
  6. 根据权利要求5所述的应用程序数据访问隔离方法,其特征在于,在所述接收第一应用程序对第二应用程序数据的访问请求之前,执行下述操作:
    为各应用程序分别分配唯一的应用程序标识,为预先设定的各域分别分配唯一的组,每个组具有唯一的组标识;
    为各应用程序的数据指定相应应用程序所属域对应的组标识;
    将各应用程序标识添加到应用程序所属域对应的组内、以及所属域的父域对应的组内;
    所述判断第一应用程序是否满足数据访问条件中的任意一项,包括:
    判断第一应用程序的标识是否在被访问数据的组标识所对应的组内;若在,则判定第一应用程序满足所述数据访问条件中的任意一项,否则判定不满足。
  7. 根据权利要求6所述的应用程序数据访问隔离方法,其特征在于,所述方法在基于Linux的软件系统中运行,所述应用程序标识为uid,所述组标识为gid;
    所述判断第一应用程序的标识是否在被访问数据的组标识所对应的组内,是利用Linux的权限控制机制实现的。
  8. 根据权利要求1-7任一项所述的应用程序数据访问隔离方法,其特征在于,所述应用程序数据包括:在预先设定的、对应于应用程序的目录中的数据。
  9. 根据权利要求1-7任一项所述的应用程序数据访问隔离方法,其特征在于,在所述接收第一应用程序对第二应用程序数据的访问请求之前,包括:
    动态调整第一应用程序和/或第二应用程序的域属性。
  10. 根据权利要求9所述的应用程序数据访问隔离方法,其特征在于,所述动态调整第一应用程序和/或第二应用程序的域属性,包括:
    根据接收到的域属性调整指令,调整相应应用程序的域属性;或者,
    根据预先设定的定时授权方案,调整相应应用程序的域属性。
  11. 一种应用程序数据访问隔离装置,其特征在于,包括:
    访问请求接收单元,用于接收第一应用程序对第二应用程序数据的访问请求;
    权限判断单元,用于判断第一应用程序是否在对第二应用程序数据具有访问权限的域中;
    允许访问单元,用于当所述权限判断单元的输出为是时,允许第一应用程序执行访问操作;
    拒绝访问单元,用于当所述权限判断单元的输出为否时,拒绝第一应用程序执行访问操作。
  12. 根据权利要求11所述的应用程序数据访问隔离装置,其特征在于,包括:
    第一域属性设置单元,用于在安装应用程序时,根据安装包携带的配置信息设置应用程序的域属性。
  13. 根据权利要求11所述的应用程序数据访问隔离装置,其特征在于,包括:
    第二域属性设置单元,用于根据预设规则预先设置应用程序的域属性。
  14. 根据权利要求11所述的应用程序数据访问隔离装置,其特征在于,所述权限 判断单元,具体用于判断第一应用程序是否满足以下数据访问条件中的任意一项:与第二应用程序属于同一域,或者第一应用程序所属域是第二应用程序所属域的子域;若是,则判定所述第一应用程序在对第二应用程序数据具有访问权限的域中,否则判定不在所述域中。
  15. 根据权利要求14所述的应用程序数据访问隔离装置,其特征在于,还包括在所述访问请求接收单元之前触发的下列单元:
    应用及组标识分配单元,用于为各应用程序分别分配唯一的应用程序标识,为预先设定的各域分别分配唯一的组,每个组具有唯一的组标识;
    数据标识指定单元,用于为各应用程序的数据指定相应应用程序所属域对应的组标识;
    应用标识添加单元,用于将各应用程序标识添加到应用程序所属域对应的组内、以及所属域的父域对应的组内;
    所述权限判断单元,具体用于判断第一应用程序的标识是否在被访问数据的组标识所对应的组内;若在,则判定所述第一应用程序在对第二应用程序数据具有访问权限的域中,否则判定不在所述域中。
  16. 根据权利要求15所述的应用程序数据访问隔离装置,其特征在于,所述权限判断单元,具体用于利用Linux的权限控制机制,判断第一应用程序的标识是否在被访问数据的组标识所对应的组内。
  17. 根据权利要求11-16任一项所述的应用程序数据访问隔离装置,其特征在于,包括:
    域属性动态调整单元,用于在所述访问请求接收单元工作之前,动态调整第一应用程序和/或第二应用程序的域属性。
  18. 根据权利要求17所述的应用程序数据访问隔离装置,其特征在于,所述域属性动态调整单元,具体用于根据接收到的域属性调整指令,调整相应应用程序的域属性;或者,根据预先设定的定时授权方案,调整相应应用程序的域属性。
PCT/CN2016/112555 2016-01-07 2016-12-28 一种应用程序数据访问隔离方法及装置 WO2017118330A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/028,107 US10831915B2 (en) 2016-01-07 2018-07-05 Method and system for isolating application data access

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610009961.8A CN106951795B (zh) 2016-01-07 2016-01-07 一种应用程序数据访问隔离方法及装置
CN201610009961.8 2016-01-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/028,107 Continuation-In-Part US10831915B2 (en) 2016-01-07 2018-07-05 Method and system for isolating application data access

Publications (1)

Publication Number Publication Date
WO2017118330A1 true WO2017118330A1 (zh) 2017-07-13

Family

ID=59273679

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/112555 WO2017118330A1 (zh) 2016-01-07 2016-12-28 一种应用程序数据访问隔离方法及装置

Country Status (3)

Country Link
US (1) US10831915B2 (zh)
CN (1) CN106951795B (zh)
WO (1) WO2017118330A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991298B (zh) * 2016-01-21 2021-02-02 斑马智行网络(香港)有限公司 应用程序对接口的访问方法、授权请求方法及装置
CN107919960A (zh) * 2017-12-04 2018-04-17 北京深思数盾科技股份有限公司 一种应用程序的认证方法和系统
CN111209574B (zh) * 2018-11-22 2023-06-20 阿里巴巴集团控股有限公司 访问控制与访问行为识别方法、系统、设备及存储介质
CN111159735A (zh) * 2019-12-24 2020-05-15 珠海荣邦智能科技有限公司 应用程序的数据访问方法及装置
US11941104B2 (en) * 2020-12-03 2024-03-26 Red Hat, Inc. Utilizing extended file attributes for working directory
US20220318438A1 (en) * 2021-04-06 2022-10-06 Comcast Cable Communications, Llc Systems and methods for data security on a mobile device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004776A (zh) * 2006-01-09 2007-07-25 太阳微系统有限公司 用于基于保护域的安全性的方法和装置
CN102495988A (zh) * 2011-12-19 2012-06-13 北京诺思恒信科技有限公司 一种基于域的访问控制方法及系统
US20140331275A1 (en) * 2013-05-01 2014-11-06 International Business Machines Corporation Context-aware permission control of hybrid mobile applications
CN106341369A (zh) * 2015-07-06 2017-01-18 深圳市中兴微电子技术有限公司 安全控制方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202099B1 (en) 1998-03-30 2001-03-13 Oracle Corporation Method and apparatus for providing inter-application program communication using a common view and metadata
JP2001216226A (ja) 1999-11-26 2001-08-10 Mitsubishi Electric Corp アプリケーション間データ送受信方式及びアプリケーション間データ送受信方法及びアプリケーション間データ送受信方法をコンピュータに動作させるプログラムを記録したコンピュータで読取可能な記録媒体
US8028001B2 (en) * 2001-10-30 2011-09-27 Goldman Sachs & Co. Systems and methods for facilitating access to documents via a set of content selection tags
US8590011B1 (en) * 2005-02-24 2013-11-19 Versata Development Group, Inc. Variable domain resource data security for data processing systems
WO2006089555A1 (en) * 2005-02-25 2006-08-31 Bang & Olufsen A/S Pervasive media information retrieval system
US7596574B2 (en) * 2005-03-30 2009-09-29 Primal Fusion, Inc. Complex-adaptive system for providing a facted classification
US20060294199A1 (en) * 2005-06-24 2006-12-28 The Zeppo Network, Inc. Systems and Methods for Providing A Foundational Web Platform
US20070136603A1 (en) * 2005-10-21 2007-06-14 Sensis Corporation Method and apparatus for providing secure access control for protected information
US8024794B1 (en) * 2005-11-30 2011-09-20 Amdocs Software Systems Limited Dynamic role based authorization system and method
US7739731B2 (en) * 2006-01-09 2010-06-15 Oracle America, Inc. Method and apparatus for protection domain based security
US8468607B2 (en) * 2009-10-07 2013-06-18 International Business Machines Corporation Associating multiple security domains to application servers
US20120284195A1 (en) * 2011-05-04 2012-11-08 Mcmillen Glenn Curtiss Method and system for secure user registration
US8910277B1 (en) * 2010-12-22 2014-12-09 Google Inc. Process-based domain isolation
US8881236B2 (en) * 2011-02-04 2014-11-04 Futurewei Technologies, Inc. Method and apparatus for a control plane to manage domain-based security and mobility in an information centric network
US8413148B2 (en) * 2011-03-10 2013-04-02 Telefonaktiebolaget L M Ericsson (Publ) Virtualization support in platform management (PLM) information model
CN102567675B (zh) * 2012-02-15 2015-09-30 合一网络技术(北京)有限公司 一种业务系统下的用户权限管理方法和系统
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9313193B1 (en) * 2014-09-29 2016-04-12 Amazon Technologies, Inc. Management and authentication in hosted directory service
CN106331206B (zh) * 2015-06-30 2019-08-23 新华三技术有限公司 域名管理方法及装置
US10075535B2 (en) * 2015-09-25 2018-09-11 International Business Machines Corporation Business logic sharing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101004776A (zh) * 2006-01-09 2007-07-25 太阳微系统有限公司 用于基于保护域的安全性的方法和装置
CN102495988A (zh) * 2011-12-19 2012-06-13 北京诺思恒信科技有限公司 一种基于域的访问控制方法及系统
US20140331275A1 (en) * 2013-05-01 2014-11-06 International Business Machines Corporation Context-aware permission control of hybrid mobile applications
CN106341369A (zh) * 2015-07-06 2017-01-18 深圳市中兴微电子技术有限公司 安全控制方法及装置

Also Published As

Publication number Publication date
US10831915B2 (en) 2020-11-10
CN106951795B (zh) 2020-07-21
CN106951795A (zh) 2017-07-14
US20190005260A1 (en) 2019-01-03

Similar Documents

Publication Publication Date Title
WO2017118330A1 (zh) 一种应用程序数据访问隔离方法及装置
US10263994B2 (en) Authorized delegation of permissions
US10848520B2 (en) Managing access to resources
US8959657B2 (en) Secure data management
US10951661B1 (en) Secure programming interface hierarchies
US9355261B2 (en) Secure data management
US9515832B2 (en) Process authentication and resource permissions
JP4916136B2 (ja) アプリケーションにセキュリティを提供するシステムおよび方法
US11277267B2 (en) Fine-grained token based access control
CN111522595B (zh) 短暂应用
US10042680B2 (en) Cross-domain data sharing with permission control
US8266714B2 (en) Access control in a multi-principal browser
US10623410B2 (en) Multi-level, distributed access control between services and applications
JP2017016669A (ja) 信頼レベルのアクティブ化
TW201636840A (zh) 資源選擇性取用權提供技術
CN107465650B (zh) 一种访问控制方法及装置
US8819766B2 (en) Domain-based isolation and access control on dynamic objects
US11153327B2 (en) Data classification and access control for cloud based data
US20220232010A1 (en) Protected resource authorization using autogenerated aliases
JP2006107505A (ja) アクセス認可のapi
US20150046706A1 (en) System and Method for Controlling Access to Encrypted Files
US8635692B2 (en) System and method for user friendly detection of spammers
US11947657B2 (en) Persistent source values for assumed alternative identities
US10242174B2 (en) Secure information flow
WO2016197850A1 (zh) 一种访问电子设备的物理内存中私密数据的方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16883455

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16883455

Country of ref document: EP

Kind code of ref document: A1