Next Article in Journal
Sudden Event Monitoring of Civil Infrastructure Using Demand-Based Wireless Smart Sensors
Previous Article in Journal
Determination of HPLC-UV Fingerprints of Spanish Paprika (Capsicum annuum L.) for Its Classification by Linear Discriminant Analysis
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Secure and Efficient Three-Factor Protocol for Wireless Sensor Networks

1
Department of Platform Software, Sungkyunkwan University, Gyeonggi-do 16419, Korea
2
Department of Electrical and Computer Engineering, Sungkyunkwan University, Gyeonggi-do 16419, Korea
3
Department of Computer Engineering, Sungkyunkwan University, Gyeonggi-do 16419, Korea
*
Author to whom correspondence should be addressed.
Sensors 2018, 18(12), 4481; https://doi.org/10.3390/s18124481
Submission received: 8 November 2018 / Revised: 12 December 2018 / Accepted: 14 December 2018 / Published: 18 December 2018
(This article belongs to the Section Sensor Networks)

Abstract

:
Wireless sensor networks are widely used in many applications such as environmental monitoring, health care, smart grid and surveillance. Many security protocols have been proposed and intensively studied due to the inherent nature of wireless networks. In particular, Wu et al. proposed a promising authentication scheme which is sufficiently robust against various attacks. However, according to our analysis, Wu et al.’s scheme has two serious security weaknesses against malicious outsiders. First, their scheme can lead to user impersonation attacks. Second, user anonymity is not preserved in their scheme. In this paper, we present these vulnerabilities of Wu et al.’s scheme in detail. We also propose a new scheme to complement their weaknesses. We improve and speed up the vulnerability of the Wu et al. scheme. Security analysis is analyzed by Proverif and informal analysis is performed for various attacks.

1. Introduction

A wireless sensor network (WSN) is a distributed network of autonomous sensors that are typically used to collect information about environmental or physical conditions. Wireless sensor networks are applicable to a variety of applications such as environmental monitoring, health care, smart grid and surveillance [1,2,3,4,5,6] because they can be easily deployed without a significant cost penalty.
In general, a WSN system consists of four entities: (1) user interface, (2) a sensor node that measures physical or environmental conditions, (3) a gateway node that forwards the information received from the sensor nodes to a central server, and (4) a central server that collects the information from the sensor nodes and analyze it. Naturally, however, the security of WSN is critical because network packets can be easily captured and modified in WSN due to the inherent characteristics of wireless networks. Therefore, we need to provide security protocols in order to ensure security properties such as confidentiality, integrity, and authenticity even when data packets on a WSN are captured and modified in an unauthorized manner.
Due to the inherent weakness of WSNs, many researchers have proposed security protocols to achieve fundamental security goals of WSNs. As one of the pioneers in this area, Watro et al. [7] proposed a security protocol using RSA (See Table A1 for details) for wireless sensor networks. To enhance the security of the authentication procedure, Das [2] extended their protocol to a two-factor user authentication protocol for WSNs where a user has to hold both a password and smartcard. Because their proposed authentication scheme provides reasonable security properties, it has been widely used for WSNs as a de-factor standard protocol [8,9,10]. However, He et al. [11] found that Das’s protocol is vulnerable to several attacks such as insider attacks, impersonation attacks and lack of secure mutual authentication. They also suggested an authentication scheme by fixing the discovered problems. However, Kumar et al. [12] also discovered several security flaws such as information leakage, no session key agreement, no mutual authentication, and lack of anonymity in Das’s protocol.
Recently, some researchers (e.g., [13]) have started to develop user authentication schemes for WSNs using ECC, which can provide the same security as RSA with a smaller key size. ECC is the most efficient algorithm that satisfies forward secrecy and backward secrecy among the algorithms so far. Xue et al. [14] particularly introduced a temporal-credential-based protocol to provide user anonymity. However, Jiang et al. [15] demonstrated that Xue et al.’s scheme has four critical security flaws: (1) identity guessing attacks, (2) online password guessing attacks by privileged insiders, and (3) offline password guessing attacks with a victim’s smartcard. Jiang et al. also suggested a new authentication scheme to address their discovered issues.
More recently, Das [16] found that Jiang et al. [15]’s scheme has significant security issues such as the vulnerabilities to insider and de-synchronization attacks and lack of formal security proof of the proposed scheme. To address these issues, Das proposed several three-factor user authentication schemes [16,17,18] by introducing a new factor of user biometrics. Again, Wu et al. [1] found that all the Das’ schemes [16,17,18] are vulnerable to de-synchronization and offline password guessing attacks. In addition, the protocols [17,18] are vulnerable to user impersonation and offline password guessing attacks. To fix such problems, Wu et al. [1] suggested a three-factor user authentication scheme using ECC for WSNs.
In this paper, however, we found that Wu et al.’s scheme [1] has two security flaws against outsider attackers. First, their scheme can lead to user impersonation attacks. Second, user anonymity is not preserved because the user identity can be revealed from an anonymous login request message. We will explain these in the reminder of this paper. Our key contributions are summarized below:
  • We discovered two security weaknesses in Wu et al.’s scheme [1], which was recently designed for user authentication using ECC in WSN systems. We demonstrated that a malicious outsider holding a smart card can extract the secret parameters from his/her smart card; the extracted secret parameters can be used to perform impersonation attacks and reveal the identity of the user from a login request message.
  • We also proposed a novel three-factor user authentication scheme for WSN by extending Wu et al.’s scheme [1]. The proposed authentication scheme not only accomplishes several important security properties but also improves the performance of the protocol in time.
The rest of the paper is structured as follows: Section 2 gives some preliminaries of the cryptographic primitives (i.e., ECC and fuzzy extractor) used in our paper and explains the threat model and assumptions. Section 3 provides a review of Wu et al.’s scheme [1]. Section 4 analyzes the security weaknesses of their scheme. Section 5 presents a novel three-factor user authentication scheme by fixing security issues in Wu et al.’s scheme. Section 6 and Section 7 provide security and performance analysis results, respectively. We conclude in Section 8.

2. Preliminaries

In this section, we introduce elliptic curves, fuzzy extractors, and threat models to be used in this paper.

2.1. Elliptic Curve Cryptosystem

