Open Access
This article is

- freely available
- re-usable

*Sensors*
**2016**,
*16*(12),
2123;
https://doi.org/10.3390/s16122123

Article

Three-Factor User Authentication and Key Agreement Using Elliptic Curve Cryptosystem in Wireless Sensor Networks

School of Electronics Engineering, Kyungpook National University, Daegu 41566, Korea

^{*}

Author to whom correspondence should be addressed.

Academic Editor:
Kemal Akkaya

Received: 19 October 2016 / Accepted: 12 December 2016 / Published: 14 December 2016

## Abstract

**:**

Secure communication is a significant issue in wireless sensor networks. User authentication and key agreement are essential for providing a secure system, especially in user-oriented mobile services. It is also necessary to protect the identity of each individual in wireless environments to avoid personal privacy concerns. Many authentication and key agreement schemes utilize a smart card in addition to a password to support security functionalities. However, these schemes often fail to provide security along with privacy. In 2015, Chang et al. analyzed the security vulnerabilities of previous schemes and presented the two-factor authentication scheme that provided user privacy by using dynamic identities. However, when we cryptanalyzed Chang et al.’s scheme, we found that it does not provide sufficient security for wireless sensor networks and fails to provide accurate password updates. This paper proposes a security-enhanced authentication and key agreement scheme to overcome these security weaknesses using biometric information and an elliptic curve cryptosystem. We analyze the security of the proposed scheme against various attacks and check its viability in the mobile environment.

Keywords:

user authentication; key agreement; biometric information; elliptic curve cryptosystem; wireless sensor networks## 1. Introduction

Wireless sensor networks (WSNs) are ad hoc networks composed of a number of sensor nodes with limited power, computation, storage and communication capabilities [1]. They provide effective solutions to a wide array of monitoring problems in various environments, such as battlefields, healthcare services and the smart grid [2]. Recently, sensor-attached things that communicate with neighboring things are enabling the development of the Internet of Things (IoT) environment [3]. For these reasons, WSNs have gained wide attention, in both the academic and industrial fields. However, the issue of securing and authenticating communication is problematic, because the nodes are vulnerable to attacks and do not have enough capacity for the secure storage of keys [4,5,6]. To solve these security issues, authentication and key agreement schemes using two-factor security, passwords and smart cards have attracted attention and have been studied widely in an effort to guarantee secure communication [7,8,9,10,11,12,13,14]. Unfortunately, many of them still suffer from various attacks and do not provide secure communication.

Several authentication and key agreement schemes for WSNs have been proposed. In 2010, Das [8] proposed a two-factor user authentication protocol for WSNs. He insisted the scheme withstood various attacks from users with the same identity, as well as from stolen-verifier attacks. However, He et al. [9], Khan and Alghathbar [10] and Chen and Shih [11] pointed out that Das’s scheme was vulnerable to insider and impersonation attacks, gateway node bypassing attacks and privileged-insider attacks and did not provide mutual authentication. Subsequently, each proposed their own authentication scheme to provide secure user authentication in WSNs. In 2012, Vaidya et al. [12] demonstrated that Das’s scheme [8], Khan and Alghathbar’s scheme [10] and Chen and Shih’s scheme [11] had security problems and that none of them provided key agreement. Vaidya et al. proposed a two-factor mutual user authentication scheme with key agreement for WSNs. In 2014, Kim et al. [13] presented that both gateway node bypassing attacks and user impersonation attacks were possible in Vaidya et al.’s scheme [12]. They proposed an authentication and key agreement scheme that resisted user impersonation and gateway node bypassing attacks. However, in 2015, Chang et al. [14] analyzed Kim et al.’s scheme [13] and found it had security vulnerabilities in the following areas: impersonation attacks, lost smart card attacks, man-in-the-middle attacks, violation of session key security and failure to protect user privacy. To solve these problems, Chang et al. [14] proposed a scheme that provided user privacy by using dynamic identities and provided better security functionality than Kim et al.’s scheme. However, we point out that Chang et al.’s scheme does not withstand several types of attacks and fails to provide a password update.

Recently, to improve the security of two-factor authentication schemes that are vulnerable to guessing attacks and subject to inefficient password change policies in WSNs, biometric-based user authentication schemes, combined with smart cards and passwords, have drawn considerable attention in research [15,16,17,18,19]. Biometric-based user authentication in the WSN becomes inherently more reliable and secure than traditional two-factor user authentication schemes [20]. Several advantages can be derived from the use of biometric keys over traditional passwords because they cannot be lost; they are unforgettable, difficult to copy, hard to forge and difficult to break. Therefore, biometric-based user authentication is considered to be more secure and reliable than conventional authentication schemes [20].

In this paper, we cryptanalyze Chang et al.’s scheme [14] and demonstrate the security weaknesses, such as password guessing attacks, lack of forward secrecy and inaccurate password updates. Further, we propose a biometric-based user authentication and key agreement scheme for WSNs using fuzzy extraction and an elliptic curve cryptosystem (ECC). The proposed scheme withstands security threats from malicious adversaries and insider users by using an ECC-based session key. Our scheme is also suitable for WSNs when compared to traditional authentication and key agreement schemes because it performs simple ECC operations, hash functions and exlusive OR (XOR) operations. We prove that our scheme provides mutual authentication using Burrows-Abadi-Needham (BAN) logic [21].

The remainder of this paper is organized as follows: In Section 2, we present our preliminary details, and Chang et al.’s scheme is reviewed in Section 3. In Section 4, we cryptanalyze Chang et al.’s scheme, and our proposed scheme is presented in Section 5. Finally, we analyze our proposed scheme in Section 6 and conclude with the findings of this work in Section 7.

## 2. Preliminaries

In this section, we introduce the notations used in this paper and then define the cryptographic system and primitives used as building blocks in our security system. Finally, we define security requirements for user authentication in WSNs.

#### 2.1. Notations

The notations used throughout this paper are described in Table 1.

#### 2.2. Elliptic Curves Cryptosystem

Let $p,q$ be two large primes, and $E/{\mathbb{F}}_{p}$ indicates an elliptic curve ${y}^{2}={x}^{3}+ax+b$ over the finite field ${\mathbb{F}}_{p}$. We denote by ${\mathbb{G}}_{1}$ a q-order subgroup of the additive group of points of $E/{\mathbb{F}}_{p}$. The discrete logarithm problem (DLP) is required to be hard in ${\mathbb{G}}_{1}$. Mathematical problems in ECC are given as follows [22]:

**Definition**

**1**(Elliptic curve discrete logarithm (ECDL) problem)

**.**

Given a point element $Q\in {\mathbb{G}}_{1}$, find an integer $a\in {\mathbb{Z}}_{p}^{*}$, such that $Q=a\times P$, where $a\times P$ indicates that the point P is added to itself for a times by the elliptic curve operation.

**Definition**

**2**(Elliptic curve computational Diffie–Hellman (ECDH) problem)

**.**

For $a,b\in {\mathbb{Z}}_{p}^{*}$, given two point elements $a\times P,b\times P\in {\mathbb{G}}_{1}$, compute $a\times b\times P\in {\mathbb{G}}_{1}$.

**Definition**

**3**(Elliptic curve decisional Diffie–Hellman (ECDDH) problem)

**.**

For $a,b,c\in {\mathbb{Z}}_{p}^{*}$, given three point elements $a\times P,b\times P,c\times P\in {\mathbb{G}}_{1}$, decide whether $c\times P=a\times b\times P$ or not.

We assume that the ECDDH problem is intractable, which may guarantee that there is no probabilistic polynomial time (PPT) algorithm to solve ECDDHP, ECCDHP and ECDDLP with non-negligible probability.

#### 2.3. Fuzzy Extraction

We briefly describe the extraction process of key data from the given biometrics of a user using a fuzzy extractor. The output of a conventional hash function is sensitive, and it may also return completely different outputs even if there is little variation in the inputs. Note that the biometric information is prone to various noises during data acquisition, and the reproduction of the actual biometrics is hard in common practice. To avoid such a problem, a fuzzy extractor method [23] is preferred, which can extract a uniformly-random string and public information from the biometric template with a given error tolerance. In the reproduction process, the fuzzy extractor recovers the original biometric key data for noisy biometrics using a helper string. The fuzzy extractor consists of Gen (generate) and Rep (reproduce).

- $\mathrm{Gen}(BI{O}_{i})=({R}_{i},{P}_{i}).$ This probabilistic algorithm takes a biometric template $BI{O}_{i}$ as an input and then outputs a biometric key ${R}_{i}$, which is a uniform and random string, and a helper string ${P}_{i}$. ${R}_{i}$ can be the same under the assistance of ${P}_{i}$ even if the biometric information changes slightly.
- $\mathrm{Rep}(BI{O}_{i}^{\prime},{P}_{i})=({R}_{i}).$ This deterministic algorithm takes noisy biometric information $BI{O}_{i}^{\prime}$ and a helper string ${P}_{i}$ as inputs, then reproduces the biometric key ${R}_{i}$. To reproduce the same ${R}_{i}$, the metric space distances between $BI{O}_{i}$ and $BI{O}_{i}^{\prime}$ have to meet the given verification threshold.

