Next Article in Journal
New Insights towards High-Temperature Ethanol-Sensing Mechanism of ZnO-Based Chemiresistors
Next Article in Special Issue
Epidemic Analysis of Wireless Rechargeable Sensor Networks Based on an Attack–Defense Game Model
Previous Article in Journal
A Software Architecture for the Industrial Internet of Things—A Conceptual Model
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A Secure IoT-Based Authentication System in Cloud Computing Environment

1
Department of Information Engineering and Computer Science, Feng Chia University, Taichung 40724, Taiwan
2
Department of Computer Science, National Tsing Hua University, Hsinchu 30013, Taiwan
3
Department of Information Management, Chaoyang University of Technology, Taichung 41349, Taiwan
4
Information and Engineering College, Jimei University, Fujian 361021, China
5
Department of Industrial Engineering and Management, Chaoyang University of Technology, Taichung 413310, Taiwan
*
Author to whom correspondence should be addressed.
Sensors 2020, 20(19), 5604; https://doi.org/10.3390/s20195604
Submission received: 18 August 2020 / Revised: 24 September 2020 / Accepted: 27 September 2020 / Published: 30 September 2020
(This article belongs to the Special Issue Security and Privacy in the Internet of Things (IoT))

Abstract

:
The Internet of Things (IoT) is currently the most popular field in communication and information techniques. However, designing a secure and reliable authentication scheme for IoT-based architectures is still a challenge. In 2019, Zhou et al. showed that schemes pro-posed by Amin et al. and Maitra et al. are vulnerable to off-line guessing attacks, user tracking attacks, etc. On this basis, a lightweight authentication scheme based on IoT is proposed, and an authentication scheme based on IoT is proposed, which can resist various types of attacks and realize key security features such as user audit, mutual authentication, and session security. However, we found weaknesses in the scheme upon evaluation. Hence, we proposed an enhanced scheme based on their mechanism, thus achieving the security requirements and resisting well-known attacks.

1. Introduction

With the rapid development of computer science and network technology, the concept of the Internet of Things (IoT) has become a hot topic for research. A scientist named Ashton introduced this concept in 1991. In IoT, numerous sensors have the capability of collecting data and communicating with each other or providing data for human beings through the Internet.
Therefore, technology can be widely used in the smart power grid, smart home, and other fields. In a smart grid, sensors monitor electric energy consumption and time-of-use rates for power stations. Then, the stations can optimize power supply. In the intelligent transportation system, sensors monitor traffic to optimize navigation. In the smart home, users can control, monitor, and access items remotely. Though IoT is close to our lives, it suffers from security challenges due to the wireless nature of the communication channel [1].
In order to protect against those security challenges in IoT, authentication is indispensable. Authentication guarantees that the messages received by the receiver are from a legal message sender. It serves as the first line of defense against potential attackers. Authentication is considered the key requirement for IoT [2]. The cryptography in authentication falls into two broad categories: symmetric encryption and asymmetric encryption. Common asymmetric encryption includes elliptic-curve cryptography (ECC) and RSA encryption.
Asymmetric encryption uses pairs of keys, i.e., public key and private key. Although, asymmetric encryption is generally considered to have higher security, it requires a higher computational cost. On the other hand, common symmetric encryption, e.g., the advanced encryption standard (AES) and data encryption standard (DES), use a shared key between two or more parties. Symmetric encryption has the advantages of low computational cost and fast encryption speed. Some authentication schemes have been recently presented by using asymmetric encryptions [3,4,5,6,7,8,9,10]. However, traditional asymmetric encryptions do not suit IoT devices due to limited resources of most IoT devices, which gives rise to lightweight authentication schemes [11,12,13,14,15,16,17,18,19,20,21].
To solve security disadvantages, many lightweight authentication schemes have been proposed. In 1981, Lamport [22] first suggested lightweight authentication using a password. The scheme also uses hash chains to go through unsafe communication channel for remote user authentication. However, the scheme relies on a password table, which makes it very easy to steal personal data. After that, many user authentications with a password and key negotiation techniques have been put forward [23,24,25,26,27,28,29,30]. In 2007, Liao et al. [31] proposed an authentication scheme based on a hash function for a multi-server environment. Further, Hsiang et al. [32] pointed out that Liao et al.’s scheme [31] is subject to multiple security threats, e.g., insider attack, masquerade attack, and user/server forgery attacks. Hsiang et al. [32] then proposed a new authentication scheme and claimed their scheme has fewer computations and higher security. In 2011, Sood et al. [33] proposed an authentication scheme using a dynamic identity for multi-server circumstances and criticized Hsiang et al.’s scheme [32] for having a wrong password change phase and not resisting replay and impersonation attacks. In the same year, Lee et al. [34] assessed Sood et al.’s programme [33] and concluded that it was not safe. In 2014, Xue et al. [35] pointed out that Lee et al.’s scheme [34] failed under the circumstances of pseudonym attack and offline password guessing attack. Later, Amin et al. [36] criticized the scheme in [35], saying that it lacked identity hiding features and could not resist offline password guessing attack. Recently, some authentication schemes are also used in vehicular ad-hoc networks (VANETs) [37,38,39,40] or smart grid [41]. It shows the universality of authentication. In 2019, Zhou and other [42] proposed their scheme based on a hash function and exclusive or operation of the two-factor authentication scheme, claiming their authentication scheme has been proven safe and could resist various attacks.
We reviewed the scheme of Zhou et al. [42] and pointed out the weaknesses such as the inability of replay attacks to achieve user anonymity and provide mutual authentication. We proposed an improved scheme that has a better balance between efficiency and security. Therefore, the scheme is more suitable for IoT based environment. The contribution of this paper is to enhance the resistance to replay attack, thus improving user anonymity and providing mutual authentication based on Zhou et al.’s scheme [42].
The rest of this article is arranged as follows: Section 2 provides an overview of Zhou et al. ‘s scheme, focusing on its registration and certification phases. Then, the security analysis of the scheme proposed by Zhou et al. [42] was conducted. Section 3 introduces the scheme we proposed. Safety analysis and performance evaluation are described in Section 4 and Section 5. Section 6 gives the conclusion.

2. Related Works

In Section 2.1., we will introduce the authentication scheme proposed by Zhou et al. [42]. In addition, we will present the security issues of Zhou et al.’s scheme in Section 2.2.

2.1. Review of Zhou et al.’s Scheme

