An Improved Lightweight User Authentication Scheme for the Internet of Medical Things
Abstract
:1. Introduction
- 1.
- First, if malicious cyberattacks can take control of healthcare sensors attached to a patient’s body, this might not only result in inaccurate data collection but also put the patient’s health at risk.
- 2.
- Second, malicious cyberattacks can expose sensitive patient data and medical information.
- 3.
- Third, since IoMT uses low–power wearable healthcare sensors, the protocol used is not lightweight, and it therefore may be difficult to operate normally or to provide real–time service due to the need for time–consuming computation.
1.1. Our Contribution
- 1.
- First, to overcome offline password-guessing attacks, we added biometrics authentication methods that can only authenticate the user when an actual user is present. Further, to protect against replay attacks, we added logic to ensure that the gateway authenticates the user and the freshness of the user’s message in the authentication phase. Finally, to overcome privileged insider attacks, we deleted the secret information that shared between the user and the sensor in the registration phase immediately following the registration phase.
- 2.
- We proposed a lightweight security protocol that mainly uses a hash function and XOR operation to run low-spec healthcare sensors.
- 3.
- The proposed scheme is designed to protect against various security threats such as offline password guessing attacks, privileged insider attacks, user impersonation attacks, replay attacks, and session key disclosure attacks. It also ensures user anonymity.
1.2. Organization of Our Paper
2. Related Work
3. Preliminaries
3.1. Fuzzy Extractor
3.2. System Model
- 1.
- Medical Service Gateway (Gateway): Since the user and the sensor node do not communicate with each other directly, the gateway is responsible for authentication and passing the communication between the user and the sensor node.
- 2.
- Healthcare IoT Sensor Node (Sensor Node): The Healthcare IoT Sensor Node is attached to the patient’s body and collects the patient’s medical data. The Healthcare IoT Sensor Node is connected to the healthcare network and transmits the patient’s medical data to the user through a Gateway.
- 3.
- Doctor (User): The user is a doctor who can access the patient’s medical information that has been collected from the sensor node to inform the patient’s treatment.
3.3. Attack Model
- 1.
- The attacker can extract the data in the device that stores some security parameters.
- 2.
- The attacker can access the public communication channel, at which point the attacker can interrupt, return, amend and eliminate or transmit the message.
- 3.
- The attacker can calculate the identity and password in polynomial time.
4. Review of the Scheme Presented by Masud et al. [6]
4.1. User Registration Phase
- 1.
- The user enters and transmits and through the secured channel to the gateway.
- 2.
- The gateway generates and computes and . The gateway stores , , and . Finally, the gateway transmits through the secured channel to the user.
- 3.
- The user derives and computes and . The user then stores , and .
4.2. Sensor Node Registration Phase
- 1.
- The sensor node generates and then transmits and through the secured channel to the gateway.
- 2.
- The gateway generates and computes ⊕ and ⊕. The gateway then stores , and . Finally, the gateway transmits through the secured channel to the sensor.
- 3.
- The sensor node computes and . The sensor node then stores .
4.3. Mutual Authentication and Key Agreement Phase
- 1.
- The user enters and then computes , where and . If Q and are not equal, the procedure is stopped; if they are equal, the user generates and computes and ). Finally, the user transmits , and to the gateway.
- 2.
- The gateway retrieves , after which the gateway checks the freshness of . If is not fresh, the procedure is stopped; else the gateway compares and with the received values. If the values are not identical, the procedure is stopped; else the gateway computes . If and are equal, the user authentication is successful. If they are not equal, the procedure is stopped. To share with the sensor node, the gateway generates , , and . The gateway computes , , and . Finally, the gateway stores and transmits , , , , and through the public channel to the sensor node.
- 3.
- The sensor node retrieves and then checks the freshness of . If is not fresh, the procedure is stopped; else the sensor node computes . If and are equal, the gateway authentication is successful. Then, the sensor node retrieves and the sensor node generates and . The sensor node then computes , , and . Moreover, the sensor node retrieves and derives . The sensor node stores and . Finally, the sensor node transmits and to the gateway.
- 4.
- The gateway retrieves and . The gateway then checks the freshness of . If is not fresh, the procedure is stopped; else the gateway computes and . If and are equal, the mutual authentication between the sensor node and the gateway is successful. Subsequently, the gateway stores , , and . To share SK with the user, the gateway generates and . The gateway then computes , , , and . Finally the gateway stores and and ultimately transmits , , , and to the user.
- 5.
- The user retrieves . The user then checks the freshness of . If is not fresh, the procedure is stopped; else the user computes . If and are equal, the mutual authentication between the gateway and the user is successful. Then the user retrieves and . The user computes and stores and .
5. Weaknesses of Masud et al. [6]’s Scheme
5.1. Offline Password Guessing Attack
5.2. Privileged Insider Attack
5.3. Replay Attack
6. Proposed Scheme
6.1. User Registration Phase
- 1.
- The user enters and and generates a random number . The user imprints on a device for biometric collection and computes and . For registration, the user transmits through a secured channel to the gateway.
- 2.
- The gateway generates random numbers , and and computes , and . The gateway stores , , and . is temporarily stored by the gateway until the sensor node registration phase, is transferred from the gateway to the sensor node during the sensor node registration phase, and is then deleted from the gateway. Finally, the gateway transmits , , and through a secured channel to the user.
- 3.
- The user computes , and , and and stores , , , , and .
6.2. Sensor Node Registration Phase
- 1.
- For registration, the sensor node transmits through a secured channel to the gateway.
- 2.
- The gateway generates a random number and computes and stores , . Finally, the gateway transmits , , and through a secured channel to the sensor node and deletes .
- 3.
- The sensor node stores , , , and .
6.3. Mutual Authentication and Key Distribution Phase
- 1.
- The user enters and and imprints on a device for biometric collection and computes , , , , , and . To check the user’s password, the user checks if = ? . If the equation is equal, the password check is passed; if not, the procedure is stopped. To generate an authentication message, the user generates , and and computes , and . Finally the user transmits , , , and through a public channel to the gateway.
- 2.
- To authenticate the user, the gateway retrieves and computes . The gateway checks ’s freshness and if = ? . The gateway also checks for whether or not is a valid range. If and are valid, the user verification is passed; if not, the procedure is stopped. To generate the authentication message, the gateway generates and computes , , , and . Finally the gateway transmits , , , , and through a public channel to the sensor node.
- 3.
- To authenticate the gateway, the sensor node retrieves , , and then computes . The sensor node checks = ? . If the equation is equal, the gateway verification is passed; if not, the procedure is stopped. To generate the session key , the sensor node generates and computes , and . The sensor node replaces by . Finally, the sensor node transmits , and through a public channel to the gateway.
- 4.
- To authenticate the sensor node, the gateway computes and checks if = ? . If the equation is equal, the sensor node verification is passed. To generates an authentication message, the gateway computes and and replaces by . Finally, the gateway transmits , , and through a public channel to the user.
- 5.
- To authenticate the gateway, the user computes , and . The user checks if = ? . If the equation is equal, the gateway verification is passed; if not, the procedure is stopped. To obtain the session key , the user retrieves and computes . The user checks = ? . If the equation is equal, the user obtains the valid session key ; if not, the procedure is stopped.
7. Security Analysis of the Proposed Scheme
7.1. Formal Security Analysis
- 1.
- Query inj–event(endEVENTA) ==> inj-event(startEVENTA) is true.
- 2.
- Query inj–event(endEVENTB) ==> inj-event(startEVENTB) is false.
- 3.
- Query not attacker(M) is true.
- 4.
- Query not attacker(M) is false.
7.2. Informal Security Analysis
- 1.
- Offline Password Guessing Attack: Since our scheme uses biometric information with the unique biological characteristics of individuals that are not stored for user authentication, it is impossible to guess a user’s password without a real user. Therefore our scheme can protect against the offline password guessing attack.
- 2.
- Privileged Insider Attack: Even if the privileged insider steals , , , , and from the gateway’s database, the privileged insider can not obtain the session key SK without secret information that is shared between the user and the sensor node. Therefore our scheme can protect against privileged insider attacks.
- 3.
- User Impersonation Attack: Even if the attacker steals and replaces the user’s , the attacker can not generate valid and without secret information and . When the gateway and the sensor node verify and , respectively, they can find the invalid user. Therefore our scheme can protect against user impersonation attacks.
- 4.
- Server Impersonation Attack: Even if the attacker impersonates the gateway, the attacker does not generate valid and without and . When the sensor node and the user verify and , respectively, they can find the invalid gateway. Therefore our scheme can protect against server impersonation attacks.
- 5.
- Replay Attack: Even if the attacker steals , , , and from a successful mutual authentication and key distribution phase and then resends it to the gateway, the gateway can find whether or not the message is reused because the gateway checks ’s freshness. Moreover, the attacker can not generate and modify and without . Therefore our scheme can protect against replay attacks.
- 6.
- Man-in-the-Middle Attack: In a man-in-the-middle attack, an attacker puts themselves in the middle of two parties so that they can intercept and modify some communicated data to masquerade as the entities. In the mutual authentication and key distribution phase, the attacker intercepts communicated data between the user and the gateway and attempts to modify the message to retrieve the session key. However, in our scheme, the attacker can not modify communicated messages without the secret information and . Therefore our scheme can protect against man-in-the-middle attacks.
- 7.
- Session Key Disclosure Attack: Even if the attacker obtains which includes the session key , the attacker can not obtain the session key without the secret information . Therefore, our scheme can protect against session key disclosure attacks.
- 8.
- Forward Secrecy and Backward Secrecy: Even if someone gains the session key , they can not know the old session key or the new session key because each session key is generated randomly with no relation to the other session keys. Therefore our scheme can preserve forward secrecy and backward secrecy.
- 9.
- Mutual Authentication: The gateway and the user can authenticate each other by verifying and respectively, using the secret information . Therefore our scheme provides mutual authentication.
- 10.
- User Anonymity: Our scheme identifies users using and then replaces it every time with regardless of the old . Therefore our scheme preserves user anonymity.
8. Performance Analysis of the Proposed Scheme
9. Discussion of Performance
10. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
References
- Jha, N.K. Internet-of-Medical-Things. In Proceedings of the Great Lakes Symposium on VLSI (GLSVLSI), Banff, AB, Canada, 10–12 May 2017; p. 7. [Google Scholar]
- Hatzivasilis, G.; Soultatos, O.; Ioannidis, S.; Verikoukis, C.; Demetriou, G.; Tsatsoulis, C. Review of security and privacy for the Internet of Medical Things (IoMT). In Proceedings of the 2019 15th International Conference on Distributed Computing in Sensor Systems (DCOSS), Santorini Island, Greece, 29–31 May 2019; pp. 457–464. [Google Scholar]
- Dilibal, C.; Davis, B.L.; Chakraborty, C. Generative design methodology for internet of medical things (IoMT)-based wearable biomedical devices. In Proceedings of the 2021 3rd International Congress on Human-Computer Interaction, Optimization and Robotic Applications (HORA), Ankara, Turkey, 11–13 June 2021; pp. 1–4. [Google Scholar]
- Aman, A.H.M.; Hassan, W.H.; Sameen, S.; Attarbashi, Z.S.; Alizadeh, M.; Latiff, L.A. IoMT amid COVID-19 pandemic: Application, architecture, technology, and security. J. Netw. Comput. Appl. 2021, 174, 102886. [Google Scholar] [CrossRef] [PubMed]
- Khadidos, A.O.; Shitharth, S.; Khadidos, A.O.; Sangeetha, K.; Alyoubi, K.H. Healthcare Data Security Using IoT Sensors Based on Random Hashing Mechanism. J. Sens. 2022, 2022, 8457116. [Google Scholar] [CrossRef]
- Masud, M.; Gaba, G.S.; Choudhary, K.; Hossain, M.S.; Alhamid, M.F.; Muhammad, G. Lightweight and anonymity-preserving user authentication scheme for IoT-based healthcare. IEEE Internet Things J. 2021, 9, 2649–2656. [Google Scholar] [CrossRef]
- Lamport, L. Password authentication with insecure communication. Commun. ACM 1981, 24, 770–772. [Google Scholar] [CrossRef] [Green Version]
- Liao, I.E.; Lee, C.C.; Hwang, M.S. A password authentication scheme over insecure networks. J. Comput. Syst. Sci. 2006, 72, 727–740. [Google Scholar] [CrossRef] [Green Version]
- Wu, Z.Y.; Lee, Y.C.; Lai, F.; Lee, H.C.; Chung, Y. A secure authentication scheme for telecare medicine information systems. J. Med. Syst. 2012, 36, 1529–1535. [Google Scholar] [CrossRef]
- Debiao, H.; Jianhua, C.; Rui, Z. A more secure authentication scheme for telecare medicine information systems. J. Med. Syst. 2012, 36, 1989–1995. [Google Scholar] [CrossRef]
- Wei, J.; Hu, X.; Liu, W. An improved authentication scheme for telecare medicine information systems. J. Med. Syst. 2012, 36, 3597–3604. [Google Scholar] [CrossRef]
- Wu, F.; Xu, L.; Kumari, S.; Li, X. An improved and provably secure three-factor user authentication scheme for wireless sensor networks. Peer-Peer Netw. Appl. 2018, 11, 1–20. [Google Scholar] [CrossRef]
- Ryu, J.; Lee, H.; Kim, H.; Won, D. Secure and efficient three-factor protocol for wireless sensor networks. Sensors 2018, 18, 4481. [Google Scholar] [CrossRef]
- Mao, D.; Liu, H.; Zhang, W. An enhanced three-factor authentication scheme with dynamic verification for medical multimedia information systems. IEEE Access 2019, 7, 167683–167695. [Google Scholar] [CrossRef]
- Li, X.; Peng, J.; Obaidat, M.S.; Wu, F.; Khan, M.K.; Chen, C. A secure three-factor user authentication protocol with forward secrecy for wireless medical sensor network systems. IEEE Syst. J. 2019, 14, 39–50. [Google Scholar] [CrossRef]
- Ebrahimi, S.; Bayat–Sarmadi, S. Lightweight fuzzy extractor based on LPN for device and biometric authentication in IoT. IEEE Internet Things J. 2021, 8, 10706–10713. [Google Scholar] [CrossRef]
- Satamraju, K.P.; Malarkodi, B. A PUF-based mutual authentication protocol for internet of things. In Proceedings of the 2020 5th International Conference on Computing, Communication and Security (ICCCS), Patna, India, 14–16 October 2020; pp. 1–6. [Google Scholar]
- Abdaoui, A.; Erbad, A.; Al-Ali, A.K.; Mohamed, A.; Guizani, M. Fuzzy Elliptic Curve Cryptography for Authentication in Internet of Things. IEEE Internet Things J. 2021, 9, 9987–9998. [Google Scholar] [CrossRef]
- Dodis, Y.; Reyzin, L.; Smith, A. Fuzzy extractors: How to generate strong keys from biometrics and other noisy data. In Proceedings of the International Conference on the Theory and Applications of Cryptographic Techniques, Interlaken, Switzerland, 2–6 May 2004; pp. 523–540. [Google Scholar]
- Ryu, J.; Lee, H.; Lee, Y.; Won, D. SMASG: Secure Mobile Authentication Scheme for Global Mobility Network. IEEE Access 2022, 10, 26907–26919. [Google Scholar] [CrossRef]
- Kang, D.; Lee, H.; Lee, Y.; Won, D. Lightweight user authentication scheme for roaming service in GLOMONET with privacy preserving. PLoS ONE 2021, 16, e0247441. [Google Scholar] [CrossRef]
- Ryu, J.; Kang, D.; Lee, H.; Kim, H.; Won, D. A secure and lightweight three-factor-based authentication scheme for smart healthcare systems. Sensors 2020, 20, 7136. [Google Scholar] [CrossRef]
- Blanchet, B.; Smyth, B.; Cheval, V.; Sylvestre, M. ProVerif 2.04: Automatic Cryptographic Protocol Verifier, User Manual and Tutorial. Available online: https://proverif.inria.fr/manual.pdf (accessed on 30 November 2021).
- Kang, D.; Jung, J.; Lee, D.; Kim, H.; Won, D. Security analysis and enhanced user authentication in proxy mobile IPv6 networks. PLoS ONE 2017, 12, e0181031. [Google Scholar] [CrossRef] [Green Version]
- Roy, S.; Chatterjee, S.; Das, A.K.; Chattopadhyay, S.; Kumari, S.; Jo, M. Chaotic map–based anonymous user authentication scheme with user biometrics and fuzzy extractor for crowdsourcing Internet of Things. IEEE Internet Things J. 2017, 5, 2884–2895. [Google Scholar] [CrossRef]
- Lee, H.; Lee, D.; Moon, J.; Jung, J.; Kang, D.; Kim, H.; Won, D. An improved anonymous authentication scheme for roaming in ubiquitous networks. PLoS ONE 2018, 13, e0193366. [Google Scholar] [CrossRef]
- 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]
- 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, 1–9. [Google Scholar] [CrossRef] [PubMed]
- Das, A.K. A secure and robust temporal credential-based three-factor user authentication scheme for wireless sensor networks. Peer-Peer Netw. Appl. 2016, 9, 223–244. [Google Scholar] [CrossRef]
- Sahoo, S.S.; Mohanty, S.; Majhi, B. An efficient three-factor user authentication scheme for industrial wireless sensor network with fog computing. Int. J. Commun. Syst. 2022, 35, 3. [Google Scholar] [CrossRef]
- Bahache, A.N.; Chikouche, N.; Mezrag, F. Authentication Schemes for Healthcare Applications Using Wireless Medical Sensor Networks: A Survey. SN Comput. Sci. 2022, 3, 1–25. [Google Scholar] [CrossRef]
- Li, Y.; Tian, Y. A Lightweight and Secure Three-Factor Authentication Protocol With Adaptive Privacy-Preserving Property for Wireless Sensor Networks. IEEE Syst. J. 2022, 16, 6197–6208. [Google Scholar] [CrossRef]
Author | Proposed Scheme | Weakness |
---|---|---|
Wu et al. [9] | For TMIS using a smart card | Impersonation, insider, offline password guessing attacks |
Debiao et al. [10] | Using a smart card and a password | Offline password guessing attacks |
Wu et al. [12] | Secure three-factor scheme for wireless sensor networks | User impersonation attacks and no user anonymity |
Masud et al. [6] | For IoT-based healthcare | Offline-password, replay, privileged insider attacks |
Notion | Description |
---|---|
, , | *-th message of i-th user, gateway, and j-th sensor node, respectively |
, | Identity of i-th user, j-th sensor node, respectively |
Password of i-th user | |
Biometric Information of i-th user | |
, , | *-th random number generated by user, gateway, and sensor node, respectively |
Timestamp of user | |
Secret information between user and gateway | |
Secret information between user and sensor node | |
, | Identity of user, sensor node |
Device password set by doctor | |
, | Random secret generated by gateway, sensor node, respectively |
, , | Nonce generated by user’s device, gateway, sensor node, respectively |
Secret key of gateway | |
Hash function | |
‖ | Concatenation operator |
⊕ | Bit wise XOR |
Session key |
User | Gateway | Sensor Node |
---|---|---|
{User Registration Phase} | ||
Enter: , | ||
Transmit: , ⟶ | Generate: | |
Compute: | ||
Store: , , , | ||
Derives: | ⟵ Transmit: | |
Compute: , | ||
Store: , | ||
{Sensor Node Registration Phase} | ||
Generate: | ||
Generate: | ⟵ Transmit: , | |
Compute: , | ||
Store: , | ||
Transmit: ⟶ | Compute: , | |
Store: | ||
{Mutual Authentication and Key agreement} | ||
(1) | ||
Enter: | (2) | |
Compute: | Retrieves: | |
Verify: Q = ? | Verify: ’s freshness | |
Generate: | Check: , are stored | |
Compute: , | Compute: | |
Verify: = ? | ||
Transmit: , ⟶ | Generate: , , | |
Compute: , | (3) | |
, | Retrieve: | |
, | Verify: ’s freshness | |
Compute: | ||
Store: | Verify: = ? | |
Transmit: , , , | Retrieve: | |
, ⟶ | Generate: , | |
Retrieve: | ||
(4) | Compute: , | |
Retrieve: , | , | |
, | ||
Verify: ’s freshness | ||
Compute: , | Store: | |
⟵ Transmit: | ||
Verify: = ? | ||
(5) | Store: , , | |
Retrieve: | Generate: , | |
Verify: ’s freshness | Compute: , | |
Compute: | , | |
Verify: = ? | , | |
Retrieve: , | , | |
Compute: | Store:, | |
Store: , | ⟵ Transmit:, , , and |
User() | Gateway | Sensor Node() |
---|---|---|
{User Registration} | ||
(1) Enter: , , | ||
Generate: | (2) Generate: , , | |
Compute: , | Compute: | |
, | ||
Transmit: ⟶ | , | |
(3) Compute: | Store: , , , | |
, | ⟵ Transmit: , , | |
Store: , , , , | ||
{Sensor Node Registration} | ||
(2) Generate: | ⟵(1) Transmit: | |
Compute: | ||
Store: , | ||
Delete: | ||
Transmit: , , ⟶ | (3) Store: , , , | |
{Authentication and Key distribution} | ||
(1) Verify Password | ||
Enter: , , | ||
Compute: , | (2) Verify the user | |
, | Retrieve: | |
Compute: | (3) Verify the gateway | |
, | Retrieve: | |
, | Verify: ’s freshness, | |
, | = ? | |
Verify: = ? | Generate: | Compute: |
, | ||
Generate: , , | , | |
Compute: | Verify: = ? | |
, | ||
Transmit: | Transmit: , , | |
, , , , ⟶ | , ⟶ | Generate: |
Compute: | ||
(4) Verify the sensor node | ||
(5) Verify the gateway | Compute: | |
Compute: | ||
, | ||
Verify: = ? | Replace: | |
Transmit: , | ||
Verify: = ? | Compute: | ⟵ |
Replace: | , | |
Retrieve: | Replace: | |
Compute: | Transmit: , , , | |
⟵ | ||
Verify: = ? |
(*—-channels—-*) |
free privateChannel1:channel [private]. |
free privateChannel2:channel [private]. |
free publicChannel1:channel. |
free publicChannel2:channel. |
(*—-constants—-*) |
free Ri:bitstring [private]. |
free PWi:bitstring [private]. |
free IDi:bitstring [private]. |
free kgw:bitstring [private]. |
free IDg:bitstring. |
free SIDj:bitstring. |
(*—-shared key—-*) |
free SK:bitstring [private]. |
(*—-functions—-*) |
fun xor(bitstring, bitstring):bitstring. |
fun concat(bitstring, bitstring):bitstring. |
fun h(bitstring):bitstring. |
(*—-events—-*) |
event startUi(bitstring). |
event endUi(bitstring). |
event startGW(bitstring). |
event endGW(bitstring). |
event startSNj(bitstring). |
event endSNj(bitstring). |
(*—-Ui process—-*) |
let Ui = |
new ru1:bitstring; |
let HPWi = h(concat(concat(PWi, Ri), ru1)) in |
out(privateChannel1,(IDi)); |
in(privateChannel1, (XTIDi:bitstring, XSi1:bitstring, XSi2: bitstring)); |
let UiM1= xor(XTIDi, HPWi) in |
let UiM2= xor(XSi1, HPWi) in |
let UiM3= xor(XSi2, HPWi) in |
let UiM4 = xor(h(concat(concat(PWi, Ri), IDi)), ru1) in |
let UiM5 = h(concat(concat(concat(ru1, XTIDi), XSi1), XSi2)) in |
event startUi(IDi); |
let ru1 = xor(h(concat(concat(PWi, Ri), IDi)), UiM4) in |
let HPWi = h(concat(concat(PWi, Ri), ru1)) in |
let XTIDi = xor(UiM1, HPWi) in |
let XSi1 = xor(UiM2, HPWi) in |
let XSi2 = xor(UiM3, HPWi) in |
if h(concat(concat(concat(ru1, XTIDi), XSi1), XSi2)) = UiM5 then |
new ru2:bitstring; |
new ru3:bitstring; |
new tsU:bitstring; |
let UiM6 = xor(ru2, XSi1) in |
let UiM7 = xor(ru3, XSi2) in |
let UiM8 = h(concat(ru2, concat(XTIDi, tsU))) in |
out(publicChannel1, (UiM6, UiM7, UiM8, XTIDi, tsU)); |
in(publicChannel1, (XGM5:bitstring, XGM6:bitstring, XXSNjM1:bitstring, XXSNjM2:bitstring)); |
let XTIDinew = xor(XGM6, XSi1) in |
let UiM1new = xor(XTIDinew, HPWi) in |
if h(concat(XTIDi, XTIDinew)) = XGM5 then |
let UiM1 = UiM1new in |
let SK = xor(XXSNjM1, XSi2) in |
if(concat(concat(SK, XTIDinew), ru3)) = XXSNjM2 then |
event endUi(IDi). |
(*—-GW process—-*) |
let GW = |
in(privateChannel1, XIDi:bitstring); |
new rgw1:bitstring; |
new rgw2:bitstring; |
new rgw3:bitstring; |
let TIDi = h(concat(concat(IDi, rgw1), kgw)) in |
let Si1 = h(concat(concat(IDi, rgw2), kgw)) in |
let Si2 =h(concat(concat(IDi, rgw1), kgw)) in |
out(privateChannel1, (TIDi, Si1, Si2)); |
in(privateChannel2, XSIDj:bitstring); |
new rgw4:bitstring; |
let TSIDj = h(concat(concat(XSIDj, rgw4), kgw)) in |
out(privateChannel2, (TSIDj, TIDi, Si2)); |
event startGW(IDg); |
in(publicChannel1, (XUiM6:bitstring, XUiM7:bitstring, XUiM8:bitstring, XTID:bitstring)); |
let Xru2 = xor(XUiM6, Si1) in |
if h(concat(Xru2, TIDi)) = XUiM8 then |
new rgw5:bitstring; |
let TIDinew = h(concat(concat(XIDi, rgw5), kgw)) in |
let GM1 = xor(TSIDj, rgw5) in |
let GM2 = xor(TIDi, rgw5) in |
let GM3 = xor(TIDinew, rgw5) in |
let GM4 = h(concat(concat(concat(rgw5, TSIDj),TIDi), TIDinew)) in |
out(publicChannel2, (GM1, GM2, GM3, GM4, XUiM7)); |
in(publicChannel2, (XSNjM1:bitstring, XSNjM2:bitstring, XSNjM3:bitstring)); |
if h(concat(concat(XSNjM1, XSNjM2), TSIDj)) =XSNjM3 then |
let GM5 = h(concat(TIDi, TIDinew)) in |
let GM6 = xor(TIDinew, Si1) in |
let TIDi = TIDinew in |
out(publicChannel1, (GM5, GM6, XSNjM1, XSNjM2)); |
event endGW(IDg). |
(*—-SNj process—-*) |
let SNj = |
out(privateChannel2, SIDj); |
in(privateChannel2, (XTSIDj:bitstring, XXTIDi:bitstring, XXSi2:bitstring)); |
event startSNj(SIDj); |
in(publicChannel2, (XGM1:bitstring, XGM2:bitstring, XGM3:bitstring, XGM4:bitstring, |
XXUiM7:bitstring)); |
let Xrgw5 = xor(XGM1, XTSIDj) in |
let XXTIDi = xor(XGM2, Xrgw5) in |
let XXTIDinew = xor(XGM3, Xrgw5) in |
let Xru3 = xor(XXUiM7, XXSi2) in |
if h(concat(concat(concat(Xrgw5, XTSIDj), XXTIDi), XXTIDinew)) = XGM4 then |
new SK:bitstring; |
let SNjM1 = xor(SK, XXSi2) in |
let SNjM2 = h(concat(concat(SK, XXTIDinew), Xru3)) in |
let SNjM3 = h(concat(concat(SNjM1, SNjM2), XTSIDj)) in |
let XXTIDi = XXTIDinew in |
out(publicChannel2, (SNjM1, SNjM2, SNjM3)); |
event endSNj(SIDj). |
(*—-queries—-*) |
query idi:bitstring; inj-event(endUi(idi)) ==> inj-event(startUi(idi)). |
query idg:bitstring; inj-event(endGW(idg)) ==> inj-event(startGW(idg)). |
query snj:bitstring; inj-event(endSNj(snj)) ==> inj-event(startSNj(snj)). |
query attacker(SK). |
(*—-process—-*) |
process |
((!Ui)|(!GW)|(!SNj)) |
Verification summary: |
Query inj-event(endUi(idi)) ==> inj-event(startUi(idi)) is true. |
Query inj-event(endGW(idg)) ==> inj-event(startGW(idg)) is true. |
Query inj-event(endSNj(snj)) ==> inj-event(startSNj(snj)) is true. |
Query not attacker(SK[]) is true. |
Security Features | Wu et al. [12] | Li et al. [15] | Masud et al. [6] | Ours |
---|---|---|---|---|
1. Resist Offline Password Guessing Attack | O | O | X | O |
2. Resist Privileged Insider Attack | O | O | X | O |
3. Resist User Impersonation Attack | X | O | O | O |
4. Resist Server Impersonation Attack | O | X | O | O |
5. Resist Replay Attack | X | X | X | O |
6. Resist Man-in-the-Middle Attack | O | O | O | O |
7. Resist Session Key Disclosure Attack | X | O | O | O |
8. Preserve Forward Secrecy and Backward Secrecy | O | O | O | O |
9. Provide Mutual Authentication | O | O | O | O |
10. Preserve Anonymity | X | X | X | O |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 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 (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Kim, K.; Ryu, J.; Lee, Y.; Won, D. An Improved Lightweight User Authentication Scheme for the Internet of Medical Things. Sensors 2023, 23, 1122. https://doi.org/10.3390/s23031122
Kim K, Ryu J, Lee Y, Won D. An Improved Lightweight User Authentication Scheme for the Internet of Medical Things. Sensors. 2023; 23(3):1122. https://doi.org/10.3390/s23031122
Chicago/Turabian StyleKim, Keunok, Jihyeon Ryu, Youngsook Lee, and Dongho Won. 2023. "An Improved Lightweight User Authentication Scheme for the Internet of Medical Things" Sensors 23, no. 3: 1122. https://doi.org/10.3390/s23031122
APA StyleKim, K., Ryu, J., Lee, Y., & Won, D. (2023). An Improved Lightweight User Authentication Scheme for the Internet of Medical Things. Sensors, 23(3), 1122. https://doi.org/10.3390/s23031122