#### 2.4. Network Model

- ${U}_{i}$: A user who receives a smart card from $GWN$ and uses it to access multiple servers. After a successful authentication process with ${S}_{j}$, the user is given access to mobile services. Furthermore, the user’s smart card is not tamper-resistant and can be lost or stolen by an adversary.
- ${S}_{j}$: A sensor node that collects information and provides services to users who successfully complete the authentication process. Sensors are not equipped with tamper-resistant hardware due to cost constraints, thus an adversary will know all of the keying materials stored in that sensor’s memory.
- $GWN$: A trusted third-party that generates system parameters. It provides smart cards to users and pre-shared keys to sensors. $GWN$ is assumed to be trustworthy and never compromised by an adversary.

#### 2.5. Security Requirements

According to recent studies [24,25], the user authentication scheme for WSNs should satisfy the following security requirements: (1) mutual authentication: the user ${U}_{i}$ and the sensor node ${S}_{j}$ should authenticate each other with the help of the gateway node $GWN$; (2) anonymity: any adversary $\mathcal{A}$ should not be able to obtain the real identity of the user ${U}_{i}$; (3) session key generation: after executing the authentication and key agreement phase, the user ${U}_{i}$ and the sensor node ${S}_{j}$ should generate a session key; (4) unconstrained by $GWN$: the $GWN$ should not have or be able to compute the registered user’s information, such as the password and biometric template; (5) attack resistance: the scheme should withstand various attacks, such as off-line identity/password guessing, impersonation, smart card loss, man-in-the-middle and reply attacks; (6) efficient password update: it is required to change or update the users’ password without the participation of $GWN$.

## 3. Review of Chang et al.’s Authentication and Key Agreement Scheme

In this section, we review Chang et al.’s authenticated key agreement scheme. It comprises four phases: registration, login, authentication and key agreement, as well as password change.

#### 3.1. Registration Phase

- Step 1:
- ${U}_{i}$ chooses $I{D}_{i},p{w}_{i}$ and a random number $R{N}_{r}$, then computes $HP{W}_{i}=h(p{w}_{i}||R{N}_{r})$ and sends $\{I{D}_{i},HP{W}_{i}\}$ to $GWN$ via a secure channel.
- Step 2:
- $GWN$ computes $HI{D}_{i}=h(I{D}_{i}||K)$, ${X}_{{S}_{i}}=h(HI{D}_{i}||K)$, ${A}_{i}=h(HP{W}_{i}||{X}_{{S}_{i}})\oplus HI{D}_{i}$, ${B}_{i}=h(HP{W}_{i}\oplus {X}_{{S}_{i}})$, ${C}_{i}={X}_{{S}_{i}}\oplus h(I{D}_{S}||HP{W}_{i})$. Then, $GWN$ sends the smart card $S{C}_{i}=(I{D}_{S},h(\xb7),{A}_{i},{B}_{i},{C}_{i},TI{D}_{i})$ to ${U}_{i}$ via a secure channel. $GWN$ stores $(TI{D}_{i},TI{D}_{i}^{\circ},HI{D}_{i})$ in its storage, where $TI{D}_{i}=R{N}_{G}$, $R{N}_{G}$ is a nonce, and $TI{D}_{i}^{\circ}=\u2033\u2033$, where $TI{D}_{i}^{\circ}=\u2033\u2033$ means $TI{D}_{i}^{\circ}$ contains nothing.
- Step 3:
- ${U}_{i}$ computes $XP{W}_{i}=h(p{w}_{i})\oplus R{N}_{r}$ and inserts it into $S{C}_{i}$.

#### 3.2. Login Phase

