WSNs中基于三因素節(jié)點評估的安全認證方案
2.3 登錄階段
本文引用地址:http://m.butianyuan.cn/article/276364.htm當用戶插入智能卡并輸入自己的用戶名和密碼并發(fā)送請求給網(wǎng)關節(jié)點來請求服務時,用戶的智能卡需要進行如下的認證過程:
(1)Ui插入智能卡并輸入用戶名和密碼,并向網(wǎng)關節(jié)點發(fā)出登錄請求。
(2)智能卡計算和,然后檢驗是否等于Ni。如果相等,用戶的合法身份就會得到確認并進行下面的步驟;否則,拒絕用戶的登錄請求。
(3)智能卡計算DIDi=h(PW||IDi) h(Ti ||x),這里的Ti是用戶當前的時間戳。Ci =h( Ni||x||Ti )。
(4)Ui→GW:用戶把{DIDi,Ci,Ti,x,h(.)}傳給網(wǎng)關節(jié)點。
2.4 認證階段
網(wǎng)關節(jié)點GW在Tg收到{DIDi,Ci,Ti,x,h(.)}后,會進行如下操作來驗證Ui的身份:
(1)驗證Tg-Ti是否不大于ΔT。如果時,網(wǎng)關節(jié)點進行下面的步驟;否則網(wǎng)關節(jié)點拒絕用戶的請求。這里,ΔT表示期望的傳輸延時時間間隔。
(2)計算。通過使用=DIDih(Ti||x) h(x),=h( ||x||Ti )來進行計算。
(3)認證Ci是否等于。如果Ci =,網(wǎng)關節(jié)點就接受用戶的登錄請求;否則拒絕用戶的請求。
(4)GW→Sn:{DIDi,,Ei,h(.),x,Cg}。網(wǎng)關節(jié)點查詢網(wǎng)絡中節(jié)點的信任度找到Sn,然后計算,,并通過公共信道傳送{DIDi,,Ei,h(.),x,Cg}給傳感器節(jié)點Sn。T是網(wǎng)關節(jié)點發(fā)送請求時的時間戳。Sn是經(jīng)過節(jié)點信任度計算后得出的可信節(jié)點中,最鄰近的網(wǎng)關節(jié)點的傳感器節(jié)點。λ是GW節(jié)點產(chǎn)生的隨機數(shù)[12]。
(5)GW→Ui:{Cg,λ,h(.),x}。網(wǎng)絡節(jié)點通過公共信道傳送{Cg,λ ,h(.),x}給用戶Ui。
(6)傳感器節(jié)點Sn檢查T和Ei。傳感器節(jié)點Sn在Tn時刻收到{DIDi, ,Ei,h(.),x}后,首先驗證Tn -是否不大于ΔT,如果滿足執(zhí)行后面步驟;否則拒絕用戶的請求。然后再驗證Ei是否等于h(DIDi ||Sn||x|| )。如果等于,Sn發(fā)送{Sn}給用戶Ui來回復用戶的請求;否則拒絕用戶的請求。
2.5 交互認證階段
用戶收到{Cg,λ,h(.),x}和{Sn}以后,會執(zhí)行如下步驟:
Ui檢查Cg。用戶首先驗證Cg是否等于h(DIDi ||Sn||x||λ)。如果等于,用戶和傳感器使用Cg作為會話密鑰進行通信;否則驗證失敗。
2.6 密碼更改階段
為了更改用戶密碼,用戶插入智能卡后先輸入原來的IDi和PWi來確認用戶的身份,再輸入新密碼。步驟如下:
(1)用戶智能卡驗證密碼。用戶智能卡計算PW是否等于h(PWB),如果相等,可以進行下面的步驟;否則拒絕修改密碼。
(2)智能卡計算 ,,并用PW*和代替智能卡中的PW和Ni[13] 。
3 安全及性能分析
3.1 安全性分析
(1)抵抗重放攻擊。在認證階段,需要保證Tg-Ti≤ΔT和Tn -≤ΔT,而ΔT是經(jīng)過反復試驗所得出的有效時間間隔,這可以很好保證網(wǎng)絡免受攻擊者的重放攻擊。
(2)抵制內(nèi)部攻擊。一個有特權的內(nèi)部攻擊者能夠截獲用戶Ui的不加處理的用戶名和密碼,并模仿用戶來獲取網(wǎng)絡服務[14]。而本方案在注冊階段用PW=h(PWiB)來代替PWi放到安全通道傳輸。這種方法可以防止密鑰被攻擊者截獲。所以,本方案可以抵御內(nèi)部攻擊。
(3)防止偽裝攻擊。用戶若想模仿一個合法用戶登錄到WSNs上,必須要有DIDi來認證其合法性。然而,DIDi=h(PW||IDi)h(Ti||x)是通過單向哈希函數(shù)得到的,而攻擊者由于無法得到IDi,x,PW,從而無法得到DIDi和Ci。這有效地保護了網(wǎng)絡免受偽裝攻擊。
(4)交互認證。交互認證是用來驗證用戶、網(wǎng)關節(jié)點、傳感器節(jié)點三者身份有效性的一個很重要的方法[15]。首先本方案用節(jié)點信任度來計算每個節(jié)點的信任度,保證通信過程中,用戶和網(wǎng)關節(jié)點只與可信的傳感器節(jié)點進行通信,從而保證了認證過程的安全。其次,在用戶Ui登錄網(wǎng)關節(jié)點后,網(wǎng)關節(jié)點會通過計算Ni=h(PW||IDi)h(x)來驗證用戶身份的合法性。然后,在認證階段,網(wǎng)關節(jié)點發(fā)送{DIDi,,Ei,h(.),x,Cg}給傳感器節(jié)點Sn,發(fā)送{Cg,λ,h(.),x}給用戶Ui,這樣,用戶Ui可以通過Cg=h(DIDi||Sn||x||λ)來認證網(wǎng)關節(jié)點和Sn。最后,傳感器節(jié)點Sn可以通過Ei=h(DIDi||Sn||x||)來認證網(wǎng)關節(jié)點。這樣,本方案可以有效地實現(xiàn)用戶、網(wǎng)關節(jié)點和傳感器節(jié)點三者的交互認證。
(5)安全地更改密碼。本方案可以讓用戶及時更新密碼,即用戶只要通過認證,就可以用PW*和來替換用戶智能卡里的PW和Ni。
表2 給出了本方案與Watro等的方案、Wong等方案、Das等方案在安全性上的對比。通過對比從而發(fā)現(xiàn)本方案比其它的方案更安全。
3.2 性能分析
為了把本方案與其它相關方案作性能對比,本文評估它們的計算花費、通信花費、存儲花費和節(jié)點能量花費。
(1)計算花費
首先需要定義各計算花費的符號表示,th表示哈希函數(shù)的計算時間,ttr表示節(jié)點信任度的計算時間,tPU表示公鑰的計算時間,tPR表示私鑰的計算時間。需要注意的是,tPU和tPR遠高于th。在認證階段,Watro等提出的方案的計算花費為,Wong等提出的方案的計算花費為4th,Das等提出的方案的計算花費為5th,本方案的計算花費為。
本方案與Watro等提出的方案相比,Watro等提出的方案在認證階段需要兩個公鑰計算時間和兩個私鑰計算時間,并且它使用復雜的Diffie- Hellman和RSA來進行計算,而論文所提出的方案除了計算哈希函數(shù)外,還需要計算節(jié)點信任度,而信任度計算的復雜性不高,有著很高的優(yōu)越性。
然而,與其余的兩個方案相比,本方案的計算時間會高于它們。但是,其余兩種方案都存在安全問題,而本方案可以解決它們沒解決的安全問題,從而提供比它們更好的安全性。
(2)通信花費
本文提出的方案每進行一個成功的認證,需要進行四次信息交換,而其它的三個認證方案分別需要兩次、四次和三次信息交換。盡管Watro等提出的方案需要很少的信息交換,但是此方案的計算花費很大,并不適用于資源有限的無線傳感器網(wǎng)絡,而提出的方案的信息量要少于其他的三個方案。
評論