The Elliptic curve cryptosystem (ECC) is the most frequently used password system in modern passwords and has strong security characteristics. Miller [19] and Neal [20] create ECC in 1985 and 1987, respectively. ECC uses the following formula:
y 2 = x 3 + a x + b m o d p a , b F p .
The above equation is ECC on the F p . The following conditions must be met in order to ensure safety:
4 a 3 + 27 b 2 0 m o d p .
This is a formula that guarantees the non-singularity of an elliptic curve. When using this elliptic curve, safety is ensured as follows:
  • Elliptic Curve Computational Diffie–Hellman Problem (ECCDHP): Given x y P , it is impossible to find x P , y P .
  • Elliptic Curve Decisional Diffie–Hellman Problem (ECDDHP): Given x P , y P it is impossible to find x y P .
  • Elliptic Curve Discrete Logarithm Problem (ECDLP): Given P, x P it is impossible to find x.
We hypothesized that P is the point on F p , x P is the result of calculating P times x, y P is the result of calculating P times y, and x y P is the result of calculating P times x y .

2.2. Fuzzy Extractor

The user’s biometric information is very important information. In general, human biometric recognition is perceived differently each time, and the fuzzy extractor plays a role in correcting it. The fuzzy extractor can obtain a unique string using error tolerance. The fuzzy extractor is operated through two procedures ( G e n , R e p ), demonstrated as [17,21]:
G e n ( B ) α , β ,
R e p ( B , β ) = α .
G e n is a probabilistic generation function for which the biometrics B returns a factored out string α { 0 , 1 } k and a coadjutant string β { 0 , 1 } , and R e p is a function that restores β to α , and any vector B close to B [22].

2.3. Threat Assumption

We introduce a threat model [8], and consider constructing the threat assumptions as follows:
  • The attacker A can be a user, a gateway, or a sensor. Any registered user can act as an attacker.
  • A can intercept or eavesdrop on all communication messages in a public channel, thereby capturing any message exchanged between a user and gateway or sensor.
  • A has the ability to modify, reroute, or delete the intercepted message.
  • Stored parameters can be extracted from smart cards using the side channel attack [23].
  • An external attacker A (outsider) can also register, login and receive his/her smart card.

3. Review of Wu et al.’s Scheme

In this section, we perform an analysis on Wu et al.’s scheme in order to scrutinize the security weakness of their scheme in the next section. Wu et al.’s scheme consists of four phases: registration phase, login phase, authentication phase, and password change phase. In addition, it applies ECC such as the [17] schemes. To begin with, G W N creates G on E ( F p ) with P as a generator and large prime n as an order. After that G W N picks a private key x under two hash functions h ( · ) , h 1 ( · ) and security length l s . In their scheme, they assume that the length of all random numbers should be above l s . Other notations used in Wu et al.’s scheme are abridged in Table 1.

3.1. Registration Phase

Registration phase is divided into two parts: user registration phase and registration phase.

3.1.1. User Registration

  • The user U i first decides his/her identification I D i and password P W i . With a random number r i , it imprints B i over a device for biometrics collection, and calculates G e n ( B i ) = ( R i , P b i ) , D I D i = h ( I D i r i ) and H P W i = h ( P W i r i R i ) . He/she then requests the registration message { I D i , D I D i } to the gateway node G W N over a secure channel.
  • After the registration request message from the U i is received, G W N computes B 1 = h ( D I D i x ) , where x is G W N ’s secret key, prepares a smart card for U i containing h ( · ) , h 1 ( · ) , P, and collects I D i in the database. The next thing is that G W N sends the smart card with B 1 to the U i securely.
  • When receiving the smart card with B 1 from the G W N , U i computes B 1 = B 1 H P W i and B 2 = h ( I D i R i P W i ) r i with storing B 1 , B 2 , P and P b i in the smart card.

3.1.2. Sensor Registration

  • G W N determines an identity S I D j for new sensor node S j , computes hash function c j = h ( S I D j x ) , and sends { S I D j , c j } to S j .
  • S j stores P, S I D j and c j , and enters the WSN.

3.2. Login Phase

  • U i enters I D i , P W i and B i . Then, the smart card computes R e p ( B i , P b i ) = R i , r i = B 2 h ( I D i R i P W i ) , H P W i = h ( P W i r i R i ) and D I D i = h ( I D i r i ) .
  • The smart card produces random numbers r i n e w , e i and α [ 1 , n 1 ] , and selects a special sensor S I D j . Then, the smart card calculates D I D i n e w = h ( I D i r i n e w ) , C 1 = B 1 H P W i e i , C 2 = α P , C 3 = h ( e i ) D I D i n e w , Z i = I D i h ( e i D I D i ) and C 4 = h ( I D i e i D I D i D I D i n e w C 2 S I D j ) . The value C 4 is used to certify the integrity of the identities and the new data generated by the user side as well as to authenticate the source of the message M 1 .
  • U i sends the login request messages M 1 = { C 1 , C 2 , C 3 , C 4 , Z i , D I D i , S I D j } to G W N .

3.3. Authentication Phase

  • After the login request messages M 1 arrives from the user U i , G W N first computes e i = C 1 h ( D I D i x ) , D I D i n e w = C 3 h ( e i ) and I D i = Z i h ( e i D I D i ) , and verifies the legitimacy of I D i and C 4 = ? h ( I D i e i D I D i D I D i n e w C 2 S I D j ) . G W N terminates the session if either verification fails. If three failures continuously occur in a certain time span as defined, U i ’s account will be frozen; otherwise, G W N calculates c j = h ( S I D j x ) and C 5 = h ( c j D I D j S I D j C 2 ) and sends M 2 = { C 2 , C 5 , D I D i } to the sensor node S j . The value C 5 is used to accredit the integrity of the strings containing c j , and the data can be used for the sensor S j to acquire the correct data for calculating the session key. This is also done for verification of the source of M 2 .
  • S j checks the validity of C 5 , C 5 = ? h ( c j D I D i S I D j C 2 ) with its identity S I D j . If this step fails, S j will terminate the session. Otherwise, S j then chooses β [ 1 , n 1 ] and calculates C 6 = β P , s k s = β C 2 , C 7 = h 1 ( C 2 C 6 s k s D I D i S I D j ) and C 8 = h ( D I D i S I D j c j ) . The main functionality of C 7 is used for checking the integrity of the session key and C 6 , which is needed by U i to compute the session key. Both C 7 and C 8 are also used to validate the source of M 3 . In the end, S j sends M 3 = { C 6 , C 7 , C 8 } to G W N .
  • G W N checks C 8 = ? h ( D I D i S I D j c j ) . If the validation phase fails, G W N terminates the session; otherwise, G W N computes C 9 = h ( D I D i n e w x ) h ( D I D i e i ) and C 10 = h ( I D i S I D j D I D i D I D i n e w e i C 9 ) . The value C 10 is to check the validation of the source’s message M 4 . Eventually, G W N sends the message M 4 = { C 6 , C 7 , C 9 , C 10 } to U i .
  • U i checks C 10 = ? h ( I D i S I D j D I D i D I D i n e w e i C 9 ) . U i then computes the session key s k u = α C 6 , and checks C 7 = ? h 1 ( C 2 C 6 s k u D I D i S I D j ) . U i terminates the session if U i fails the verification phase. Otherwise, U i computes H P W i n e w = h ( P W i r i n e w R i ) , B 1 n e w = C 9 h ( D I D i e i ) H P W i n e w and B 2 n e w = h ( I D i R i P W i ) r i n e w , and replaces ( B 1 , B 2 ) with ( B 1 n e w , B 2 n e w ) in each smart card separately.