- Step 1:
- ${U}_{i}$ inputs $I{D}_{i}^{*}$ and $p{w}_{i}^{*}$ into $S{C}_{i}$.
- Step 2:
- $S{C}_{i}$ computes $R{N}_{r}^{*}=h(p{w}_{i}^{*})\oplus XP{W}_{i}$, $HP{W}_{i}^{*}=h(p{w}_{i}^{*}||R{N}_{r}^{*})$, ${X}_{{S}_{i}}^{*}={C}_{i}\oplus h(I{D}_{S}||HP{W}_{i}^{*})$, ${B}_{i}^{*}=h(HP{W}_{i}^{*}\oplus {X}_{{S}_{i}}^{*}$. Then, $S{C}_{i}$ verifies ${B}_{i}^{*}\stackrel{?}{=}{B}_{i}$. If it is valid, $S{C}_{i}$ computes ${k}_{i}=h({X}_{{S}_{i}}^{*}||{T}_{i})$, $DI{D}_{i}=h(HP{W}_{i}^{*}||{X}_{{S}_{i}}^{*})\oplus {k}_{i}$, ${M}_{{U}_{i},G}=h({A}_{i}||{X}_{{S}_{i}}^{*}||{T}_{i})$, where ${T}_{i}$ is the timestamp.
- Step 3:
- ${U}_{i}$ sends $\{DI{D}_{i},{M}_{{U}_{i},G},{T}_{i},TI{D}_{i}\}$ to $GWN$.

#### 3.3. Authentication and Key Agreement Phase

- Step 1:
- $GWN$ checks the validity of ${T}_{i}$ and retrieves $HI{D}_{i}$ from $TI{D}_{i}$. Then, $GWN$ computes ${X}_{{S}_{i}}=h(HI{D}_{i}||K)$, ${k}_{i}=h({X}_{{S}_{i}}||{T}_{i})$, ${X}^{*}=DI{D}_{i}\oplus {k}_{i}$, ${M}_{{U}_{i},G}^{*}=h(({X}^{*}\oplus HI{D}_{i})||{X}_{{S}_{i}}||{T}_{i})$, then checks ${M}_{{U}_{i},G}^{*}\stackrel{?}{=}{M}_{{U}_{i},G}$. If it is correct, $GWN$ computes ${X}_{{S}_{j}}=h(SI{D}_{j}||K)$, ${M}_{G,{S}_{j}}=h(DI{D}_{i}||SI{D}_{j}||{X}_{{S}_{j}}||{T}_{G})$, then sends $\{DI{D}_{i},{M}_{G,{S}_{j}},{T}_{G}\}$ to ${S}_{j}$, where ${T}_{G}$ is the timestamp.
- Step 2:
- ${S}_{j}$ checks the validity of ${T}_{G}$ and computes ${M}_{G,{S}_{j}}^{*}=h(DI{D}_{i}||SI{D}_{j}||{X}_{{S}_{j}}^{*}||{T}_{G})$, then checks ${M}_{G,{S}_{j}}^{*}\stackrel{?}{=}{M}_{G,{S}_{j}}$. If it is successful, ${S}_{j}$ computes ${k}_{j}=h({X}_{{S}_{j}}||{T}_{j})$, ${Z}_{i}={M}_{G,{S}_{j}}^{*}\oplus {k}_{j}$, ${K}_{S}=f(DI{D}_{i},{k}_{j})$, ${M}_{{S}_{j},G}=h({Z}_{i}||{X}_{{S}_{j}}^{*}||{T}_{j})$, then sends $\{{M}_{{S}_{j},G},{T}_{j}\}$ to $GWN$, where ${T}_{j}$ is the timestamp.
- Step 3:
- $GWN$ checks the validity of ${T}_{j}$ and computes ${k}_{j}=h({X}_{{S}_{j}}||{T}_{j})$, ${Z}_{i}^{*}={M}_{G,{S}_{j}}^{*}\oplus {k}_{j}$, ${M}_{{S}_{j},G}^{*}=h({Z}_{i}||{X}_{{S}_{j}}^{*}||{T}_{j})$, then checks ${M}_{{S}_{j},G}^{*}\stackrel{?}{=}{M}_{{S}_{j},G}$. If it is correct, $GWN$ computes ${M}_{G,{U}_{i}}=h(DI{D}_{i}||{M}_{{U}_{i},G}^{*}||{k}_{j}||{X}_{{X}_{i}}||{T}_{G}^{\prime})$, ${y}_{i}={k}_{j}\oplus h({k}_{i})$, $TI{D}_{{i}_{new}}=h(HI{D}_{i}||{T}_{i})$, then sends $\{{y}_{i},{M}_{G,{U}_{i}},{T}_{G}^{\prime}\}$, where ${T}_{G}^{\prime}$ is the timestamp. Additionally, $GWN$ updates $(TI{D}_{i},TI{D}^{\circ})$ as $(TI{D}_{{i}_{new}},TI{D}_{i})$.
- Step 4:
- ${U}_{i}$ checks the validity of ${T}_{G}^{\prime}$ and computes ${k}_{j}={y}_{i}\oplus h({k}_{i})$, ${M}_{G,{U}_{i}}^{*}=h(DI{D}_{i}||{M}_{{U}_{i},G}||{k}_{j}||{X}_{{S}_{i}}||{T}_{G}^{\prime})$, then checks ${M}_{G,{U}_{i}}^{*}\stackrel{?}{=}{M}_{G,{U}_{i}}$ If it is correct, ${U}_{i}$ computes ${K}_{S}=f(DI{D}_{i},{k}_{j})$ and updates $TI{D}_{i}$ as $h(HI{D}_{i}||{T}_{i})$.

#### 3.4. Password Change Phase

- Step 1:
- ${U}_{i}$ inputs $\{I{D}_{i}^{*},p{w}_{i}^{*},p{w}_{ni}\}$ into $S{C}_{i}$, where $p{w}_{ni}$ is a new password.
- Step 2:
- The smart card computes $R{N}_{r}^{*}=h(p{w}_{i}^{*})\oplus XP{W}_{i}$, $HP{W}_{i}^{*}=h(p{w}_{i}^{*}||R{N}_{r}^{*})$, ${X}_{{S}_{i}}^{*}={C}_{i}\oplus h(I{D}_{s}||HP{W}_{i}^{*})$, ${B}_{i}^{*}=h(HP{W}_{i}^{*}\oplus {X}_{{S}_{i}}^{*})$, then checks ${B}_{i}^{*}\stackrel{?}{=}{B}_{i}$. If it is correct, $S{C}_{i}$ computes updated values $HP{W}_{ni}=h(p{w}_{ni}||R{N}_{r}^{*})$, ${A}_{ni}={A}_{i}\oplus h(HP{W}_{i}^{*}||{X}_{{S}_{i}}^{*})\oplus h(HP{W}_{ni}||{X}_{{S}_{i}}^{*})$, ${B}_{ni}=h(HP{W}_{ni}\oplus {X}_{{S}_{i}}^{*})$, ${C}_{ni}={X}_{{S}_{i}}^{*}\oplus h(I{D}_{S}||HP{W}_{ni}$. Then, $S{C}_{i}$ replaces $({A}_{i},{B}_{i},{C}_{i})$ with $({A}_{ni},{B}_{ni},{C}_{ni})$.

## 4. Security Weaknesses of Chang et al.’s Scheme

In this section, we analyze the security weaknesses of Chang et al.’s scheme [14]. Chang et al. cryptanalyzed Kim et al.’s scheme [13] and improved it by providing enhanced security properties. They claimed that their protocol could withstand various attacks. However, we show that their protocol is vulnerable to off-line password guessing attacks and does not provide perfect forward secrecy. We also show that their protocol cannot satisfy accurate password change. The capabilities of an adversary $\mathcal{A}$ [25] throughout this paper are as follows:

- An adversary $\mathcal{A}$ can be either a user or a sensor node, but not a gateway node [26].
- An adversary $\mathcal{A}$ has total control over the public communication channel. Thus, the adversary can intercept, insert, delete or modify any message transmitted via a public channel.
- An adversary $\mathcal{A}$ may steal a user’s smart card and extract the information stored in it by means of analyzing the power consumption [27].
- An adversary $\mathcal{A}$ can easily guess low-entropy passwords in an off-line manner, but the guessing of two secret parameters is computationally infeasible in polynomial time [28].

#### 4.1. Off-Line Password Guessing Attack

Previous works [27] demonstrated that smart cards could be vulnerable to side channel attack, i.e., $\mathcal{A}$ could extract the information stored in the smart card $S{C}_{i}$. $\mathcal{A}$ chooses an arbitrary password $p{w}_{i}^{*}$, then computes to guess a correct password as follows:

$$\begin{array}{ccc}\hfill R{N}_{r}^{*}& =& XP{W}_{i}\oplus h(p{w}_{i}^{*})\hfill \\ \hfill HP{W}_{i}^{*}& =& h(p{w}_{i}^{*}||R{N}_{r}^{*})\hfill \\ \hfill {X}_{{S}_{i}}^{*}& =& {C}_{i}\oplus h(I{D}_{S}||HP{W}_{i}^{*})\hfill \\ \hfill {B}_{i}^{*}& =& h(HP{W}_{i}^{*}\oplus {X}_{{S}_{i}}^{*})\hfill \\ \hfill \phantom{\rule{0.0pt}{0ex}}\mathrm{verifies}\phantom{\rule{5.69046pt}{0ex}}{B}_{i}^{*}& \stackrel{?}{=}& {B}_{i}\hfill \end{array}$$

If they are equal, $\mathcal{A}$ finds the correct password. Otherwise, $\mathcal{A}$ guesses another $p{w}_{i}^{*}$ and repeats the steps listed above until the correct password is found. In practical applications, people usually choose an easy-to-remember password for convenience, thus passwords could come from a very small dictionary. Therefore, $\mathcal{A}$ could find the correct password using a brute-force attack.

Even though Chang et al. has claimed that it is secure, once $\mathcal{A}$ guesses the password correctly, $\mathcal{A}$ can launch various attacks, such as impersonation, stolen verifier and lost smart card attacks. This is due to the fact that the scheme uses only a password to check the validity of users. Therefore, it is crucial to protect password guessing attacks and use various authentication factors to check the validity of users.

#### 4.2. Lack of Perfect Forward Secrecy

In Chang et al.’s scheme, session key ${K}_{S}$ is computed as $h(DI{D}_{i},{k}_{j})$. Once a long-term key of ${S}_{j}$, ${X}_{{S}_{j}}$, is disclosed to $\mathcal{A}$, $\mathcal{A}$ can compute previous session keys as follows:

- Step 1:
- $\mathcal{A}$ intercepts and stores all messages exchanged in previous sessions, such as $DI{D}_{i}$ and ${T}_{i}$.
- Step 2:
- $\mathcal{A}$ computes ${k}_{j}=h({X}_{{S}_{j}}||{T}_{j})$, then finally retrieves a previous session key ${K}_{S}=f(DI{D}_{i},{k}_{j})$.

This result indicates that Chang et al.’s scheme does not provide perfect forward secrecy. Furthermore, $\mathcal{A}$ who knows ${X}_{{S}_{j}}$ also can compute present and future session keys by intercepting messages via the public channel, indicating that Chang et al.’s scheme does not provide backward secrecy.

#### 4.3. Incorrectness of Password Change

Chang et al.’s adopted Kim et al.’s password change phase; however, we found out that Kim et al.’s password update is not suitable for Chang et al.’s scheme. We demonstrate the incorrectness of the password change phase as follows:

- Step 1:
- Once the user performs the password change phase, the previous password $p{w}_{i}$ is changed into $p{w}_{ni}$, and information in the smart card, $({A}_{i},{B}_{i},{C}_{i})$, is replaced with $({A}_{ni},{B}_{ni},{C}_{ni})$.
- Step 2:
- Then, the user performs the login phase using the new password $p{w}_{ni}$; however, ${U}_{i}$ is not allowed to access for not computing the proper $R{N}_{r}$ from $XP{W}_{i}$. $XP{W}_{i}$ is not updated in the password change phase; therefore, $R{N}_{r}^{*}=XP{W}_{i}\oplus h(p{w}_{ni}^{*})\ne R{N}_{r}$ and, finally, ${B}_{i}^{*}\ne {B}_{i}$.

In addition, it is of no use to update the password if the password is revealed even one time because no other information, such as identity, is required to login and change the password. Therefore, regardless of whether a user changes the password, $\mathcal{A}$ can also change the password and be verified by the smart card.

## 5. The Proposed Three-Factor Authentication and Key Agreement Scheme

In this section, we propose a secure three-factor authentication and key agreement scheme for WSNs to overcome the security weaknesses in Chang et al.’s scheme. Based on Kim et al. and Chang et al.’s schemes, the proposed scheme provides better security functionality by using biometric information of the user and makes up for the password update inaccuracy. The proposed scheme consists of four phases: registration, login, authentication and key agreement and password change. The details of each phase are presented as follows.

#### 5.1. Registration Phase

A user ${U}_{i}$ registers the identity and password to $GWN$, then $GWN$ generates a smart card $S{C}_{i}$ for ${U}_{i}$ and sends it to ${U}_{i}$ through a secure channel. Likewise, a sensor node ${S}_{j}$ is distributed with $(SI{D}_{j},{X}_{{S}_{j}})$, where ${X}_{{S}_{j}}=h(SI{D}_{j}||K)$. Figure 1 illustrates the registration phase, which is performed as follows:

- Step 1:
- ${U}_{i}\Rightarrow GWN$ : $\{I{D}_{i},HP{W}_{i}\}$${U}_{i}$ chooses $I{D}_{i}$ and $p{w}_{i}$ and imprints $BI{O}_{i}$, then ${U}_{i}$ computes $({R}_{i},{P}_{i})=\mathrm{Gen}(BI{O}_{i})$ and $HP{W}_{i}=h(p{w}_{i}||{R}_{i})$ and sends $\{I{D}_{i},HP{W}_{i}\}$ to $GWN$ through a secure channel.
- Step 2:
- $GWN\Rightarrow {U}_{i}$ : $S{C}_{i}=\{h(\xb7),{A}_{i},{B}_{i},{C}_{i},TI{D}_{i}\}$$GWN$ computes $HI{D}_{i}=h(I{D}_{i}||K)$, ${X}_{{S}_{i}}=h(HI{D}_{i}||K))$, ${A}_{i}=h(HP{W}_{i}||{X}_{{S}_{i}})\oplus HI{D}_{i}$, ${B}_{i}=h(HP{W}_{i}\oplus {X}_{{S}_{i}})$, ${C}_{i}={X}_{{S}_{i}}\oplus h(I{D}_{i}||HP{W}_{i})$.
- Step 3:
- $GWN$ stores parameters $(TI{D}_{i},TI{D}_{i}^{\circ},HI{D}_{i})$, where $TI{D}_{i}=R{N}_{G}$ ($R{N}_{G}$ is a nonce); $TI{D}_{i}^{\circ}=\u2033\u2033$. $TI{D}_{i}^{\circ}$ is empty at first time because $TI{D}_{i}$ has not been updated; however, this parameter is required to check the correctness of the received $TI{D}_{i}$ and retrieve $HI{D}_{i}$ safely when $GWN$ does not find a proper updated $TI{D}_{i}$ in the case of an unsuccessful update process.Then, $GWN$ issues the smart card $S{C}_{i}=\{h(\xb7),{A}_{i},{B}_{i},{C}_{i},TI{D}_{i}\}$ and sends it to ${U}_{i}$ through a secure channel.

#### 5.2. Login Phase

When ${U}_{i}$ tries to access the ${S}_{j}$, the login request is launched at first by ${U}_{i}$ with $S{C}_{i}$. Figure 2 illustrates the login phase, which is performed as follows:

- Step 1:
- ${U}_{i}$ inserts $S{C}_{i}$, inputs $I{D}_{i}^{*}$, $p{w}_{i}^{*}$ and imprints $BI{O}_{i}^{*}$.
- Step 2:
- $S{C}_{i}$ computes ${R}_{i}^{*}=\mathrm{Rep}(BI{O}_{i}^{*},{P}_{i})$, $HP{W}_{i}^{*}=h(p{w}_{i}^{*}||{R}_{i}^{*})$, ${X}_{{S}_{i}}^{*}={C}_{i}\oplus h(I{D}_{i}^{*}||HP{W}_{i}^{*})$, ${B}_{i}^{*}=h(HP{W}_{i}^{*}\oplus {X}_{{S}_{i}}^{*})$. Then, $S{C}_{i}$ verifies ${B}_{i}^{*}\stackrel{?}{=}{B}_{i}$. If it is correct, $S{C}_{i}$ generates a random number $a\in {\mathbb{Z}}_{p}^{*}$ and computes ${X}_{i}=aP$, ${k}_{i}=h({X}_{{S}_{i}}^{*}||{T}_{i})$, $DI{D}_{i}=h(HP{W}_{i}^{*}||{X}_{{S}_{i}}^{*})\oplus {k}_{i}$, ${M}_{{U}_{i},G}=h({A}_{i}||{X}_{{S}_{i}}^{*}||{X}_{i}||{T}_{i})$, where ${T}_{i}$ is the current timestamp.
- Step 3:
- ${U}_{i}$ sends the login request message $\{DI{D}_{i},{X}_{i},{M}_{{U}_{i},G},{T}_{i},TI{D}_{i}\}$ to $GWN$.

#### 5.3. Authentication and Key Agreement Phase

In this phase, ${U}_{i}$ and ${S}_{j}$ authenticate each other and generate a common session key $SK$ by the help of $GWN$. The trusted party $GWN$ is interconnected with ${U}_{i}$ and ${S}_{j}$, respectively, and helps to establish a session key between ${U}_{i}$ and ${S}_{j}$; however, $GWN$ is not able to derive the session key. Figure 3 illustrates the authentication and key agreement phase, which is performed as follows:

- Step 1:
- $GWN\Rightarrow {S}_{j}$ : $\{DI{D}_{i},{X}_{i},{M}_{G,{S}_{j}},{T}_{G}\}$After receiving $\{DI{D}_{i},{X}_{i},{M}_{{U}_{i},G},{T}_{i},TI{D}_{i}\}$, $GWN$ checks the validity of ${T}_{i}$ and retrieves $HI{D}_{i}$ from $TI{D}_{i}$. If no $TI{D}_{i}$ is found, $GWN$ checks $TI{D}_{i}^{\circ}$. If it still is not found, $GWN$ rejects the login request; otherwise, $GWN$ computes ${X}_{{S}_{i}}=h(HI{D}_{i}||K)$ and ${k}_{i}=h({X}_{{S}_{i}}||{T}_{i})$. Then, $GWN$ verifies ${M}_{{U}_{i},G}\stackrel{?}{=}h((DI{D}_{i}\oplus {k}_{i}\oplus HI{D}_{i})||{X}_{{S}_{i}}||{X}_{i}||{T}_{i})$. If it is valid, $GWN$ authenticates ${U}_{i}$ and computes ${M}_{G,{S}_{j}}=h(DI{D}_{i}||SI{D}_{j}||{X}_{{S}_{j}}||{X}_{i}||{T}_{G})$, then sends $\{DI{D}_{i},{X}_{i},{M}_{G,{S}_{j}},{T}_{G}\}$ to ${S}_{j}$, where ${T}_{G}$ is the current timestamp.
- Step 2:
- ${S}_{j}\Rightarrow GWN$ : $\{{M}_{{S}_{j},G},{Y}_{j},{T}_{j}\}$After receiving $\{DI{D}_{i},{X}_{i},{M}_{G,{S}_{j}},{T}_{G}\}$, ${S}_{j}$ checks the validity of ${T}_{G}$ and verifies ${M}_{G,{S}_{j}}\stackrel{?}{=}h(DI{D}_{i}||{X}_{i}||{X}_{{S}_{j}}^{*}||{T}_{G})$ using its stored secret value ${X}_{{S}_{j}}^{*}=h(SI{D}_{j}||K)$. If it is valid, ${S}_{j}$ authenticates $GWN$ and computes ${k}_{j}=h({X}_{{S}_{j}}^{*}||{T}_{j})$, ${Z}_{i}={M}_{G,{S}_{j}}\oplus {k}_{j}$, where ${T}_{j}$ is the current timestamp. Then, ${S}_{j}$ generates a random number $b\in {\mathbb{Z}}_{p}^{*}$ and computes ${Y}_{j}=bP$ and a session key $SK={k}_{ji}=h(DI{D}_{i}||{k}_{j}||b{X}_{i})$. Finally, ${S}_{j}$ computes $({M}_{{S}_{j},G}=h({Z}_{i}||{X}_{{S}_{j}}^{*}||{X}_{i}||{Y}_{j}||{T}_{j}))$ and sends $\{{M}_{{S}_{j},G},{Y}_{j},{T}_{j}\}$ to $GWN$.
- Step 3:
- $GWN\Rightarrow {U}_{i}$ : $\{{e}_{i},{M}_{G,{U}_{i}},{Y}_{i},{T}_{G}^{\prime}\}$After receiving $\{{M}_{{S}_{j},G},{Y}_{i},{T}_{j}\}$, $GWN$ checks the validity of ${T}_{j}$, computes ${k}_{j}=h({X}_{{S}_{j}}||{T}_{j})$, ${Z}_{i}^{*}={M}_{G,{S}_{j}}^{*}\oplus {k}_{j}$ and verifies ${M}_{{S}_{j},G}\stackrel{?}{=}h({Z}_{i}^{*}||{X}_{{S}_{j}}||{X}_{i}||{Y}_{j}||{T}_{j})$. If it is valid, $GWN$ authenticates ${S}_{j}$ and computes ${e}_{i}={k}_{j}\oplus h({k}_{i})$, $({M}_{G,{U}_{i}}=h(DI{D}_{i}||{M}_{{U}_{i},G}||{k}_{j}||{X}_{{S}_{i}}||{X}_{i}||{Y}_{j}||{T}_{G}^{\prime}))$, $TI{D}_{{i}_{new}}=h(HI{D}_{i}||{T}_{i})$, where ${T}_{G}^{\prime}$ is the current timestamp. Then, $GWN$ sends $\{{e}_{i},{M}_{G,{U}_{i}},{Y}_{i},{T}_{G}^{\prime}\}$ to ${U}_{i}$ and updates $(TI{D}_{i},TI{D}_{i}^{\circ})$ as $(TI{D}_{{i}_{new}},TI{D}_{i})$ in its storage.
- Step 4:
- After receiving $\{{e}_{i},{M}_{G,{U}_{i}},{Y}_{i},{T}_{G}^{\prime}\}$, ${U}_{i}$ checks the validity of ${T}_{G}^{\prime}$, computes ${k}_{j}^{*}={e}_{i}\oplus h({k}_{i}^{*})$ and verifies ${M}_{G,{U}_{i}}\stackrel{?}{=}h(DI{D}_{i}||{M}_{{U}_{i},G}||{k}_{j}^{*}||{X}_{{S}_{i}}||{X}_{i}||{Y}_{j}||{T}_{G}^{\prime})$. If it is valid, ${U}_{i}$ computes the session key $SK={k}_{ij}=h(DI{D}_{i}||{k}_{j}||a{Y}_{i})$. Finally, ${U}_{i}$ updates $TI{D}_{i}$ as $h(HI{D}_{i}||{T}_{i})$.

#### 5.4. Password Change Phase

When ${U}_{i}$ wants to change $p{w}_{i}$ with the new $p{w}_{ni}$, ${U}_{i}$ performs the password change phase. Figure 4 illustrates the password change phase, which is performed as follows:

- Step 1:
- ${U}_{i}$ imprints $BI{O}_{i}^{*}$ and computes ${R}_{i}^{*}=\mathrm{Rep}(BI{O}_{i}^{*},{P}_{i})$, then inputs $\{I{D}_{i}^{*},{R}_{i}^{*},p{w}_{i}^{*},p{w}_{ni}\}$ into $S{C}_{i}$.
- Step 2:
- $S{C}_{i}$ computes $HP{W}_{i}^{*}=h(p{w}_{i}^{*}||{R}_{i}^{*})$, ${X}_{{S}_{i}}^{*}={C}_{i}\oplus h(I{D}_{i}^{*}||HP{W}_{i}^{*})$, ${B}_{i}^{*}=h(HP{W}_{i}^{*}\oplus {X}_{{S}_{i}}^{*})$. Then, $S{C}_{i}$ verifies ${B}_{i}^{*}={B}_{i}$ to check the validity of ${U}_{i}$. If it is correct, $S{C}_{i}$ computes updated values $HP{W}_{ni}=h(p{w}_{ni}||{R}_{i}^{*})$, ${A}_{ni}={A}_{i}\oplus h(HP{W}_{i}||{X}_{{S}_{i}}^{*})\oplus h(HP{W}_{ni}||{X}_{{S}_{i}}^{*})$, ${B}_{ni}=h(HP{W}_{ni}\oplus {X}_{{S}_{i}}^{*})$, ${C}_{ni}={X}_{{S}_{i}}^{*}\oplus h(I{D}_{i}^{*}||HP{W}_{ni})$. Then, $S{C}_{i}$ replaces $({A}_{i},{B}_{i},{C}_{i})$ with $({A}_{ni},{B}_{ni},{C}_{ni})$.

## 6. Analysis

In this section, we describe an analysis of our proposed authentication and key agreement scheme with respect to security and efficiency. We assume that the capabilities of the adversary are the same as those from our cryptanalysis of Chang et al.’s scheme in Section 4. We first prove the security of our scheme with BAN logic [21], then analyze the proposed scheme based on the security requirements for WSNs.

#### 6.1. Proof of Authentication and Key Agreement Based on BAN Logic

Recently, security analyses about authentication and key agreement schemes in WSNs have been conducted using the BAN logic, which is a method to prove the security of mutual authentication and a session key [25,29]. In this section, we analyze the security of our proposed authentication scheme with BAN logic [21]. Table 2 illustrates notations used in BAN logic.

- The BAN logic postulates:
- (a)
- Message meaning rule:$$\frac{P\text{believes}Q\stackrel{K}{\leftrightarrow}P,P\text{sees}{\{X\}}_{K}}{P\text{believes}Q\text{said}X}$$
- (b)
- Nonce-verification rule:$$\frac{P\text{believes fresh}(X),P\text{believes}Q\text{said}X}{P\text{believes}Q\text{believes}X}$$
- (c)
- Jurisdiction rule:$$\frac{P\text{believes}Q\text{controls}X,P\text{believes}Q\text{believes}X}{P\text{believes}X}$$
- (d)
- Freshness-conjuncatenation rule:$$\frac{P\text{believes fresh}(X)}{P\text{believes fresh}(X,Y)}.$$

- Security goals:The proposed scheme should satisfy the following goals:
- g
_{1}. - ${U}_{i}|\equiv {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}$
- g
_{2}. - ${S}_{j}|\equiv {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}$
- g
_{3}. - ${U}_{i}|\equiv {S}_{j}|\equiv {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}$
- g
_{4}. - ${S}_{j}|\equiv {U}_{i}|\equiv {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}$

- g
- Idealized scheme:We transform our scheme into the idealized form as follows:
- Msg
_{1}. - ${U}_{i}\to GWN:{(DI{D}_{i},K,{X}_{i},{T}_{i})}_{HI{D}_{i}}$
- Msg
_{2}. - $GWN\to {S}_{j}:{(DI{D}_{i},SI{D}_{j},K,{X}_{i},{T}_{G})}_{{X}_{{S}_{j}}}$
- Msg
_{3}. - ${S}_{j}\to GWN:{(DI{D}_{i},SI{D}_{j},K,{X}_{i},{Y}_{i},{T}_{j})}_{{X}_{{S}_{j}}}$
- Msg
_{4}. - $GWN\to {U}_{i}:{(DI{D}_{i},{k}_{j},K,{X}_{i},{Y}_{i},{T}_{G}^{\prime})}_{HI{D}_{i}}$

- Msg
- Initiative premises:We make the assumptions about the initial state of the scheme to analyze the proposed scheme as follows.
- p
_{1}. - $GWN|\equiv \#({T}_{i})$
- p
_{2}. - $GWN|\equiv \#({T}_{j})$
- p
_{3}. - ${S}_{j}|\equiv \#({T}_{G})$
- p
_{4}. - ${U}_{i}|\equiv \#({T}_{G}^{\prime})$
- p
_{5}. - $GWN|\equiv GWN\stackrel{{X}_{{S}_{j}}}{\leftrightarrow}{S}_{j}$
- p
_{6}. - ${S}_{j}|\equiv GWN\stackrel{{X}_{{S}_{j}}}{\leftrightarrow}{S}_{j}$
- p
_{7}. - ${U}_{i}|\equiv {U}_{i}\stackrel{HI{D}_{i}}{\leftrightarrow}GWN$
- p
_{8}. - $GWN|\equiv {U}_{i}\stackrel{HI{D}_{i}}{\leftrightarrow}GWN$
- p
_{9}. - ${U}_{i}|\equiv {S}_{j}\Rightarrow {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}$
- p
_{10}. - ${S}_{j}|\equiv {U}_{i}\Rightarrow {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}$

- p
- Security analysis of the idealized form of the proposed scheme:
- a
_{1}. - According to $Ms{g}_{1}$, we could get:$$\begin{array}{c}\hfill {s}_{1}:GWN\u22b2{(DI{D}_{i},K,{X}_{i},{T}_{i})}_{HI{D}_{i}}\end{array}$$
- a
_{2}. - According to ${p}_{8}$, we apply the message-meaning rule to obtain:$$\begin{array}{c}\hfill {s}_{2}:GWN|\equiv {U}_{i}|\sim {(DI{D}_{i},K,{X}_{i},{T}_{i})}_{HI{D}_{i}}\end{array}$$
- a
_{3}. - According to ${p}_{1}$, we apply the freshness-conjuncatenation rule to obtain:$$\begin{array}{c}\hfill {s}_{3}:GWN|\equiv \#{(DI{D}_{i},K,{X}_{i},{T}_{i})}_{HI{D}_{i}}\end{array}$$Then, from ${s}_{2}$ and ${s}_{3}$, we apply the nonce-verification rule to obtain:$$\begin{array}{c}\hfill {s}_{4}:GWN|\equiv {U}_{i}|\equiv {(DI{D}_{i},K,{X}_{i},{T}_{i})}_{HI{D}_{i}}\end{array}$$
- a
_{4}. - According to $Ms{g}_{2}$, we could get:$$\begin{array}{c}\hfill {s}_{5}:{S}_{j}\u22b2{(DI{D}_{i},SI{D}_{j},K,{X}_{i},{T}_{G})}_{{X}_{{S}_{j}}}\end{array}$$
- a
_{5}. - According to ${p}_{6}$, we apply the message-meaning rule to obtain:$$\begin{array}{c}\hfill {s}_{6}:{S}_{j}|\equiv GWN|\sim {(DI{D}_{i},SI{D}_{j},K,{X}_{i},{T}_{G})}_{{X}_{{S}_{j}}}\end{array}$$
- a
_{6}. - According to ${p}_{3}$, we apply the the freshness-conjuncatenation rule to obtain:$$\begin{array}{c}\hfill {s}_{7}:{S}_{j}|\equiv \#{(DI{D}_{i},SI{D}_{j},K,{X}_{i},{T}_{G})}_{{X}_{{S}_{j}}}\end{array}$$Then, from ${s}_{6}$ and ${s}_{7}$, we apply the nonce-verification rule to obtain:$$\begin{array}{c}\hfill {s}_{8}:{S}_{j}|\equiv GWN|\equiv {(DI{D}_{i},SI{D}_{j},K,{X}_{i},{T}_{G})}_{{X}_{{S}_{j}}}\end{array}$$
- a
_{7}. - According to $Ms{g}_{3}$, we could get:$$\begin{array}{c}\hfill {s}_{9}:GWN\u22b2{(DI{D}_{i},SI{D}_{j},K,{X}_{i},{Y}_{i},{T}_{j})}_{{X}_{{S}_{j}}}\end{array}$$
- a
_{8}. - According to ${p}_{5}$, we apply the message-meaning rule to obtain:$$\begin{array}{c}\hfill {s}_{10}:GWN|\equiv {S}_{j}|\sim {(DI{D}_{i},SI{D}_{j},K,{X}_{i},{Y}_{i},{T}_{j})}_{{X}_{{S}_{j}}}\end{array}$$
- a
_{9}. - According to ${p}_{2}$, we apply the the freshness-conjuncatenation rule to obtain:$$\begin{array}{c}\hfill {s}_{11}:GWN|\equiv \#{(DI{D}_{i},SI{D}_{j},K,{X}_{i},{Y}_{i},{T}_{j})}_{{X}_{{S}_{j}}}\end{array}$$Then, from ${s}_{10}$ and ${s}_{11}$, we apply the nonce-verification rule to obtain:$$\begin{array}{c}\hfill {s}_{12}:GWN|\equiv {U}_{i}|\equiv {(DI{D}_{i},SI{D}_{j},K,{X}_{i},{Y}_{i},{T}_{j})}_{{X}_{{S}_{j}}}\end{array}$$
- a
_{10}. - According to $Ms{g}_{4}$, we could get:$$\begin{array}{c}\hfill {s}_{13}:{U}_{i}\u22b2{(DI{D}_{i},{k}_{j},K,{X}_{i},{Y}_{i},{T}_{G}^{\prime})}_{HI{D}_{i}}\end{array}$$
- a
_{11}. - According to ${p}_{7}$, we apply the message-meaning rule to obtain:$$\begin{array}{c}\hfill {s}_{14}:{U}_{i}|\equiv GWN|\sim {(DI{D}_{i},{k}_{j},K,{X}_{i},{Y}_{i},{T}_{G}^{\prime})}_{HI{D}_{i}}\end{array}$$
- a
_{12}. - According to ${p}_{4}$, we apply the the freshness-conjuncatenation rule to obtain:$$\begin{array}{c}\hfill {s}_{15}:{U}_{i}|\equiv \#{(DI{D}_{i},{k}_{j},K,{X}_{i},{Y}_{i},{T}_{G}^{\prime})}_{HI{D}_{i}}\end{array}$$Then, from ${s}_{14}$ and ${s}_{15}$, we apply the nonce-verification rule to obtain:$$\begin{array}{c}\hfill {s}_{16}:{U}_{i}|\equiv GWN|\equiv {(DI{D}_{i},{k}_{j},K,{X}_{i},{Y}_{i},{T}_{G}^{\prime})}_{HI{D}_{i}}\end{array}$$
- a
_{13}. - Because $SK=h(DI{D}_{i}||{k}_{j}||b{X}_{i})$, according to ${s}_{16}$ and ${s}_{12}$, we could produce:$$\begin{array}{c}\hfill {s}_{17}:{U}_{i}|\equiv {S}_{j}|\equiv {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}\phantom{\rule{22.76228pt}{0ex}}(\mathrm{Goal}3)\end{array}$$Likewise, $SK=h(DI{D}_{i}||{k}_{j}||a{Y}_{i})$, according to ${s}_{8}$ and ${s}_{4}$, we could produce:$$\begin{array}{c}\hfill {s}_{18}:{S}_{j}|\equiv {U}_{i}|\equiv {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}\phantom{\rule{22.76228pt}{0ex}}(\mathrm{Goal}4)\end{array}$$
- a
_{14}. - According to ${s}_{17}$ and ${p}_{9}$, we apply the jurisdiction rule to produce:$$\begin{array}{c}\hfill {s}_{19}:{U}_{i}|\equiv {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}\phantom{\rule{22.76228pt}{0ex}}(\mathrm{Goal}1)\end{array}$$Likewise, according to ${s}_{18}$ and ${p}_{10}$, we apply the jurisdiction rule to produce:$$\begin{array}{c}\hfill {s}_{20}:{S}_{j}|\equiv {U}_{i}\stackrel{SK}{\leftrightarrow}{S}_{j}\phantom{\rule{22.76228pt}{0ex}}(\mathrm{Goal}2)\end{array}$$

According to Goal 1, Goal 2, Goal 3 and Goal 4, we conclude that both ${U}_{i}$ and ${S}_{j}$ believe they share the session key. - a

#### 6.2. Security Analysis against Various Attacks

- •
- User anonymity and untraceability: Our scheme provides anonymity of users. The user ${U}_{i}$ does not reveal a real identity $I{D}_{i}$ in open channels; instead, $GWN$ generates and sends a pseudonym identity $TI{D}_{i}=HI{D}_{i}=R{N}_{G}$ to ${U}_{i}$ in the registration phase and updates it as $TI{D}_{i}=h(HI{D}_{i}||{T}_{i})$ before finalizing the session. The identity is dynamic for every session; thus, an adversary $\mathcal{A}$ cannot obtain the user’s true identity. The proposed scheme also provides untraceability by having all messages used in the session satisfy a freshness requirement. Therefore, $\mathcal{A}$ cannot trace the user.
- •
- Perfect forward secrecy: A session key $SK$ is computed as $h(DI{D}_{i}||{k}_{j}||abP)$. Even though the long-term private keys ${X}_{{S}_{i}}$ and ${X}_{{S}_{j}}$ are disclosed to $\mathcal{A}$, he/she cannot compute previous session keys, because it is hard to compute $abP$ using ${X}_{i}$ and ${Y}_{i}$ due to the difficulty of ECDH. Thus, $\mathcal{A}$ cannot compute previous session keys using long-term private keys. Therefore, our scheme provides forward secrecy.
- •
- Mutual authentication: In our scheme, ${U}_{i}$ and $GWN$ authenticate each other, and $GWN$ and ${S}_{j}$ authenticate each other, respectively. $GWN$ authenticates ${U}_{i}$ by checking ${M}_{{U}_{i},G}\stackrel{?}{=}h((DI{D}_{i}\oplus {k}_{i}\oplus HI{D}_{i})||{X}_{{S}_{i}}||{X}_{i}||{T}_{i})$. $\mathcal{A}$ needs to compute ${X}_{{S}_{i}}$ and ${k}_{i}$ to reconstruct ${M}_{{U}_{i},G}$; however, only a legal user can compute those values. ${U}_{i}$ authenticates $GWN$ by checking $({M}_{G,{U}_{i}}=h(DI{D}_{i}||{M}_{{U}_{i},G}||{k}_{j}||{X}_{{S}_{i}}||{X}_{i}||{Y}_{j}||{T}_{G}^{\prime}))$. $\mathcal{A}$ needs to compute ${k}_{j}^{*}$ and ${X}_{{S}_{i}}$ to reconstruct $({M}_{G,{U}_{i}}$; however, only a legal $GWN$ can compute those values. Therefore, ${U}_{i}$ and $GWN$ mutually authenticate. Similarly, ${S}_{j}$ authenticates $GWN$ by checking ${M}_{G,{S}_{j}}$, and $GWN$ authenticates ${S}_{j}$ by checking ${M}_{{S}_{j},G}$. Additionally, only legal ${S}_{j}$ and $GWN$ can reconstruct them, then authenticate mutually. Therefore, our scheme provides proper mutual authentication.
- •
- Off-line password guessing attack: $\mathcal{A}$ may attempt to guess the password $p{w}_{i}$ by extracting the values stored in the smart card $S{C}_{i}$. $\mathcal{A}$ could guess correctly if he/she generates a series of equations and computes the valid ${B}_{i}$ using guessing passwords. However, $\mathcal{A}$ is required to know the biometric information of the user, which cannot be forged, for generating equations. Therefore, it is infeasible to correctly guess the user’s password in our scheme.
- •
- Smart card loss attack: $\mathcal{A}$ can extract values in the smart card by means of power analysis and other techniques. Suppose $\mathcal{A}$ obtains the user’s smart card and extracts stored parameters $\{h(\xb7),{A}_{i},{B}_{i},{C}_{i},TI{D}_{i}\}$. From these values, $\mathcal{A}$ cannot obtain any useful information because the parameters are safeguarded with a one-way hash function, and $TI{D}_{i}$ is just a nonce. Furthermore, $\mathcal{A}$ may attempt to log in by generating a login request message. However, $\mathcal{A}$ cannot even pass the login phase and generate a valid login request message without proper $I{D}_{i}$, $p{w}_{i}$ and ${B}_{i}$. Therefore, the proposed scheme withstands smart card loss attacks.
- •
- User impersonation attack: $\mathcal{A}$ who somehow possesses a valid smart card $S{C}_{i}$ of ${U}_{i}$ and wants to access ${S}_{j}$ is required to generate and send a valid login request message $\{DI{D}_{i},{X}_{i},{M}_{{U}_{i},G},{T}_{i},TI{D}_{i}\}$ to $GWN$. $\mathcal{A}$ must know $HP{W}_{i}$ and ${X}_{{S}_{i}}$ to compute these values. However, in our scheme, $I{D}_{i},p{w}_{i}$ and ${R}_{i}$ are not revealed. Thus, $\mathcal{A}$ cannot compute the temporal key ${k}_{i}$ and generate a valid login request message. Therefore, our scheme is secure against the user impersonation attack.
- •
- Man-in-the-middle attack and replay attack: $\mathcal{A}$ who knows public channel information and has the smart card $S{C}_{i}$ of ${U}_{i}$ may attempt to establish a secure channel with ${S}_{j}$. However, $\mathcal{A}$ cannot authenticate with $GWN$ because $\mathcal{A}$ cannot generate a valid login request message, as mentioned above. In addition, those messages captured in a public channel are refreshed in every session, so that $\mathcal{A}$ cannot use them repeatedly. Therefore, our scheme withstands man-in-the-middle and replay attacks.
- •
- Stolen verifier attack: $\mathcal{A}$ who obtains the verifier table of $GWN$ may attempt to attack users to gain some advantages. However, $\mathcal{A}$ still cannot compute $HP{W}_{i}$, ${X}_{{S}_{i}}$ and ${k}_{i}$ and will fail to pass the login phase. Of course, $\mathcal{A}$ will fail to compute a login request message without $p{w}_{i}$ and ${R}_{i}$. Therefore, even if $\mathcal{A}$ has the verifier table, our protocol withstands stolen verifier attacks.
- •
- Known-key attack: A session key $SK$ is computed as $h(DI{D}_{i}||{k}_{j}||abP)$, and $DI{D}_{i}$, ${k}_{j}$ and $abP$ are independent in each session. Though $\mathcal{A}$, who somehow possesses each value, attempts to generate other session keys, he/she will find that they cannot successfully derive valid session keys. Therefore, our proposed scheme withstands known-key attacks.

We compare the functionality features of the proposed scheme with related user authentication schemes for WSNs in Table 3. ∘ denotes that the scheme provides the property; × denotes that the scheme does not provide the property; Δ denotes that the scheme does not provide the property when off-line password guessing attacks succeed; − denotes that the scheme does not concern the property.

#### 6.3. Performance Comparisons

In Table 4, we compare the computational cost with related schemes. ${T}_{h}$ denotes the computation time for the hash function; ${T}_{x}$ denotes the XOR operation; ${T}_{F}$ denotes the fuzzy extraction; ${T}_{E}$ denotes the ECC multiplication; ${T}_{enc}$ denotes the encryption/decryption. The computation cost of ours is a bit higher than [13,14] because of the usage of biometrics and ECC, but it is considered to be operationally viable in WSNs [15,18]. Additionally, our proposed scheme provides the enhanced security functionalities and is secure against various attacks.

## 7. Conclusions

To provide improved security functionality for mobile services in WSNs, several user authentication and key agreement schemes have been proposed in the last few years. However, most of them cannot provide secure authentication and are vulnerable to security attacks.

In this paper, we analyzed the security weaknesses of Chang et al.’s scheme and found that it is vulnerable to off-line password guessing attacks and does not provide forward secrecy and accurate password updates. To address the security problems, we proposed a biometric-based user authentication and key agreement scheme. The proposed scheme withstands the security attacks described above and provides better security functionality than previous schemes by using biometric information and ECC. In addition, we provided security and efficiency analyses, which demonstrated that the proposed protocol is more secure than the previous schemes and operationally viable in WSNs.

## Acknowledgments

This study was supported by the BK21 Plus project funded by the Ministry of Education, Korea (21A20131600011).

## Author Contributions

YoHan Park and YoungHo Park found the problems in the related schemes for WSNs, analyzed the vulnerabilities of the related schemes, designed the improved scheme, proved the security of proposed scheme and wrote the manuscript.

## Conflicts of Interest

The authors declare no conflict of interest.

## References

- Akyildiz, I.F.; Su, W.; Sankarasubramaniam, Y.; Cayirci, E. A survey on sensor networks. IEEE Commun. Mag.
**2002**, 40, 102–114. [Google Scholar] [CrossRef] - Yick, J.; Mukherjee, B.; Ghosal, D. Wireless sensor network survey. Comput. Netw.
**2008**, 52, 2292–2330. [Google Scholar] [CrossRef] - Gubbi, J.; Buyya, R.; Marusic, S.; Palaniswami, M. Internet of Things (IoT): A vision, architectural elements, and future directions. Futur. Gene Comput. Syst.
**2013**, 29, 1645–1660. [Google Scholar] [CrossRef] - Pathan, A.S.K.; Lee, H.W.; Hong, C.S. Security in wireless sensor networks: Issues and challenges. In Proceedings of the 8th International Conference Advanced Communication Technology (ICACT), Phoenix Park, Korea, 20–22 February 2006; pp. 1043–1048.
- Perrig, A.; Stankovic, J.; Wagner, D. Security in wireless sensor networks. ACM Commun.
**2004**, 47, 53–57. [Google Scholar] [CrossRef] - Al Ameen, M.; Liu, J.; Kwak, K. Security and privacy issues in wireless sensor networks for healthcare applications. J. Med. Syst.
**2012**, 36, 93–101. [Google Scholar] [CrossRef] [PubMed] - Wong, K.H.; Zheng, Y.; Cao, J.; Wang, S. A dynamic user authentication scheme for wireless sensor networks. In Proceedings of the IEEE International Conference on Sensor Networks, Ubiquitous, and Trustworthy Computing, Taichung, Taiwan, 5–7 June 2006; pp. 1–8.
- Das, M.L. Two-factor user authentication scheme in wireless sensor networks. IEEE Trans. Wirel. Commun.
**2009**, 8, 1086–1090. [Google Scholar] [CrossRef] - 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] - Khan, M.K.; Alghathbar, K. Cryptanalysis and security improvements of two-factor user authentication in wireless sensor networks. Sensors
**2010**, 10, 2450–2459. [Google Scholar] [CrossRef] [PubMed] - Chen, T.H.; Shih, W.K. A robust mutual authentication protocol for wireless sensor networks. ETRI J.
**2010**, 32, 704–712. [Google Scholar] [CrossRef] - Vaidya, B.; Makrakis, D.; Mouftah, H. Two-factor mutual authentication with key agreement in wireless sensor networks. Secur. Commun. Netw.
**2016**, 9, 171–183. [Google Scholar] [CrossRef] - Kim, J.; Lee, D.; Jeon, W.; Lee, Y.; Won, D. Security analysis and improvements of two-factor mutual authentication with key agreement in wireless sensor networks. Sensors
**2014**, 14, 6443–6462. [Google Scholar] [CrossRef] [PubMed] - Chang, I.P.; Lee, T.F.; Lin, T.H.; Liu, C.M. Enhanced two-factor authentication and key agreement using dynamic identities in wireless sensor networks. Sensors
**2015**, 15, 29841–29854. [Google Scholar] [CrossRef] [PubMed] - Yoon, E.J.; Yoo, K.Y. A biometric-based authenticated key agreement scheme using ECC for wireless sensor networks. In Proceedings of the 29th Annual ACM Symposium on Applied Computing, Gyeongju, Korea, 24–28 March 2014; pp. 699–705.
- 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] - Das, A.K. A secure and effective biometric-based user authentication scheme for wireless sensor networks using smart card and fuzzy extractor. Int. J. Commun. Syst.
**2015**, 2015, 1–25. [Google Scholar] [CrossRef] - Choi, Y.; Lee, Y.; Won, D. Security improvement on biometric based authentication scheme for wireless sensor networks using fuzzy extraction. Int. J. Dist. Sens. Netw.
**2016**, 8572410, 1–16. [Google Scholar] [CrossRef] - Park, Y.; Lee, S.; Kim, C.; Park, Y. Secure biometric-based authentication scheme with smart card revocation/reissue for wireless sensor networks. Int. J. Dist. Sens. Netw.
**2016**, 12, 1–11. [Google Scholar] [CrossRef] - Li, C.T.; Hwang, M.S. An efficient biometric-based remote authentication scheme using smart cards. J. Netw. Comp. Appl.
**2010**, 33, 1–5. [Google Scholar] [CrossRef] - Burrows, M.; Abadi, M.; Needham, R.M. A logic of authentication. Proc. R. Soc. Lond. A Math. Phys. Eng. Sci.
**1989**, 426, 233–271. [Google Scholar] [CrossRef] - Lu, R.; Cao, Z.; Chai, Z.; Liang, X. A Simple User Authentication Scheme for Grid Computing. IJ Netw. Sec.
**2008**, 7, 202–206. [Google Scholar] - 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.
- Tan, Z. A user anonymity preserving three-factor authentication scheme for telecare medicine information systems. J. Med. Syst.
**2014**, 38, 1–9. [Google Scholar] [CrossRef] [PubMed] - Jung, J.; Kim, J.; Choi, Y.; Won, D. An Anonymous User Authentication and Key Agreement Scheme Based on a Symmetric Cryptosystem in Wireless Sensor Networks. Sensors
**2016**, 16, 1299. [Google Scholar] [CrossRef] [PubMed] - 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] - Kocher, P.; Jaffe, J.; Jun, B. Differential power analysis. In Proceedings of the Advances in Cryptology-CRYPTO’99, Santa Barbara, CA, USA, 15–19 August 1999; Volume 1666, pp. 388–397.
- Amin, R.; Biswas, G.P. A secure light weight scheme for user authentication and key agreement in multi-gateway based wireless sensor networks. Ad Hoc Netw.
**2016**, 36, 58–80. [Google Scholar] [CrossRef] - He, D.; Kumar, N.; Chilamkurti, N. A secure temporal-credential-based mutual authentication and key agreement scheme with pseudo identity for wireless sensor networks. Inf. Sci.
**2015**, 321, 263–277. [Google Scholar] [CrossRef] - Jiang, Q.; Kumar, N.; Ma, J.; Shen, J.; He, D.; Chilamkurti, N. A privacy-aware two-factor authentication protocol based on elliptic curve cryptography for wireless sensor networks. Int. J. Netw. Manag.
**2016**. [Google Scholar] [CrossRef] - Lu, Y.; Li, L.; Yang, X.; Yang, Y. Robust biometrics based authentication and key agreement scheme for multi-server environments using smart cards. PLoS ONE
**2015**, 10, e0126323. [Google Scholar] [CrossRef] [PubMed] - Liu, J.; Li, Q.; Yan, R.; Sun, R. Efficient authenticated key exchange protocols for wireless body area networks. EURASIP J. Wirel. Commun. Netw.
**2015**, 2015, 1–11. [Google Scholar] [CrossRef]

