張晴,張庭郡,尹毅峰
(鄭州輕工業大學計算機與通信工程學院,鄭州 450000)
物聯網中遠程用戶身份認證是保證在線服務安全性的第一步。針對Kaul 等人提出的遠程用戶認證方案中不能抵抗離線口令猜測攻擊的安全缺陷問題,基于安全hash 函數和簡單的異或運算,提出一種改進的輕量級遠程用戶認證方案。經安全性、開銷和時間復雜度分析,與原方案相比,所提方案抗離線口令猜測攻擊,未增加存儲開銷和通信開銷,安全性更高,執行時間更少,更適用于資源受限的移動設備。
輕量級;遠程用戶認證;移動設備;雙向認證
隨著無線技術如GPRS、WiMAX、LTE、VLC 等的快速發展以及各種移動設備的爆炸式增長,物體正逐步實現互聯。每當用戶通過移動設備與遠程服務提供者(云服務器或傳感器節點/服務)進行通信時,用戶和服務提供者(簡稱服務器)的真實性必須被驗證,以消除網絡安全和惡意用戶的非法登錄[1]。遠程用戶認證方案能在公共信道中準確鑒別合法用戶和服務器,防御惡意攻擊。
1981年,Lamport[2]率先在不安全的通信媒介上使用遠程用戶認證機制,其方案依賴于密碼表,hash 操作開銷大。2004年,Das 等人[3]設計了第一個基于動態ID的認證方案,用戶可通過生成偽ID 來隱藏真實身份,但易遭受各種攻擊,并不實用。隨后,眾多研究人員分析并改進了Das 等人的方案[4]。
2012年,Wen和Li[5]提出了一種新的認證方案,但所提方案不能抵御離線口令猜測、偽裝、內部等攻擊。2014年,Kumari 等人[6]提出了一種建立會話密鑰的遠程用戶認證方案,并證明了該方案的魯棒性。2016年,Kaul 等人[7]指出Kumari 等人的方案無法抵御內部、智能卡丟失、離線口令猜測、中間人等攻擊,并提出了一種增強安全的認證方案,并證明了其安全性。
本文對Kaul 等人的方案進行分析,發現該方案并不能抵抗離線口令猜測攻擊,進而提出了一種改進的輕量級遠程用戶認證方案。由于移動設備的計算、存儲、能量非常有限,本文采用安全hash 函數和簡單的異或操作,在實現用戶移動設備與服務器的相互認證之后,建立安全會話密鑰,且用戶可自行更改口令。
本文主要對Kaul 等人的方案進行分析,由于篇幅限制,具體實現步驟詳見文獻[7]。
本文中所用的符號及含義如表1 所示。

表1 符號及含義
分析發現該方案不能抵抗離線口令猜測攻擊,分析如下:
假設敵手A通過竊取等手段獲得合法用戶Ui的智能卡,并通過某些技術獲取智能卡中存儲的{βi,γi,χi,ηi,h(.)} 。 在 認 證 階 段 ,由 于Ui在公共信道中向服務器S發送明文形式的IDi,IDi可被敵手A通過非法手段獲取。之后,A選擇一個作為PWi的猜測值(為口令空間),計算直 到為止,滿足此條件的即為PWi的真正值,離線口令攻擊猜測成功。整個過程猜測攻擊的時間復雜度為O(|DPW|*(5Th+5TX)),其中Th為hash函數的執行時間,TX為異或操作的執行時間,|DPW|為DPW中全部PWi的數量。在實際操作中,通常|DPW|≤106[8],因此,Kaul 等人的方案不能抵御離線口令猜測攻擊。
針對Kaul 等人方案存在的缺陷,本文提出了一種改進的輕量級遠程用戶認證方案。提出的方案使用單向散列函數和按位異或運算實現用戶與服務器的雙向認證,并保持了原方案的安全優勢。該方案包括注冊、登錄、認證和口令更新階段如圖1 所示。
(1)Ui自由選擇IDi,PWi和隨機數b,計算RPWi=h(b||PWi),并通過安全信道將{IDi,RPWi}發送給S進行注冊;
(2)S隨機選擇唯一隨機數yi,由分別計算αi,βi,γi,χi的值,并將{βi,γi,χi,h(.)} 存儲在智能卡中,發送給Ui;
(3)Ui計算ηi=b⊕h(IDi⊕PWi),并將ηi存儲在智能卡中。
注冊階段只在新用戶加入網絡時執行,在此階段,智能卡共存儲了五個安全參數:βi,γi,χi,ηi,h(.)。
當持有移動設備的注冊用戶Ui從服務器S獲得服務時,Ui將智能卡插入讀卡器,執行以下操作向S發送登錄請求:
(1)Ui輸入判斷是否相等,若相等,繼續執行操作;若不相等,讀卡器拒絕Ui登錄請求。此外,為了防止在線口令猜測攻擊,預先設定一閾值,在規定時間內,當錯誤口令輸入次數超過該值時,智能卡被鎖定;
(2)讀卡器計算:λi=IDi⊕yi,ωi=yi⊕h(λi⊕αi⊕T),?i=h(IDi||yi||αi||T),并將登錄請求信息{λi,ωi,?i,T}發送給S。

