1 Introduction
With the rapid development of computer technology and Internet applications, data is growing at an exponential rate. Faced with such massive data, cloud storage which developed from the concept of cloud computing has become the most common and popular third-party storage with its advantages of low cost, huge capacity, resource sharing, easy management and good scalability. Users and enterprises can purchase storage services flexibly according to their own needs, which not only save expensive software and hardware infrastructure investment, but also ensure that storage resources are fully utilized. Cloud storage service providers also provide professional data backup, disaster recovery and other functions to effectively ensure the continuity of services [1, 2].
Although cloud storage has many advantages, however, its promotion is relatively slow. The main reason is that once the data is uploaded to the cloud, users lose control of it, and they do not know what the cloud storage provider will do with the data. Cloud storage providers may snoop on the content of the data and even provide the user’s data directly to third parties, especially in an untrusted cloud environment. Therefore, ensuring the confidentiality of user data, avoiding it being illegally accessed, achieving secure and efficient access control is the key to solving data security problems in cloud storage [9]. However, as the cloud environment has the characteristics of dynamic change, multi-tenancy and virtualization, the traditional access control model cannot meet the requirements of the new cloud architecture. So how to expand and optimize the traditional access control model, especially combine advanced encryption technology with traditional access control models, to build an access control scheme for cloud storage environment has become a hot topic in academic research. In the case that the cloud storage provider is not trusted, the research of ensuring the confidentiality of data and implement access control of the ciphertext data is therefore a top priority.
1.1 Related Works
Many researchers have started research on access control technology under the cloud computing environment and have obtained many research results.
Jung et al. [3] proposed an adaptive resource access control scheme based on the RBAC model. This scheme can dynamically adjust the security level of resources and solve the problem of dynamic changes of environment variables in cloud computing. Wang et al. [4] introduced the concept of task into the RBAC model and proposed a task- and role-based access control model (T-RBAC) in the cloud computing environment. In T-RBAC, workflow is first broken down into a series of interdependent tasks, which are then assigned to the role, and the user gets the role by executing the task node. The Danwei et al. [5] adopts a negotiation policy when designing the access control model, and proposes a UCON-based cloud service access control scheme. Based on the UCON model, Krautsevich et al. [6] introduced a risk assessment mechanism, and purposed an access control scheme for highly dynamic system, which improves the flexibility and security of the UCON model.
Attribute-Based Encryption (ABE) is the most commonly used advanced encryption algorithm in cloud access control. It extends the concept of identity as a set of attributes. In 2005, Sahai et al. [7] first proposed a fuzzy identity-based encryption scheme, in which the concept of attributes was introduced. Subsequently, based on this, Goyal et al. [8] proposed an attribute-based encryption scheme. And then derived two attribute-based encryption algorithms closely related to the access control policy, KP-ABE (Key Policy Attribute-Based Encryption) [9] and CP-ABE (Ciphertext Policy Attribute-Based Encryption) [10], in which CP-ABE is more suitable for cloud environments. Sun et al. [11] proposed a data security access control scheme for cloud storage based on CP-ABE. This scheme adopts a distribution method for distributed key, and access control is implemented by designing keys. However, the scheme is suitable for the case where the access permission type is small, once the type is increased, key management may become very complicated. Jung et al. [12] designed an anonymous access control scheme, which perform anonymous access control on cloud data to protect user’s privacy; Ruj et al. [13] proposes a cloud security access control framework that can implement user authentication and privacy protection of data.
Although the above attribute-based access control schemes can ensure the confidentiality of user data and achieve fine-grained access control of data, but they do not support dynamic update of access control policy. It obviously does not meet the requirements of the dynamic environment in the cloud. For the problems mentioned above, researchers have proposed some schemes. Yu et al. [14] proposed a secure and scalable cloud storage access control scheme based on CP-ABE, which supports attribute revoking and employs a proxy re-encryption policy to save computational overhead; Hur et al. [15] designed an access control scheme that supports user attribute revoking, using double-layer encryption mechanism to improve efficiency; Chen et al. [16] proposed a hybrid access control scheme that supports hierarchical management of multiple authorization mechanisms, which reduced management complexity. Although these schemes can support the revoke operation, the computational overhead cannot be ignored.
As mentioned above, there are many shortcomings of current access control schemes in the cloud environment. Although simply optimize the traditional access control model and apply it to the cloud environment can implement basic access control functions, the confidentiality of data cannot be guaranteed. The attribute-based ciphertext access control scheme can protect data when the cloud storage provider is not trusted, but most schemes do not support the dynamic update of access control policy, or the computational overhead is huge although the policy update is supported.
1.2 Contributions
To solve the problems mentioned above, this paper proposes an RBAC scheme based on identity cryptosystem in cloud storage. This paper describes the application scenarios and entity composition of the scheme, and gives a formal definition of the scheme. The four tuples used to represent the access control policy in the scheme are described in detail, as well as the hybrid encryption policy and the write-time re-encryption policy designed to improve system efficiency. Detailed steps of system initialization, user addition and deletion, permission addition and deletion, role addition and deletion, role’s inheritance relationship addition and deletion, user assignment and revocation, permission assignment and revocation, file reading and writing are given.
2 Constructions
2.1 Design Idea
Our scheme is mainly composed of three-party entities: access control administrators, cloud storage providers (reference monitors are deployed in the cloud as part of the cloud storage provider, not separately listed as one entity) and users. The roles and functions of the three entities are as follows:
- (1)
Access control administrator: It is the administrator of the access control system, responsible for developing and updating access control policy. It determines who has the permission to access the resource. In this scheme, it has two important functions. One is to act as a key generation center in the identity-based cryptosystem; it holds the system master key, creates and distributes keys for users in the system. Second is to develop and update the access control policy in the system. The specific operations include the addition and deletion of roles, the addition and deletion of role’s inheritance relationships, the assignment and revocation of users, and the assignment and revocation of permissions.
- (2)
Cloud storage provider: As a provider of storage services, it manages the storage needs of users. It not only stores the data that users deposit in the cloud, but also stores access control policy that provide protection for those data. This paper assumes that the cloud storage provider is untrustworthy and cannot let it view the contents of the file stored on it, but at the same time believes that it can guarantee the availability of the file and that only authorized users can change the content of the file.
Reference monitor: Most access control models have one thing in common, that is, relying on a trusted reference monitor to check whether an access request conforms to an access control policy before accessing the protected resource. In this scheme, the reference monitor is deployed in the cloud and is responsible for coordinating authorized access to resources. For example, when write permission is executed, it is responsible for verifying that if the user’s signature is valid and checking if the user has write permission.
In a nutshell, cloud storage providers ensure file system consistency by blocking unauthorized updates, while it cannot read files or change files and access control policy.
- (3)
User: It is a user of the cloud storage service and is managed by the access control administrator. It needs to register with the administrator and obtain its own key before using the system. It can upload its own data to the cloud storage, or download the data in the cloud for read and write operations (The premise is that there is a corresponding access permission, otherwise the data will not be decrypted, or the reference monitor will determine that there is no corresponding permission, and the operation cannot be performed).
2.2 Formal Definitions
Definition 1:
The RBAC scheme based on identity cryptosystem (RBAC-IBC) in cloud storage can be represented by a tuple composed of eight PPT algorithms, that is, RBAC-IBC = . The details are described as follows:
- (1)
: System initialization algorithm. The input is security parameter , which generates a common parameter of identity-based encryption algorithm and a master key of identity-based signature algorithm, and generates an identity-based decryption key and signature key for the administrator.
- (2)
: User addition and deletion algorithm. It contains two sub-algorithms: user addition algorithm and user deletion algorithm. The input of user addition algorithm is the username , which generates an identity-based decryption key and signature key for the user; the input of user deletion algorithm is also the username , which revokes the user from the system, and then the user will not be able to access any files in the cloud.
- (3)
: Permission addition and deletion algorithm. It contains two sub-algorithms: permission addition algorithm and permission deletion algorithm. The input of permission addition algorithm is the file name and the file content , which encrypts the file and uploads it to the cloud; the input of permission deletion algorithm is the file name , which removes the file from the system.
- (4)
: Role addition and deletion algorithm. It contains two sub-algorithms: role addition algorithm and role deletion algorithm. The input of role addition algorithm is the role name , which adds a role to the access control system and generates an identity-based decryption key and signature key for the role; the input of role deletion algorithm is the role name , which revokes the role from the system.
- (5)
: Role’s inheritance relationship addition and deletion algorithm. It contains two sub-algorithms: role’s inheritance relationship addition algorithm and role’s inheritance relationship deletion algorithm. The input of role’s inheritance relationship addition algorithm is the child role and the parent role , which adds a role’s inheritance relationship to the system, so that the role inherits the role ; the input of role’s inheritance relationship deletion algorithm is the child role and the parent role , which revokes the inheritance relationship between them from the system.
- (6)
: User assignment and revocation algorithm. It contains two sub-algorithms: user assignment algorithm and user revocation algorithm. The input of user assignment algorithm is the role and the user , which assigns user to role ; the input of user revocation algorithm is the role and the user , which revokes user from the user list of role .
- (7)
: Permission assignment and revocation algorithm. It contains two sub-algorithms: permission assignment algorithm and permission revocation algorithm. The input of permission assignment algorithm is the role , the file name and permission name , which assigns the operation permission () of the file for the role ; the input of permission revocation algorithm is the role , the file name and permission name , which revokes the operation permission () of the file from the role .
- (8)
: File reading and writing algorithm. It contains two sub-algorithms: file reading algorithm and file writing (update) algorithm. The input of file reading algorithm is the file name , and the user reads file; the input of file writing algorithm is the file name and the updated content of the file , which updates file content stored in the cloud.
According to the access control scheme evaluation method, the relevant properties used to evaluate RBAC-IBC are defined as follows:
Definition 2:
Property 1: Command mapping protects state mapping and protects security.
Property 2: State mapping protects query mapping.
Property 3: Query mapping is access control protected.
Then the scheme is correct, access control protected, and secure.
2.3 Detailed Description
The scheme is divided into eight parts by function: System initialization, user addition and deletion, permission addition and deletion, role addition and deletion, role’s inheritance relationship addition and deletion, user assignment and revocation, permission assignment and revocation, file reading and writing. Each detailed step is given below.
Symbol description
Symbol | Description |
---|---|
| User name |
| Role name |
| File (Here is the file content itself) |
| File name |
| Version number |
| Symmetric key |
| Identity-based decryption key |
| Identity-based signature key |
| File that stores the username |
| File that stores the role name and role’s key version number |
| File that stores the file name and file’s key version number |
| Access control administrator |
R.M | Reference monitor deployed in the cloud |
– | Wildcard |
2.3.1 System Initialization
Step 1: Perform the initialization algorithm of identity-based encryption and identity-based signature scheme. Generate their own public parameters and master keys, expose public parameters, and secretly save the master keys.
Step 2: Create three empty files——, and , upload and to the cloud.
- Step 3: Generate an identity-based decryption key and signature key for himself:
Note that in order to save space, the description of the key generation process is simplified here, and parameters such as the master keys are not listed, and the subsequent algorithm description is also the same.
2.3.2 User Addition and Deletion
Step 1: Add the username to the file .
- Step 2: Generate the identity-based decryption key and signature key for the user:
Step 3: Send and to the user via the trusted channel
: User deletion algorithm. To delete a user from the system, the administrator needs to do the following operations:
For each role that contains user , perform the operation *.
The symbol here means that the specific steps of this operation will be given later, and the following appears is synonymous with this.
2.3.3 Permission Addition and Deletion
Step 1: User generates the symmetric key required to encrypt the file: .
Step 2: Build tuple and tuple (the initial file key version number is set to 1), the forms are as follows: , , and send them to the cloud.
Step 3: After receiving the two tuples, the reference monitor R.M deployed in the cloud performs the following operations:
- (1)
Check that the tuple format is correct. If the format is correct, proceed to the next step, otherwise send an error report.
- (2)
Verify that the user’s identity-based signature is legal. If the signature is legal, that is:
proceed to the next step, otherwise send an error report.
- (3)
Add the file name and file’s key version number to the file , store the two tuples to the appropriate location in the cloud.
Step 1: R.M deletes from file .
Step 2: Delete all tuples and tuples.
2.3.4 Role Addition and Deletion
Step 1: Add role name and the initial version number of role key to the file .
Step 2: Generate the identity-based decryption key and signature key for the role.
Step 3: Build tuple and send it to R.M.
Step 4: R.M stores the received tuple to the corresponding location in the cloud.
Note that the initial version number of the role key is set to 1 here. And because the administrator needs to assign users to roles in the future, the administrator first becomes a member of the role so that the key of the role can be accessed later.
Step 1: Revoke from file , delete all tuples .
Step 2: If role is a parent role, delete all tuples ; if role is a child role, delete all tuples , and perform operation * on all of its parent roles.
Step 3: For each permission owned by role , perform operation *.
2.3.5 Role’s Inheritance Relationship Addition and Deletion
Step 1: Download tuple from the cloud and verify the signature.
If , proceed to the next step, otherwise send an error report.
- Step 2: The administrator decrypts the decryption key and signature key of the parent role from the tuple using his own decryption key :
Step 3: Build tuple and send it to R.M.
Step 4: R.M stores the received tuple to the corresponding location in the cloud.
Step 1: Delete tuple .
Step 2: Generate a new decryption key and signature key for the parent role: , , update the file to increase the role’s key version number by 1.
Step 3: Generate a new tuple for the other child roles () of the parent role: That is, , and upload it to R.M and replace the old tuples.
Step 4: Generate a new tuple for all user members of the parent role. That is, build a new tuple and upload it to R.M.
Step 5: Generate a new tuple for all files that the parent role can access, the specific steps are as follows:
- (1)
The administrator first downloads tuple from the cloud and verifies the signature, proceed to next step if the verification is passed.
- (2)
The administrator uses his own decryption key to decrypt the role’s decryption key and signature key from the tuple:
- (3)
For each tuple , first use role’s decryption key to decrypt the file’s symmetric key: . Then build a new tuple and upload it to R.M.
- (4)
Delete all tuples and tuples.
Step 6: Update the symmetric key of all files that parent role can access, the specific steps are as follows:
- (1)
Generate a new symmetric key for each file that parent role can access: .
- (2)
Generate a new tuple for all roles that have access to the above files: build a new tuple and upload it to R.M.
- (3)
Update file , make the symmetric key version number of the file add 1.
Note that the write-time re-encryption policy is used in the role’s inheritance relationship deletion algorithm. The specific embodiment is: After step 6 is executed, the cloud actually stores two versions of the tuple of files that the parent role can access. The only difference between the two versions is that the file key version number and the encrypted file’s symmetric key is different. When the file is read, the old symmetric key is used for decryption; When the file is written, the new symmetric key is used for encryption. This is the specific implementation of write-time re-encryption policy.
2.3.6 User Assignment and Revocation
Step 1: Download tuple from the cloud and verify the signature. If
, proceed to the next step.
Step 2: The administrator uses his own decryption key to decrypt the role’s decryption key and signature key from the tuple: .
Step 3: Build tuple and upload it to R.M.
Step 4: R.M stores the received tuple to the corresponding location in the cloud.
Step 1: Generate a new decryption key and signature key for role : , . Update file , make the key version number of the role add 1.
Step 2: If role has child roles, generate a new tuple for all its child roles. That is, build a new tuple and upload it to R.M and replace all old tuples.
Step 3: Generate a new tuple for other user members of the role. That is, build a new tuple and upload it to R.M.
Step 4: Generate a new tuple for files that all roles can access. The specific steps are as follows:
- (1)
First download tuple from the cloud and verify the signature. If verification passed, proceed to the next step.
- (2)
The administrator uses his own decryption key to decrypt the role’s decryption key and signature key from the tuple: .
- (3)
For each tuple , first use role’s decryption key to decrypt the file’s symmetric key: . Then build a new tuple and upload it to R.M.
- (4)
Delete all tuples and tuples.
Step 5: Generate a new symmetric key for the files that all roles can access: .
Step 6: Generate a new tuple for all roles that have access to the files in step 5. That is, for all , perform the following operations:
- (1)
Build a new tuple and upload it to .
- (2)
Update file , make the symmetric key version number of file add 1.
The user revocation algorithm also uses the write-time re-encryption policy. After step 6 is executed, the cloud also stores two versions of the tuple of the files that the roles can access.
2.3.7 Permission Assignment and Revocation
Step 1: If the role already has read access to the file and needs to add write access, i.e. and already exists, perform the following operations:
- (1)
Download all versions of and verify the signatures of tuples. If
, proceed to the next step.
- (2)
Build the new tuple , upload it to R.M and replace old tuples.
Step 2: If the role does not have any permissions on the file, first download the tuple from the cloud and verify the signature. If , proceed to next step.
- (1)
Decrypt the symmetric key of the file from tuple: .
- (2)
Build the new tuple and upload it to the cloud. After receiving the tuple, R.M stores it in the corresponding location in the cloud.
Step 1: If only remove write permission and retain read permission, i.e. , perform the following operations: Download all versions of tuple from the cloud and verify the signature. If , build the new tuple , upload it to R.M and replace the old tuple.
Step 2: If read and write permissions are revoked, i.e. , then:
- (1)
Delete all tuples.
- (2)
Generate a new symmetric key for the file: .
- (3)
Generate new tuples for all other roles that can access the files. That is, build a new tuple and upload it to R.M.
- (4)
Update file , make the symmetric key version number of file add 1.
Note that in the step 2 of permission revocation algorithm, the write-time re-encryption policy is also used. In step 3, a new version of tuple containing the file’s new symmetric key is generated for the role, which is stored in the cloud along with the tuple containing the file’s old symmetric key.
2.3.8 File Reading and Writing
: File reading algorithm. User reads a file, the main steps are as follows:
First, the user downloads the tuple from the cloud and verifies the signature. If
, do the following operations:
First Case: If the user is a member of role and has permission to read the file, i.e. tuple and exist, download these two tuples from the cloud. Note that because of the write-time re-encryption policy, you need to download the tuple whose is consistent with tuple , the same is true of the following. Then verify the signature of the tuple, if:
Step 1: The user uses his own decryption key to decrypt the decryption key and the signature key of the role from the tuple: .
Step 2: Use ’s decryption key to decrypt the symmetric key of the encrypted file from the tuple: .
Step 3: Use to decrypt the encrypted file from the tuple: .
Step 1: The user uses his own decryption key to decrypt the decryption key and the signature key of the role from the tuple: .
- Step 2: Use ’s decryption key to decrypt the decryption key and signature key of from the tuple:
Step 3: Use ’s decryption key to decrypt the symmetric key of the encrypted file from the tuple: .
Step 4: Use to decrypt the encrypted file from the tuple: .
: File writing algorithm. The user writes the file, that is, updates the file. The main steps are as follows:
First Case: If the user is a member of role and has permission to write the file . That is, tuple and exist. Then download these two tuples from the cloud and verify the signature. Note that due to the write-time re-encryption policy, the latest version of the file key is used here, i.e. download the largest version of the tuple in . The same is true of the following.
Step 1: The user uses his own decryption key to decrypt the role’s decryption key and signature key from the tuple: .
Step 2: User ’s decryption key to decrypt the symmetric key of the encrypted file from the tuple: .
Step 3: Build the new tuple and upload it to R.M.
Step 4: After R.M receives the tuple, it performs the following operations:
- (1)
Check that the tuple’s format is correct. If the tuple’s format is correct, then proceed to the next step.
- (2)
Verify the signature. If , proceed to the next step.
- (3)
R.M checks if role has permission to write the file . That is, check if tuple exists. If the tuple exists and the signature is valid, then R.M uses the new tuple instead of the old tuple.
- (4)
Delete all tuples associated with file and whose version numbers are less than .
Step 1: The user uses his own decryption key to decrypt the role ’s decryption key and signature key from the tuple: .
- Step 2: Use ’s decryption key to decrypt the decryption key and signature key of from the tuple:
Step 3: Use ’s decryption key to decrypt the symmetric key of the encrypted file from the tuple: .
Step 4: Build the new tuple and upload it to R.M.
Step 5: After R.M receives the tuple, it performs the following operations:
- (1)
Check that the tuple’s format is correct. If the tuple’s format is correct, then proceed to the next step.
- (2)
Verify the signature. If , proceed to the next step.
- (3)R.M checks if role has permission to write the file . That is, check if the following tuples exist:
If the tuples exist and the signature is valid, then R.M uses the new tuple instead of the old tuple.
Delete all tuples associated with file and whose version numbers are less than .
3 Conclusions
This paper combines identity-based cryptosystems and role-based access control models (RBAC1 model), and built an RBAC scheme based on identity cryptosystem in cloud storage. This paper first describes the application scenario and entity composition of the scheme; then gives the formal definition of the scheme; then describes the key technologies of the scheme, and introduces the four tuples used to describe the access control policy in detail and the designed optimization method in order to improve system efficiency-hybrid encryption policy and write-time re-encryption policy; this paper also gives a detailed description of the scheme, specific to each step of each operation; finally analyzes the scheme to prove that the scheme is correct, access control protected and secure.
Acknowledgement
This work is supported, in part, by the National Natural Science Foundation of China under grant No. 61872069, in part, by the Fundamental Research Funds for the Central Universities (N171704005), in part, by the Shenyang Science and Technology Plan Projects (18-013-0-01).