3.4. Password and Biometrics Change Phase

  • Same as the step 1 in the Login phase.
  • The smart card produces random numbers r i n e w and e i , calculates D I D i n e w , C 1 , C 3 , Z i and C 11 = h ( I D i e i D I D i D I D i n e w ) , and sends M 5 = { C 1 , C 3 , Z i , C 11 , D I D i } with a password change request to G W N . The value C 11 is similar to C 4 , which is to confirm the integrity of the identities as well as to verify the source of M 5 .
  • G W N obtains e i , I D i and D I D i n e w as in step 1 of the authentication phase, and checks I D i and C 11 = ? h ( I D i e i D I D i D I D i n e w ) . If the verification stage fails, G W N terminates the session; otherwise, G W N computes C 9 = h ( D I D i n e w x ) h ( D I D i e i ) and C 12 = h ( I D i D I D i D I D i n e w e i C 9 ) and sends M 6 = { C 9 , C 12 } and a grant to U i . Here, C 12 is to verify the source of M 6 .
  • U i checks C 12 = ? h ( I D i D I D i D I D i n e w e i C 9 ) . If two values are not equal, then U i terminates this session; otherwise, U i inputs a new password P W i n e w and a new biometric information B i n e w . The next thing is that the smart card computes G e n ( B i n e w ) = ( R i n e w , P b i n e w ) , H P W i n e w 2 = h ( P W i n e w r i n e w R i n e w ) , B 1 n e w 2 = C 9 h ( D I D i e i ) H P W i n e w 2 and B 2 n e w 2 = h ( I D i R i n e w P W i n e w ) r i n e w . Finally, U i substitutes ( B 1 n e w 2 , B 2 n e w 2 , P b i n e w 2 ) for ( B 1 , B 2 , P b i ) in the smart card, respectively.

4. Cryptanalysis of Wu et al.’s Scheme

We show that Wu et al.’s scheme [1] possesses certain some security vulnerabilities in this section. The following problems have been found and are described in detail below.

4.1. Extract Critical Information

  • An attacker A who is a legitimate user and he/she can own his/her smart card. The smart card can extract the value { B 1 A , B 2 A , P, P b A } .
  • A can thus obtain h ( D I D A x ) = B 1 A H P W A , and use this variable for other attacks because this value is a critical value that be used on the user identification in the G W N .

4.2. No User Anonymity

Attacker A can extract the identity of U i from the login request message M i of U i . Assume that A eavesdrops on the login request message M 1 = { C 1 , C 2 , C 3 , C 4 , Z i , D I D i , S I D j } of U i . We also assume that attacker A has h ( D I D A x ) through 5.1. Extract Critical Information. The details are as follows:
  • Attacker A first generates random numbers r A n e w , e A , and α A [ 1 , n 1 ] , and selects a special sensor S I D j . C 1 A = B 1 A H P W A e A , C 2 A = α A P , C 3 A = h ( e A ) D I D i , Z A = I D A h ( e A D I D A ) and C 4 A = h ( I D A e A D I D A D I D i C 2 A S I D j ) .
  • A forwards the login request message M 1 A = { C 1 A , C 2 A , C 3 A , C 4 A , Z A , D I D A , S I D j } to the gateway node G W N .
  • After receiving the login request message from A , G W N computes e A = C 1 A h ( D I D A x ) , D I D i = C 3 A h ( e A ) and I D A = Z A h ( e A D I D A ) , and checks the validity of I D A and C 4 A = ? h ( I D A e A D I D A D I D i C 2 A S I D j ) . G W N then computes c j = h ( S I D j x ) and C 5 A = h ( c j D I D j S I D j C 2 A ) and sends M 2 A = { C 2 A , C 5 A , D I D A } to S j .
  • S j checks C 5 A = ? h ( c j D I D A S I D j C 2 A ) with its identity S I D j . If this does not hold, S j terminates the session. S j then selects β A [ 1 , n 1 ] and computes C 6 A = β A P , s k s = β A C 2 A , C 7 A = h 1 ( C 2 A C 6 A s k s D I D A S I D j ) and C 8 A = h ( D I D A S I D j c j ) . S j sends M 3 A = { C 6 A , C 7 A , C 8 A } to G W N .
  • G W N tests C 8 A = ? h ( D I D A S I D j c j ) . If this does not hold, G W N terminates the session; otherwise, G W N calculates C 9 A = h ( D I D i x ) h ( D I D A e A ) and C 10 A = h ( I D A S I D j D I D A D I D i e A C 9 A ) . Finally, G W N sends the message M 4 A = { C 6 A , C 7 A , C 9 A , C 10 A } to attacker A .
  • A calculates h ( D I D i x ) = h ( D I D A e A ) C 9 A . Now, A can compute e i = C 1 h ( D I D i x ) . Eventually, A can find I D i = h ( e i D I D i ) Z i .
This result shows that Wu et al.’s scheme does not ensure user anonymity.

4.3. User Impersonation Attack