Notation | Meaning |
---|---|

$p,q$ | two large primes |

${U}_{i}$ | user i |

${S}_{j}$ | sensor node j |

$GWN$ | gateway node |

$S{C}_{i}$ | smart card of the user ${U}_{i}$ |

$I{D}_{i}/p{w}_{i}$ | identity/password of ${U}_{i}$ |

$BI{O}_{i}$ | biometric template of ${U}_{i}$ |

$TI{D}_{i}$ | temporal identity of ${U}_{i}$ |

$SI{D}_{j}$ | identity of ${S}_{j}$ |

$I{D}_{S}$ | identity of $S{C}_{i}$ |

$\mathcal{A}$ | adversary |

K | a master secret of $GWN$ |

${\mathbb{G}}_{1}$ | cyclic group of order q |

P | generator of ${\mathbb{G}}_{1}$ |

${T}_{i},{T}_{j},{T}_{G}$ | timestamps |

⨁ | XOR operation |

$||$ | concatenate operation |

$h(\xb7)$ | a secure one-way hash function |

Notations | Meaning |
---|---|

$P\mid \equiv X$ | P believes X |

$P\u22b2X$ | P sees X |

$P\mid \sim X$ | P once said X |

$P\Rightarrow X$ | P has jurisdiction over X |

$\#(X)$ | X is fresh |

$P\stackrel{K}{\leftrightarrow}Q$ | P and Q may use the shared key K |

$SK$ | The session key shared between two principals |

${\langle X\rangle}_{Y}$ | X combined with the formula Y |

${(X)}_{K}$ | X hashed under the key K |

${\{X\}}_{K}$ | X encrypted under the key K |

Kim et al.’ Scheme [13] | Chang et al.’ Scheme [14] | Yoon and Yoo’s Scheme [15] | Choi et al.’ Scheme [18] | Proposed Scheme | |
---|---|---|---|---|---|

Provides user anonymity | × | ∘ | × | × | ∘ |

Provides user untraceability | × | Δ | × | × | ∘ |

Provides forward secrecy | × | × | ∘ | ∘ | ∘ |

Provides secure password update | ∘ | × | − | − | ∘ |

Provides mutual authentication | ∘ | ∘ | ∘ | ∘ | ∘ |

Resists off-line password guessing attack | × | × | − | − | ∘ |

Resists user impersonation attack | × | Δ | ∘ | × | ∘ |

Resists lost smart card attack | × | Δ | ∘ | ∘ | ∘ |

Resists stolen verifier attack | × | Δ | − | − | ∘ |

Resists man-in-the-middle attack | × | Δ | ∘ | ∘ | ∘ |

Resists replay attack | ∘ | ∘ | ∘ | ∘ | ∘ |

Resist biometric recognition error | − | − | × | ∘ | ∘ |

Usage of biometrics | × | × | ∘ | ∘ | ∘ |

Usage of ECC | × | × | ∘ | ∘ | ∘ |

Scheme | Computation Cost | |||
---|---|---|---|---|

Registration | Login & Authentication | Total | ||

Kim et al.’s [13] | User | $2{T}_{h}+{T}_{x}$ | $9{T}_{h}+9{T}_{x}$ | $11{T}_{h}+10{T}_{x}$ |

$GWN$ | $6{T}_{h}+3{T}_{x}$ | $8{T}_{h}+8{T}_{x}$ | $14{T}_{h}+11{T}_{x}$ | |

Sensor | 0 | $2{T}_{h}+2{T}_{x}$ | $2{T}_{h}+2{T}_{x}$ | |

Chang et al.’s [14] | User | $2{T}_{h}+{T}_{x}$ | $9{T}_{h}+5{T}_{x}$ | $11{T}_{h}+6{T}_{x}$ |

$GWN$ | $5{T}_{h}+3{T}_{x}$ | $10{T}_{h}+4{T}_{x}$ | $15{T}_{h}+7{T}_{x}$ | |

