| Literature DB >> 31035690 |
Sooyeon Shin1, Taekyoung Kwon2.
Abstract
A wireless sensor network (WSN) is used for a smart home system's backbone that monitors home environment and controls smart home devices to manage lighting, heating, security and surveillance. However, despite its convenience and potential benefits, there are concerns about various security threats that may infringe on privacy and threaten our home life. For protecting WSNs for smart homes from those threats, authentication and key agreement are basic security requirements. There have been a large number of proposed authentication and key agreement scheme for WSNs. In 2017, Jung et al. proposed an efficient and security enhanced anonymous authentication with key agreement scheme by employing biometrics information as the third authentication factor. They claimed that their scheme resists on various security attacks and satisfies basic security requirements. However, we have discovered that Jung et al.'s scheme possesses some security weaknesses. Their scheme cannot guarantee security of the secret key of gateway node and security of session key and protection against user tracking attack, information leakage attack, and user impersonation attack. In this paper, we describe how those security weaknesses occur and propose a lightweight three-factor authentication and key agreement scheme in WSNs for smart homes, as an improved version of Jung et al.'s scheme. We then present a detailed analysis of the security and performance of the proposed scheme and compare the analysis results with other related schemes.Entities:
Keywords: Internet of Things; anonymity; biometrics; key agreement; password; smart card; smart home; three-factor authentication; untraceability; wireless sensor networks
Year: 2019 PMID: 31035690 PMCID: PMC6539327 DOI: 10.3390/s19092012
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Notations for Jung et al.’s scheme.
| Notation | Description | Notation | Description |
|---|---|---|---|
|
| Remote user |
| Random number of |
|
| Sensor node |
| Random number |
|
| Gateway node |
| Secret key generated by the |
|
| Identity and password of |
| Session key |
|
| Biometric information of |
| Pseudo-random function of variable |
|
| Temporary identity of |
| One-way hash function and biohash function |
|
| Identity of |
| Timestamp and the transmission delay time |
Figure 1An example of smart home monitoring and control system based on WSNs.
Notations used for the proposed scheme.
| Notation | Description | Notation | Description |
|---|---|---|---|
|
| Home Gateway |
| Smart card for |
|
| Temporary identity of |
| Session key |
|
| One-time pseudonym of |
| Fuzzy generator function |
|
| Secret key generated by the |
| Fuzzy reproduction function |
|
| Secret key generated by the |
Figure 2User registration phase for the proposed scheme.
Figure 3Login and authentication phases for the proposed scheme.
Figure 4Password change phase for the proposed scheme.
Notations in BAN logic.
| Notation | Description | Notation | Description |
|---|---|---|---|
|
|
| ||
|
|
| ||
|
|
| ||
|
|
|
Rules in BAN logic.
| Rule | Description |
|---|---|
|
| |
|
| |
|
| |
|
|
Role specification of in HLPSL.
| 1: role user(Ui, HG, Sj: agent, SKey1: symmetric_key, SKey2: symmetric_key, |
| H, GEN, REP: hash_func, Snd, Rcv: channel(dy)) |
| 2: played_by Ui |
| 3: def= |
| 4: local State: nat, IDi, PWi, Bioi, BBi, Pari, TIDi, HPWi, HIDi, PID1i, Si, Ai, Bi, Ci, C1i, C2i, Di, RRi, RRj, Ri, |
| T1, T4: text, Mi, Muig, SKij, P2i, Mg, Mgui: message, |
| 5: Inc: hash_func |
| 6: const user_gateway, gateway_user, sensor_user, subs1, subs2, subs3, subs4, subs5, subs6, subs7: protocol_id |
| 7: init State :=0 |
| 8: transition |
| 9: 1. State = 0 ∧ Rcv(start) =|> |
| 10: State’ := 1 ∧ IDi’ := new() ∧ PWi’ := new() ∧ Si’ := new() ∧ BBi’ := GEN(Bioi) ∧ Pari’ := GEN(Bioi) |
| ∧ HPWi’ := H(PWi’.BBi’) ∧ TIDi’ := H(IDi’.Si’) ∧ Snd(TIDi’.HPWi’_SKey1) ∧ secret(IDi,PWi, subs1, Ui) |
| 11: 2. State = 1 ∧ Rcv({Ai’.Bi’.C1i’}_SKey1) =|> |
| 12: State’ := 2 ∧ Ri’ := new() ∧ T1’ := new() ∧ BBi’ := GEN(Bioi) ∧ Di’ := xor(ui,H(IDi.BBi’)) ∧ TIDi’ := H(IDi.ui) |
| ∧ HPWi’ := h(PWi.BBi’) ∧ Ai’ := xor(HIDi, H(HPWi’.TIDi’)) ∧ Bi’ := H(HPWi’.HIDi) |
| ∧ PID1i’ := xor(C1i’, H(TIDi’.HIDi)) ∧ RRi’ := H(TIDi’.PID1i’.Ri’) ∧ Mi’ := xor(Ri’, H(TIDi’.HIDi.T1’)) |
| ∧ Muig’ := H(TIDi’.HIDi.PID1i’.RRi’.T1’) |
| ∧ Snd(PID1i’.Mi’.Muig’.T1’) ∧ secret({TIDi,HIDi}, subs2, {Ui, HG}) ∧ witness(Ui, HG, user_gateway, RRi’) |
| 13: 3. State = 2 ∧ Rcv(P2i’.Mg’.Mgui’.T4’) =|> |
| 14: State’ := 3 ∧ RRj’ := xor(Mg’, H(PID1i.HIDi)) ∧ SKij’ := H(RRi.RRj’) |
| ∧ secret({RRi,RRj}, subs3, {Ui, HG, Sj}) ∧ secret({SKij}, subs4, {Ui, HG, Sj}) |
| 15: end role |
Role specification of in HLPSL.
| 1: role gateway(Ui, HG, Sj: agent, SKey1: symmetric_key, SKey2: symmetric_key, |
| H, GEN, REP: hash_func, Snd, Rcv: channel(dy)) |
| 2: played_by HG |
| 3: def= |
| 4: local State: nat, Ku, Ks, TIDi, HPWi, PID1i, PID2i, HIDi, Ai, Bi, C1i, C2i, SIDj, Xsj, RRi, RRj, Ri, Rj, |
| T1, T2, T3, T4: text, Mi, Muig, Mg, Mg2, Mgsj, Mgui, Mj, Msjg, SKij, P2i: message, |
| 5: Inc: hash_fun |
| 6: const user_gateway, gateway_user, sensor_user, subs1, subs2, subs3, subs4, subs5, subs6, subs7: protocol_id |
| 7: init State :=0 |
| 8: transition |
| 9: 1. State = 0 ∧ Rcv({TIDi’.HPWi’}_SKey1) =|> |
| 10: State’ := 1 ∧ PID1i’ := new() ∧ HIDi’ := H(TIDi’.Ku) ∧ Ai’ := xor(HIDi’, H(HPWi’.TIDi’)) |
| ∧ Bi’ := H(HPWi’.HIDi’) ∧ C1i’ := xor(PID1i’, H(TIDi’.HIDi’)) ∧ Snd({Ai’.Bi’.C1i’}_SKey1) |
| ∧ SIDj’ := new() ∧ Xsj’ := H(SIDj’.Ks) |
| ∧ Snd({SIDj’.Xsj’}_SKey2) ∧ secret(Ku, subs5, HG) ∧ secret(Ks, subs6, HG) ∧ secret(Xsj, subs7, HG, Sj) |
| 11: 2. State = 1 ∧ Rcv(PID1i’.Mi’.Muig’.T1’) =|> |
| 12: State’ := 2 ∧ HIDi’ := H(TIDi.Ku) ∧ Ri’ := xor(Mi’, H(TIDi.HIDi’.T1’)) ∧ RRi’ := H(TIDi.PID1i.Ri’) |
| ∧ T2’ := new() ∧ Xsj’ := H(SIDj.Ks) ∧ Mg2’ := xor(RRi’, H(Xsj’.T2’)) ∧ Mgsj’ := H(PID1i’.SIDj.Xsj’.RRi’.T2’) |
| ∧ Snd(PID1i’.Mg2’.Mgsj’.T2’) |
| 13: 3. State = 2 ∧ Rcv(Mj’.Msjg’.T3’) =|> |
| 14: State’ := 3 ∧ Rj’ := xor(Mj’, H(Xsj.T3’)) ∧ RRj’ := H(SIDj.Rj’) ∧ SKij’ := H(RRi.RRj’) ∧ PID2i’ := new() |
| ∧ T4’ := new() ∧ C2i’ := xor(PID2i’, H(TIDi.HIDi)) ∧ P2i’ := xor(C2i’, H(HIDi.T4’)) |
| ∧ Mg’ := xor(RRj’, H(PID1i.HIDi)) ∧ Mgui’ := H(PID1i.HIDi.C2i’.RRj’.SKij’.T4’) |
| ∧ Snd(P2i’.Mg’.Mgui’.T4’) |
| 15: end role |
Role specification of in HLPSL.
| 1: role sensor(Ui, HG, Sj: agent, SKey1: symmetric_key, SKey2: symmetric_key, |
| H, GEN, REP: hash_func, Snd, Rcv: channel(dy)) |
| 2: played_by Sj |
| 3: def= |
| 4: local State: nat, PID1i, SIDj, Xsj, RRi, RRj, Rj, T2, T3: text, Mg2, Mgsj, Mgui, Mj, Msjg, SKij: message, |
| 5: Inc: hash_func |
| 6: const user_gateway, gateway_sensor, sensor_user, subs1, subs2, subs3, subs4, subs5, subs6, subs7: protocol_id |
| 7: init State :=0 |
| 8: transition |
| 9: 1. State = 0 ∧ Rcv({SIDj’.Xsj’}_SKey2) =|> |
| 10: State’ := 1 ∧ T3’ := new() |
| 11: 2. State = 1 ∧ Rcv(PID1i’.Mg2’.Mgsj’.T2’) =|> |
| 12: State’ := 2 ∧ RRi’ := xor(Mg2’, H(Xsj.T2’)) ∧ Rj’ := new() ∧ T3’ := new() ∧ RRj’ := H(SIDj.Rj’) |
| ∧ Mj’ := xor(Rj’, H(Xsj.T3’)) ∧ SKij’ := H(RRi’.RRj’) ∧ Msjg’ := H(PID1i’.SIDj.Xsj.Rj’.SKij’.T3’) |
| ∧ Snd(Mj’.Msjg’.T3’) ∧ witness(Sj, HG, gateway_sensor, RRj’) |
| 13: end role |
Specification of the session, environment, and goal in HLPSL.
| 1: role session(Ui, HG, Sj:agent, SKey1: symmetric_key, SKey2: symmetric_key, |
| H, GEN, REP: hash_func) |
| 2: def= |
| 3: local SI, SJ, RI, RJ, PI, PJ: channel(dy) |
| 4: composition |
| 5: user(Ui, HG, Sj, SKey1, SKey2, H, GEN, REP, SI, RI) |
| 6: ∧ gateway(Ui, HG, Sj, SKey1, SKey2, H, GEN, REP, SJ, RJ) |
| 7: ∧ sensor(Ui, HG, Sj, SKey1, SKey2, H, GEN, REP, PI, PJ) |
| 8: end role |
| 1: role environment() |
| 2: def= |
| 3: const ui, hg, sj: agent, skey1 : symmetric_key, skey2 : symmetric_key, h, gen, rep: hash_func, |
| 4: idi, bioi, sidj, pwi, ai, bi, ci, t1, t2, t3, t4, rri, rrj, skij, mi, mj, mg, mg2, muig, mgui, mgsj, msjg: text, |
| 5: user_gateway_rri, gateway_sensor_rrj, sensor_user, |
| 6: subs1, subs2, subs3, subs4, subs5, subs6, subs7: protocol_id |
| 7: intruder_knowledge = ui, hg, sj, h, gen, rep, mi, muig, mg2, mgsj, mj, msjg, mg, mgui |
| 8: composition |
| 9: session(hg, ui, sj, skey1, skey2, h, gen, rep) |
| 10: ∧ session(ui, hg, sj, skey1, skey2, h, gen, rep) |
| 11: ∧ session(sj, ui, hg, skey1, skey2, h, gen, rep) |
| 12: end role |
| 1: goal |
| 2: secrecy_of subs1 secrecy_of subs2 secrecy_of subs3 secrecy_of subs4 |
| 3: secrecy_of subs5 secrecy_of subs6 secrecy_of subs7 |
| 4: authentication_on user_gateway_rri authentication_on gateway_sensor_rrj 5: end goal |
| environment() |
Figure 5Simulation results of the proposed scheme using AVISPA tool: (a) OFMC model, (b) CL-AtSe model.
Security feature comparison of the proposed scheme with other related three-factor authentication and key agreement schemes.
| Security Feature | Amin et al. [ | Park et al. [ | Jung et al. [ | Jiang et al. [ | Proposed Scheme |
|---|---|---|---|---|---|
| Mutual authentication | O | O | O | O | O |
| Session key security | O | O | X | O | O |
| User anonymity | O | O | O | O | O |
| Untraceability | X | X | X | O | O |
| Resistance to | |||||
| Stolen smart card attack | X | O | X | O | O |
| Offline guessing attack | O | O | O | O | O |
| Privileged insider attack | O | O | O | O | O |
| Stolen-verifier attack | O | X | O | O | O |
| Known session-specific | X | O | O | O | O |
| temporary information attack | |||||
| User impersonation attack | O | O | X | O | O |
| Sensor node | O | O | O | O | O |
| impersonation attack |
O: The scheme can provide the security feature or resist the attack; X: The scheme cannot provide the security feature or resist the attack.
Comparison of computation costs for the login and authentication phases of the proposed scheme and other related schemes.
| Entity | Amin et al. [ | Park et al. [ | Jung et al. [ | Jiang et al. [ | Proposed Scheme |
|---|---|---|---|---|---|
| User |
|
|
|
|
|
| Gateway node |
|
|
|
|
|
| Sensor node |
|
|
|
|
|
| Total cost |
|
|
|
|
|
|
|
| ||||
| Total running time |
Comparison of communication costs for the login and authentication phases of the proposed scheme and other related schemes: the size of message in bits (the number of values in a message).
| Communication | Amin et al. [ | Park et al. [ | Jung et al. [ | Jiang et al. [ | Proposed Scheme |
|---|---|---|---|---|---|
| User→Gateway node | 768 bits (6) | 1536 bits (5) | 512 bits (4) | 1408 bits (4) | 512 bits (4) |
| Gateway node→Sensor node | 640 bits (5) | 1408 bits (4) | 512 bits (4) | 640 bits (5) | 512 bits (4) |
| Sensor node→Gateway node | 384 bits (3) | 1280 bits (3) | 256 bits (2) | 384 bits (3) | 384 bits (3) |
| Gateway node→User | 384 bits (3) | 1408 bits (4) | 384 bits (3) | 256 bits (2) | 512 bits (4) |
| Total | 2176 bits | 5632 bits | 1664 bits | 2688 bits | 1920 bits |