An attacker A can impersonate any user through the identity of others and his/her own information. We assume the casualty is U i . We also assume that attacker A has h ( D I D A x ) through Section 5.1. Extract Critical Information. The detailed method is as follows:
  • Attacker A selects I D i who is the target of the user impersonation attack.
  • A selects random numbers r A n e w , e A , and α A [ 1 , n 1 ] and selects a particular sensor S I D j . Then, A calculates D I D A n e w = h ( I D A r A n e w ) , C 1 A = B 1 A H P W A e A , C 2 A = α A P , C 3 A = h ( e A ) D I D A n e w , Z A = I D i h ( e A D I D A ) and C 4 A = h ( I D i e A D I D A D I D A n e w C 2 A S I D j ) . C 4 A is to check the new data produced on the user side and the integrity of the identities as well as to verify the source of M 1 A .
  • A forwards the login request message M 1 A = { C 1 A , C 2 A , C 3 A , C 4 A , Z A , D I D A , S I D j } to G W N .
  • After obtaining the message from the A , G W N calculates e A = C 1 A h ( D I D A x ) , D I D A n e w = C 3 A h ( e A ) and I D i = Z A h ( e A D I D A ) , and checks the availability of I D i and checks C 4 A = ? h ( I D i e A D I D A D I D A n e w C 2 A S I D j ) . G W N continues to proceed with the scheme without detection. Unfortunately, the G W N mistakenly believes that he/she is communicating with the legitimate patient U i .
Resultingly, the attacker A will be successfully confirmed as G W N by user U i . Hence, the user impersonation attack is successful.
In the next section, we discuss Wu et al.’s scheme to overcome the weakness of the scheme. Our scheme stores several variables in the database to prevent the vulnerability of Wu et al.

5. Proposed Scheme

We propose a new three-factor user authentication scheme for wireless sensor networks in this section. We use three participants: the user U i , the gateway node G W N and the sensor node S j . The gateway node G W N creates master keys x. The user U i and the sensor node S j computes on elliptic curve group F p .
We have defined the name of the variable as follows:
  • G 1 , G 2 , G 3 : Generator of smart card,
  • M U 1 , M U 2 , M U 3 : message sent by user,
  • M G 1 , M G 2 , M G 3 , M G 4 : message sent by gateway node,
  • M S 1 , M S 2 , M S 3 : message sent by the server node.
Other variables do not have that special meaning.
The proposed scheme is composed as follows: registration phase, login phase, authentication phase, and password/biometrics change phase.

5.1. Registration Phase

In this phase, a user U i chooses an identity I D i , imprints biometric template B i at the sensor, and then performs the following steps:

5.1.1. User Registration Phase

  • U i selects I D i and P W i . imprints B i via a device for biometrics collection and computes G e n ( B i ) = ( R i , P b i ) and H P W i = h ( I D i P W i R i ). Then, he/she sends I D i to G W N secretly.
  • G W N generates a random number r i and computes G I D i = h ( I D i r i ).
  • G W N computes G i = h ( G I D i x ), prepares a smart card for U i containing h (·), h 1 (·), P, G I D i and the fuzzy extractor.
  • G W N stores I D i and G I D i in its database and shares it with U i . By storing I D i and G I D i in the database, Wu et al. [1]’s problems arising from existing D I D i can be solved.
  • U i computes G 1 = G 1 H P W i , G 2 = h ( I D i R i P W i ) G I D i and G 3 = h ( I D i G I D i ). { G 1 , G 2 , G 3 , h (·), h 1 (·), P } are stored in the smart card.

5.1.2. Sensor Registration Phase

  • G W N selects an identity S I D j for each new sensor S j , computes c j = h ( S I D j x ) and sends { S I D j , c j } to S j .
  • S j stores P, S I D j and c j and joins the WSN.
Figure 1 illustrates the registration phase of the proposed scheme.

5.2. Login Phase

  • U i inputs I D i , P W i and B i . The smart card executes R e p ( B i , P b i ) = R i and G I D i = G 2 h ( I D i R i P W i ). U i checks h ( I D i G I D i ) = ? G 3 . This allows U i to verify whether it has come in correctly.
  • U i generates e i and α . U i computes H P W i = h ( I D i P W i R i ), M U 1 = G 1 H P W i e i , M U 2 = α P and M U 3 = h ( I D i e i G I D i M U 2 S I D j ).
  • U i sends the message M 1 = { M U 1 , M U 2 , M U 3 , G I D i , S I D j } to G W N .
Figure 2 illustrates the login and authentication phase of the proposed scheme.

5.3. Authentication Phase

  • G W N finds I D i by using G I D i from the database and computes e i = M U 1 h ( G I D i x ). G W N checks the validity of M U 3 = ? h ( I D i e i G I D i M U 2 S I D j ). If it fails, the session will be terminated. Otherwise, G W N computes c j = h ( S I D j x ) and M G 1 = h ( c j G I D i S I D j M U 2 ). When the operation has finished, G W N sends the message M 2 = { M U 2 , M G 1 , G I D i } to S j .
  • S j checks M G 1 = ? h ( c j G I D i S I D j M U 2 ) with its identity S I D j . If it is wrong, S j will stop the session. Otherwise, S j selects β [ 1 , n 1 ] and computes M S 1 = β P , session key s k s = β M U 2 , M S 2 = h 1 ( M U 2 M S 1 s k s G I D i S I D j ) and M S 3 = h ( G I D i S I D j c j ). It sends message M 3 = { M S 1 , M S 2 , M S 3 } when all operations have finished.
  • G W N checks M S 3 = ? h ( G I D i S I D j c j ). If it is wrong, the session will be stopped. Otherwise, G W N generates r i n e w and calculates G I D i n e w = h ( I D i r i n e w ), M G 2 = h ( G I D i n e w x ) h ( G I D i e i ), M G 3 = h ( I D i S I D j G I D i G I D i n e w e i M G 2 ) and M G 4 = h ( e i ) G I D i n e w . Finally, G W N sends the message M 4 = { M S 1 , M S 2 , M G 2 , M G 3 , M G 4 } to U i .
  • U i computes G I D i n e w = M G 4 h ( e i ) and checks M G 3 = ? h ( I D i S I D j G I D i G I D i n e w e i M G 2 ). If not, the session will be stopped. U i computes s k u = α M S 1 = α β P and checks M S 2 = ? h 1 ( M U 2 M S 1 s k u G I D i S I D j ). If it is wrong, U i will stop the session.
  • U i computes G 1 n e w = M G 2 h ( G I D i e i ) H P W i , G 2 n e w = G 2 G I D i G I D i n e w and G 3 n e w = h ( I D i G I D i n e w ) . Finally, U i substitutes ( G 1 n e w , G 2 n e w , G 3 n e w ) for ( G 1 , G 2 , G 3 ) in the smart card, respectively.

