1. Introduction
As IoT devices are deployed in various environments such as houses, farms, factories, and grids, the development and spread of smart cities such as smart homes, smart factories, and smart grids continues. As the amount of data generated and collected by IoT devices increases exponentially, it is predicted that the total amount of data generated annually by 2024 will reach 149 ZB [
1]. IoT data are used as source data for services related to finance, medical care, artificial intelligence, and electricity bills.
Data access control technology that can provide IoT data to data users (e.g., managers of smart grids and financial institutions) in an appropriate service environment is required to utilize IoT data as source data for various services. To efficiently utilize IoT data and provide them to data users, the gateway collects IoT data, outsources them to a cloud server, and manages the data through the cloud [
2,
3]. However, the generated IoT data contain sensitive information such as user personal information, so privacy cannot be guaranteed if the data are indiscriminately viewed by institutions using the data. Moreover, data outsourcing also creates security and privacy concerns because it separates data ownership and data management [
4]. Therefore, access control for the data users is necessary to protect personal information and provide only data that meet the attributes of the data user that will use the data. To this end, data access control technology using attribute-based encryption (ABE) [
5] has recently attracted attention as a promising technology.
In the case of ciphertext-policy ABE (CP-ABE) [
6], each original datum is encrypted in relation to the access control structure set in advance by the encryptor. Data users can only decrypt the ciphertext if the set of attributes he or she uses satisfies the ciphertext access structure. IoT data producers need to be able to provide their data only to organizations that want them through the gateway to ensure privacy. Therefore, since the access structure for IoT data must be determined, using CP-ABE is suitable for the IoT environment.
Additionally, if the cloud server manages the computation and communication of most systems, including outsourced data and access control, it is vulnerable to a single point of failure and data management due to centralization issues [
7]. In order to solve this problem, research on the decentralization of cloud servers using blockchains has recently been conducted [
8,
9]. On the other hand, since IoT data are transmitted and received through open channels, malicious attackers can steal the data to perform attacks such as invasions of privacy, data exfiltration, and data abuse. Therefore, to solve these problems, it is necessary to study the application of ABE and blockchain for data privacy provision and access control. In addition, in order to securely store and provide data, gateways, cloud servers, and data users need to verify that they are valid entities through key agreement.
Therefore, in this paper, we suggest a security system that provides authentication while providing access control. We analyze the trends and problems of systems for secure access control and management of data generated in the IoT environment, and present the direction of blockchain-based access control and key agreement to solve these problems.
The main motivations and contributions of this study based on the problems and challenges mentioned above are as follows:
Unlike existing IoT data access control systems using blockchains, the proposed system guarantees data protection through mutual authentication and key agreement. The detailed method is as follows: The proposed system provides mutual authentication based on bilinear pairing and secure key agreement based on the DBDH assumption. In addition, it provides secure data outsourcing and data access control based on CP-ABE by using the session key generated through key agreement.
The gateway and the cloud server generate a session key through key agreement and mutual authentication, and the gateway can safely outsource data through the session key. Gateways can also prove data validation through self-signing when uploading data. Data users can request data to the cloud server and verify the received data through the gateway’s signature. Thus, the system can provide data accountability.
Since the proposed system utilizes a public permissioned blockchain, only data users, gateways, and cloud servers registered with the TA (trusted authority) can use the blockchain as a participant. By auditing the blockchain through data users, nonrepudiation of data can be avoided.
Detailed formal security validation utilizing the widely accepted “AVISPA Software Verification Tool” [
10], “indistinguishability game against selective chosen plaintext attack (IND-CPA)”, and “informal (nonmathematical) security analysis” shows that the suggested system guarantees safety against multiple potential attacks on smart city environments utilizing IoT.
Testbed experiments with cryptographic primitives in a laptop environment were performed using the popular “Multiprecision Integer and Rational Arithmetic Cryptographic Library (MIRACL)” [
11].
The remainder of this paper is organized as follows:
Section 2 reviews papers on data access control using CP-ABE and blockchain in IoT environments.
Section 3 outlines the proposed system model, blockchain, access structure, bilinear pairing, DBDH assumption, and adversary model.
Section 4 describes our proposed data access control system.
Section 5 describes the results of formal security validation using AVISPA and IND-CPA, and
Section 6 describes the results of informal security analysis. We analyze the efficiency and security features of the protocol in
Section 7. Finally,
Section 8 concludes the paper.
2. Related Works
Numerous studies on data access control using CP-ABE have been proposed; its application to the IoT environment has also been proposed. In 2007, Ling and Newport [
12] proposed a CP-ABE method that can be applied to both positive and negative attributes using an AND gate access structure. They proposed a structure that has been proven to be secure with plaintext selected under the decisional bilinear Diffie–Hellman (DBDH) assumption. Lewko and Waters [
13] suggested a CP-ABE method based on multiauthority, and argued that their system does not require collaboration between rapid institutions. However, in the initialization phase, all agencies must set key parameters, so their structure is impractical for large-scale systems.
In order to efficiently store and manage data, systems in which data are outsourced to a cloud server and controlled have been also proposed [
14,
15,
16,
17,
18]. Yeh et al. [
14] proposed a system that can collect patient information from IoT devices and use it for smart healthcare. For data integrity in their system, data are pre-encrypted before uploading to cloud servers, giving patients access control to data. Miao et al. [
15] proposed a CP-ABE-based data access control and keyword search system structure in a cloud-enabled mobile crowdsourcing environment. Liu et al. [
16] proposed an e-healthcare record system that uploads and shares health data collected from wearable IoT devices to a cloud server and protects the personal information of patients based on CP-ABE. Ding et al. [
17] proposed a structure that can ensure data security in IoT systems by using a pairing-free-based CP-ABE in IoT systems. Lu et al. [
18] proposed a secure data sharing system in cloud computing that ensures data privacy protection in resource-constrained mobile terminals. However, since these studies are data access control systems based on cloud servers, a centralization problem may occur, which may cause a single-point-of-failure problem.
Therefore, CP-ABE systems have been proposed for access control of IoT data based on blockchains to solve this centralization problem [
19,
20,
21,
22,
23,
24]. In 2018, Zhang et al. [
19] proposed a user-controlled data sharing system with privacy protection using fine-grained access control based on a blockchain and CP-ABE. In 2019, Ding et al. [
20] also proposed an ABE access control system for IoT. Blockchain technology was used to record the distribution of properties to prevent single-point errors and data tampering. They demonstrated that authentication can ensure strict access control, but there is no algorithm or protocol for this in their system. Guo et al. [
21] suggested a multiauthority blockchain-based ABE protocol for telemedicine systems. Unfortunately, Son et al. [
25] figured out that Guo et al.’s protocol [
21] is not suitable for real-world environments as patients must maintain their own attribute keys. Yang et al. [
22] proposed an EHR sharing system utilizing cloud computing based on ABE and blockchains. In 2021, Wei et al. [
23] designed an ABE algorithm for multiauthority scenarios with resource-constrained IoT devices in mind, thereby shifting data management to a blockchain instead of a central server. Qin et al. [
24] also proposed a blockchain-based CP-ABE system using cloud computing with consideration to the resource limitations of IoT devices. However, the authentication they proposed [
19,
20,
21,
22,
23,
24] is authentication for data, not mutual authentication between entities participating in communication. For secure communication, the session key must be calculated by performing mutual authentication and key agreement.
Blockchain-based CP-ABE access control systems have been proposed in various smart environments using IoT devices. However, most studies do not provide mutual authentication, key agreement, data access control, validation and accountability at the same time. Therefore, we propose a structure that guarantees a secure data outsourcing process through mutual authentication and key agreement and provides data access control using CP-ABE technology. In addition, our proposed structure proposes an access control system that provides functions of data nonrepudiation, data accountability, and data validation based on a blockchain.
3. System Models and Preliminary Work
We present the proposed system model for IoT data access control considering data users in the different IoT environments. We describe blockchain characteristics, ABE, and the adversary model used in our system.
Table 1 is an explanation of abbreviations and symbols used in this paper.
3.1. System Model
Our proposed data access control system model is described in
Figure 1. The proposed system model consists of the following four entities:
Cloud Server (CS): A set of CSs forms a “CS network”, where a distributed ledger is maintained for block additions. CSs are honest but curious entities. Moreover, the CS receives the IoT data and provides the data to the data user when the user’s attribute value matches. In addition, the CS uploads data such as data attributes, signature values, and public keys to the blockchain to solve the centralization problem.
Gateway (GW): Gateways are distributed in various smart environments that make up the smart city. The gateway collects IoT data from each environment and uploads them to a cloud server with attribute-based encryption appropriate for each attribute.
Data User (DU): Data user refers to a person who charges fees using IoT data or provides services such as artificial intelligence, finance, and medical care using IoT data. The data user requests an attribute key from the TA. After that, the TA can request data matching the attribute from the cloud server, and can obtain the original data by decrypting the received data through the attribute key.
Trusted Authority (TA): All data users, gateways, and cloud servers must register with a fully trusted .
Blockchain: In the proposed system model, the blockchain is composed of a public permissioned blockchain. To solve the problem of centralization of CSs, the blockchain stores the storage address of data stored in the
CS, the public key of each component, hash, data access tree, etc., on behalf of the
CS. The “practical Byzantine fault tolerance (PBFT) consensus algorithm” [
26] has been applied for adding blocks to existing blockchains, verifying blocks, and voting-based consensus algorithms. Data users audit the blockchain ledger. All blockchain members can read the ledger, but only data users and cloud servers can upload transitions to the blockchain. When the
DU requests information from the
CS, the
CS checks whether the access tree of the requested information and the attributes of the
DU match through the blockchain. If the attributes match the access tree, the
CS passes the encrypted data to the
DU.
In the setup phase, generates and publishes parameters necessary for the system and tree. During the registration phase, s, s, and are registered with through closed channels. Through the attribute key generation phase, can ask for a key that matches his attribute, and use the acquired attribute key to decrypt the encrypted data. In the authentication phase, and perform authentication and key agreement for data upload. In the data upload phase, uploads data to the cloud server through the agreed session key. Simultaneously, uploads the signature as a verification value to verify its own data and the upload time to the blockchain. In addition, uploads the attribute tree value of the data and the record address value where the data are stored to the blockchain. In the data request and provide phase, requests data from , and verifies the ’s request message, checks the attribute value of through the blockchain, and transmits the corresponding data to . downloads the verification value from the blockchain for the transmitted data, verifies that they are valid data, and can decrypt the data with its own attribute key.
3.2. Blockchain
A blockchain is a distributed data storage system that can solve the single-point-of-failure problem that can occur by being concentrated in the cloud server. The decentralized nature of blockchains can provide nonrepudiation of data, accountability, and transparency. In addition, the timestamp recorded on the blockchain allows blockchain participants to know the transaction generation time [
27]. In general, four types of blockchain platforms are defined:
Public permissionless blockchain: A public permissionless blockchain provides a ’low trust’ environment where anyone can run nodes and participate in the network. A public permissionless blockchain can be accessed by anyone, and any node can participate in the consensus protocol. Moreover, anyone can read the entire ledger of transactions.
Public permissioned blockchain: Public permissioned blockchains have rules that determine who can participate in the verification process and launch nodes. They are commonly used by public institutions such as government agencies, businesses, or educational institutions. Whitelisted nodes can participate in the consensus mechanism. Owners create validator nodes that define governance rules for the blockchain, including those who can create new nodes or write to the blockchain. However, read access can be used by anyone who makes the blockchain publicly accessible.
Private permissionless blockchain: A private permissionless blockchain has no restrictions on who can participate in the consensus mechanism. However, unlike public permissionless convex chains, there are restrictions on who can read and write content on the blockchain.
Private permissioned blockchain: These blockchains are controlled by a unique group of one or several owners who determine the participants in the consensus mechanism. Only selected user groups can read or write to these blockchains. If public verification of records is not required, consider private permissioned blockchains.
In this paper, only cloud servers and data users of smart cities can write to the blockchain. Therefore, in this paper, a public permission-type blockchain is adopted, and the consensus algorithm uses PBFT.
3.3. Access Structure
According to [
6], we use the following access tree as an access structure.
Assuming that is an access tree, includes , where v is a node of , is threshold value of v, is the number of children nodes of v, is unique index of v, and is a parent node of v. Assuming v is an internal node, v is the threshold gate denoted by and . and gates are defined as follows: when , it is an gate if and an gate if .
Moreover, in the case where v is a leaf node, it is described as the attributes . To fit with attribute set , have to match the threshold gate at root node of . Here, is defined only if v is a leaf node and represents an attribute related to leaf node v in the tree. In the first case, is an attribute and its key satisfies the access tree . In the following case, if is a threshold gate whose child node is an attribute, the access tree is satisfied when holds the threshold gate of . In other cases, such as where is a threshold gate and the child nodes are also threshold gates, the method in the second case can be applied recursively to solve it.
3.4. Bilinear Pairing
Let and be recursive groups with large prime q, and let them be addition and multiplication groups, respectively. Then, a map that satisfies the following conditions can be applied to the bilinear map .
Efficiency: For all , are able to be computed in polynomial time.
Bilinearity: For all , and for all , is .
Nondegeneracy: Existing , then , where is the identifying element of .
3.5. Decisional Bilinear Diffie–Hellman (DBDH) Assumption
Let
be a group of order
q;
P be a generator of
; and
be chosen randomly. The DBDH assumption [
28] is that it is difficult for a probabilistic polynomial time adversary
to distinguish
from
. The advantage
of
is defined as follows:
If there is no can decide whether , that is deciding whether or , with a non-negligible advantage, the DBDH assumption holds.
3.6. Adversary Model
We adopt the widely accepted “Dolev–Yao (DY) threat model” [
29] for cryptographic analysis of protocol security. A malicious adversary could, according to the assumptions of the DY model, intercept messages sent over public channels. Attackers can also modify, insert, delete, or eavesdrop on hijacked messages.
An adversary takes full control of transmitted messages sent over an open wireless channel and learns from the messages. The attacker can then modify, remove, or insert a legitimate message.
In polynomial time, an adversary is able to only guess one value, because guessing more than one value at a time is “computationally infeasible”, for example, guessing an ID and password at the same time.
An adversary can steal or obtain a valid smart card. The adversary can perform a power analysis attack [
30,
31] on a smart card to steal sensitive information stored on the smart card.
In addition, this paper adopts the assumption of the “CK adversary model” [
32], which is a more powerful attack model considering the actual environment. The CK attack model is considered the de facto standard for modeling key exchange protocols. Therefore, in the CK model, for the session key agreed upon between the communicating parties to be secure, the key exchange protocol must minimize the impact of persistent (long-term) or temporary (short-term) secret leaks.
4. Proposed Data Access Control System for IoT Environments
In this section, we propose a method of access control for IoT data, which overcomes the limitations and security pitfalls of previous access control methods. In addition, the proposed protocol guarantees stronger security through authentication in the existing access control method.
4.1. Setup Phase
TA generates public parameters for use in the system’s attribute-based encryption and blockchain. The following steps are followed:
Step SP1: generates and in the same order q, where is an additive cyclic group and is a multiplicative cyclic group. Then, generates a bilinear map . chooses the secret keys and in , and chooses , where P is a generator. Moreover, chooses the hash functions and .
Step SP2: computes the public key , a factor of an attribute key and a factor for decryption . Then, publishes ().
4.2. Registration Phase
For key agreement and authentication, , of the IoT environment, and have to register at . This phase runs through a secure channel.
4.2.1. Cloud Server Registration Phase
This phase is also executed over the secure channel:
Step CSR1: A cloud server picks its identity and generates a random number . computes . Then, sends to the trusted authority through a closed channel.
Step CSR2: After that, stores in a its secure database. computes as ’s private key. After that, sends to over a secure channel.
Step CSR3: computes the public key .
4.2.2. Data User Registration Phase
When a new data user registers with , the following steps are followed:
Step UR1: chooses unique identity and password and . generates random nonces and , where they are in . Then, computes and . After that, sends , to via closed channels.
Step UR2: After receives the request message, computes and . stores with in a its secure memory and stores in a smart card . Then, issues to . At the same time, sends to via closed channels.
Step UR3: After receiving , computes , , , and . Then, stores , , and into and computes a public key as .
Step UR4: After receiving message, computes and stores in its secure database. also stores with .
4.2.3. Gateway Registration Phase
In this phase, the following steps are performed in the closed channel:
Step GWR1: A gateway chooses identity and generates a random nonce . computes . Then, generates a public key and sends to the trusted authority via closed channels.
Step GWR2: After that, computes and stores with in a its secure database. Then, sends to over a secure channel. At the same time, sends through secure channels.
Step GWR3: computes and stores in its secure database. also stores with .
4.3. Attribute Key Generation Phase
In this phase, the data user with attributes requests the attribute key from the and provides the corresponding key.
Step AKG1: chooses his/her attributes and sends it to to request the attribute key.
Step AKG2: After that, generates random nonces . In addition, computes for all , and also computes and . Then, computes attribute keys ). Finally, sends attribute keys to .
Step AKG3: After receiving attribute keys, uploads the transaction to the blockchain.
4.4. Authentication and Key Agreement Phase
For uploading the IoT data to the cloud server,
and
authenticate each other. They authenticate each other to secure mutual trust, and later, by establishing the session key
,
and
can configure a secure communication channel. The detailed steps involved in this step are shown below and are summarized in
Figure 2.
Step AK1: generates a random number and timestamp , and computes , , , , and . Then, sends a request message , , to over an insecure channel.
Step AK2: After receiving the message, retrieves using and verifies . If it corrects, computes , , and . After that, checks . If they are the same, is authenticated. After that, generates a and timestamp . In addition, computes , , and also computes , as a session key, and . Then, sends a response message to through public channels.
Step AK3: After that, checks the validity of . If it is valid, computes and . Then, checks . If it holds, considers as authentic and computes the session key shared with as .
Finally, and complete mutual authentication to generate the same session key for IoT data upload.
4.5. Data Upload Phase
uploads IoT data through the session key agreed with . At this time, encrypts data through CP-ABE and uploads them to so that only with appropriate attributes can access data sharing. In addition, generates the signature value for data verification of . stores encrypted data and uploads ’s signature value, public key, attribute tree, and stored server address value to the blockchain. Detailed steps related to this phase are provided below.
Step DU1: chooses an access tree and root of tree . Then, generates a timestamp and selects a random polynomial with degree . generates a random number for a leaf node x of . Thereafter, computes , .
For other leaf nodes of , chooses a random point of polynomial . Then, calculates and for all leaf nodes of . The ciphertext consists of . also computes the signature of data as follows. computes , , and as the signature. Finally, sends to through a open channel.
Step DU2: After that, decrypts using the session key and checks . If these values are equal, stores in its database and sets to the record address. At the end, uploads the transaction to the blockchain.
4.6. Data Request and Provide Phase
Step DRP1: inserts the smartcard and inputs and . Then, computes , , and . checks . If it is valid, generates random nonce and timestamp , and computes , , . After that, obtains the transaction . computes and sends the data request message , , , .
Step DRP2: After receiving the message, retrieves using and verifies . If it holds, computes and . Then, checks . If this equality holds, obtains from the blockchain. Then, computes and confirms that satisfies tree of . If it is met, calculates . Then, sends the message , .
Step DRP3: After receiving the message, computes . Then, checks acquired on the blockchain. Depending on the type of root node, data decryption proceeds as follows.
Case 1: If
is a leaf node,
calculates
and
. Then,
computes
and
. Then,
computes
for data decryption. Thereafter,
can decrypt as follows:
Case 2: We assume that root node is a threshold gate and child nodes are attributes. Before we describe the decryption computation, we define the symbols and . is a set of child nodes of the root node, and is Lagrange coefficient, where .
computes
for all leaf nodes
. After that,
computes decrypt key:
Then, can decrypt the IoT data.
4.7. Data Validation Phase
If the data users want to verify that the gateway information is correct, data verification can be performed during this phase. This data validation ensures that the gateway is accountable for its own data and that the data user can obtain the reliability of the data. A detailed description of this phase is provided bellow:
Step DVP: obtains , , , and from the transaction related to the data. computes . Then, checks . If it is valid, can be considered as data validation completed.
4.8. Block Formation and Addition Phase
In the key generation phase and data upload phase,
and
create a transaction and upload it to the blockchain. We describe it in detail in terms of
in this section, and the block construction and addition of
is similar. The “practical Byzantine fault tolerance (PBFT) consensus algorithm” [
26] has been applied for adding blocks to existing blockchains, verifying blocks, and voting-based consensus algorithms. The block structure is depicted in
Figure 3, and the entire algorithm of block addition is given in Algorithm 1.
Algorithm 1 PBFT Consensus for Block Addition in Blockchain by Cloud Server |
- 1:
Input: Block as shown in Figure 3, transactions pool , transactions threshold , number of nodes: , minimal approval - 2:
Output: Commitment for block addition () - 3:
Assume that a cloud server node () is elected as a leader - 4:
picks a fresh timestamp and creates a block with - 5:
sets and sends to follower cloud server nodes () for voting request - 6:
for each follower do - 7:
if (() and () and () and ()) then - 8:
Set - 9:
end if - 10:
end for - 11:
if () then - 12:
Add to the blockchain - 13:
Broadcast commitment message to - 14:
end if
|
4.8.1. Block Formation Phase
At the data upload phase of our system, the data generated by are uploaded to using agreed between and at the authentication and key agreement phase. safely gathers t counts of data, filters that information, and then generates t counts of transactions , for 1, 2,…, t, to contribute to the transactions pool. To describe this in detail in terms of the data upload phase, computes the Merkle tree root () for transactions and calculates “elliptic curve digital signature” for transactions as , where .
4.8.2. Block Addition Phase
After block formation phase, the for the transaction existing in the block is verified. In addition, conducts a voting-based PBFT consensus algorithm. The nodes ( represent the number of peers in ) form a distributed P2P network. Here, each node is considered a peer node that is responsible for adding blocks. After the peer node receives the , peer node verifies it with the existing transaction pool. When all transactions in are confirmed by the transaction pool, the peer puts a valid vote into the commit message pool. constantly checks the commit message pool and checks when the minimum approval for block additions on the blockchain is reached; where , the new block will be added to the blockchain.
5. Formal Security Validation: AVISPA Simulation Study and IND-CPA
In this section, we utilize the “AVISPA simulation tool” [
10] and IND-CPA to verify the security of the proposed system.
5.1. AVISPA Simulation
We use the “AVISPA Simulation Tool” [
10] in this section to validate our proposed system security against man-in-the-middle and replay attacks.
In AVISPA, there are four backends: “tree automata based on automatic approximations for analysis of security protocols (TA4SP)”, the “SAT-based model checker (SATMC)”, the “on-the-fly-mode-checker (OFMC)” and the “constraint-logic-based attack Searcher” (CL-AtSe)”. Among these, the SATMC and TA4SP backends can not aid the “bitwise exclusive OR (XOR)”. However, since our system has an XOR operation, two backends are not suitable for analysis. Therefore, we adopt two backends, OFMC and CL-AtSe, which support XOR operation, and use them for analysis. In the proposed system, “High-Level Protocol Specification Language (HLPSL)”, a language supported by AVISPA, is used to implement the basic roles of
and
.
Figure 4 shows the HLPSL implementation of the role user.
At transition 1, sends the request message } to using operation and , which means the secure channel. The declaration means that the random nonce and secret key are only known to .
At transition 2, receives the from . In login and authentication phase, sends the message to through insecure channel. The declaration means that generates a random nonce for .
At transition 3, receives the message from . The declaration specifies that request to the for checking the value of .
HLPSL of cloud server is implemented similarly to gateway’s HLPSL. In addition, it implements “composite roles and goals for sessions and environment” of the proposed system through HLPSL. AVISPA used in this section is a security validation simulation based on the DY model [
30].
Figure 5 gives the analysis results performed on the CL-ATse and OFMC backends. The figure clearly shows that the proposed system can be resistant to “replay and man-in-the-middle attacks”.
5.2. IND-CPA Security
We prove the confidentiality property of our system with the game of IND-CPA. In our scheme, the game is defined as follows.
Init. The adversary gives a challenge access structure .
Setup. The simulator executes Setup phase and sends the public parameters to the adversary .
Phase 1. queries multiple private keys corresponding to different sets of attributes where .
Challenge. submits two plaintext and , where to the simulator with . flips the coin , encrypts under , and sends the ciphertext to .
Phase 2. repeats Phase 1 with the attribute sets where .
Guess. outputs a guess of b to the simulator . If , wins the game.
The adversary ’s advantage in this game is defined as . If in probabilistic polynomial time can be played with a non-negligible advantage , then we prove that the problem of the DBDH assumption can be solved with .
Proof. Assume that the adversary wants to take advantage of to subvert the system. We build a simulator to play the DBDH game with a advantage. We proceed through the simulation process as follows. The challenger randomly picks and generator . flips a coin to obtain a random value . If , , which means . Otherwise, means . After that, transmits the results to .
Init. The simulator runs to create access structure that hopes to attack. Then, transmits it to .
Setup. computes public parameters , where . Then, sends them to .
Phase 1. requests multiple private keys corresponding to different sets of attributes where . The simulator generates random nonces . computes for all , , , . Then, sends to .
Challenge. submits to the simulator with plain text and of equal length. randomly tosses a coin to obtain . If , then . In this case, we let , then and . Otherwise, if , then and . computes . Then, chooses a random point of polynomial and computes , for all leaf nodes of . Then, sends to .
Phase 2. The adversary repeats Phase 1 to obtain the private keys that are associated with attribute sets and .
Guess. guesses
of
b. If
,
gives a result 1, otherwise, it gives a result 0. If
gives a result 0, then
.
can obtain practical ciphertext
. The advantage in this case is
, so we obtain
. When
gives a result 0, it means
.
obtains the wrong ciphertext, and does not have the advantage of guessing the correct
, so it is able to obtain
. Therefore, the probability
of a successful game is
Therefore, our scheme ensures IND-CPA security.
□
6. Informal Security Analysis
We provide an nonmathematical (informal) security analysis of whether the proposed system can provide various security features and safety against possible attacks.
6.1. Correctness of Data Decryption Key
If the leaf node
is a root node
, we check the correctness of the decryption key as follows:
6.2. Guessing Attacks
The malicious adversary cannot guess the data user’s and in the proposed system. obtains the credentials stored on the smart card. However, since is encrypted with random numbers and , cannot obtain sensitive information. Furthermore, these values are protected via “a one-way collision-free hash function ”. In addition, is masked by the unknown parameter and secret key . As a result, our proposed system can resist guessing attacks.
6.3. Tracing Attacks and Provides Anonymity
The adversary is trying to obtain the real IDs of and to perform a tracking attack. In our system, the user’s real identity is hidden by masked with a random number . In addition, the sends the message through the public channel using the temporary ID received from via an insecure channel. Moreover, hides its real ID as . sends a message through the public channel with the temporary ID obtained from . So, cannot know original IDs and . This demonstrates that our system provides anonymity and can resist tracing attacks.
6.4. Impersonation Attacks
may attempt to impersonate each entity by calculating legitimate messages to obtain information. In our system, messages sent over public channels are encrypted using random numbers , , , and and secret values and . Moreover, in the data upload phase, the message is encrypted by the session key . tries to take out these values, but this cannot be carried out. In addition, each of the entities check , , and . Therefore, the proposed system can provide protection against impersonation attacks.
6.5. Ephemeral Secret Leakage Attacks
In the authentication and key agreement phase, and establish the session key in our system. The depends on “ephemeral secrets and ” and long-term secret . Even if the attacker “short-term secret and ” is compromised for , guessing without long-term secret is “a computationally difficult problem.” Likewise, even if “long-term secret ” is compromised to , deriving is also “computationally difficult. except for short-term secrets. Since between the gateway and the cloud server is distinct and unique, leaking from a session to is “computationally infeasible” as it applies both short-term and long-term secrets without having to compute another session key in another session. Therefore, the proposed system prevents ephemeral secret leakage attacks.
6.6. Mutual Authentication and Key Agreement
At our system, and use the and values to authenticate each other by verifying the message. Every transmitted message is changed with a random number and current timestamps. and authenticate each other through an authentication and key agreement phase and compute the same session key only if the authentication is complete. Therefore, our system provides key agreement through mutual authentication.
6.7. Data Access Control, Validation and Accountability
The proposed system can provide access control to IoT data of . establishes an access tree for IoT data and uses it to encrypt data and upload them to . Then, only with the appropriate set of attributes in the IoT data’s access tree is able to request data from and decrypt them with the attribute key. In addition, uploads the signature value of its own data to the transaction on the blockchain. can confirm that the data are uploaded by through the signature value of the transaction, which means that guarantees accountability for its own data when uploading. Thus, the system can provide data access control, validation, and accountability.
8. Conclusions
In this paper, we proposed an access control system for IoT data in various IoT environments based on CP-ABE and blockchains. Existing systems do not provide mutual authentication and key agreement for secure communication. However, the proposed system guarantees secure communication through these two properties. In addition, the proposed system can provide data validation and accountability to data users. To verify the safety of our system, formal and unofficial security analysis was performed, and the proposed system was compared and analyzed with existing systems in terms of security and functionality. Through the analysis results, it was found that the proposed system is safe against guessing, tracing, ESL, and session key disclosure attacks, unlike existing systems. In addition, our protocol can be said to be an efficient protocol because it has a computation cost similar to or lower than that of existing systems and a lower communication cost than existing systems.
In the future, we plan to design a more efficient access control system. In this paper, we used the traditional CP-ABE, but we need to design an efficient ABE for a more efficient system design. In traditional CP-ABE, when the number of users or the number of attributes increase, the number of pairing operations increases. This will increase the computational cost of the system, which will make it impossible to provide real-time services to users in the IoT environment. In order to solve this problem, there is a need to study a new method of access control in the future. If we develop an efficient access control method even if the number of users and attributes increases, we will be able to design an access control system that is more suitable for the IoT environment.