圖1 改進的方案注冊、登錄、認證、口令更新階段
在此階段,用戶Ui和服務器S完成雙向認證,并建立安全會話密鑰,操作如下:
(1)S計算T'-T≤δT是否成立,以此判斷消息的新鮮性,若滿足,則繼續執行操作;否則,拒絕Ui登錄請求;
(2)S計算:通過判斷驗證的正確性,若相等,則證明Ui是合法用戶;若不相等,則退出認證;
(3)S計 算μi=h(IDi||yi||αi||Ts) ,并 將 認 證 請 求{μi,Ts}發送給Ui;
(4)Ui判斷Ts'-Ts≤δT驗證消息是否有效,若不滿足,拒絕認證請求。之后計算通過驗證的正確性,若相等,則證明S身份合法;若不等,則退出;
(5)當該階段完成時,Ui和S各自獨立生成安全會話密鑰SK=h(IDi⊕yi⊕αi⊕T⊕Ts) ,用于保護其通信安全。
此階段,用戶Ui無需遠程服務器的任何幫助,可在智能卡中直接進行口令更新。當用戶Ui想要將PWi更新為時,Ui將智能卡插入讀卡器,并執行以下操作:
(1)Ui輸入,向智能卡發送口令更新請求;
(2)智能卡執行2.2 節中步驟(1)的操作;
將改進的方案與文獻[5-7]中方案進行安全性對比分析,表2 為其對比結果,“是”表示能抵抗該攻擊或具有該性能,“否”表示不能抵抗該攻擊或不具有該性能。分析表明,所提方案安全性更高。

表2 安全性對比
所提方案在彌補Kaul 等人方案不能抵抗離線口令猜測攻擊安全缺陷的基礎上,保留了原方案的其他安全特性。因此,本節只對能抵抗離線口令猜測攻擊這一安全特性進行分析。分析如下:
本文所提方案不以明文方式在公共信道中發送用戶IDi和PWi,只發送{λi,ωi,?i,T,μi,Ts},假設敵手A通過非法途徑獲得Ui的智能卡和在公共信道中傳輸的參數,并提取出智能卡中存儲的五個安全參數。由于未知,A每次至少需要正確猜測出兩個未知數的值,才能計算出而這在多項式時間內不可能實現[9],因此,A不能從獲取的所有信息中猜測出正確的IDi和PWi,因此,所提方案能抵抗離線口令猜測攻擊。
本節對所提方案在注冊、登錄、認證三個階段中的存儲開銷和通信開銷進行分析,并與文獻[5-7]中的方案作對比,其存儲開銷和通信開銷對比結果如圖2 所示,其中,L 表示hash 函數的輸出字節長度和方案中所有參數的字節長度。

圖2 存儲開銷和通信開銷對比
所提方案只在注冊階段將{βi,γi,χi,ηi,h(.)}存儲在智能卡中,因此,存儲開銷為5L;只在登錄和認證階段在公共信道中傳輸消息{λi,ωi,?i,T,μi,Ts},因此,通信開銷為6L。從圖2 可以看出,對于存儲開銷,文獻[5]的最小,為3L;文獻[6]的最大,為6L;所提方案與文獻[7]相等,為5L。對于通信開銷,所提方案與文獻[7]相等,為6L,最小;文獻[5]的為9L,最大。因此,所提方案未增加Kaul 等人方案的存儲開銷與通信開銷,與文獻[5]相比,只增加較小存儲開銷來增強系統的安全性,并降低了通信開銷。
本節對所提方案在注冊、登錄、認證三個階段中的時間復雜度進行分析,并與文獻[5-7]中的方案進行比較,結果如表3 所示,Th表示hash 函數操作的運行時間,TX表示異或操作的運行時間。為確定總執行時間,采用Kilinc 和Yanik 報告[10]中的實驗結果:一個哈希運算的平均執行時間為0.0023ms,異或運算的執行時間忽略不計。

表3 時間復雜度對比
從表3 可知,文獻[5]、[7]總執行時間最大,為46μs;文獻[6]總執行時間最小,為36.8μs;所提方案的時間復雜度為18Th+21TX,總執行時間中等,為41.6μs。結合表2、圖2 可看出,本文方案在未增加系統開銷的基礎上,為系統提供了更高的安全性。
本文分析Kaul 等人方案發現其不能抵御離線口令猜測攻擊,進而提出了一種改進的輕量級遠程用戶認證方案。該方案在保留原方案的安全特性基礎上,可有效避免離線口令猜測、偽裝、重放、DoS 等常見攻擊,建立安全會話密鑰,自由更改口令。安全性、開銷、時間復雜度分析表明,所提方案系統開銷小,運行速度快,安全性更高。