Zhou et al.’s scheme is divided into three stages: registration, authentication, and password modification. Here, we introduce the first two phases.

2.1.1. Registration Phase

There are two parts in this phase: user registration and cloud server registration.

User Registration

First, user Ui selects four values (i.e., identity IDi, pseudo-identity PIDi, password PWi, and a random number bi to calculate HPi = h(PWi ||bi). The Ui then sends the IDi and PIDi to the control server CS. When CS receives (IDi, PIDi), CS will check whether or not IDi is in the database. If not, CS uses secret key x to calculate C1* = h(PIDi||IDcs||x) and C2* = h(IDi||x); otherwise, CS will stop the authentication. CS stores IDi in its database and sends (C1*, C2*, IDcs) to Ui. When Ui receives (C1*, C2*, IDcs), Ui calculates three values, C1 = C1*HPi, C2 = C2*h(IDi||HPi), and C3 = bih(IDi||PWi), then stores (C1, C2, C3, PIDi, IDcs) in a smart card.

Cloud Server Registration

Cloud server Sj sends (SIDj, PSIDj) to CS, where SIDj is the identity of Sj and PSIDj is the pseudo-identity of Sj. When CS receives (SIDj, PSIDj), CS calculates B1 = h(PSIDj||IDcs||x) and B2 = h(SIDj||x). Finally, CS stores SIDj in a database and sends (B1, B2, IDcs) to Sj, and Sj stores (B1, B2, SIDj, PSIDj, IDcs) in a memory.

2.1.2. Authentication Phase

When user Ui wants to connect with a cloud server, the user will perform the following five steps with the cloud server (Sj) and the control server (CS).
Step 1: User inputs his IDi and PWi. A smart card will select a random number ru and new pseudo-identity PIDinew; then, it calculates bi = C3h(IDi||PWi), HPi = h(PWi||bi), C1* = C1HPi, and C2* = C2h(IDi||HPi). The smart card then calculates D1 = C1*ru, D2 = h(ru||PIDi||IDcs)⊕IDi, D3 = C2*h(IDi||HPi)⊕ PIDinewh(ru||IDi), and D4 = h(IDi||PIDi||PIDinew||ru||D3). Ui sends the message M1 = {PIDi, D1, D2, D3, D4} to Sj.
Step 2: When Sj receives M1, Sj selects a new pseudo-identity PSIDjnew and a random number rs to calculate D5 = B1rs, D6 = h(rs||PSIDj||IDcs)⊕SIDj, D7 = B2PSIDjnewh(rs||PSIDj), and D8 = h(SIDj||PSIDj||PSIDjnew||rs||D7). Sj sends the message M2 = {M1, PSIDj, D5, D6, D7, D8} to CS.
Step 3: When CS receives M2, CS calculates ru = D1h(PIDi||IDcs||x), IDi = D2h(ru||PIDi||IDcs), and PIDinew = D3h(IDi||x)⊕h(ru||IDi). CS checks whether IDi in the database and D4? = h(IDi||PIDi||PIDinew||ru||D3). If IDi is in the database and D4 = h(IDi||PIDi||PIDinew||ru||D3), it means that CS confirms Ui is a legal user. Otherwise, the authentication process will be terminated. Then, CS calculates rs = D5h(PSIDj||IDcs||x), SIDj = D6h(rs||PSIDj||IDcs), and PSIDj = D7h(SIDj||x)⊕h(rs||SIDj). CS checks whether SIDj is in database and D8 = h(SIDj||PSIDj||PSIDjnew||rs||D7). If SIDj is in the database and D8 = h(SIDj||PSIDj||PSIDjnew||rs||D7), it means that CS confirms the Sj is legal. Then, CS selects a random number rcs to calculate the session key SK = h(rursrcs), D9 = h(PSIDjnew||IDcs||x)⊕h(rs||PSIDjnew), D10 = h(PSIDjnew||rs||PSIDj)⊕(rurcs), D11 = h(SKcs||D9||D10||h(SIDj||x)), D12 = h(PIDinew||IDcs||x)⊕h(ru||PIDinew), D13 = h(PIDinew||ru||PIDi)⊕(rsrcs), and D14 = h(SKcs||D12||D13||h(IDi||x)). CS sends the message M3 = {D9, D10, D11, D12, D13, D14} to Sj.
Step 4: When Sj receives M3, Sj calculates (rurcs = D10h(PSIDjnew||rs||PSIDj). Hence, Sj can compute SK = h(rursrcs). Then, Sj checks D11? = h(SKs||D9||D10||B2) to confirm that CS is a legal control server or not. If CS is a legal control server, Sj calculates B1new = D9h(rs||PSIDjnew), updates B1 and PSIDj as B1new and PSIDjnew in memory. Sj sends message M4 = {D12, D13, D14} to Ui.
When Ui receives M4, Ui calculates (rsrcs) = D13h(PIDinew||ru||PIDi) and SK = h(rursrcs). Then, Ui checks D14? = h(SKu||D12||D13||C2*) to confirm that CS is a legal control server or not. Ui calculates C1new = D12h(ru||PIDinew)⊕HPi, updates C1 and PIDi in memory to C1new and PIDinew.

2.2. Analysis of Zhou et al.’s Scheme

We found three weaknesses in Zhou et al.’s scheme at the certification stage. First, Zhou et al.’s scheme cannot achieve mutual authentication. Second, Zhou et al.’s scheme cannot work against a replay attack. Third, Zhou et al.’s scheme cannot guarantee anonymity in the authentication phase.

2.2.1. Zhou et al.’s Scheme Cannot Achieve Mutual Authentication

Mutual authentication refers to the mutual verification between two entities. In Zhou et al.’s scheme, CS verifies Ui by checking D4? = h(IDi||PIDi||PIDinew||ru||D3) in Step 3 of the authentication phase. We know D3 = C2*h(IDi||HPi)⊕PIDinewh(ru||IDi) and C2* = h(IDi||x) from Step 1 of the authentication phase and the user registration. When CS computes D3h(IDi||x)⊕h(ru||IDi), CS only can obtain h(IDi||HPi)⊕PIDinew, where the parameter HPi is only known by Ui. CS cannot successfully calculate PIDinew from D3h(IDi||x)⊕h(ru||IDi), even if the message M1 = {PIDi, D1, D2, D3, D4} is sent from a legal user Ui. Therefore, Zhou et al.’s scheme was unable to complete mutual authentication.

2.2.2. Zhou et al.’s Scheme Cannot Guarantee Anonymity in Authentication Phase

A solution that provides anonymity must ensure that no one except the server knows the user’s personal information. We assume that the attacker UA is a legitimate user. Hence, UA will obtain ( C 1 * ¯ = h(PIDA||IDcs||x), C 2 * ¯ = h(IDA||x), IDcs) from CS in the user registration phase. Once UA intercepts the message M1 = {PIDi, D1, D2, D3, D4} from Ui and uses PIDi as new pseudo-identity to restart an authentication session, UA can obtain the IDi of the user Ui. Details of the process are as follows.
Step 1: First, UA chooses a random number rA to calculate D 1 ¯ = C1*rA, D 2 ¯ = h(rA||PIDA||IDcs)⊕IDA, D 3 ¯ = C2*h(IDA||HPA)⊕PIDih(rA||IDA), and D 4 ¯ = h(IDA||PIDA||PIDi||ru|| D 3 ¯ ). UA sends the message M 1 ¯ = {PIDA, D 1 ¯ , D 2 ¯ , D 3 ¯ , D 4 ¯ } to Sj.
Step 2: When UA receives M 4 ¯ = { D 12 ¯ , D 13 ¯ , D 14 ¯ }, UA can compute IDi = D2h(D1 D 12 ¯ h(rA||PIDi) ||PIDi||IDcs), where D1 = h(PIDi||IDcs||x)⊕ru, D2 = h(ru||PIDi||IDcs)⊕IDi, and D 12 ¯ = h(PIDi||IDcs||x)⊕h(rA||PIDi).
Therefore, Zhou et al.’s scheme cannot guarantee anonymity in the authentication phase.

3. Proposed Scheme

After we reviewed the shortcomings of Zhou et al.’s scheme, an improved scheme is put forward. The improvements include registration, authentication, and password modification.

3.1. Notations

The following is the introduction to the notations that will be used in our scheme.
Ui is the ith user.
IDi is the ith user’s identity.
PWi is the ith user’s password.
ni is a random number.
CS is the control server.
PIDi is the ith user’s pseudo-identity.
IDcs is the control server’s identity.
SIDj is the jth server’s identity.
PSIDj is the jth server’s pseudo-identity.
x is the secret key of CS.
h () is a one-way hash function.
ru, rs, rcs are the random numbers selected by Ui, Sj, and CS.
SKu, SKs, SKcs are the session keys for Ui, Sj, and CS.
M1, M2, M3, M4 are the messages in the authentication.

3.2. Registration Phase

This phase is divided into two parts: user registration and cloud server registration. When a user or a cloud server wants to join this system, he/she must run this phase first. After the user and the cloud server successfully finish this phase, they can connect with each other to start the authentication phase.

3.2.1. User Registration

User Ui selects their own id IDi, password PWi, random number ni. He/she sends IDi to CS by the secure channel. When CS receives IDi, CS checks it for its validity. If it is invalid, CS will stop this phase; otherwise, CS selects a pseudo-identity PIDi for Ui and uses the secret key x to compute Ai = h(PIDi||IDcs||x) and Bi = h(IDi||x). CS stores IDi in its database and sends (Ai, Bi, PIDi, IDcs) to Ui by the secure channel. Once Ui obtains these parameters, Ui calculates C1 = Aih(IDi||ni), C2 = Bih(PWi||ni), C3 = nih(IDi||PWi), and C4 = h(IDi||PWi||ni) and then stores (C1, C2, C3, C4, PIDi, IDcs) in a smart card. The flowchart for user registration is shown in Figure 1.

3.2.2. Cloud Server Registration

A cloud server Sj sends its identity SIDj and a pseudo-identity PSIDj to CS by a secure channel. Then, CS uses the secret key x to compute Aj = h(PSIDj||IDcs||x) and Bj = h(SIDj||x), stores SIDj in its database, and sends (Aj, Bj, IDcs) to Sj by a secure channel. When Sj receives these parameters, Sj stores (Aj, Bj, SIDj, SPIDj, IDcs) in its memory. The flowchart of the cloud server registration phase is shown in Figure 2.

3.3. Authentication Phase

When the user Ui needs to retrieve services from the cloud server Sj, this authentication must start to make sure of the legitimacy of both the user and the cloud server. After the authentication phase is completed, the user will negotiate a session key SK. By this session key, Ui can connect with Sj securely. The processes of the authentication phase are shown as follows and Figure 3.
Step 1: When user Ui attempts to connect to cloud server Sj, he/she inserts the smart card into a reader machine and keys in IDi and PWi. Then, the smart card selects a random number ru and calculates ni = C3h(IDi||PWi). Then, the smart card checks h(IDi||PWi||ni)? = C4 to verify the identity and password. If the verification passed, the smart card will calculate Ai = C1h(IDi||ni), Bi = C2h(PWi||ni), D1 = Airu, D2 = h(ru||PIDi||IDcs)⊕IDi, and D3 = h(IDi||PIDi||ru). Finally, the smart card sends M1 = {PIDi, D1, D2, D3} to Sj.
Step 2: When Sj receives M1, Sj selects a new pseudo-identity P S I D j and a random number rs to calculate D4 = Ajrs, D5 = h(rs||PSIDj||IDcs)⊕SIDj, D6 = Bj P S I D j   h(rs||PSIDj), and D7 = h(SIDj||PSIDj|| P S I D j   ||rs||D6). Then, Sj sends message M2 = {M1, PSIDj, D4, D5, D6, D7} to CS.
Step 3: Once CS receives M2, CS uses the secret key x to compute ru = D1h(PIDi||IDcs||x) and IDi = D2h(ru||PIDi||IDcs) and then checks whether IDi is valid and D3? = h(IDi||PIDi||ru) or not. If the IDi is in its database and D3 = h(IDi||PIDi||ru), it means that Ui is legal. For the cloud server Sj, CS uses the sccret key x to compute rs = D4h(PSIDj||IDcs||x), SIDj = D5h(rs||PSIDj||IDcs), P S I D j   =D6h(SIDj||x)⊕h(rs||SIDj), and then checks whether SIDj is in the database and D7 = h(SIDj||PSIDj|| P S I D j   ||rs||D6). If both conditions hold, it means that Sj is legal. The processes of authentication phase will be stopped when any verification is wrong; otherwise, CS selects a random number rcs to compute the session key SKcs = h(rursrcs) for this round. Subsequently, for Sj, CS computes D8 = h( P S I D j   ||IDcs||x)⊕h(rs|| P S I D j   ), D9 = h( P S I D j   ||rs||PSIDj)⊕(rurcs), and D10 = h(SKcs||D8||D9||h(SIDj||x)). For Ui, CS selects a new pseudo-identity P I D i to compute D11= P I D i   h(IDi||x)⊕h(ru||IDi), D12 = h( P I D i   ||IDcs||x)⊕h(ru|| P I D i   ), D13 = h( P I D i   ||ru||PIDi)⊕(rsrcs), and D14 = h(SKcs||D12||D13||h(IDi||x)). Finally, CS sends the message M3 = {D8, D9, D10, D11, D12, D13, D14} to Sj.
Step 4: While Sj receives M3, Sj uses P S I D j and rs to extract (rurcs) from D9, i.e., rurcs = D9h( P S I D j   ||rs||PSIDj). Then, Sj checks D10? = h(SKs||D8||D9||Bj), where SKs = h(rursrcs). If this equation holds, it means that CS is legal; otherwise, this authentication process will be terminated. Sj continues to calculate A j   = D8h(rs|| P S I D j   ) and updates Aj and PSIDj as A j and P S I D j in the memory. At the end of this step, Sj sends the message M4 = {D11, D12, D13, D14} to Ui.
Step 4: Once the smart card receives M4, the smart card uses Bi, ru, and IDi to extract P I D i and (rsrcs) from D11 and D13, respectively, i.e., P I D i   = BiD11h(ru||IDi) and (rsrcs) = D13h( P I D i   ||ru||PIDi). The smart card will check whether or not D14? = h(SKu||D12||D13||Bi), where SKu = h(rursrcs). If this equation holds, it means that CS is legal; otherwise, this authentication process will be terminated. The smart card uses the new pseudo-identity P I D i to calculate C 1   = D12h(ru|| P I D i   )⊕h(IDi||ni) and updates C1 and PIDi as C 1 and P I D i . Finally, the smart card sends h(SKu) to Sj.
Step 5: When Sj receives h(SKu), Sj will check h(SKu)? = h(SKs). If h(SKu) = h(SKs), this means that they already correctly negotiate the session key.

3.4. Password Change Phase

If the user Ui needs to change the password, you may need to start the password change phase. First, we assume that the smart card of Ui contains ( C 1   , C2, C3, C4, P I D i   , IDcs). The Ui inserts the smart card into the card reader for key verification in identity IDi and the original password PWi. The smart card will calculate ni = C3h(IDi||PWi) and check h(IDi||PWi||ni)? = C4. If the equation holds, Ui can input the new password P W i . The smart card calculates C 2   = C2h(PWi||ni)⊕h( P W i   ||ni), C 3   = C3h(IDi||PWi)⊕h(IDi|| P W i   ), and C 4   = C4h(IDi||PWi||ni)⊕h(IDi|| P W i   ||ni) and replaces (C2, C3, C4) with ( C 2   , C 3   , C 4   ). Finally, there are ( C 1   , C 2   , C 3   , C 4   , P I D i   , IDcs) in the smart card, and Ui can use the new password P W i to perform the authentication phase in the next round. The flowchart of password modification phase is shown in Figure 4.

4. Security Analysis

In this section, we will analyze nine fundamental security requirements in which an authentication scheme should be achieved.

4.1. Mutual Authentication

As we discussed in Section 2.2.1., mutual authentication means that the identities of the two entities should be recognized before they connect. In our scheme, CS can be mutually authenticated with Ui and Sj, respectively.

4.1.1. CS Verifies the Identity of Ui through Checking D3? = h(IDi‖PIDi‖ru)

In the user registration phase, CS computes Ai = h(PIDi||IDcs||x) and Bi = h(IDi||x) for Ui, and two parameters are only known by CS and Ui. When Ui uses Ai to hide the random number ru in the authentication phase, i.e., D1 = Airu, CS can use h(PIDi||IDcs||x) to extract ru. Finally, CS can verify the identity of Ui by equation D3 = h(IDi‖PIDi‖ru).

4.1.2. CS Verifies the Identity of Sj through Checking D7? = h(SIDj‖PSIDj‖PSIDj’‖rs‖D6)

In the cloud server registration phase, CS computes Aj = h(PSIDj||IDcs||x) and Bj = h(SIDj||x) for Sj, and two parameters are only known by CS and Sj. When Sj uses Aj to hide the random number rs in the authentication phase, i.e., D4 = Ajrs, CS can use h(PSIDj||IDcs||x) to extract rs. Finally, CS can verify the identity of Sj by equation D7 = h(SIDjPSIDjPSIDjrsD6).

4.1.3. Sj Verifies the Identity of CS through Checking D10? = h(SKs‖D8‖D9‖Bj)

Because Bj is only shared between Sj and CS, they only have the capability of computing h(SKs‖D8‖D9‖Bj). Therefore, Sj can verify the identity of CS by equation D10 = h(SKs‖D8‖D9‖Bj).

4.1.4. Ui Verifies the Identity of CS through Checking D14? = h(SKu‖D12‖D13‖Bi)

Because Bi only shares between Ui and CS, they only have the capability of computing h(SKu‖D12‖D13‖Bi). Therefore, Ui can verify the identity of CS by equation D14 = h(SKu‖D12‖D13‖Bi).

4.2. Session Key for All Entities

In the authentication phase, Ui, Sj, and CS generate ru, rs, and rcs, respectively. In addition, Ui, Sj, and CS obtain (rsrcs), (rurcs), and (ru, rs) from D13, D9, and (D1, D4), respectively. Therefore, all entities can compute one same session key SK = SKcs = SKs = SKu = (rursrcs) in one session.

4.3. User Anonymity

The attacker’s use of user anonymity means that the user Ui cannot be identified through the messages in the communication session [43]. In our authentication phase, Ui’s identity IDi is protected by a hash function D2 = h(ru||PIDi||IDcs)⊕IDi. Therefore, if an attacker wants to obtain Ui’s identity, he/she must compute h(ru||PIDi||IDcs). However, he/she cannot acquire the ru because he/she does not have the secret key x of CS to derive ru from D1 = Airu, where Ai = h(PSIDj||IDcs||x). Even if the attacker is a legal user, he/she still cannot obtain h(ru||PIDi||IDcs) by adopting the strategy shown in Section 2.2.2. Therefore, the attacker cannot identify Ui’s identity; furthermore, it shows that our proposed scheme has user anonymity.

4.4. Resistance to Off-Line Guessing Attack

Off-line guesswork attacks happen when an attacker obtains all the information stolen from the user, pass through insecure channels, and store in smart CARDS. The attacker can use the information held to guess the user’s identity and password.
We assume that an attacker gets (C1, C2, C3, C4, PIDi, IDcs) that is stored in the user Ui’s smart card and all messages (M1, M2, M3, M4) that pass by a nonsecure channel in the last session. Then, the attacker wants to guess a pair (IDi, PWi) from information. He/she can use the equation D2 = h(ru||PIDi||IDcs)⊕IDi to confirm her/his guess IDi. According to the above hypothesis, the attacker has PIDi and D2 from M2; IDcs is from the smart card. Therefore, he/she needs to get ru. Then, ru can be derived by rearranging D1 = Airu to ru = AiD1. However, the attacker cannot compute Ai = h(PSIDj||IDcs||x) without the secret key x of CS. Therefore, he/she cannot successfully guess IDi. In addition, PWi only appears on C2 = h(IDi||x)⊕h(PWi||ni), C3 = nih(IDi||PWi), and C4 = h(IDi||PWi||ni). If the attacker wants to guess it, he/she needs to obtain IDi, x or ni first. However, the attacker cannot extract those values from intercepted messages. Therefore, he/she cannot successfully guess PWi. The results show that the scheme can resist offline guessing attack.

4.5. Resistance to Insider Attack

An insider attack means that an attacker is an inside member of the company of CS. He has the right to access the data stored in the CS’s database, e.g., the registered users’ identities and passwords. Then, he/she can use the information to simulate a legitimate user or cloud server. In our proposed scheme, only IDi and SIDj are stored in CS for registration. There is no any other information for authentication stored in CS, i.e., Ai, Bi, Aj, Bj. Therefore, even if the inside attacker accesses the database of CS, he/she only can obtain the identity IDi of Ui and SIDj of Sj; besides, the inside attacker still cannot impersonate the user Ui or the cloud server Sj. Thus, the scheme is able to resist internal attack.

4.6. Resistance to Stolen Smart Card Attack

Stolen card attack points to an attacker who steals the user’s smart card and extracts data stored in a smart card. Then, he/she uses these data to impersonate the user whose smart card was stolen. Here, we assume that an attacker already extracts the data (C1, C2, C3, C4, PIDi, IDcs) from user Ui’s smart card. In our proposed scheme, if the attacker wants to impersonate user Ui, he/she needs to perform the authentication phase. According to the description of Step 1 in Section 3.2., the attacker needs to key in the correct IDi and PWi for checking the equation h(IDi||PWi||ni)? = C4. However, he/she does not have IDi and PWi. Therefore, when the attacker initiates an authentication run, he/she cannot pass the check h(IDi||PWi||ni)? = C4 in this step, then his/her authentication process will be terminated. The results show that the scheme can resist the attack of stolen smart cards.

4.7. Resistance to De-Synchronization Attack

An anti-synchronization attack means that an attacker interrupts and modifies the response message from the control server during the authentication phase, so that the authentication data between the client and the database of the control server are not synchronized [44]. Then, even if he/she is a legitimate user passing through the controlled server, all future authentication processes will fail.
In our proposed scheme, only users’ identities are stored in the control server’s database. In addition, those identities will not be changed in any phases, i.e., the authentication and password change phases. For the user, data changes occurred in the authentication stage and the last step of the password change phase. However, password change only needs to be involved on the user side; thus, the attacker cannot interfere. In the last step of the authentication phase, the data in the user’s smart card will be updated (C1, PIDi) to ( C 1   , P I D i   ) when authentication processes are successfully finished. If the update was interrupted, the user can still use the old data (C1, PIDi) to run a successful authentication process. It can be concluded that the scheme can resist synchronous attack.

4.8. Resistance to Forgery Attack

Counterfeit attack points to the attacker in the session is sent to the user, the cloud server and control server message, then the receiver will believe these messages are sent from a legal user, a cloud server, or the control server.
In our scenario, if an attacker wants to forge a user Ui, he/she would need to forge a message M1 to pass the equation D3? = h(IDi‖PIDi‖ru). However, the attacker cannot forge D1 = Airu because Ai = h(PIDi||IDcs||x) contains the secret key x of a control server. If the attacker wants to forge a cloud server, he/she needs to fabricate two messages, M2 and M4. To pass the equation D7? = h(SIDj‖PSIDj‖PSIDj‖rs‖D6) and D14? = h(SKu‖D12‖D13‖Bi); however, he/she cannot forge D4 = Ajrs, D6 = Bj P S I D j   h(rs||PSIDj) and D14 = h(SKcs||D12||D13||h(IDi||x)) because Aj and Bj both contain the secret key x of control server. If the attacker wants to forge the control server, he/she needs to make up a message M3 to pass the equation D10? = h(SKs‖D8‖D9‖Bj). However, he/she cannot forge D8 = h( P S I D j   ||IDcs||x)⊕h(rs|| P S I D j   ) and D10 = h(SKcs||D8||D9||h(SIDj||x)) because those messages contain the secret key x of the control server. As a result, we provide a solution to staying away from forgery attacks.

4.9. Resistance to User Tracking Attack

In terms of user tracking attacks, when an attacker eavesdrops on the delivered messages in different sessions, and then the attacker can confirm that two messages are from a fixed user according to a stable pseudo-identity being used. In our proposed scenario, the user Ui’s pseudo-identity would change in different sessions. Therefore, the attacker cannot ensure that any two messages are from the same user. The results show that the scheme can resist the user tracking attack.

5. Performance Evaluation

In this section, we will present the schemes of Maitra et al. [45], Amin et al. [36], Zhou et al. [42], and the performance evaluation of our schemes. Four authentication schemes only use a one-way hash operation, exclusive or operation, and concatenate operation. By comparing the execution time of an exclusive or operation to that of a one-way hash function or a symmetric algorithm, we ignored the execution time of an exclusive or operation., We chose SHA-2(256 bits) and AES as one-way hash functions and symmetric encryption/decryption algorithms, two of which are the most commonly used encryption methods in secure communications.
Table 1, Table 2 and Table 3 show a comparison of the security properties, computation cost, and communication cost among four respective authentication schemes. In Table 1, “O” means that the scheme can achieve a security requirement or resist the attack; “X” means that the scheme cannot achieve a security requirement or resist the attack. In Table 2, “Th” is one computation time of one-way hash function operation, and “Ts” is one computation time of symmetric encryption/decryption. The “Th” and “Ts” s’ values are 0.00517 ms and 0.02148 ms, respectively according to Zhou et al. [42].
Table 2 shows that our proposed scheme is in the middle regarding calculating costs. However, it is important to consider the trade-off between security and efficiency when we were designing a secure communication scheme. As can be seen from Table 1, the scheme proposed by us has better security than other schemes. We also assessed the communication costs of our scheme and other schemes, as shown in Table 3. The communication costs are the bits of parameters which passed during authentication. The Figure 5 shows the bar chart of the comparison of total calculation cost. Our scheme gets more cost than Zhou et al.’s [42] because we add an additional step at the last of the authentication phase to achieve mutual authentication. We only calculate the communication cost in the login and authentication phases due to the use of fewer number of times in the registration phase and password change phase. Therefore, in terms of security and efficiency, we can argue that our proposed scheme is more suitable for the Internet of Things environment than other related schemes.
Note that the outputs of the one-way hash function and the AES algorithm are 256 bits, and identities, pseudo-identities, and random numbers are 128 bits.

6. Conclusions

In this paper, we demonstrated that Zhou et al.’s scheme is not fully secure. Mutual authentication and anonymity cannot be guaranteed in the authentication phase. Then, we designed a new certification scheme to compensate for Zhou et al.’s scheme. The proposed scheme can resist common attacks and provide important features such as user anonymity and mutual authentication. We also added a new parameter in the first step of the authentication phase; moreover, it can detect whether or not the input identity and password are right at an early stage. Improved IoT-based authentication for cloud computing is also proposed, and the performance evaluation results show that the scheme has acceptable computation and good security. Therefore, we believe that this authentication scheme is applicable to real-world IoT devices.
In the future, we will investigate how to apply our IoT-based authentication mechanism in different computing environments, such as mobile environment and grid computing environment, etc. Furthermore, we are investigating how to make our system lightweight so that it can be widely used in the mobile computing world.

Author Contributions

Conceptualization, H.-L.W.; Data curation, H.-L.W.; Formal analysis, H.-L.W.; Funding acquisition, C.-C.C. (Chin-Chen Chang); Investigation, C.-C.C. (Chin-Chen Chang) and L.-S.C.; Methodology, C.-C.C. (Chin-Chen Chang); Project administration, L.-S.C.; Resources, Y.-Z.Z. and L.-S.C.; Software, Y.-Z.Z.; Validation, Y.-Z.Z. and C.-C.C. (Chih-Cheng Chen); Visualization, C.-C.C. (Chih-Cheng Chen); Writing—review & editing, C.-C.C. (Chih-Cheng Chen). All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Jing, Q.; Vasilakos, A.V.; Wan, J. Security of the Internet of Things: Perspectives and challenges. Wirel. Netw. 2014, 20, 2481–2507. [Google Scholar] [CrossRef]
  2. Atzori, L.; Iera, A.; Morabito, G. The Internet of Things: A survey. Comput. Netw. 2010, 54, 2787–2805. [Google Scholar] [CrossRef]
  3. Qi, M.; Chen, J.; Chen, Y. A secure authentication with key agreement scheme using ECC for satellite communication systems. Int. J. Satell. Commun. Netw. 2019, 37, 234–244. [Google Scholar] [CrossRef]
  4. Kothmayr, T.; Schmitt, C.; Hu, W.; Brünig, M.; Carle, G. DTLS based security and two-way authentication for the Internet of Things. Ad Hoc Netw. 2013, 11, 2710–2723. [Google Scholar] [CrossRef]
  5. Pranata, I.; Athauda, R.; Skinner, G. Securing and governing access in ad-hoc networks of Internet of Things. In Proceedings of the IASTED International Conference on Engineering and Applied Science, Colombo, Sri Lanka, 27–29 December 2012; pp. 27–29. [Google Scholar]
  6. Durairaj, M.; Muthuramalingam, K. A new authentication scheme with elliptical curve cryptography for Internet of Things (IoT) environments. Int. J. Eng. Technol. 2018, 7, 119. [Google Scholar] [CrossRef] [Green Version]
  7. Hong, N. A security framework for the Internet of Things based on public key infrastructure. Adv. Mater. Res. 2013, 671–674, 3223–3226. [Google Scholar] [CrossRef]
  8. Hao, P.; Wang, X.; Shen, W. A collaborative PHY-aided technique for end-to-end IoT device authentication. IEEE Access 2018, 6, 42279–42293. [Google Scholar] [CrossRef]
  9. Mahmood, K.; Chaudhry, S.A.; Naqvi, H.; Shon, T.; Ahmad, H.F. A lightweight message authentication scheme for smart grid communications in power sector. Comput. Electr. Eng. 2016, 52, 114–124. [Google Scholar] [CrossRef]
  10. Challa, S.; Das, A.K.; Odelu, V.; Kumar, N.; Kumari, S.; Khan, M.K.; Vasilakos, A.V. An efficient ECC-based provably secure three-factor user authentication and key agreement protocol for wireless healthcare sensor networks. Comput. Electr. Eng. 2018, 69, 534–554. [Google Scholar] [CrossRef]
  11. Chung, Y.; Choi, S.; Lee, Y.; Park, N.; Won, D. An enhanced lightweight anonymous authentication scheme for a scalable localization roaming service in wireless sensor networks. Sensors 2016, 16, 1653. [Google Scholar] [CrossRef] [Green Version]
  12. Turkanović, M.; Brumen, B.; Hölbl, M. A novel user authentication and key agreement scheme for heterogeneous ad hoc wireless sensor networks, based on the Internet of Things notion. Ad Hoc Netw. 2014, 20, 96–112. [Google Scholar] [CrossRef]
  13. Jan, M.A.; Khan, F.; Alam, M.; Usman, M. A payload-based mutual authentication scheme for Internet of Things. Future Gener. Comput. Syst. 2019, 92, 1028–1039. [Google Scholar] [CrossRef]
  14. Sun, X.; Men, S.; Zhao, C.; Zhou, Z. A security authentication scheme in machine-to-machine home network service. Secur. Commun. Netw. 2015, 8, 2678–2686. [Google Scholar] [CrossRef]
  15. Lyu, C.; Gu, D.; Zeng, Y.; Mohapatra, P. PBA: Prediction-based authentication for vehicle-to-vehicle communications. IEEE Trans. Dependable Secur. Comput. 2016, 13, 71–83. [Google Scholar] [CrossRef]
  16. Gope, P.; Lee, J.; Quek, T.Q.S. Lightweight and practical anonymous authentication protocol for RFID systems using physically unclonable functions. IEEE Trans. Inf. Forensics Secur. 2018, 13, 2831–2843. [Google Scholar] [CrossRef]
  17. Xu, H.; Ding, J.; Li, P.; Zhu, F.; Wang, R. A lightweight RFID mutual authentication protocol based on physical unclonable function. Sensors 2018, 18, 760. [Google Scholar] [CrossRef] [Green Version]
  18. Wazid, M.; Das, A.K.; K, V.B.; Vasilakos, A.V. LAM-CIoT: Lightweight authentication mechanism in cloud-based IoT environment. J. Netw. Comput. Appl. 2020, 150, 102496. [Google Scholar] [CrossRef]
  19. Wazid, M.; Das, A.K.; Kumar, N.; Vasilakos, A.V. Design of secure key management and user authentication scheme for fog computing services. Future Gener. Comput. Syst. 2019, 91, 475–492. [Google Scholar] [CrossRef]
  20. Jangirala, S.; Das, A.K.; Vasilakos, A.V. Designing secure lightweight blockchain-enabled RFID-based authentication protocol for supply chains in 5G mobile edge computing environment. IEEE Trans. Ind. Inform. 2020, 16, 7081–7093. [Google Scholar] [CrossRef]
  21. Wazid, M.; Das, A.K.; Kumar, N.; Vasilakos, A.V.; Rodrigues, J.J.P.C. Design and Analysis of Secure Lightweight Remote User Authentication and Key Agreement Scheme in Internet of Drones Deployment. IEEE Internet Things J. 2019, 6, 3572–3584. [Google Scholar] [CrossRef]
  22. Lamport, L. Password authentication with insecure communication. Commun. ACM 1981, 24, 770–772. [Google Scholar] [CrossRef]
  23. Katz, J.; MacKenzie, P.; Taban, G.; Gligor, V. Two-server password-only authenticated key exchange. J. Comput. Syst. Sci. 2012, 78, 651–669. [Google Scholar] [CrossRef] [Green Version]
  24. Xiang, T.; Wong, K.; Liao, X. Cryptanalysis of a password authentication scheme over insecure networks. J. Comput. Syst. Sci. 2008, 74, 657–661. [Google Scholar] [CrossRef] [Green Version]
  25. Sun, H.-M.; Yeh, H.-T. Password-based authentication and key distribution protocols with perfect forward secrecy. J. Comput. Syst. Sci. 2006, 72, 1002–1011. [Google Scholar] [CrossRef]
  26. Chien, H.-Y.; Jan, J.-K.; Tseng, Y.-M. An efficient and practical solution to remote authentication: Smart card. Comput. Secur. 2002, 21, 372–375. [Google Scholar] [CrossRef]
  27. Xu, J.; Zhu, W.-T.; Feng, D.-G. An improved smart card based password authentication scheme with provable security. Comput. Stand. Interfaces 2009, 31, 723–728. [Google Scholar] [CrossRef]
  28. Kumar, M.; Gupta, K.; Kumari, S. An improved efficient remote password authentication scheme with smart card over insecure networks. Int. J. Netw. Secur. 2011, 13, 167–177. [Google Scholar]
  29. Challa, S.; Das, A.K.; Gope, P.; Kumar, N.; Wu, F.; Vasilakos, A.V. Design and analysis of authenticated key agreement scheme in cloud-assisted cyber–physical systems. Future Gener. Comput. Syst. 2020, 108, 1267–1286. [Google Scholar] [CrossRef]
  30. Lin, C.; He, D.; Huang, X.; Choo, K.-K.R.; Vasilakos, A.V.; BSeIn: A blockchain-based secure mutual authentication with fine-grained access control system for industry 4.0. J. Netw. Comput. Appl. 2018, 116, 42–52. [CrossRef]
  31. Liao, Y.-P.; Wang, S.-S. A secure dynamic ID based remote user authentication scheme for multi-server environment. Comput. Stand. Interfaces 2009, 31, 24–29. [Google Scholar] [CrossRef]
  32. Hsiang, H.-C.; Shih, W.-K. Improvement of the secure dynamic ID based remote user authentication scheme for multi-server environment. Comput. Stand. Interfaces 2009, 31, 1118–1123. [Google Scholar] [CrossRef]
  33. Sood, S.K.; Sarje, A.K.; Singh, K. A secure dynamic identity based authentication protocol for multi-server architecture. J. Netw. Comput. Appl. 2011, 34, 609–618. [Google Scholar] [CrossRef]
  34. Lee, C.-C.; Lin, T.-H.; Chang, R.-X. A secure dynamic ID based remote user authentication scheme for multi-server environment using smart cards. Expert Syst. Appl. 2011, 38, 13863–13870. [Google Scholar] [CrossRef]
  35. Xue, K.; Hong, P.; Ma, C. A lightweight dynamic pseudonym identity based authentication and key agreement protocol without verification tables for multi-server architecture. J. Comput. Syst. Sci. 2014, 80, 195–206. [Google Scholar] [CrossRef]
  36. Amin, R.; Kumar, N.; Biswas, G.P.; Iqbal, R.; Chang, V. A light weight authentication protocol for IoT-enabled devices in distributed cloud computing environment. Future Gener. Comput. Syst. 2018, 78, 1005–1019. [Google Scholar] [CrossRef]
  37. He, D.; Zeadally, S.; Xu, B.; Huang, X. An Efficient Identity-Based Conditional Privacy-Preserving Authentication Scheme for Vehicular Ad Hoc Networks. IEEE Trans. Inf. Forensics Secur. 2015, 10, 2681–2691. [Google Scholar] [CrossRef]
  38. Zhang, J.; Cui, J.; Zhong, H.; Chen, Z.; Liu, L. PA-CRT: Chinese Remainder Theorem Based Conditional Privacy-preserving Authentication Scheme in Vehicular Ad-hoc Networks. IEEE Trans. Dependable Secur. Comput. 2019, 1. [Google Scholar] [CrossRef] [Green Version]
  39. Cui, J.; Zhang, J.; Zhong, H.; Xu, Y. SPACF: A Secure Privacy-Preserving Authentication Scheme for VANET with Cuckoo Filter. IEEE Trans. Veh. Technol. 2017, 66, 10283–10295. [Google Scholar] [CrossRef]
  40. Azees, M.; Vijayakumar, P.; Deboarh, K.J. EAAP: Efficient Anonymous Authentication with Conditional Privacy-Preserving Scheme for Vehicular Ad Hoc Networks. IEEE Trans. Intell. Transp. Syst. 2017, 18, 2467–2476. [Google Scholar] [CrossRef]
  41. Kong, W.; Shen, J.; Vijayakumar, P.; Cho, Y.; Chang, V. A practical group blind signature scheme for privacy protection in smart grid. J. Parallel Distrib. Comput. 2020, 136, 29–39. [Google Scholar] [CrossRef]
  42. Zhou, L.; Li, X.; Yeh, K.-H.; Su, C.; Chiu, W. Lightweight IoT-based authentication scheme in cloud computing circumstance. Future Gener. Comput. Syst. 2019, 91, 244–251. [Google Scholar] [CrossRef]
  43. Li, C.-T.; Weng, C.-Y.; Lee, C.-C.; Wang, C.-C. Secure user authentication and user anonymity scheme based on quadratic residues for the integrated EPRIS. Procedia Comput. Sci. 2015, 52, 21–28. [Google Scholar] [CrossRef] [Green Version]
  44. Yeh, K.-H.; Lo, N.-W.; Kuo, R.-Z.; Su, C.; Chen, H.-Y. Formal analysis on RFID authentication protocols against de-synchronization attack. J. Internet Technol. 2017, 18, 765–773. [Google Scholar]
  45. Maitra, T.; Islam, S.H.; Amin, R.; Giri, D.; Khan, M.; Kumar, K.N. An enhanced multi-server authentication protocol using password and smart-card: Cryptanalysis and design. Secur. Commun. Netw. 2016, 9, 4615–4638. [Google Scholar] [CrossRef]
Figure 1. The flowchart of the user registration phase.
Figure 1. The flowchart of the user registration phase.
Sensors 20 05604 g001
Figure 2. The flowchart of the cloud server registration phase.
Figure 2. The flowchart of the cloud server registration phase.
Sensors 20 05604 g002
Figure 3. The processes of the authentication phase.
Figure 3. The processes of the authentication phase.
Sensors 20 05604 g003
Figure 4. The flowchart of the password change phase.
Figure 4. The flowchart of the password change phase.
Sensors 20 05604 g004
Figure 5. Comparison of total calculation cost (ms).
Figure 5. Comparison of total calculation cost (ms).
Sensors 20 05604 g005
Table 1. Comparison of Security Properties among Four Authentication Schemes.
Table 1. Comparison of Security Properties among Four Authentication Schemes.
PropertyR1R2R3R4R5R6R7R8R9
Amin et al.’s scheme [36]OOOXOOOOX
Maitra et al.’s scheme [45]OXOXOOOOX
Zhou et al.’s [42]XOXOOOOOO
OursOOOOOOOOO
R1: Mutual authentication. R2: Session key for all entities. R3: User anonymity. R4: Resistance to off-line guessing attack. R5: Resistance to insider attack. R6: Resistance to stolen smart card attack. R7: Resistance to de-synchronization attack. R8: Resistance to forgery attack. R9: Resistance to user tracking attack.
Table 2. Calculation cost comparison of four certification schemes.
Table 2. Calculation cost comparison of four certification schemes.
EntitiesRegistration PhaseLogin PhaseAuthentication PhasePassword Change PhaseTotal Operations of Login and Authentication
Amin et al.’s scheme [36]Ui2 Th6 Th3 Th7 Th23 Th
Sj0 Th0 Th4 Th0 Th
CS4 Th0 Th10 Th0 Th
Maitra et al.’s scheme [45]Ui3 Th6 Th4 Th9 Th19 Th + 6 Ts
Sj0 Th0 Th + 1 Ts4 Th + 2 Ts0 Th
CS3 Th + 1 Ts0 Th5 Th + 3 Ts2 Th + 2 Ts
Zhou et al.’s [42]Ui3 Th0 Th10 Th11 Th36 Th
Sj0 Th0 Th7 Th0 Th
CS4 Th0 Th19 Th8 Th
OursUi4 Th0 Th12 Th6 Th39 Th
Sj0 Th0 Th8 Th0 Th
CS4 Th0 Th19 Th0 Th
Table 3. Communication cost comparison of four authentication schemes.
Table 3. Communication cost comparison of four authentication schemes.
SchemesCommunication Cost of L and A
Amin et al.’s scheme [36]4736 bits
Maitra et al.’s scheme [45]3072 bits
Zhou et al.’s [42]5760 bits
Ours6016 bits

Share and Cite

MDPI and ACS Style

Wu, H.-L.; Chang, C.-C.; Zheng, Y.-Z.; Chen, L.-S.; Chen, C.-C. A Secure IoT-Based Authentication System in Cloud Computing Environment. Sensors 2020, 20, 5604. https://doi.org/10.3390/s20195604

AMA Style

Wu H-L, Chang C-C, Zheng Y-Z, Chen L-S, Chen C-C. A Secure IoT-Based Authentication System in Cloud Computing Environment. Sensors. 2020; 20(19):5604. https://doi.org/10.3390/s20195604

Chicago/Turabian Style

Wu, Hsiao-Ling, Chin-Chen Chang, Yao-Zhu Zheng, Long-Sheng Chen, and Chih-Cheng Chen. 2020. "A Secure IoT-Based Authentication System in Cloud Computing Environment" Sensors 20, no. 19: 5604. https://doi.org/10.3390/s20195604

APA Style

Wu, H. -L., Chang, C. -C., Zheng, Y. -Z., Chen, L. -S., & Chen, C. -C. (2020). A Secure IoT-Based Authentication System in Cloud Computing Environment. Sensors, 20(19), 5604. https://doi.org/10.3390/s20195604

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop