Skip to main content
Sensors (Basel, Switzerland) logoLink to Sensors (Basel, Switzerland)
. 2020 Dec 12;20(24):7136. doi: 10.3390/s20247136

A Secure and Lightweight Three-Factor-Based Authentication Scheme for Smart Healthcare Systems

Jihyeon Ryu 1, Dongwoo Kang 2, Hakjun Lee 2, Hyoungshick Kim 3, Dongho Won 3,*
PMCID: PMC7763045  PMID: 33322813

Abstract

Internet of Things (IoT) technology has recently been integrated with various healthcare devices to monitor patients’ health status and share it with their healthcare practitioners. Since healthcare data often contain personal and sensitive information, healthcare systems must provide a secure user authentication scheme. Recently, Adavoudi-Jolfaei et al. and Sharma and Kalra proposed a lightweight protocol using hash function encryption only for user authentication on wireless sensor systems. In this paper, we found some weaknesses in target schemes. We propose a novel three-factor lightweight user authentication scheme that addresses these weaknesses and verifies the security of the proposed scheme using a formal verification tool called ProVerif. In addition, our proposed scheme outperforms other proposed symmetric encryption-based schemes or elliptic curve-based schemes.

Keywords: authentication, WSN, healthcare, IoT

1. Introduction

Digital healthcare services have recently received a considerable amount of attention as various Internet-enabled wearable devices have been deployed. Digital services can also be used to continuously monitor patients and share information with their healthcare practitioners. According to a Spyglass Consulting Group’s report [1], with 100 interviewees working in medical informatics and healthcare IT technology areas, about 88% of hospitals and healthcare systems have considered adopting remote patient monitoring (RPM) as their primary business model in the future.

RPM technology is increasingly used by hospitals and medical systems [1]. We believe that continuous monitoring and fast response times are necessary for high-risk patients with chronic diseases. For example, practitioners can use a monitoring device to collect ECG signals from patients with heart-related conditions and quickly identify any suspicious changes [2,3,4,5]. Because such data (e.g., raw ECG signals) are often highly personal and sensitive, any data that have been collected in healthcare systems should be securely protected and accessible only to authorized users such as primary care physicians. Furthermore, the scheme to monitor and analyze processes should not only be safe, but also be completed in real-time because patients might otherwise be at risk.

If there is a problem with the certification of these RPM technologies, the following damage can occur. First, if hospitals do not provide fast enough authentication using a heavy enough operation, quick feedback is impossible when monitoring the patient’s condition. In such cases, in a situation where urgent patients with fatal internal injuries require immediate treatment due to rapid changes, the treatment may be delayed due to the late certification speed. In the worst-case scenario, the treatment of patients can be difficult. Second, if there is a security flaw in the certification, privacy infringement of patients and medical personnel may occur. For example, if a session key is released, all medical information of the patient can be disclosed to the hacker. Therefore, in order to avoid such damage, a certification protocol is shown in Figure 1 that satisfies both high speed (i.e., lightweight computation) and safety should be used.

Figure 1.

Figure 1

The Architecture of User Authentication for Digital Healthcare Services.

Many security protocols (e.g., [6,7,8,9]) have been developed to satisfy these security and performance requirements. Among those protocols, Sharma and Kalra’s scheme [6] is specifically designed to improve the protocol’s efficiency. Unlike existing protocols that require expensive cryptographic operations or three authentication factors [7,9,10], Sharma and Kalra’s scheme [6] uses hash functions with only two authentication factors. Similarly, Adavoudi-Jolfaei et al. [11] also proposed a protocol using hash functions only. Sharma and Kala’s scheme [6] and Adavoudi-Jolfei et al.’s scheme [11] are the most recently written lightweight authentication protocols that can keep high speed and safety, the conditions required by the healthcare system.

In this paper, we confirmed that Adavoudi-Jolfaei et al.’s scheme [11] has a severe vulnerability. We also demonstrate that Sharma and Kalra’s scheme [6] has a serious design error. Therefore, we propose a new scheme to fix the weaknesses of these target schemes. We formally verify the security of the new protocol using ProVerif, an automatic cryptographic protocol verifier. In summary, this paper presents the following contribution:

  • We demonstrate that Sharma and Kalra’s scheme [6] has a serious design error: mutual authentication between a practitioner and a sensor cannot be ensured in their original protocol.

  • We confirm that Adavoudi-Jolfaei et al.’s scheme [11] and Sharma and Kalra’s scheme have a severe vulnerability. We find that Adavoudi-Jolfaei et al.’s scheme [11] is vulnerable to user impersonation attack and session key attack. We also find that Sharma and Kalra’s scheme [6] is vulnerable to password guessing attack, stealing the session key and sensor impersonation attack.

  • We propose a scheme for smart healthcare systems. Our new scheme resists privileged insider attack, outsider attack, offline ID guessing attack, online id guessing attack, session key disclosure attack, practitioner impersonation attack, and sensor impersonation attack. We provide security proofs.

  • We formally verify the security of the new protocol using ProVerif, an automatic cryptographic protocol verifier.

  • We show the performance analysis of the proposed scheme. We compared the proposed scheme with that of Chen et al. [12], Renuka et al. [13], and Li et al. [14] to show how efficient our proposed scheme is.

The remainder of this paper is arranged as follows: Section 2 describes related work. Section 3 introduces the preliminary knowledge necessary to understand the scheme by Sharma and Kalra and Adavoudi-Jolfaei et al. The target schemes are briefly described in Section 4. Section 5 discusses several weaknesses of the target schemes. We propose our improved scheme in Section 6 and show the security analysis of the proposed scheme in Section 7. In Section 8, we show the performance analysis of the proposed scheme. Finally, Section 9 concludes the paper.

2. Related Work

Various user authentication schemes have been proposed for smart healthcare applications.

Hu et al. [15] proposed a real-time hardware and software-based healthcare monitoring system for cardiac patients in 2007. The proposed scheme focuses on efficiency improvements but lacks adequate security protection. Malasri et al. [16] proposed an authentication scheme for wireless mote-based medical sensor networks using an ECC (elliptic curve cryptography) system in 2009. However, the scheme cannot withstand denial-of-service and relay nodes attacks. Furthermore, ECC may be too expensive for embedded devices in the medical domain.

In 2012, Kumar et al. [17] proposed a two-factor user authentication scheme for wireless medical sensors to monitor patients’ health status. However, Khan and Kumari [18] found that Kumar et al.’s scheme is vulnerable to security attacks. The scheme included the use of a smart card to enhance the security of the protocol, but the user information stored on the smart card can end up leaked if the smart card is stolen. Khan and Kumari proposed an improved scheme to fix the security flaws of the previous scheme in 2014. Li et al. [19] and Wu et al. [20] each analyzed the scheme presented by Khan and Kumari [18]. They discovered that Khan and Kumari’s scheme is not secure against offline password guessing attacks, as it does not identify invalid input and user impersonation attacks. Li et al. [19] and Wu et al. [20] proposed their respective improved schemes, which employ a smart card to overcome the security flaws of Khan and Kumari [18]. Hossain et al. [21] proposed an IoT-based ECG health monitoring service framework in the cloud. They presented a framework for secure transmission of patients data from different sensors to the cloud in a wireless environment.

Recently, Sharma and Kalra [6] proposed an authentication scheme for cloud-IoT-based remote patient healthcare monitoring services. It is efficient because only the hash function is used for system encryption. Several papers briefly addressed security flaws of Sharma and Karla’s scheme [22,23]. However, they only mentioned briefly that privileged insider attacks are possible. However, we have pinpointed the structural problems of Sharma and Kalra’s scheme, and showed that password guessing attack, stealing the session key attack, and sensor impersonation attack are possible in the case of privileged insider attack.

In 2016, Gope et al. [24] proposed a novel two-factor lightweight anonymous authentication protocol in WSNs (wireless sensor networks) that uses a database to overcome prior vulnerabilities. However, Adavoudi-Jolfaei et al. [11] argue that protocol is vulnerable to side-channel attacks because of the use of 2-factors, and that the session keys are also vulnerable. To overcome these drawbacks, in 2019, Adavoudi-Jolfaei et al. [11]. proposed a new 3-factor authentication protocol in WSN. Unfortunately, Shin and Kwon found user collusion attacks, desynchronization attack and no sensor node anonymity. In addition, through our prior research, we found more weaknesses that user impersonation attack and session key attack are able to take advantage of.

3. Preliminaries

This section introduces the hash function, fuzzy extractor and threat model used in this paper.

3.1. Hash Function

Data convert an arbitrary value to a fixed-length value through a hash function. This is useful for fast and safe search functions. The hash function has the following properties [25].

  • Preimage-resistance It is computationally impossible to use the output of any hash value to find the input that results in this value, i.e., to find any preimage a such that h(a)=b when given any b for which a corresponding input is not known.

  • 2nd-preimage-resistance For any input, when there is an output for the hash function, it is computationally impossible to find another input value with this output, i.e., to find a 2nd-preimage aa such that h(a)=h(a).

  • Collision resistance It is computationally infeasible to find two different inputs with the same hashing result, i.e., any two distinct inputs a, a, which hash to the same output, such that h(a)=h(a).

3.2. Fuzzy Extractor

Biometric information should be treated as sensitive. Since biometric information is unique to the user, it is convenient to use, but difficult to handle. In general, biometrics cannot be recognized equally each time. Therefore, a fuzzy extractor is used to recognize varied biometric information within a certain tolerance range. The fuzzy extractor can obtain a unique string using error tolerance. The fuzzy extractor operates through two procedures (Gen, Rep), as follows [26,27]:

Gen(B)α,β (1)
Rep(B*,β)=α (2)

Gen and Rep are a probabilistic generation function and a deterministic reproduction function, respectively. Gen returns a factored out string α{0,1}k for the input biometrics B and a co-adjutant string β{0,1}*. Rep is a function that restores β to α, and any vector B* close to B.

3.3. Threat Model

Based on the work of Dolev and Yao [28] and other previous research [10,29], we employ a threat model with the following assumptions.

  • An attacker can steal a smart device with the user’s identity.

  • An attacker can eavesdrop on a public channel. An attacker can steal the message between the user and the gateway node or between the gateway node and the sensor node.

  • An attacker can extract the information stored in the smart device as a side-channel attack.

4. Review of Target Protocols

This section describes the target protocols.

4.1. Review of Adavoudi-Jolfaei et al.’s Protocol

This section describes the protocol developed by Adavoudi-Jolfaei et al. [11]. The scheme consists of four phases: registration, login, authentication, and password change. The notation for the target paper [11] is shown in Table 1.

Table 1.

Notations.

Notations Description
U The user
P The practitioner who is a medical professional
GWN Gateway node
SN Sensor node
Uid U’s identity
Upsw U’s password
Ub U’s biometric information
AUid U’s disposable identity
SUid U’s shadow identity
APM Set of access rights mask for U
G Group identity set of U
Bp Biometric information of the practitioner P
IDp Identity of the practitioner P
PWp Password of the practitioner P
Mask(PWp) Masked password of the user P
GWNid GWN’s identity
w GWN’s private key
KEMug The secret emergency key between U and GWN
Skug The secret key between U and GWN
SNid SN’s identity
Skgs The secret key between GWN and SN
SK The session key between U and SN
SC Smart card or smart device
DB Database
Tsug Timestamp sequence
Mask(PWp) Masked password of the user P
K Secret key of GWN
h(·) One-way hash function
Tx The xth timestamp
Tc Current timestamp
Gen A probabilistic generation function
Rep A deterministic reproduction function
ΔT Maximum transmission delay
XOR operation
Concatenation operation

4.1.1. Registration Phase

In the registration phase, U and GWN in the private channel exchange secret information about SC. When the user authenticates, this allows confidential information to be stored in the database used by SC and GWN.

  1. User U chooses his/her identity Uid and sends the registration request Uid and personal credential to the gateway node GWN in the secure channel.

  2. The gateway node GWN generates a random number ng, a unique random number used to identify a particular access group Gj, a random number user access privilege mask APMj and random sequence number Tsug. Then, the created variables are grouped as G={G1, G2, }, APM={APM1, APM2, }. After obtaining the registration request from user U, GWN calculates as follows:

    Skug=h (Uidng)GWid

    sidj=h(UidrjSkug)

    SUid={sid1, sid2, }

    KEMugj=h (Uidsidjrj)

    G={G1, G2, }

    APM={APM1, APM2, }

    Uid#=Uidh (GWNidwTsug)

    Skug#=Skugh (GWNidUidw)

    Gj#=Gjh (GWNidUidw)

    APMj#=APMjh (GWNidUidw)

    Skgs#=Skgsh (GWNidwSNid)

    KEMug#=KEMugh (GWNidUidw) using its secret key w.

    The data are saved Tsug, (SUid, KEMug#), Skug#, Skgs#, Uid#, G#, APM# in DB.GWN sends Skug, (SUid, KEMug), Tsug, GU, h (·) to user U in SC.

  3. After user U takes SC from the GWN, chooses his/her Uid, password Upsw, imprints the biometric Ub and then computes as follows:

    Gen(Ub)=(RSU, PU)

    Skug*=Skugh(h(Uid)h (Upsw)h (RSU))

    KEMug*=KEMugh (h (Uid)h (Upsw)h (RSU))

    SUid*=SUidh (h (Uid)h (Upsw)h (RSU))

    G*=Gh (h (Uid)h (Upsw)h (RSU)), fU*=h (h (Skug)h (Uid)h (Upsw)h (RSU))

    Moreover, save the data Skug*, fU*, (SUid*, KEMug*), Tsug, G*, PU, Gen (·), Rep (·), h (·) in SC.

4.1.2. Login Phase

In the login phase, the user enters his/her confidential information into the smart card and requests login.

  1. U inserts the smart card and enters Uid, Upsw and Ub. The smart card computes RSU=Rep (Ub, PU), Skug=Skug*h (h (Uid)h (Upsw)h (RSU)) and checks the condition fU=h (h (Skug)h (Upsw)h (Uid)h (RSU))=?fU*. If it holds, the smart card ensures that the user successfully passes the verification process. Otherwise, this phase terminates immediately.

  2. After successful verification, user U generates random number Nu and the system computes as follows:

    Nx=SkugNu

    G=G*h (h (Uid)h (Upsw)h (RSU))

    AUid=h (UidSkugNuTsug)

    Gj=GjNu

    V1=h(AUidGjSkugNxSNid)

    If there is a loss of synchronization, user U selects one of the unused pair of (sidj*, KEMugj*) from (SUid*, KEMug*) and surrenders his/her Uid, Upsw, RSU and computes sidj=sidj*h (h (Uid)h (Upsw)h (RSU)), KEMug=KEMug*h (h (Uid)h (Upsw)h (RSU)), AUid=sidj and Skug=KEMugj.

  3. U sends the login request messages MA1={AUid, Gj, Nx, Tsug(ifreq), SNid, V1} to GWN.

4.1.3. Authentication Phase

In the authentication phase, GWN verifies U with the login message received from U, and sends a new message containing secret information to SN. SN and U share their keys and exchange the secret information.

  1. After receiving the login request messages MA1 from user U, GWN first checks the validity of the transaction sequence number Tsug. GWN computes as follows:

    Nu=SkugNx

    Gj=GjNu

    h (GWNidUidw)=Gj#Gj

    APMj=APMj#h (GWNidUidw) that Gj# and APMj# are in DB.

    Then, GWN calculates AUid=h (UidSkugNUTsug), V1=h (AUidGjSkugNxSNid) and checks if AUid and V1 are valid. If the verification of AUid is successful, then calculation continues. Otherwise, GWN terminates the session. GWN generates a session key SK and time stamp T and calculates as follows:

    SK=h(Skgs)SK, APMj=hSkgsAPMj and

    V2=h(AUidAPMjSKTSkgs)

    Finally, GWN sends the messages MA2={AUid, APMj, SK, T, V2} to the sensor node SN.

  2. Upon receiving the message MA2, SN assess the validity of T. If it is not valid, SN disconnects the session. If it is valid, SN also verifies V2=?h (AUidAPMjSKTSkgs). If this condition is not satisfied, SN disconnects the session. If it is satisfied, SN computes as follows:

    APMj=APMjh(Skgs) and generates a new time stamp T.

    SK=h(Skgs)SK, V3=h(SKSkgsSNidT)

    Kgsnew=h(SkgsSNid) and

    Skgs=Kgsnew

    Finally, SN transmits MA3={T, SNid, V3} to GWN.

  3. The gateway node GWN checks that the time stamp T and V3=?h (SKSkgsSNidT). If not, it terminates the connection. GWN generates a random number Tsugnew and calculates as follows:

    Ts=h(SkugUidNU)

    SK=h(SkugUidNU)SK

    V4=h(SKNUTsSkug)

    Kugnew=h(SkugUidTsugnew)

    Skug=Kugnew

    Kgsnew=h(SkgsSNid)

    GWN updates Skug=Kugnew and Skgs=Kgsnew. If GWN cannot find Tsug in MA1, GWN generates a random number Kugnew and calculates x=h (UidKEMugj)Kugnew. Then, GWN updates Skug=Kugnew and then sends the messages MA4={SK, Ts, V4, x} to the user U.

  4. When user U obtains the message V4=h (SKNUTsSkug), the protocol checks its validity. If there is no abnormality, the system proceeds to the next step or ends the session. Furthermore, U computes SK=h SkugUidNU)SK, Tsugnew=h (SkugUidNU)Ts, Kugnew=h (SkugUidTsugnew and then updates Skug=Kugnew and Tsug=Tsugnew.

  5. U and SN have successfully shared SK. SN responds to user U’s query according to APMj stored for user U using session key SK. Finally, at the end of this phase, SN removes APMj from storage for security reasons.

4.1.4. Password and Biometrics Change Phase

The protocol uses the following steps to change the user’s password:

  1. U puts his/her smart card into the terminal and inserts Uid, previous password Upsw and previous biometric Ub. U then inputs the new password Upsw* and new biometric Ub*.

  2. The smart card computes RSU=Rep (Ub, PU) and retrieves Skug, KEMug, SUid, G and fU. The smart card continues to compute as follows:

    Skug=Skug*h(h(Uid)h(Upsw)h(RSU))

    KMug=KEMug*h(h(Uid)h(Upsw)h(RSU))

    SUid=SUid*h(h(Uid)h(Upsw)h(RSU))

    G=G*h(h(Uid)h(Upsw)h(RSU))

    fU=fU*h(h(Skug)h(Upsw)h(Uid)h(RSU))

  3. The smart card computes Gen (Ub*), Skug**, SUid**, KEMug**, G** and fU**, as shown below.

    Gen(Ub*)=(RSU*, PU*)

    Skug**=Skugh(h(Uid)h(Upsw*)h(RSU*))

    SUid**=SUidh(h(Uid)h(Upsw*)h(RSU*))

    KEMug**=KEMugh(h(Uid)h(Upsw*)h(RSU*))

    G**=Gh(h(Uid)h(Upsw*)h(RSU*))

    fU**=h(h(Skug)h(Upsw*)h(Uid)h(RSU*))

  4. Finally, the smart card replaces Skug* with Skug**, SUid* with SUid**, KEMug* with KEMug**, G* with G**, fU* with fU** and PU with PU*.

4.2. Review of Sharma and Kalra’s scheme

This section briefly describes Sharma and Kalra’s scheme. The notation of the scheme is summarized in Table 1. Sharma and Kalra’s scheme consists of five different phases:

  1. Setup Phase: The registration center sets up the parameters.

  2. Registration Phase: The practitioner registers with his/her identity and password.

  3. Login Phase: The practitioner logs in with his/her identity, password and smart device.

  4. Authentication Phase: The practitioner and sensor node mutually authenticate.

  5. Password Change Phase: The practitioner inputs identity, password and smart device, and changes his/her old password to the new password.

4.2.1. Setup Phase

The gateway node GWN obtains its secret key K from the registration center. The center also computes and gives Skgs=h(SNidK) to the sensor node SN. Skgs and K are stored in GWN and SN.

4.2.2. Registration Phase

The practitioner creates his/her identity and password. He/she registers through the gateway node to receive a smart device. The detailed process is as follows:

  1. Practitioner P chooses his/her IDp and PWp and generates random number R, computes the masked password Mask(PWp)=h(PWpR). Finally, he/she sends the registration message {Mask(PWp), IDp} to the gateway node GWN.

  2. After the gateway node GWN receives the message from the practitioner, it computes variables a=h(Mask(PWp)IDp), b=h(IDpK), c=h(K)h(Mask(PWp)b) and d=bh(Mask(PWp)a). After calculation, GWN sends the smart device SC={a, c, d} to P.

  3. P stores {a, c, d, R} in SC.

4.2.3. Login Phase

When the practitioner enters his/her identity and password, the smart device checks that the practitioner is an authorized party. The procedure for doing so is as follows:

  1. P inputs his/her identity IDp and password PWp in his/her smart device.

  2. SC computes Mask(PWp)=h(PWpR), a=h(Mask(PWp)IDp) and compares a to a. If the two are not the same, P fails to login.

4.2.4. Authentication Phase

We describe the mutual authentication of the practitioner’s login information and the sensor node. The procedure is as follows:

  1. If P successfully logs in, SC computes b=dh(Mask(PWp)a), h(K)=ch(Mask(PWp)b), V1=IDph(h(K)T1). SC selects a random nonce N, and calculates V2=Nh(bT1), V3=h(V1V2NT1). Finally, SC posts the message M1={V1, V2, V3, T1, SNid} to GWN.

  2. GWN checks that the timestamp |T1Tc|<ΔT. ΔT means maximum transmission delay. If it is in range, GWN chooses a random nonce M and computes:

    MSNid=SNidh(h(K)T2)

    V4=h(SkgsT1T2)M

    V5=h(SNidV4T1T2M)

    Finally, GWN sends the message M2={V1, V2, V3, V4, V5, T1, T2, MSNid} to the sensor node SN.

  3. SN checks the validity of |T2Tc|<ΔT. If it is valid, SN continues as follows:

    MSNid=MSNidh(h(K)T2), Skgs=h(SNid)

    M=V4h(SkgsT1T2)

    V5=h(SNidV4T1T2M)

    IDp=V1h(h(K)T1), b=h(IDpK)

    N=V2h(bT1)

    V3=h(V1V2NT1), V6=Mh(bT3)

    V7=Nh(SkgsT3)

    V8=h(V6bT3)

    V9=h(V7SkgsT3)

    Finally, SN posts the message M3={V6, V7, V8, V9, T3} to GWN.

  4. GWN checks the timestamp |T3Tc|<ΔT, and if it is valid, computes as follows:

    V9=h(V7SkgsT3)

    N=V7h(SkgsT3)

    SKGWN=h(NM)

    V10=h(SKGWNV6V8T3T4)

    At the end of the computation, GWN sends the message M4={V6, V8, V10, T3, T4} to P.

  5. P checks the timestamp |T4Tc|<ΔT. If it is in range, P computes V8=h(V6bT3). It also computes M=V6h(bT3), SKp=h(NM) and V10=h(SKpV6V8T3T4).

4.2.5. Password Change Phase

The practitioner should be able to change his/her password if he/she wants to do so (e.g., for security reasons or because of a lost password). The procedure is as follows:

  1. P inputs his/her IDp and PWp to SC.

  2. SC computes Mask(PWp)=h(PWpR), a*=h(Mask(PWp)IDp). SC verifies that a*=a: if so, it computes b=dh(Mask(PWp)a), h(K)=h(Mask(PWp)b)c. Finally, SC sends the message {Enternewpassword} to P.

  3. P inputs his/her new password PWpnew to SC.

  4. SC computes Mask(PWp)=h(RPWpnew), a=h(Mask(PWp)IDp), d=bh(Mask(PWp)a), c=h(K)h(Mask(PWp)b). Finally, SC replaces {a, c, d} with {a, c, d}.

5. Analysis of Target Schemes

5.1. Analysis of Adavoudi-Jolfaei et al.’s Scheme

In this section, we prove that the scheme put forth by Adavoudi-Jolfaei et al. [11] has some security vulnerabilities. The details are as follow.

5.1.1. Loss of Smart Card Information

Attacker A can easily decrypt the information on the SC in the following two cases. The first case is an insider attack in the registration phase, while the second case is loss of synchronization in the login phase. Insider attack is the stronger of the two: it should be considered when there is no apparent loss of synchronization.

Insider Attack

In the registration phase, Attacker A extracts the smart card SC when GWN sends information to U. He/she can then read the information stored on the SC {Skug, SUid, KEMug, Tsug, G, h (·)} that is not encrypted.

Loss of Synchronization
  1. An attacker A steals U’s smart card SC, which contains sensitive information Skug*, fu*, (SUid*, KEMug*), Tsug, G*, PU, Gen (·), Rep (·), h (·).

  2. In the loss of synchronization case, A can thus see the user’s login message MA1={AUid, Gj, Nx, Tsug(ifreq), SNid, V1}. A computes as follows:

    h (h (Uid)h (Upsw)h (RSU))=AUidSUid*

    Skug=Skug*h (h (Uid)h (Upsw)h (RSU))

    KEMug=KEMug*h (h (Uid)h (Upsw)h (RSU))

    G=G*h (h (Uid)h (Upsw)h (RSU))

5.1.2. User Impersonation Attack

Attacker A can carry out a user impersonation attack (the victim is assumed to be U). The details are as follows.

  1. A generates random numbers NA and computes:

    NxA=SkugNA

    GjA=GjNA

    AIDA=h(UidSkugNATsug)

    V1A=h(AUidGjASkugNASNid)

    NxA, GjA, AIDA and V1A from Skug and Gj obtained from the stolen smart card attack.

  2. A transmits the login request MA1={AIDA, GjA, NxA, Tsug, SNid, V1A} to the gateway node GWN.

  3. After GWN obtains the login request from A, first, it verifies Tsug and calculates:

    NA=SkugNxA

    Gj=GjANA

    h (GWNidUidw)=Gj#Gj

    APMj=APMj#h (GWNidUidw)

    AIDA=h(UidSkugNATsug)

    V1A=h(AUidGjASkugNASNid)

    GWN checks if AIDA and V1 is valid. GWN does not detect the presence of the attacker. Unfortunately, GWN still believes it is in communication with U.

As a result, attacker A will be verified as GWN by user U. Therefore, the user impersonation attack is successful.

5.1.3. Session Key Attack

Assume that Attacker A has access to the DB. At this time, Attacker A can extract the session key SK of user U and sensor node SN as follows.

  1. Assume that attacker A can access the database DB=Tsug, (SUid, KEMug#), Skug#, Skgs#, Uid#, G#, APM#. He/she will use the data Skug#.

  2. Attacker A extracts the message MA2={AUid, APMj, SK, T, V2} and calculates:

    h(GWidUidw)=SkugSkug#

    APMj=APMj#h(GWidUidw)

    h(Skgs)=APMjAPMj

    SK=h(Skgs)SK

    Thus, attacker A has successfully seized the session key SK.

This result shows that Adavoudi-Jolfaei et al.’s scheme does not satisfy the requirement of key security.

5.2. Analysis of Sharma and Kalra’s Scheme

5.2.1. Design Error in Sharma and Kalra’s Scheme

There is a fatal error in Sharma and Kalra’s paper. The design of their scheme is wrong. During the authentication phase of their scheme, the session keys computed by SC and GWN are not identical. If the session key is not the same, when authentication is finished and the message is transmitted, there is a problem, because encryption is not properly performed. That is, mutual authentication would be processed incorrectly. We describe this problem in detail.

SKp is the session key that the practitioner generates. SKGWN is the session key that GWN calculates. When sending and receiving messages later, this session key is encrypted.

SKp=h(NM)

=h(N(V4h(SkgsT1T2)))

=h(Nh(SkgsT1T2)Mh(SkgsT1T2))

=h(NMh(SkgsT1T2)h(SkgsT1T2))

SKGWN=h(NM)

=h((V2h(bT1))M)

=h(Nh(bT1)h(bT1)M)

=h(Nh(h(IDpK)T1)h(h(IDpK)T1)M)

=h(NMh(h(IDpK)T1)h(h(V1h(h(K)T1)K)T1))

=h(NMh(h(IDpK)T1)h(h(IDph(h(K)T1)h(h(K)T1)K)

=h(NMh(h(IDpK)T1)h(h(IDpK)T1))

=h(NM)

In this phase, Skgs=h(SNidK), but Skgs=h(SNid). Therefore, the session keys computed by SC and GWN are not the same. Therefore, the authentication phase should be changed as follows.

  1. If P logs in successfully, SC computes b=dh(Mask(PWp)a), h(K)=ch(Mask(PWp)b), V1=IDph(h(K)T1). SC selects a random nonce N and calculates V2=Nh(bT1), V3=h(V1V2NT1). Finally, SC posts the message M1={V1, V2, V3, T1, SNid} to GWN.

  2. GWN checks the timestamp |T1Tc|<ΔT. If it is in range, GWN computes MSNid=SNidh(h(K)T2) and chooses a random nonce M. GWN continues to calculate V4=h(SkgsT1T2)M and V5=h(SNidV4T1T2M). Finally, GWN sends the message M2={V1, V2, V3, V4, V5, T1, T2, MSNid} to the sensor node SN.

  3. SN checks the validity of |T2Tc|<ΔT. If it is valid, SN continues the operation SNid=MSNidh(h(K)T2) and checks that SNid=?SNid. SN keep calculating as follows:

    M=V4h(SkgsT1T2)

    V5=h(SNidV4T1T2M)

    IDp=V1h(h(K)T1)

    b=h(IDpK)

    N=V2h(bT1)

    V3=h(V1V2NT1)

    V6=Mh(bT3)

    V7=Nh(SkgsT3)

    V8=h(V6bT3)

    V9=h(V7SkgsT3)

    Finally, SN sends the message M3={V6, V7, V8, V9, T3} to GWN.

  4. GWN checks the timestamp |T3Tc|<ΔT and if it is valid, computes as follows:

    V9=h(V7SkgsT3)

    N=V7h(SkgsT3)

    SKGWN=h(NM)

    V10=h(SKGWNV6V8T3T4)

    At the end of the computation, GWN sends the message M4={V6, V8, V10, T3, T4} to P.

  5. P checks the timestamp |T4Tc|<ΔT. If it is in range, it computes V8=h(V6bT3). It also computes M=V6h(bT3), SKp=h(NM) and V10=h(SKpV6V8T3T4).

In addition to pointing out the correctness problem in Sharma and Kalra’s scheme, as discussed in Section 5.2.1, we demonstrate several attack methods that are fatal to the scheme. We describe the methods in detail as follows:

5.2.2. Password Guessing Attack

In the registration phase, if Attacker A masquerades as GWN, then he/she can easily obtain P’s PWp. PWp is hashed only once in Mask(PWp) with R. We assume that R can be extracted from the smart device, and the attacker knows the target user’s identity. Moreover, then, Attacker A knows the practitioner P’s IDp, and he/she can extract the information in SC using reverse engineering or a side-channel attack.

  1. Attacker A extracts a and R from P’s smart device SC.

  2. A compares a and h(h(PWpR)IDp), so that he/she can guess the password in a brute force attack.

Easily guessing a password implies knowing the practitioner’s identity and likely, passwords, and having access to his/her smart device, so it is virtually the same as a practitioner. This process can also be used to pretend to be a medical professional and directly engage with the patient’s healthcare-related information.

In order to make passwords difficult to guess, the authentication process should involve more robust data encryption.

5.2.3. Stealing the Session Key

We found that the session key SKGWN can be extracted if attacker A used attacks Section 5.2.2. The details are as follows.

  1. A computes Mask(PWp)=h(PWpR), b=dh(Mask(PWp)a).

  2. A steals the message M1 and extracts V2, T1. Then, he/she calculates N=V2h(bT1).

  3. A also steals V6 and T3 in M3 and computes M=V6h(bT3).

  4. Finally, he/she finds the session key SKGWN=h(NM).

A now has the session key to use in future messages. This session key allows attackers to check the messages. This process is a serious breach of confidentiality.

5.2.4. Sensor Impersonation Attack

A sensor impersonation attack is also possible. Since GWN only assesses the validity of the timestamp to check the sensor separately, the attacker can impersonate the sensor by sending just the timestamp. This attack generates meaningless data and wastes time.

6. Proposed Scheme

To address the problems of Sharma and Kalra’s scheme and Adavoudi-Jolfaei et al.’s scheme, we propose a three-factor-based authentication scheme. We specifically introduce a new factor that is based on the practitioner’s biometrics data. In addition, our scheme contains a procedure to validate both GWN and the sensor. The flow of the entire scheme is shown in the Algorithm 1.

Algorithm 1 Proposed Scheme (Overall Algorithm Flow)
  •  1:

    Mask(PWp), IDp RegistrationP(IDp,PWp,Bp)      ▹ registration phase

  •  2:

    a, c, d RegistrationGWN(Mask(PWp), IDp)

  •  3:

    a, c, d, R, Pbp, Gen, Rep, h RegistrationP2(a, c, d)          ▹ stores in SC

  •  4:

    if LoginP(IDp,PWp,Bp) then                   ▹ login phase

  •  5:

        V1, V2, V3, T1, SNid AuthenticationP(IDp,PWp,Bp)  ▹ authentication phase

  •  6:

        V1, V2, V3, V4, V5, T1, T2, MSNid AuthenticationGWN(V1, V2, V3, T1, SNid)

  •  7:

        V6, V7, V10, T3 AuthenticationSN(V1, V2, V3, V4, V5, T1, T2, MSNid)

  •  8:

        V6, V8, V11, T3, T4 AuthenticationGWN2(V6, V7, V10, T3)

  •  9:

        Result ← AuthenticationP2(V6, V8, V11, T3, T4)

  • 10:

        if Result then

  • 11:

            return Authenticationsuccesses.

  • 12:

        end if

  • 13:

    end if

6.1. Setup and Registration Phase

6.1.1. Setup Phase

In the setup phase, the gateway node GWN gets its secret key K from the registration center. The center also computes Skgs=h(SNidK) and gives it to the sensor node SN. Skgs and K are stored in GWN and SN.

6.1.2. Registration Phase

The practitioner creates his/her identity and password, and then registers them via the gateway node to receive a smart device. This is summarized in the Algorithm 2. The detailed procedure is as follows:

  1. Practitioner P chooses his/her identity IDp, password PWp and imprints Bp over a device for biometrics collection, and calculates a biometric information of the practitioner P like Gen (Bp)=(Rp, Pbp). He/she generates random number R and computes the masked password Mask(PWp)=h(h(PWpR)Rp). Finally, he/she sends the registration message {Mask(PWp), IDp} to the gateway node GWN.

  2. After the gateway node GWN obtains the message from the practitioner, it computes as follows:

    a=h(Mask(PWp)IDp)

    b=h(IDpK), c=h(K)h(Mask(PWp)b)

    d=bh(Mask(PWp)a)

    After calculation, GWN sends the smart device SC={a, c, d} to the practitioner P.

  3. P stores {a, c, d, R, Pbp, Gen, Rep, h} in the smart device SC.

Algorithm 2 Proposed Scheme (Registration Phase)
  •  1:

    procedureRegistrationP(IDp,PWp,Bp)         ▹ P’s registration phase

  •  2:

        (Rp, Pbp)Gen (Bp)

  •  3:

        Mask(PWp)h(h(PWpR)Rp)

  •  4:

        return Mask(PWp), IDp                 ▹ message to GWN

  •  5:

    end procedure

  •  6:

    procedureRegistrationP2(a, c, d)            ▹ P’s registration phase 2

  •  7:

        return a, c, d, R, Pbp, Gen, Rep, h                ▹ stores in SC

  •  8:

    end procedure

  •  9:

    procedureRegistrationGWN(Mask(PWp),IDp)  ▹ GWN’s registration phase

  • 10:

        ah(Mask(PWp)IDp)

  • 11:

        bh(IDpK)

  • 12:

        ch(K)h(Mask(PWp)b)

  • 13:

        dbh(Mask(PWp)a)

  • 14:

        return a, c, d                         ▹ message to P

  • 15:

    end procedure

6.2. Login and Authentication Phase

6.2.1. Login Phase

When the practitioner enters his/her identity and password, the smart device checks whether the practitioner is an authorized party. This phase is summarized in the Algorithm 3. The detailed procedure is as follows:

  1. P inputs his/her identity IDp, password PWp and biometric information Bp in his/her smart device.

  2. The smart device SC executes the biometric information Rp = Rep (Bp, Pbp). SC computes masked password and the value a as follows:

    Mask(PWp)=h(h(PWpR)Rp)

    a=h(Mask(PWp)IDp)

    If a and a are not the same, P fails to login.

Algorithm 3 Proposed Scheme (Login Phase)
  •  1:

    procedureLoginP(IDp,PWp,Bp)  ▹ P’s login phase

  •  2:

        RpRep (Bp, Pbp)

  •  3:

        Mask(PWp)h(h(PWpR)Rp)

  •  4:

        ah(Mask(PWp)IDp)

  •  5:

        if a = a then

  •  6:

            return True          ▹ login successes

  •  7:

        else

  •  8:

            return False             ▹ login fails

  •  9:

        end if

  • 10:

    end procedure

6.2.2. Authentication Phase

The practitioner’s login information and the sensor node execute a mutual authentication process. This phase is summarized in Algorithms 4–6. The procedure is as follows:

  1. If P logs in successfully, SC selects a random nonce N and computes as follows:

    b=dh(Mask(PWp)a)

    h(K)=ch(Mask(PWp)b)

    V1=IDph(h(K)T1)

    V2=Nh(bT1)

    V3=h(V1V2NT1)

    Finally, SC sends the message M1={V1, V2, V3, T1, SNid} to GWN.

  2. GWN checks the timestamp |T1Tc|<ΔT. If it is in range, GWN computes as follows:

    ID=V1h(h(K)T1)

    V3=h(V1V2(V2h(h(IDK)T1))T1)

    GWN also checks V3=V3. If it is valid, GWN chooses a random nonce M and computes as follows:

    MSNid=SNidh(h(K)T2)

    V4=h(SkgsT1T2)M

    V5=h(SNidV4T1T2M)

    Finally, GWN sends the message M2={V1, V2, V3, V4, V5, T1, T2, MSNid} to the sensor node SN.

  3. SN checks the validity of |T2Tc|<ΔT. If it is valid, SN continues the operation SNid=MSNidh(h(K)T2) and checks SNid=?SNid. SN computes as follows:

    M=V4h(SkgsT1T2)

    V5=h(SNidV4T1T2M)

    It also checks the validity of V5=?V5. If it is valid, SN computes:

    ID=V1h(h(K)T1)

    b=h(IDK), N=V2h(bT1)

    V6=Mh(bT3), V7=Nh(SkgsT3)

    V8=h(V6bT3)

    V9=h(V7SkgsT3)

    V10=h(V8V9T3)

    Finally, SN sends the message M3={V6, V7, V10, T3} to GWN.

  4. GWN checks the timestamp |T3Tc|<ΔT and if it is valid, GWN computes:

    V8=h(V6bT3)

    V9=h(V7SkgsT3)

    V10=h(V8V9T3) and checks V10=?V10. If it is also valid, GWN computes:

    N=V7h(SkgsT3)

    SKGWN=h(NM)

    V11=h(SKGWNV6V8T3T4)

    At the end of the computation, GWN sends the message M4={V6, V8, V11, T3, T4} to P.

  5. P checks the timestamp |T4Tc|<ΔT. If it is in range, P computes V8=h(V6bT3) and checks V8=?V8. P also computes M=V6h(bT3), SKp=h(NM) and checks V11=h(SKpV6V8T3T4)=?V11.

Algorithm 4 Proposed Scheme (P’s Authentication Phase)
  •  1:

    procedureAuthenticationP(IDp,PWp,Bp)    ▹ P’s authentication phase

  •  2:

        RpRep (Bp, Pbp)

  •  3:

        Mask(PWp)h(h(PWpR)Rp)

  •  4:

        ah(Mask(PWp)IDp)

  •  5:

        bdh(Mask(PWp)a)

  •  6:

        h(K)ch(Mask(PWp)b)

  •  7:

        V1IDph(h(K)T1)

  •  8:

        V2Nh(bT1)

  •  9:

        V3h(V1V2NT1)

  • 10:

        return V1, V2, V3, T1, SNid              ▹ message to GWN

  • 11:

    end procedure

  • 12:

    procedureAuthenticationP2(V6, V8, V11, T3, T4)  ▹ P’s authentication phase 2

  • 13:

        if |T4Tc|>=ΔT then

  • 14:

            return False                   ▹ authentication fails

  • 15:

        end if

  • 16:

        V8h(V6bT3)

  • 17:

        if V8!=V8 then

  • 18:

            return False                   ▹ authentication fails

  • 19:

        end if

  • 20:

        MV6h(bT3)

  • 21:

        SKph(NM)

  • 22:

        V11h(SKpV6V8T3T4)

  • 23:

        if V11!=V11 then

  • 24:

            return False                   ▹ authentication fails

  • 25:

        end if

  • 26:

        return True                  ▹ authentication successes

  • 27:

    end procedure

Algorithm 5 Proposed Scheme (GWN’s Authentication Phase)
  •  1:

    procedureAuthenticationGWN(V1, V2, V3, T1, SNid) ▹ GWN’s authentication phase

  •  2:

        if |T1Tc|>=ΔT then

  •  3:

            return False                       ▹ authentication fails

  •  4:

        end if

  •  5:

        IDV1h(h(K)T1)

  •  6:

        V3h(V1V2(V2h(h(IDK)T1))T1)

  •  7:

        if V3!=V3 then

  •  8:

            return False                       ▹ authentication fails

  •  9:

        end if

  • 10:

        MSNidSNidh(h(K)T2)

  • 11:

        V4h(SkgsT1T2)M

  • 12:

        V5h(SNidV4T1T2M)

  • 13:

        return V1, V2, V3, V4, V5, T1, T2, MSNid             ▹ message to SN

  • 14:

    end procedure

  • 15:

    procedureAuthenticationGWN2(V6, V7, V10, T3)  ▹ GWN’s authentication phase 2

  • 16:

        if |T3Tc|>=ΔT then

  • 17:

            return False                      ▹ authentication fails

  • 18:

        end if

  • 19:

        V8h(V6bT3)

  • 20:

        V9h(V7SkgsT3)

  • 21:

        V10h(V8V9T3)

  • 22:

        if V10!=V10 then

  • 23:

            return False                      ▹ authentication fails

  • 24:

        end if

  • 25:

        NV7h(SkgsT3)

  • 26:

        SKGWNh(NM)

  • 27:

        V11h(SKGWNV6V8T3T4)

  • 28:

        return V6, V8, V11, T3, T4                    ▹ message to P

  • 29:

    end procedure

Algorithm 6 Proposed Scheme (SN’s Authentication Phase)
  •  1:

    procedureAuthenticationSN(V1, V2, V3, V4, V5, T1, T2, MSNid)    ▹ SN’s authentication phase

  •  2:

        if |T2Tc|>=ΔT then

  •  3:

            return False                            ▹ authentication fails

  •  4:

        end if

  •  5:

        SNidMSNidh(h(K)T2)

  •  6:

        if SNid!=SNid then

  •  7:

            return False                            ▹ authentication fails

  •  8:

        end if

  •  9:

        MV4h(SkgsT1T2)

  • 10:

        V5h(SNidV4T1T2M)

  • 11:

        if V5!=V5 then

  • 12:

            return False                            ▹ authentication fails

  • 13:

        end if

  • 14:

        IDV1h(h(K)T1)

  • 15:

        bh(IDK), N=V2h(bT1)

  • 16:

        V6Mh(bT3)

  • 17:

        V7Nh(SkgsT3)

  • 18:

        V8h(V6bT3)

  • 19:

        V9h(V7SkgsT3)

  • 20:

        V10h(V8V9T3)

  • 21:

        return V6, V7, V10, T3                          ▹ message to GWN

  • 22:

    end procedure

6.3. Password Change Phase

The practitioner can change his/her password. The procedure is as follows:

  1. P inputs his/her identity IDp, password PWp and biometric information Bp in his/her smart device.

  2. The smart device SC executes Rep (Bp, Pbp) = Rp. SC computes Mask(PWp)=h(h(PWpR)Rp), a*=h(Mask(PWp)IDp). SC checks a*=?a. If so, it computes b=dh(Mask(PWp)a), h(K)=h(Mask(PWp)b)c. Finally, SC sends the message {Enternewpassword} to P.

  3. P inputs his/her new password PWpnew to the smart device SC.

  4. SC computes Mask(PWp)=h(RPWpnew), a=h(Mask(PWp)IDp), d=bh(Mask(PWp)a), c=h(K)h(Mask(PWp)b). Finally, SC replaces {a, c, d} with {a, c, d}.

7. Security Analysis

In this section, we analyze the security of the proposed scheme in two ways: formal security analysis and informal security analysis. We use a formal protocol verification tool called ProVerif in Section 7.1, to demonstrate the security of our scheme. We also provide a theoretical security analysis of the protocol in Section 7.2. Through this verification, we have demonstrated how safe our scheme can be in reality.

7.1. Formal Security Analysis

We use ProVerif to analyze the security and correctness of our scheme; ProVerif is widely used to verify security protocols [7,30,31]. ProVerif is a software tool that formally verifies the security of cryptographic protocols. We define basic cryptographic primitives such as hash function, encryption, digital signature and bit-commitment.

We used three channels: a registration channel (cha), a practitioner–gateway node channel (chb) and a gateway node–sensor node channel (chc). The variables, constants, secret key, functions and events are defined in Table A1.

The “Registration” and “Login and Authentication” phases for practitioners are shown in Table A2. The “Registration” and “Authentication” phases for gateway nodes are shown in Table A3. The “Authentication” phase for sensor nodes is shown in Table A4. Table 2 and Table 3 show a query and the corresponding query results.

Table 2.

Query.

(*—-queries—-*)
query attacker(IDp).
query id:bitstring; inj-event(endP(id)) ==> inj-event(beginP(id)).
query id:bitstring; inj-event(endGWN(id)) ==> inj-event(beginGWN(id)).
query id:bitstring; inj-event(endS(id)) ==> inj-event(beginS(id)).
process
((!P)|(!GWN)|(!S))

Table 3.

Query Results.

RESULT inj-event(endS(id)) ==> inj-event(beginS(id)) is true.
RESULT inj-event(endGWN(id_21256)) ==> inj-event(beginGWN(id_21256)) is true.
RESULT inj-event(endP(id_41657)) ==> inj-event(beginP(id_41657)) is true.
RESULT not attacker(IDp[]) is true.

When we run the query in Table 2, we obtain the following result:

  1. RESULT inj-event(EVENTA) ==> inj-event(EVENTB) is true.

  2. RESULT inj-event(EVENTA) ==> inj-event(EVENTB) is false.

  3. RESULT not attacker(QUERY) is true.

  4. RESULT not attacker(QUERY) is false.

“RESULT inj-event (EVENTA) == > inj-event (EVENTB) is true.” means that EVENTA to EVENTB has been authenticated. On the other hand, “RESULT inj-event (EVENTA) == > inj-event (EVENTB) is false.” means that the authentication from EVENTA to EVENTB was not successful. “RESULT not attacker (QUERY) is true.” means that an attacker cannot get a free name QUERY, and “RESULT not attacker (QUERY) is false.” means that an attacker can trace a QUERY [32].

The results of the query in Table 2 are shown in Table 3. In that case, the authentication process is correctly performed and the attacker cannot obtain IDp.

7.2. Informal Security Analysis

We present a theoretical analysis of our scheme. We then briefly explain the results of the analysis.

7.2.1. Privileged Insider Attack

In the registration step, the practitioner sends his/her plaintext ID and Mask(PWp)=h(h(PWpR)Rp) to the gateway node. Since the ID is used in conjunction with secret information K without being exposed to the outside, there is no way for an insider to know the practitioner’s personal information. Therefore, it is secure against a privileged insider attack.

7.2.2. Outsider Attack

The SC only contains the information {a, c, d, R, Pbp, Gen, Rep, h}. We cannot infer practitioner P in this case.

7.2.3. Offline ID Guessing Attack

The practitioner’s identity is not moved directly in the login and authentication phase after registration. When the sensor checks the practitioner’s ID, the information V1, K, and T1 is required, all of which cannot be obtained through SC.

7.2.4. Online ID Guessing Attack

The practitioner’s identity can only be exposed as V1, K, and T1, as mentioned in the offline ID guessing attack. At this time, V1 and T1 can be seized through a message sent to the GWN by the practitioner in the authentication phase, but the secret GWN key K cannot be found.

7.2.5. Session Key Disclosure Attack

As shown in Section 5.2.1, the session key consists of h(NM). N is a value generated by SC and N=V2h(bT1), and M is a value generated by GWN and expressed as M=V4h(XGWNT1T2). Because the attacker is not the practitioner or GWN, he/she cannot know the session key because XGWN including b and Mask(PW) including K cannot be known.

7.2.6. Practitioner Impersonation Attack

GWN verifies the practitioner in equation V3=h(V1V2V2h(h(IDK)T1)T1)=?V3=h(IDph(h(K)T1)Nh(bT1)NT1). If an attacker pretends to be an authorized practitioner, then he/she needs to know b=dh(Mask(PW)a), h(K)=ch(Mask(PW)b). However, the attacker cannot obtain Mask(PW). Therefore, the attacker cannot impersonate the practitioner P.

7.2.7. Sensor Impersonation Attack

GWN verifies a sensor with the Equation V10=h(V8V9T3) and checks V10=?V10 that V8=h(V6bT3), V9=h(V7SkgsT3). This means that a sensor can only prove that it is a sensor if it knows Skgs and b.

8. Performance Analysis of the Proposed Scheme

The four symbols necessary for comparison are as follows. TRep is the time to check for a match when recognizing the user’s (or practitioner’s) biometric Bp. Th is the time it takes to hash. Tm is the time of the multiplicative operation used in ECC. The time taken for symmetric encryption or decryption is denoted by Ts. These are listed in Table 4. We compared our scheme with the following three schemes of Chen et al. [12], Renuka et al. [13] and Li et al. [14]. The four symbols necessary for comparison are as follows, and depicted as a graph in Figure 2.

Table 4.

Notations of Time Symbol.

Symbol Meaning Time (ms)
TRep time of Rep 7.3529 [33]
Th time of hash operation 0.0004 [34]
Tm time of multiplication in ECC 7.3529 [34]
Ts time of symmetric encryption or decryption 0.1303 [34]

Figure 2.

Figure 2

Execution Time of Schemes.

Table 5 summarizes the total time cost for each scheme ([12,13,14]). The Y-axis shown in Figure 2 is the total time cost in microseconds (ms). This is calculated based on the times shown in Table 4. Table 6 shows the computer hardware and software used to calculate the algorithm’s runtime. Li et al.’s scheme [14] uses elliptic curve cryptography, however it has large time costs because of its slow encryption and decryption.

Table 5.

Comparison of Computation Costs.

Chen et al. [12] Renuka et al. [13] Li et al. [14] Ours
User(Practitioner) P 9Th + 1TRep + 1Ts 5Th + 1TRep + 2Ts 8Th + 1TRep + 2Tm 13Th + 1TRep
GWN 3Th + 2Ts 2Th+ 2Ts 7Th + 1Tm 14Th
Sensor node Sj 4Th + Ts 3Th + 2Ts 4Th + 2Tm 12Th
Total time cost 16Th+ 4Ts+ 1TRep 10Th+ 6Ts + 1TRep 19Th + 5Tm + 1TRep 39Th + 1TRep
(ms) =7.8805 =8.1387 =44.125 =7.3685

Table 6.

Hardware and Software Condition.

Specification
CPU Intel (R) Core(TM) 2T6570 2.1GHz
Memory 4G
OS Win7 32-bit
Software Visual C++ 2008

The methods used in Chen et al.’s [12] and Renuka et al.’s [13] scheme have lower costs than Li et al.’s [14]. They used symmetric encryption and decryption, but had a significant difference in cost compared to ours.

9. Conclusions

Recently, several lightweight two-factor-based authentication protocols, such as Sharma and Kalra’s protocol [6] and Adavoudi-Jolfaei et al.’s protocol [11], were proposed for IoT applications. Those protocols have some benefits in efficiency because they are designed with light and straightforward operations, such as hash function and XOR without complicated cryptographic operations. However, we found that those protocols have several security weaknesses.

To address these problems, we use three factors: the practitioner’s identity, a password, and biometric information. We propose a lightweight three-factor user authentication scheme to fix several issues in Sharma and Kalra’s protocol [6] and Adavoudi-Jolfaei et al.’s protocol [11]. We provide the security verification of the proposed scheme using ProVerif. Furthermore, we show that our proposed method outperforms other proposed symmetric-based or elliptic curve-based methods.

We are motivated to fix the problems of existing protocols and proposed a more efficient and secure authentication scheme. Our scheme is designed only with the hash function and XOR, providing fast and secure authentication. The proposed protocol can be used for various IoT applications such as medical devices.

Our proposed scheme can be implemented with simple operations, but introduces 11 new parameters. Furthermore, while our scheme is lighter than the symmetric-based or elliptic curve-based methods, it is not significantly lighter than the only used XOR and hash method. Therefore, in future work, we aim to develop a simpler authentication scheme with fewer variables. We also aim to develop a lightweight 3-factor authentication scheme with fewer xor operations and hash functions. Our efforts will contribute to creating a faster and more secure authentication scheme.

Acknowledgments

This work was supported by an Institute of Information & Communications Technology Planning Evaluation (IITP) grant funded by the Korean government (MSIT) (No. 2020-0-00258, Development of On-chain-based Electronic Contract Application Platform Using Zero-Knowledge Proof).

Appendix A. ProVerif Code

Table A1.

Define Values and Functions.

(*—-channels—-*)
free cha:channel [private].
free chb:channel.
free chc:channel.
(*—-constants—-*)
free Ru:bitstring [private].
free IDp:bitstring [private].
free IDg:bitstring [private].
free IDs:bitstring.
free PWu:bitstring [private].
(*—-secret key—-*)
free K:bitstring [private].
(*—-functions—-*)
fun concat(bitstring, bitstring): bitstring.
fun xor(bitstring, bitstring): bitstring.
fun h(bitstring): bitstring.
equation forall a:bitstring, b:bitstring; xor(xor(a, b), b) = a.
(*—-events—-*)
event beginP(bitstring).
event endP(bitstring).
event beginGWN(bitstring).
event endGWN(bitstring).
event beginS(bitstring).
event endS(bitstring).

Table A2.

Practitioner Scheme.

(*—-P process—-*)
let P =
new R:bitstring;
let MPW = h(concat(h(concat(PWp, R)), Rp)) in
out(cha,(IDp, MPW));
in(cha,(Xa:bitstring, Xc:bitstring, Xd:bitstring));
event beginP(IDp);
new T1:bitstring;
new N:bitstring;
let ppb = xor(Xd, h(concat(MPW, Xa))) in
let hK = xor(Xc, h(concat(MPW, ppb))) in
let V1 = xor(IDp, h(concat(hK, T1))) in
let V2 = xor(N, h(concat(ppb, T1))) in
let V3 = h(concat(concat(V1, V2), concat(N, T1))) in
out(chb, (V1, V2, V3, T1, N));
in(chb, (XXV6:bitstring, XXV8:bitstring, XV11:bitstring, XXT3:bitstring, XT4:bitstring));
let pV8 = h(concat(concat(XXV6, ppb), XXT3)) in
let pM = xor(XXV6, h(concat(ppb, XXT3))) in
let SKp = h(xor(N, pM)) in
let pV11 = h(concat(concat(SKp, XXV6), concat(concat(XXV8, XXT3),XT4))) in
event endP(IDp).

Table A3.

Gateway Node Scheme.

(*—-GWN process—-*)
let GWN =
in(cha,(XIDp:bitstring, XMPW:bitstring));
let a = h(concat(XMPW, XIDp)) in
let b = h(concat(XIDp, K)) in
let c = xor(h(K), h(concat(XMPW, b))) in
let d = xor(b, h(concat(XMPW, a))) in
out(cha, (a, c, d));
in(chb, (XV1:bitstring, XV2:bitstring, XV3:bitstring, XT1:bitstring, XN:bitstring));
event beginGWN(IDg);
new T2:bitstring;
new M:bitstring;
let pIDp = xor(XV1, h(concat(h(K), XT1))) in
let pV3 = h(concat(concat(XV1, XV2), concat(XN, XT1))) in
if pV3 = XV3 then
let MID = xor(IDs, h(concat(h(K), T2))) in
let X = h(concat(IDs, K)) in
let V4 = xor(M, h(concat(concat(X, XT1), T2))) in
let V5 = h(concat(concat(IDs, V4), concat(concat(XT1, T2), M))) in
out(chc, (XV1, XV2, XV3, V4, V5, XT1, T2, MID));
in(chc, (XV6:bitstring, XV7:bitstring, XV10:bitstring, XT3:bitstring));
new T4:bitstring;
new M:bitstring;
let pV8 = h(concat(XV6, concat(b, XT3))) in
let pV9 = h(concat(XV7, concat(X, XT3))) in
let pV10 = h(concat(pV8, concat(pV9, XT3))) in
if pV10 = XV10 then
let pN = xor(XV7, h(concat(X, XT3))) in
let SKg = h(xor(pN, M)) in
let V11 = h(concat(SKg, concat(concat(XV6, pV8), concat(XT3, T4)))) in
out(chb, (XV6, pV8, V11, XT3, T4));
event endGWN(IDg).

Table A4.

Sensor Scheme.

(*—-S process—-*)
let S =
in(chc, (XXV1:bitstring, XXV2:bitstring, XXV3:bitstring, XV4:bitstring, XV5:bitstring,
XXT1:bitstring, XT2:bitstring, XMID:bitstring));
event beginS(IDs);
new T3:bitstring;
let XX = h(concat(IDs, K)) in
let pM = xor(XV4, h(concat(concat(XX, XXT1), XT2))) in
let pV5 = h(concat(concat(IDs, XV4), concat(concat(XXT1, XT2), pM))) in
if pV5 = XV5 then
let pb = h(concat(IDp, K)) in
let ppN = xor(XXV2, h(concat(pb, XXT1))) in
let V6 = xor(pM, h(concat(pb, T3))) in
let V7 = xor(ppN, h(concat(XX, T3))) in
let V8 = h(concat(concat(V6, pb), T3)) in
let V9 = h(concat(concat(V7, XX), T3)) in
let V10 = h(concat(concat(V8, V9), T3)) in
out(chc, (V6, V7, V10, T3));
event endS(IDs).

Author Contributions

Conceptualization, J.R. and D.K.; methodology, J.R. and H.L.; software, H.L.; validation, J.R.; formal analysis, J.R.; writing—original draft preparation, J.R.; writing—review and editing, J.R. and H.K.; supervision, D.W.; project administration, J.R.; All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Conflicts of Interest

The authors declare no conflict of interest.

Footnotes

Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

References

  • 1.Gregg M. Trends in Remote Patient Monitoring 2019. Spyglass Consulting Group. [(accessed on 12 December 2020)]; Available online: http://www.spyglass-consulting.com/wp_RPM_2019.html.
  • 2.Hu Y.H., Tompkins W.J., Urrusti J.L., Afonso V.X. Applications of artificial neural networks for ECG signal detection and classification. J. Electrocardiol. 1993;26:66–73. [PubMed] [Google Scholar]
  • 3.Yeh Y.C., Wang W.J. QRS complexes detection for ECG signal: The Difference Operation Method. Comput. Methods Programs Biomed. 2008;91:245–254. doi: 10.1016/j.cmpb.2008.04.006. [DOI] [PubMed] [Google Scholar]
  • 4.Van Ess D.W. ECG Signal Detection Device. 7,092,750. US Patent. 2006 Aug 15;
  • 5.Chung W.Y., Lee Y.D., Jung S.J. A wireless sensor network compatible wearable u-healthcare monitoring system using integrated ECG, accelerometer and SpO2; Proceedings of the 2008 30th Annual International Conference of the IEEE Engineering in Medicine and Biology Society; Vancouver, BC, Canada. 20–25 August 2008; pp. 1529–1532. [DOI] [PubMed] [Google Scholar]
  • 6.Sharma G., Kalra S. A Lightweight User Authentication Scheme for Cloud-IoT Based Healthcare Services. Iran. J. Sci. Technol. Trans. Electr. Eng. 2019;43:619–636. doi: 10.1007/s40998-018-0146-5. [DOI] [Google Scholar]
  • 7.Ryu J., Lee H., Kim H., Won D. Secure and efficient three-factor protocol for wireless sensor networks. Sensors. 2018;18:4481. doi: 10.3390/s18124481. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 8.Rathore H., Al-Ali A., Mohamed A., Du X., Guizani M. DTW based authentication for wireless medical device security; Proceedings of the 2018 14th International Wireless Communications & Mobile Computing Conference (IWCMC); Limassol, Cyprus. 25–29 June 2018; pp. 476–481. [Google Scholar]
  • 9.Ali R., Pal A.K., Kumari S., Sangaiah A.K., Li X., Wu F. An enhanced three factor based authentication protocol using wireless medical sensor networks for healthcare monitoring. J. Ambient. Intell. Humaniz. Comput. 2018:1–22. doi: 10.1007/s12652-018-1015-9. [DOI] [Google Scholar]
  • 10.Choi Y., Lee D., Kim J., Jung J., Nam J., Won D. Security enhanced user authentication protocol for wireless sensor networks using elliptic curves cryptography. Sensors. 2014;14:10081–10106. doi: 10.3390/s140610081. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 11.Adavoudi-Jolfaei A., Maede A.T., Aghili S.F. Lightweight and anonymous three-factor authentication and access control scheme for real-time applications in wireless sensor networks. Peer-to-Peer Netw. Appl. 2019;12:43–59. doi: 10.1007/s12083-017-0627-8. [DOI] [Google Scholar]
  • 12.Chen Y., Ge Y., Wang Y., Zeng Z. An improved three-factor user authentication and key agreement scheme for wireless medical sensor networks. IEEE Access. 2019;7:85440–85451. doi: 10.1109/ACCESS.2019.2923777. [DOI] [Google Scholar]
  • 13.Renuka K., Kumar S., Kumari S., Chen C.M. Cryptanalysis and improvement of a privacy-preserving three-factor authentication protocol for wireless sensor networks. Sensors. 2019;19:4625. doi: 10.3390/s19214625. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 14.Li X., Niu J., Bhuiyan M.Z.A., Wu F., Karuppiah M., Kumari S. A robust ECC-based provable secure authentication protocol with privacy preserving for industrial internet of things. IEEE Trans. Ind. Inform. 2017;14:3599–3609. doi: 10.1109/TII.2017.2773666. [DOI] [Google Scholar]
  • 15.Hu F., Jiang M., Wagner M., Dong D.C. Privacy-preserving telecardiology sensor networks: Toward a low-cost portable wireless hardware/software codesign. IEEE Trans. Inf. Technol. Biomed. 2007;11:619–627. doi: 10.1109/TITB.2007.894818. [DOI] [PubMed] [Google Scholar]
  • 16.Malasri K., Wang L. Design and implementation of a securewireless mote-based medical sensor network. Sensors. 2009;9:6273–6297. doi: 10.3390/s90806273. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 17.Kumar P., Lee S.G., Lee H.J. E-SAP: Efficient-strong authentication protocol for healthcare applications using wireless medical sensor networks. Sensors. 2012;12:1625–1647. doi: 10.3390/s120201625. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 18.Khan M.K., Kumari S. An improved user authentication protocol for healthcare services via wireless medical sensor networks. Int. J. Distrib. Sens. Netw. 2014;10:347169. doi: 10.1155/2014/347169. [DOI] [Google Scholar]
  • 19.Li X., Niu J., Kumari S., Liao J., Liang W., Khan M.K. A new authentication protocol for healthcare applications using wireless medical sensor networks with user anonymity. Secur. Commun. Netw. 2016;9:2643–2655. doi: 10.1002/sec.1214. [DOI] [Google Scholar]
  • 20.Wu F., Xu L., Kumari S., Li X. An improved and anonymous two-factor authentication protocol for health-care applications with wireless medical sensor networks. Multimed. Syst. 2017;23:195–205. doi: 10.1007/s00530-015-0476-3. [DOI] [Google Scholar]
  • 21.Hossain M.S., Muhammad G. Cloud-assisted speech and face recognition framework for health monitoring. Mob. Netw. Appl. 2015;20:391–399. doi: 10.1007/s11036-015-0586-3. [DOI] [Google Scholar]
  • 22.Wazid M., Das A.K., Shetty S., Rodrigues J.J.P.C., Park Y. LDAKM-EIoT: Lightweight device authentication and key management mechanism for edge-based IoT deployment. Sensors. 2019;19:5539. doi: 10.3390/s19245539. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 23.Tanveer M., Zahid A.H., Ahmad M., Baz A., Alhakami H. LAKE-IoD: Lightweight Authenticated Key Exchange Protocol for the Internet of Drone Environment. IEEE Access. 2020;8:155645–155659. doi: 10.1109/ACCESS.2020.3019367. [DOI] [Google Scholar]
  • 24.Gope P., Tzonelih H. A realistic lightweight anonymous authentication protocol for securing real-time application data access in wireless sensor networks. IEEE Trans. Ind. Electron. 2016;63:7124–7132. doi: 10.1109/TIE.2016.2585081. [DOI] [Google Scholar]
  • 25.Katz J., Menezes A.J., Van Oorschot P.C., Vanstone S.A. Handbook of Applied Cryptography. CRC Press; Boca Raton, FL, USA: 1996. [Google Scholar]
  • 26.Dodis Y., Katz J., Reyzin L., Smith A. Annual International Cryptology Conference. Springer; Berlin/Heidelberg, Germany: 2006. Robust fuzzy extractors and authenticated key agreement from close secrets; pp. 232–250. [Google Scholar]
  • 27.Dodis Y., Reyzin L., Smith A. International Conference on the Theory and Applications of Cryptographic Techniques. Springer; Berlin/Heidelberg, Germany: 2004. Fuzzy extractors: How to generate strong keys from biometrics and other noisy data; pp. 523–540. [Google Scholar]
  • 28.Dolev D., Yao A. On the security of public key protocols. IEEE Trans. Inf. Theory. 1983;29:198–208. doi: 10.1109/TIT.1983.1056650. [DOI] [Google Scholar]
  • 29.Moon J., Lee D., Lee Y., Won D. Improving biometric-based authentication schemes with smart card revocation/reissue for wireless sensor networks. Sensors. 2017;17:940. doi: 10.3390/s17050940. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 30.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. doi: 10.1371/journal.pone.0193366. [DOI] [PMC free article] [PubMed] [Google Scholar]
  • 31.Wu F., Li X., Sangaiah A.K., Xu L., Kumari S., Wu L., Shen J. A lightweight and robust two-factor authentication scheme for personalized healthcare systems using wireless medical sensor networks. Future Gener. Comput. Syst. 2018;82:727–737. doi: 10.1016/j.future.2017.08.042. [DOI] [Google Scholar]
  • 32.Blanchet B., Smyth B., Cheval V., Sylvestre M. ProVerif 2.00: Automatic Cryptographic Protocol Verifier, User Manual and Tutorial. [(accessed on 12 December 2020)];2018 :5–16. Available online: https://prosecco.gforge.inria.fr/personal/bblanche/proverif/manual.pdf.
  • 33.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. doi: 10.1007/s12083-014-0324-9. [DOI] [Google Scholar]
  • 34.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. doi: 10.1007/s10916-014-0179-x. [DOI] [PubMed] [Google Scholar]

Articles from Sensors (Basel, Switzerland) are provided here courtesy of Multidisciplinary Digital Publishing Institute (MDPI)

RESOURCES