5.4. Password and Biometrics Change Phase

  • U i inputs I D i , P W i and B i . The smart card executes R e p ( B i , P b i ) = R i and G I D i = G 2 h ( I D i R i P W i ). U i checks h ( I D i G I D i ) = ? G 3 . This allows U i to verify whether it has come in correctly.
  • U i is asked to input a new password P W i n e w and new biometric information B i n e w . The following data are computed: G e n ( B i n e w ) = ( R i n e w , P b i n e w ) , H P W i n e w 2 = h ( I D i P W i n e w R i n e w ) , G 1 n e w 2 = G 1 H P W i H P W i n e w 2 , G 2 n e w 2 = G 2 h ( I D i R i P W i ) h ( I D i R i P W i n e w 2 ) . Finally, U i substitutes ( G 1 n e w 2 , G 2 n e w 2 , P b i n e w ) for ( G 1 , G 2 , P b i ) in the smart card, respectively.

6. Security Analysis of the Proposed Scheme

6.1. Formal Security Analysis

The formal security analysis uses an automated analysis tool called ProVerif. ProVerif is an automated tool for analyzing cryptographic protocols that was developed by Bruno Blanchet. Digital signatures, hash functions, signature proofs, etc. are suitable for analyzing an authentication protocol. Recently, many researchers [1,4,24] have verified the authentication in the user authentication protocol using ProVerif. The formal security analysis shows the results of verifying and analyzing the security of the proposed scheme using ProVerif.
We use three channels. We provide the illustration of Table 2. c h a is the channel in the registration phase and is used when the user U i and G W N exchange I D i in the registration phase. c h c is the channel used by user U i and G W N to exchange messages in the login phase and c h b is used when the G W N and Sensor node S j exchange messages in the login phase. Five initial variables were used: R i , I D i , I D g , S I D j , and P W i . I D i and P W i are the personal information made by the user U i when registering. R i is a random string made up of the user’s biometric information. I D g is the identity of the gateway and S I D j is the unique string of the sensor node S j . x is defined as a secret key. P is a generator for creating a session key, which is the initial value used in ECC. The concatenate function and the x o r function, including the multiplication in ECC and the hash function h and h 1 , are defined for the events that indicate the start and end of each.
Table 3 shows the registration phase of the user U i and the process of the login and authentication phase. Table 4 demonstrates the registration phase and the login and authentication phase of the G W N . Table 5 displays the authentication phase of the sensor node S j . Table 6 shows the query against the attack with the prover- sive, and Table 7 shows the result for Table 6.
When the code that makes up the scheme is executed, ProVerif prints the following results:
  • RESULT inj-event(EVENT) ==> inj-event(EVENT) is true.
  • RESULT inj-event(EVENT) ==> inj-event(EVENT) is false.
  • RESULT (QUERY) is true.
  • RESULT (QUERY) is false.
The first code means that the event has been verified and the authentication has been successful, while the second code means that the event has not been verified. The third code means that the query was proven and the attack was not successful. When the fourth code is displayed, the query is false, meaning that an attack is possible and the attack induction and tracking is thus displayed.
The ProVerif result of the proposed scheme is shown to be accurate for all events by simulating the result as shown in the figure (see Table 8). Therefore, the proposed scheme is safe from virtual attacker A and the virtual attack has been successfully terminated.

6.2. Informal Security Analysis

6.2.1. Privileged Insider Attack

The only value that the user sends in the registration center is the I D i . However, their I D i is used after hashing with other values at every subsequent step. It can not be used because it is used as hashed with values that are not exposed to the outside such as P W i or R i , G I D i , G I D i n e w , e i , M U 2 and S I D j , M G 2 , and these values are not exposed. Therefore, it is safe from a privileged insider attack.

6.2.2. Outsider Attack

U i ’s smart cards include h (·), h 1 (·), P, G I D i , and fuzzy extractors. Information such as session key or I D i , which can be a critical value, or information such as a user’s password are all hashed, or can not be extracted because the value can not be extracted from ECC. In addition, I D s and G I D s are kept in the database, and I D i information can not be extracted because I D i are not used directly in the protocol.

6.2.3. Offline ID Guessing Attack

P W i and I D i are not used directly in this phase. They are used through hashing by concatenating them with other variables, so I D i and P W i can not be directly obtained from public information. Therefore, I D i and P W i can not be obtained using login request messages M U 1 , M U 2 , M U 3 , G I D i , and S I D j . Since I D i and G I D i are combined and stored in the database, it is impossible to extract the I D i from the protocol.

6.2.4. Online ID Guessing Attack

I D i and P W i are not directly used in the phase so the attacker can not guess the I D i s or passwords of others. It is impossible to retrieve a user’s I D i in the protocol because the I D s and G I D s are stored in the database, and I D i is found by searching the database.

6.2.5. Session Key Disclosure Attack

The session key should be computed as β or α when knowing α P or β P with α β P . Neither β nor α are known to the user or the sensor node, so it is impossible to know the session key unless it is a user or a sensor node.

6.2.6. User Impersonation Attack

After the I D i is found in the database using the G I D , e i = M U 1 + h ( G I D i | | x ) is calculated in order to compare the M U 3 and h ( I D i e i G I D i M U 2 S I D j ) . One can never be accepted as a specific user without knowing the I D and G I D pair. Therefore, a User Impersonation Attack is impossible.

6.2.7. Server Impersonation Attack

The server is identified in M S 3 = h ( G I D i S I D j c j ) . c j = h ( S I D j x ) and x is the secret key. Therefore, it is necessary to know the c j calculated by the secret key other than the G I D i and the S I D j included in the message in order to authenticate the server and c j is not used alone and M G 1 = h ( c j G I D i S I D j M U 2 ) , M S 3 = h ( G I D i S I D j c j ) and other values. In addition, the value x in the destination c j = h ( S I D j x ) can not be determined because it is always used by hashing with S I D j .

6.2.8. User Anonymity

In the login process, the user gives M U 1 , M U 2 , M U 3 , G I D i , and S I D j to the G W N . In this case, G I D i = G 2 + h ( I D i R i P W i ) is continuously changed by the random number R i . Since I D i is used by hashing, one cannot guess I D i through M U 1 , M U 2 , M U 3 , G I D i , and S I D j .

6.2.9. Forward Secrecy and Backward Secrecy

Because of the nature of ECCDH, we can not find α P and β P through α β P , we can not find α β P through α P and β P , and we can not find α through P and α P .

7. Performance Analysis of the Proposed Scheme

Four symbols in total are used to analyze performance. T m is the time of the multiplicative operation used in ECC. This takes the most time in our scheme. T R e p assumes that it is equal to T m , the time to check for a match when recognizing the user’s biometric B i . T s means time in symmetric encryption or decryption. Finally, T h means the time it takes to use the hash function. These are listed in Table 9.
The authors [26] measured the approximate execution time of each cryptographic operation under the following conditions:
  • CPU: Intel(R) Core(TM)2T6570 2.1 GHz,
  • Memory: 4 G,
  • OS: Win7 32-bit,
  • Software: Visual C++ 2008,
  • MIRACL C/C++ Library,
  • Security level: 160-bit point in F p ,
  • 1024-bit in a cyclic group, AES and SHA-1.
The proposed scheme produced the best results in time among all the three factor user authentication schemes using ECC (see Table 10).

8. Conclusions

Many user authentication schemes have been proposed for wireless sensor networks, but they have serious security flaws, respectively. Recently, Wu et al. also proposed a three-factor user authentication scheme, which is looking promising. However, we discovered vulnerabilities in the configuration of their scheme and proposed a new scheme to address the discovered issues. Finally, we provide security and performance analysis between the Wu et al. scheme and our proposed protocol, and provide formal analysis based on the ProVerif. The security and performance of the proposed scheme are significantly better than the existing user authentication schemes. Our scheme is not very fast yet. In the future, we will study the WSN protocol, which is safer, simpler and faster.

Author Contributions

J.R., H.L. conceived and designed the experiments; J.R., H.K. Performed the experiments; J.R. and D.W. analyzed the data; and J.R. and H.K. wrote the paper.

Funding

This research was supported by Basic Science Research Program through the National Research Foundation of Korea(NRF) funded by the Ministry of Education (NRF-2010-0020210).

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A

Table A1. Explanation of each abbreviation.
Table A1. Explanation of each abbreviation.
NotationsDescription
WSNWireless sensor network
RSAA public-key encryption technology developed by Ron Rivest, Adi Shamir, and Leonard Adleman
ECCElliptic curve cryptosystem created by Victor S. Miller and Neal Koblitz
G e n A probabilistic generation function for which the biometrics B returns a string α and a string β
R e p A function that restore β to α and any vector B close to B
BA vector with biometric information
B Any vector B close to B
G W N Gateway node
ProVerifAn analysis tool for protocol verification

References

  1. Wu, F.; Xu, L.; Kumari, S.; Li, X. An Improved and Provably Secure Three-Factor User Authentication Scheme for Wireless Sensor Networks. Peer-to-Peer Netw. Appl. 2018, 11, 1–20. [Google Scholar] [CrossRef]
  2. Das, M. Two-Factor User Authentication in Wireless Sensor Networks. IEEE Trans. Wirel. Commun. 2009, 8, 1086–1090. [Google Scholar] [CrossRef]
  3. Park, Y.; Lee, S.; Kim, C.; Park, Y. Secure biometric-based authentication scheme with smart card revocation/reissue for wireless sensor networks. Int. J. Distrib. Sens. Netw. 2016, 12, 1–11. [Google Scholar] [CrossRef]
  4. Kumari, S.; Chaudhry, S.A.; Wu, F.; Li, X.; Farash, M.S.; Khan, M.K. An improved smart card based authentication scheme for session initiation protocol. Peer-to-Peer Netw. Appl. 2017, 10, 92–105. [Google Scholar] [CrossRef]
  5. Elhoseny, M.; Yuan, X.; El-Minir, H.K.; Riad, A.M. An energy efficient encryption method for secure dynamic WSN. Secur. Commun. Netw. 2016, 9, 2024–2031. [Google Scholar] [CrossRef]
  6. Gaber, T.; Abdelwahab, S.; Elhoseny, M.; Hassanien, A.E. Trust-based secure clustering in WSN-based intelligent transportation systems. Comput. Netw. 2018, 146, 151–158. [Google Scholar] [CrossRef]
  7. Watro, R.; Kong, D.; Cuti, S.; Gardiner, C.; Lynn, C.; Kruus, P. TinyPK: Securing Sensor Networks with Public Key Technology. In Proceedings of the 2nd ACM Workshop on Security of Ad Hoc and Sensor Networks, Washington, DC, USA, 25–29 October 2004; pp. 59–64. [Google Scholar]
  8. Moon, J.; Choi, Y.; Jung, J.; Won, D. An Improvement of Robust Biometrics-based Authentication and Key Agreement Scheme for Multi-Server Environments using Smart Cards. PLoS ONE 2015, 10, e0126323. [Google Scholar] [CrossRef] [PubMed]
  9. Choo, K.K.R.; Nam, J.; Won, D. A mechanical approach to derive identity-based protocols from Diffie–Hellman-based protocols. Inf. Sci. 2014, 281, 182–200. [Google Scholar] [CrossRef]
  10. Moon, J.; Choi, Y.; Kim, J.; Won, D. An improvement of robust and efficient biometrics based password authentication scheme for telecare medicine information systems using extended chaotic maps. J. Med. Syst. 2016, 40, 70. [Google Scholar] [CrossRef] [PubMed]
  11. He, D.; Gao, Y.; Chan, S.; Chen, C.; Bu, J. An enhanced two-factor user authentication scheme in wireless sensor networks. Ad Hoc Sens. Wirel. Netw. 2010, 10, 361–371. [Google Scholar]
  12. Kumar, P.; Lee, H.J. Cryptanalysis on two user authentication protocols using smart card for wireless sensor networks. In Proceedings of the 2011 Wireless Advanced, London, UK, 20–22 June 2011; pp. 241–245. [Google Scholar]
  13. Yeh, H.L.; Chen, T.H.; Liu, P.C.; Kim, T.H.; Wei, H.W. A secured authentication protocol for wireless sensor networks using elliptic curves cryptography. Sensors 2011, 11, 4767–4779. [Google Scholar] [CrossRef] [PubMed]
  14. Xue, K.; Ma, C.; Hong, P.; Ding, R. A temporal-credential-based mutual authentication and key agreement scheme for wireless sensor networks. J. Netw. Comput. Appl. 2013, 36, 316–323. [Google Scholar] [CrossRef]
  15. Jiang, Q.; Ma, J.; Lu, X.; Tian, Y. An efficient two-factor user authentication scheme with unlinkability for wireless sensor networks. Peer-to-Peer Netw. Appl. 2015, 8, 1070–1081. [Google Scholar] [CrossRef]
  16. Das, A.K. A secure and robust temporal credential-based three-factor user authentication scheme for wireless sensor networks. Peer-to-Peer Netw. Appl. 2016, 9, 223–244. [Google Scholar] [CrossRef]
  17. Das, A.K. A secure and effective biometricbased user authentication scheme for wireless sensor networks using smart card and fuzzy extractor. Int. J. Commun. Syst. 2017, 30, e2933. [Google Scholar] [CrossRef]
  18. Das, A.K. A secure and efficient user anonymity-preserving three-factor authentication protocol for large-scale distributed wireless sensor networks. Wirel. Pers. Commun. 2015, 82, 1377–1404. [Google Scholar] [CrossRef]
  19. Miller, V. Uses of Elliptic Curves in Cryptography. In Advances in Cryptology Crypto; Springer: Berlin, Germany, 1986; Volume 218, pp. 417–426. [Google Scholar]
  20. Koblitz, N. Elliptic curve cryptosystems. Math. Comput. 1987, 48, 203–209. [Google Scholar] [CrossRef]
  21. Dodis, Y.; Kanukurthi, B.; Katz, J.; Smith, A. Robust fuzzy extractors and authenticated key agreement from close secrets. IEEE Trans. Inf. Theory 2013, 58, 6207–6222. [Google Scholar] [CrossRef]
  22. Dodis, Y.; Reyzin, L.; Smith, A. Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data. In Proceedings of the International Conference on the Theory and Applications of Cryptographic Techniques, Interlaken, Switzerland, 2–6 May 2004; pp. 523–540. [Google Scholar]
  23. Messerges, T.S.; Dabbish, E.A.; Sloan, R.H. Examining smart-card security under the threat of power analysis attacks. IEEE Trans. Comput. 2002, 51, 541–552. [Google Scholar] [CrossRef]
  24. Lee, H.; Lee, D.; Moon, J.; Jung, J.; Kang, D.; Kim, H.; Won, D. An improved anonymous authentication scheme for roaming in ubiquitous networks. PLoS ONE 2018, 13, e0193366. [Google Scholar] [CrossRef] [PubMed]
  25. Park, Y.; Park, Y. Three-factor user authentication and key agreement using elliptic curve cryptosystem in wireless sensor networks. Sensors 2016, 16, 2123. [Google Scholar] [CrossRef] [PubMed]
  26. Xu, L.; Wu, F. Cryptanalysis and improvement of a user authentication scheme preserving uniqueness and anonymity for connected health care. J. Med. Syst. 2015, 39, 10. [Google Scholar] [CrossRef] [PubMed]
