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