無線傳感器網(wǎng)絡(luò)中一種基于共享密鑰的節(jié)點(diǎn)鑒別機(jī)制
摘要:在無線傳感器網(wǎng)絡(luò)中,信息的傳輸需要保證通信雙方的節(jié)點(diǎn)是本次通信的節(jié)點(diǎn),而不是網(wǎng)絡(luò)中的其他節(jié)點(diǎn)或者一些惡意節(jié)點(diǎn),這就需要對(duì)通信雙方的身份進(jìn)行身份鑒別。提出了一種基于共享密鑰的節(jié)點(diǎn)鑒別機(jī)制,實(shí)現(xiàn)了網(wǎng)內(nèi)節(jié)點(diǎn)間在通信前確認(rèn)彼此身份的合法性和有效性。分析表明,該方案有效抵御了傳感器網(wǎng)絡(luò)中一些常見的安全威脅,例如女巫攻擊等。同時(shí),該方案還具有很強(qiáng)的攻擊容忍性。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);共享密鑰;Hash算法;節(jié)點(diǎn)鑒別
0 引言
在無線傳感器網(wǎng)絡(luò)中,信息的傳輸都是通過點(diǎn)到點(diǎn)的傳輸,因此要特別保證信息在傳輸過程中的安全性以及私密性,防止惡意節(jié)點(diǎn)在信息傳送過程中中途攔截或者冒充網(wǎng)絡(luò)中的正常節(jié)點(diǎn),與其他節(jié)點(diǎn)進(jìn)行通信,從而非法獲取網(wǎng)絡(luò)中的信息,甚至利用丟棄數(shù)據(jù),自私性不轉(zhuǎn)發(fā)等手段破壞節(jié)點(diǎn)之間的正常通信。因此,在節(jié)點(diǎn)進(jìn)行數(shù)據(jù)傳輸之前,有必要做好必要的安全措施。一方面需要對(duì)節(jié)點(diǎn)之間傳送的數(shù)據(jù)進(jìn)行保護(hù),不能以明文形式進(jìn)行傳輸。當(dāng)節(jié)點(diǎn)之間進(jìn)行信息傳送時(shí),可以使用全網(wǎng)密鑰對(duì)信息進(jìn)行加密,并且使用共享密鑰實(shí)現(xiàn)安全通信。另一方面,需要保證通信雙方的節(jié)點(diǎn)是本次通信的節(jié)點(diǎn),而不是網(wǎng)絡(luò)中的其他節(jié)點(diǎn)或者一些惡意節(jié)點(diǎn),這就需要對(duì)通信雙方的身份進(jìn)行鑒別。
針對(duì)傳感器網(wǎng)絡(luò)的實(shí)際需要以及現(xiàn)有的安全技術(shù),本文提出了一種基于共享密鑰的節(jié)點(diǎn)鑒別機(jī)制,該方案主要利用網(wǎng)絡(luò)中節(jié)點(diǎn)之間共享的密鑰,實(shí)現(xiàn)了節(jié)點(diǎn)之間的身份鑒別。
1 方案設(shè)計(jì)
假設(shè)在傳感器網(wǎng)絡(luò)中,節(jié)點(diǎn)A需要與節(jié)點(diǎn)B進(jìn)行通信,則節(jié)點(diǎn)A與節(jié)點(diǎn)B首先要對(duì)彼此身份進(jìn)行鑒別,鑒別過程如下:
(1)首先,節(jié)點(diǎn)A向節(jié)點(diǎn)B發(fā)送鑒別請(qǐng)求消息Auth Request開始與節(jié)點(diǎn)B進(jìn)行鑒別。鑒別請(qǐng)求消息中還包括節(jié)點(diǎn)A產(chǎn)生的一個(gè)隨機(jī)數(shù)RA以及節(jié)點(diǎn)A的身份標(biāo)識(shí)符IDA和目的節(jié)點(diǎn)的身份標(biāo)識(shí)IDB。
(2)節(jié)點(diǎn)B收到節(jié)點(diǎn)A的請(qǐng)求后,首先通過IDA查找自己的密鑰列表中是否保存了與節(jié)點(diǎn)A對(duì)應(yīng)的對(duì)偶密鑰,若不存在,則終止鑒別;若存在,則產(chǎn)生隨機(jī)數(shù)RB,并利用密鑰列表中與節(jié)點(diǎn)A預(yù)共享的密鑰SAB,根據(jù)IDA,IDB,RA,RB計(jì)算:
MACAB=HASH(SAB,IDA‖IDB ‖RA ‖RB)
其中,IDA和IDB分別是節(jié)點(diǎn)A和節(jié)點(diǎn)B的身份標(biāo)識(shí);MACAB為節(jié)點(diǎn)A與節(jié)點(diǎn)B之間的消息鑒別密鑰。然后,節(jié)點(diǎn)B利用MACAB在本地計(jì)算消息鑒別碼:
MAC1=HASH(MACAB,RA ‖RB)
然后構(gòu)造消息RA ‖RB ‖MAC1發(fā)送給節(jié)點(diǎn)A。
(3)節(jié)點(diǎn)A收到節(jié)點(diǎn)B的消息后,首先檢查消息中的隨機(jī)數(shù)RA是否與自己在第(1)步中發(fā)送的隨機(jī)數(shù)RA一致,若不一致,終止鑒別;若一致,節(jié)點(diǎn)A計(jì)算:
MACAB=HASH(SAB,IDA‖IDB‖RA‖RB)
然后利用MACAB在本地計(jì)算消息鑒別碼:
MAC2=HASH(SAB,RA‖RB)
如果MAC2≠MAC1,節(jié)點(diǎn)A終止鑒別;如果MAC2=MAC1,則節(jié)點(diǎn)A對(duì)節(jié)點(diǎn)B鑒別成功,并計(jì)算MAC3=HASH(MACAB,RB),將RB‖MAC3發(fā)送給節(jié)點(diǎn)B。
(4)節(jié)點(diǎn)B收到節(jié)點(diǎn)A的消息后,檢查隨機(jī)數(shù)RB是否與自己在第(2)步中發(fā)送給節(jié)點(diǎn)A的隨機(jī)數(shù)RB一致,若不一致,終止鑒別;若一致,節(jié)點(diǎn)B本地計(jì)算消息鑒別碼:
MAC4=HASH(MACAB,RB)
如果MAC4≠MAC3,節(jié)點(diǎn)B終止鑒別;如果MAC4=MAC3,則節(jié)點(diǎn)B對(duì)節(jié)點(diǎn)A鑒別成功。
然后計(jì)算:MAC5=HASH(MACAB,RA),并發(fā)送確認(rèn)消息RA‖MAC5給節(jié)點(diǎn)A,用于通知節(jié)點(diǎn)A可以進(jìn)行通信。
(5)節(jié)點(diǎn)A收到節(jié)點(diǎn)B的確認(rèn)消息,節(jié)點(diǎn)A計(jì)算MAC6=HASH(MACAB,RA),如果MAC6≠MAC5,鑒別失敗,終止鑒別;如果MAC6=MAC5,節(jié)點(diǎn)A開始與節(jié)點(diǎn)B進(jìn)行會(huì)話。
評(píng)論