Sensor | 0 | $4{T}_{h}+{T}_{x}$ | $4{T}_{h}+{T}_{x}$ | |

Yoon and Yoo’s [15] | User | ${T}_{h}$ | $3{T}_{h}+2{T}_{x}+2{T}_{E}$ | $4{T}_{h}+2{T}_{x}+2{T}_{E}$ |

$GWN$ | $2{T}_{h}+2{T}_{x}$ | $4{T}_{h}$ | $6{T}_{h}+2{T}_{x}$ | |

Sensor | 0 | $3{T}_{h}+2{T}_{E}$ | $3{T}_{h}+2{T}_{E}$ | |

Choi et al.’s [18] | User | ${T}_{h}+{T}_{F}$ | $10{T}_{h}+2{T}_{x}+{T}_{F}+{T}_{enc}+2{T}_{E}$ | $11{T}_{h}+2{T}_{x}+2{T}_{F}+{T}_{enc}+2{T}_{E}$ |

$GWN$ | $3{T}_{h}+3{T}_{x}$ | $10{T}_{h}+{T}_{x}+2{T}_{enc}$ | $13{T}_{h}+4{T}_{x}+2{T}_{enc}$ | |

Sensor | 0 | $6{T}_{h}+{T}_{enc}+2{T}_{E}$ | $6{T}_{h}+{T}_{enc}+2{T}_{E}$ | |

Proposed | User | ${T}_{h}+{T}_{F}$ | $9{T}_{h}+4{T}_{x}+{T}_{F}+2{T}_{E}$ | $10{T}_{h}+4{T}_{x}+2{T}_{F}+2{T}_{E}$ |

$GWN$ | $5{T}_{h}+3{T}_{x}$ | $11{T}_{h}+4{T}_{x}$ | $16{T}_{h}+7{T}_{x}$ | |

Sensor | 0 | $4{T}_{h}+{T}_{x}+2{T}_{E}$ | $4{T}_{h}+{T}_{x}+2{T}_{E}$ |

© 2016 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC-BY) license (http://creativecommons.org/licenses/by/4.0/).