Figure 1. Registration phase of the proposed scheme.
Figure 1. Registration phase of the proposed scheme.
Sensors 18 04481 g001
Figure 2. Login and authentication phase of the proposed scheme.
Figure 2. Login and authentication phase of the proposed scheme.
Sensors 18 04481 g002
Table 1. Notations used in this paper.
Table 1. Notations used in this paper.
NotationsDescription
U i The i-th user
S j , S I D j A j-th sensor and its identity
I D i U i ’s identification
P W i Password of U i
B i U i ’s Biometric information summarized
A An evil-minded attacker
xSecret key of G W N
r i Random number generated by U i
h ( · ) , h 1 ( · ) One-way hash function
X Y Concatenation operator
Bitwise XOR operator
E ( F p ) A group of points on a finite field F p elliptic curve
PA point generator in F p with a large prime order n
GA cyclic addition group under P as a generator
s k u , s k s The session key generated by U i and S j , respectively.
Table 2. Define values and functions.
Table 2. Define values and functions.
(*—-channels—-*)
free cha:channel [private].
free chb:channel.
free chc:channel.
(*—-constants—-*)
free Ri:bitstring [private].
free IDi:bitstring [private].
free IDg:bitstring.
free SIDj:bitstring.
free PWi:bitstring [private].
(*—-secret key—-*)
free x:bitstring [private].
(*—-shared key—-*)
free P:bitstring [private].
(*—-functions—-*)
fun concat(bitstring, bitstring):bitstring.
fun xor(bitstring, bitstring):bitstring.
fun h(bitstring):bitstring.
fun h1(bitstring):bitstring.
fun mult(bitstring, bitstring):bitstring.
equation forall a:bitstring, b:bitstring; mult(a, b) = mult(b, a).
equation forall a:bitstring, b:bitstring; xor(xor(a, b), b) = a.
(*—-events—-*)
event beginUi(bitstring).
event endUi(bitstring).
event beginGWN(bitstring).
event endGWN(bitstring).
event beginSj(bitstring).
event endSj(bitstring).
Table 3. U i protocol.
Table 3. U i protocol.
(*—-Ui process—-*)
let Ui =
let HPWi = h(concat(concat(IDi, PWi), Ri)) in
out(cha,(IDi));
in(cha,(XGIDi:bitstring));
let G1’ = h(concat(XGIDi, x)) in
let G1 = xor(G1’, HPWi) in
let G2 = xor(h(concat(concat(IDi, Ri), PWi)), XGIDi) in
let G3 = h(concat(IDi, XGIDi)) in
event beginUi(IDi);
new ei:bitstring;
new alpha:bitstring;
let GIDi = xor(G2, h(concat(concat(IDi, Ri), PWi))) in
if h(concat(IDi, XGIDi)) = G3 then
let HPWi = h(concat(concat(IDi, PWi), Ri)) in
let MU1 = xor(xor(G1, HPWi), ei) in
let MU2 = mult(alpha, P) in
let MU3 = h(concat(concat(IDi, ei), concat(concat(XGIDi, MU2), SIDj))) in
out(chc,(MU1, MU2, MU3, GIDi, SIDj));
in(chc,(XXMS1:bitstring, XXMS2:bitstring,
XMG2:bitstring, XMG3:bitstring, XMG4:bitstring));
let GIDinew = xor(XMG4, h(ei)) in
if XMG3 = h(concat(concat(IDi, SIDj),
concat(concat(GIDi, GIDinew), concat(ei, XMG2)))) then
let sku = mult(alpha, XXMS1) in
if XXMS2 = h1(concat(concat(MU2, XXMS1),
concat(concat(sku, GIDi), SIDj))) then
let G1new = xor(XMG2, xor(h(concat(GIDi, ei)), HPWi)) in
let G2new = xor(G2, xor(GIDi, GIDinew)) in
let G1 = G1new in
let G2 = G2new in
event endUi(IDi).
Table 4. G W N protocol.
Table 4. G W N protocol.
(*—-GWN process—-*)
let GWN =
in(cha, (XIDi:bitstring));
new ri:bitstring;
let GIDi = h(concat(XIDi, ri)) in
let G1’ = h(concat(GIDi, x)) in
out(cha, (GIDi));
in(chc, (XMU1:bitstring, XMU2:bitstring, XMU3:bitstring, XGIDi:bitstring, XSIDj:bitstring));
event beginGWN(IDg);
let ei = xor(XMU1,h(concat(XGIDi, x))) in
if XMU3 = h(concat(concat(XIDi, ei),
concat(concat(XGIDi, XMU2), XSIDj))) then
let cj = h(concat(XSIDj, x)) in
let MG1 = h(concat(concat(cj, XGIDi), concat(XSIDj, XMU2))) in
out(chb, (XMU2, MG1, XGIDi));
in(chb, (XMS1:bitstring, XMS2:bitstring,
XMS3:bitstring));
if XMS3 = h(concat(concat(XGIDi, XSIDj), cj)) then
new rinew:bitstring;
let GIDinew = h(concat(XIDi, rinew)) in
let MG2 = xor(h(concat(GIDinew, x)), h(concat(XGIDi, ei))) in
let MG3 = h(concat(concat(XIDi, XSIDj), concat(concat(XGIDi, GIDinew), concat(ei, MG2)))) in
let MG4 = xor(h(ei), GIDinew) in
out(chc, (XMS1, XMS2, MG2, MG3, MG4));
event endGWN(IDg).
Table 5. S j protocol.
Table 5. S j protocol.
(*—-Sj process—-*)
let Sj =
in(chb, (XXMU2:bitstring, XMG1:bitstring, XXGIDi:bitstring));
event beginSj(SIDj);
let scj = h(concat(SIDj, x)) in
if XMG1 = h(concat(concat(scj, XXGIDi), concat(SIDj, XXMU2))) then
new beta:bitstring;
let MS1 = mult(beta, P) in
let sks = mult(beta, XXMU2) in
let MS2 = h1(concat(concat(XXMU2, MS1), concat(concat(sks, XXGIDi), SIDj))) in
let MS3 = h(concat(concat(XXGIDi, SIDj), scj)) in
out(chb, (MS1, MS2, MS3));
event endSj(SIDj).
Table 6. Queries.
Table 6. Queries.
(*—-queries—-*)
query attacker(P).
query id:bitstring; inj-event(endUi(id)) ==> inj-event(beginUi(id)).
query id:bitstring; inj-event(endGWN(id)) ==> inj-event(beginGWN(id)).
query id:bitstring; inj-event(endSj(id)) ==> inj-event(beginSj(id)).
process
((!Ui)|(!GWN)|(!Sj))
Table 7. Output of queries.
Table 7. Output of queries.
RESULT inj-event(endSj(id)) ==> inj-event(beginSj(id) is true.
RESULT inj-event(endGWN(id_12209)) ==> inj-event(beginGWN(id_12209) is true.
RESULT inj-event(endUi(id_25655)) ==> inj-event(beginUi(id_25655) is true.
RESULT not attacker(P[]) is true.
Table 8. Performance comparison.
Table 8. Performance comparison.
FeaturesWu et al. [1]Park et al. [3]Park et al. [25]Ours
Defence of privileged insider attackOOOO
Defence of outsider attackXXXO
Defence of offline ID guessing attackOOOO
Defence of online ID guessing attackXXXO
Defence of session key disclosure attackOOOO
Defence of user impersonation attackXXOO
Defence of server impersonation attackOXOO
User anonymityXOXO
Forward secrecy and backward secrecyOOOO
Table 9. Notations of time symbol.
Table 9. Notations of time symbol.
SymbolMeaningTime (ms)
T m time of multiplication in Field7.3529 [26]
T R e p time of  R e p = T m  [16]
T s time of symmetric encryption or decryption0.1303 [26]
T h time of hash operation0.0004 [26]
Table 10. Performance comparison.
Table 10. Performance comparison.
Wu et al. [1]Park et al. [3]Park et al. [25]Ours
User U i 10 T h + 1 T R e p + 2 T m 6 T h + 1 T R e p + 2 T m 10 T h + 1 T R e p + 2 T m 8 T h + 1 T R e p + 2 T m
(ms)= 22.0627= 22.0611= 22.0627= 22.0619
G W N 10 T h 7 T h + 2 T e 11 T h 10 T h
(ms)= 0.004= 0.2634= 0.0044= 0.004
Sensor node S j 2 T h + 2 T m 6 T h + 2 T m + 1 T e 4 T h + 2 T m 3 T h + 2 T m
(ms)= 14.7066= 14.8385= 14.7074= 14.707
Total costs22 T h + 4 T m + 1 T R e p 19 T h + 4 T m + 3 T e + 1 T R e p 25 T h + 4 T m + 1 T R e p 21 T h + 4 T m + 1 T R e p
(ms)= 36.7733= 37.163= 36.7745= 36.7729

Share and Cite

MDPI and ACS Style

Ryu, J.; Lee, H.; Kim, H.; Won, D. Secure and Efficient Three-Factor Protocol for Wireless Sensor Networks. Sensors 2018, 18, 4481. https://doi.org/10.3390/s18124481

AMA Style

Ryu J, Lee H, Kim H, Won D. Secure and Efficient Three-Factor Protocol for Wireless Sensor Networks. Sensors. 2018; 18(12):4481. https://doi.org/10.3390/s18124481

Chicago/Turabian Style

Ryu, Jihyeon, Hakjun Lee, Hyoungshick Kim, and Dongho Won. 2018. "Secure and Efficient Three-Factor Protocol for Wireless Sensor Networks" Sensors 18, no. 12: 4481. https://doi.org/10.3390/s18124481

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