| Literature DB >> 32213888 |
Yuta Nakamura1, Yuanyu Zhang1, Masahiro Sasabe1, Shoji Kasahara1.
Abstract
Due to the rapid penetration of the Internet of Things (IoT) into human life, illegal access to IoT resources (e.g., data and actuators) has greatly threatened our safety. Access control, which specifies who (i.e., subjects) can access what resources (i.e., objects) under what conditions, has been recognized as an effective solution to address this issue. To cope with the distributed and trust-less nature of IoT systems, we propose a decentralized and trustworthy Capability-Based Access Control (CapBAC) scheme by using the Ethereum smart contract technology. In this scheme, a smart contract is created for each object to store and manage the capability tokens (i.e., data structures recording granted access rights) assigned to the related subjects, and also to verify the ownership and validity of the tokens for access control. Different from previous schemes which manage the tokens in units of subjects, i.e., one token per subject, our scheme manages the tokens in units of access rights or actions, i.e., one token per action. Such novel management achieves more fine-grained and flexible capability delegation and also ensures the consistency between the delegation information and the information stored in the tokens. We implemented the proposed CapBAC scheme in a locally constructed Ethereum blockchain network to demonstrate its feasibility. In addition, we measured the monetary cost of our scheme in terms of gas consumption to compare our scheme with the existing Blockchain-Enabled Decentralized Capability-Based Access Control (BlendCAC) scheme proposed by other researchers. The experimental results show that the proposed scheme outperforms the BlendCAC scheme in terms of the flexibility, granularity, and consistency of capability delegation at almost the same monetary cost.Entities:
Keywords: Capability-Based Access Control (CapBAC); Ethereum Blockchain; Internet of Things
Mesh:
Substances:
Year: 2020 PMID: 32213888 PMCID: PMC7146582 DOI: 10.3390/s20061793
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Blockchain system.
Figure 2Data Structure of Ethereum Blockchain.
Symbols in ICap and IDC Tokens.
| Variable | Meaning |
|---|---|
|
| The associated object. |
|
| Identifier (ID) of the subject |
|
| A set of authorized actions (e.g., read, write, and execute). |
|
| ID of the parent subject that delegated |
|
| ID of descendant subjects to which the |
|
| Depth of the IDC in the delegation tree. |
Figure 3Delegation Tree in the BlendCAC Scheme.
Figure 4Delegation Graph of the Proposed CapBAC Scheme.
Figure 5Experiment Environment.
Ethereum Addresses of the Subjects.
| Variable | Address |
|---|---|
|
|
|
|
|
|
|
|
|
Figure 6Token Creation by the Owner Entity .
Figure 7Delegation of read Token from Subjects to .
Figure 8Revocation of read Token.
Figure 9Access Result When Subject Sends Requests.
Variables in Measurement of Gas.
| Variable | Meaning |
|---|---|
|
| The number of characters or the array element. |
|
| Specified action name by transaction sender. |
|
| The array of actions used in BlendCAC. |
|
| The number of the descendants of the specified address. |
Gas Used in createAction() ABI.
|
|
|
| |||
|---|---|---|---|---|---|
|
|
|
|
|
|
|
| “exe” | 123,902 | “read” | 123,966 | “write” | 124,030 |
| “end” | 108,902 | “Edit” | 108,966 | “start” | 109,030 |
| “GET” | 108,902 | “POST” | 108,966 | “read2” | 109,030 |
Gas Used in BlendCAC’s createAction() ABI.
|
|
|
|
|---|---|---|
| 0 | “read” | 64,435 |
| 1 | “edit” | 51,774 |
| 2 | “POST” | 54,110 |
| 3 | “exe2” | 56,446 |
Gas Used in delegation() ABI.
| Delegator | Delegatee |
|
|---|---|---|
|
|
| 162,386 |
|
|
| 162,386 |
|
|
| 162,386 |
|
|
| 147,386 |
|
|
| 147,386 |
Gas Used in BlendCAC’s delegation() ABI.
| Delegator | Delegatee | Gas |
|---|---|---|
|
|
| 171,509 |
|
|
| 171,509 |
|
|
| 171,509 |
|
|
| 156,509 |
|
|
| 156,509 |
Gas Used in singleRevocation() ABI.
|
|
|
|---|---|
| 0 | 40,329 |
| 1 | 64,659 |
| 2 | 68,778 |
| 3 | 72,897 |
| 4 | 77,016 |
Gas Used in allChildrenRevocation() ABI.
|
|
|
|---|---|
| 0 | 37,021 |
| 1 | 59,127 |
| 2 | 81,233 |
| 3 | 103,339 |
| 4 | 125,445 |
Gas Used in BlendCAC’s allChildrenRevocation() ABI.
|
| Gas |
|---|---|
| 0 | 32,009 |
| 1 | 51,156 |
| 2 | 70,303 |
| 3 | 89,450 |
| 4 | 108,597 |
The gas used in ABIs.
| Functions | Our Scheme | BlendCAC |
|---|---|---|
| Token creation |
|
|
| Simple delegation |
|
|
| Flexible delegation | - | |
| All children revocation |
|
|
| Single revocation |
| - |