無線傳感器網絡中一種基于共享密鑰的節(jié)點鑒別機制
摘要:在無線傳感器網絡中,信息的傳輸需要保證通信雙方的節(jié)點是本次通信的節(jié)點,而不是網絡中的其他節(jié)點或者一些惡意節(jié)點,這就需要對通信雙方的身份進行身份鑒別。提出了一種基于共享密鑰的節(jié)點鑒別機制,實現了網內節(jié)點間在通信前確認彼此身份的合法性和有效性。分析表明,該方案有效抵御了傳感器網絡中一些常見的安全威脅,例如女巫攻擊等。同時,該方案還具有很強的攻擊容忍性。
關鍵詞:無線傳感器網絡;共享密鑰;Hash算法;節(jié)點鑒別
0 引言
在無線傳感器網絡中,信息的傳輸都是通過點到點的傳輸,因此要特別保證信息在傳輸過程中的安全性以及私密性,防止惡意節(jié)點在信息傳送過程中中途攔截或者冒充網絡中的正常節(jié)點,與其他節(jié)點進行通信,從而非法獲取網絡中的信息,甚至利用丟棄數據,自私性不轉發(fā)等手段破壞節(jié)點之間的正常通信。因此,在節(jié)點進行數據傳輸之前,有必要做好必要的安全措施。一方面需要對節(jié)點之間傳送的數據進行保護,不能以明文形式進行傳輸。當節(jié)點之間進行信息傳送時,可以使用全網密鑰對信息進行加密,并且使用共享密鑰實現安全通信。另一方面,需要保證通信雙方的節(jié)點是本次通信的節(jié)點,而不是網絡中的其他節(jié)點或者一些惡意節(jié)點,這就需要對通信雙方的身份進行鑒別。
針對傳感器網絡的實際需要以及現有的安全技術,本文提出了一種基于共享密鑰的節(jié)點鑒別機制,該方案主要利用網絡中節(jié)點之間共享的密鑰,實現了節(jié)點之間的身份鑒別。
1 方案設計
假設在傳感器網絡中,節(jié)點A需要與節(jié)點B進行通信,則節(jié)點A與節(jié)點B首先要對彼此身份進行鑒別,鑒別過程如下:
(1)首先,節(jié)點A向節(jié)點B發(fā)送鑒別請求消息Auth Request開始與節(jié)點B進行鑒別。鑒別請求消息中還包括節(jié)點A產生的一個隨機數RA以及節(jié)點A的身份標識符IDA和目的節(jié)點的身份標識IDB。
(2)節(jié)點B收到節(jié)點A的請求后,首先通過IDA查找自己的密鑰列表中是否保存了與節(jié)點A對應的對偶密鑰,若不存在,則終止鑒別;若存在,則產生隨機數RB,并利用密鑰列表中與節(jié)點A預共享的密鑰SAB,根據IDA,IDB,RA,RB計算:
MACAB=HASH(SAB,IDA‖IDB ‖RA ‖RB)
其中,IDA和IDB分別是節(jié)點A和節(jié)點B的身份標識;MACAB為節(jié)點A與節(jié)點B之間的消息鑒別密鑰。然后,節(jié)點B利用MACAB在本地計算消息鑒別碼:
MAC1=HASH(MACAB,RA ‖RB)
然后構造消息RA ‖RB ‖MAC1發(fā)送給節(jié)點A。
(3)節(jié)點A收到節(jié)點B的消息后,首先檢查消息中的隨機數RA是否與自己在第(1)步中發(fā)送的隨機數RA一致,若不一致,終止鑒別;若一致,節(jié)點A計算:
MACAB=HASH(SAB,IDA‖IDB‖RA‖RB)
然后利用MACAB在本地計算消息鑒別碼:
MAC2=HASH(SAB,RA‖RB)
如果MAC2≠MAC1,節(jié)點A終止鑒別;如果MAC2=MAC1,則節(jié)點A對節(jié)點B鑒別成功,并計算MAC3=HASH(MACAB,RB),將RB‖MAC3發(fā)送給節(jié)點B。
(4)節(jié)點B收到節(jié)點A的消息后,檢查隨機數RB是否與自己在第(2)步中發(fā)送給節(jié)點A的隨機數RB一致,若不一致,終止鑒別;若一致,節(jié)點B本地計算消息鑒別碼:
MAC4=HASH(MACAB,RB)
如果MAC4≠MAC3,節(jié)點B終止鑒別;如果MAC4=MAC3,則節(jié)點B對節(jié)點A鑒別成功。
然后計算:MAC5=HASH(MACAB,RA),并發(fā)送確認消息RA‖MAC5給節(jié)點A,用于通知節(jié)點A可以進行通信。
(5)節(jié)點A收到節(jié)點B的確認消息,節(jié)點A計算MAC6=HASH(MACAB,RA),如果MAC6≠MAC5,鑒別失敗,終止鑒別;如果MAC6=MAC5,節(jié)點A開始與節(jié)點B進行會話。
具體鑒別流程如圖1所示。
2 算法分析
2.1 安全性分析
從安全性角度,對于本方案,節(jié)點在數據傳輸前,首先通過發(fā)送自己的身份標識ID給目的節(jié)點,而不是直接發(fā)送共享密鑰,目的節(jié)點通過源節(jié)點發(fā)送的ID,再從自己的密鑰列表中找到與源節(jié)點的共享密鑰,這樣就防止了密鑰在傳輸過程中被攻擊者非法截獲的可能,并且也可以通過源節(jié)點發(fā)送的ID來判斷是否有其他非法節(jié)點冒充;同時目的節(jié)點再利用節(jié)點之間的共享密鑰經過加密以后生成消息校驗碼,再發(fā)送給源節(jié)點。源節(jié)點接收到消息校驗碼以后,也可以通過共享密鑰生成校驗碼,而對于其他節(jié)點來說,由于不知道兩個節(jié)點間的共享密鑰,因此不能生成相同的校驗碼,源節(jié)點就可以驗證目的節(jié)點就是自己所要進行通信的節(jié)點;而目的節(jié)點也同樣可以通過只有兩個節(jié)點才知道的共享密鑰生成的校驗碼對源節(jié)點進行認證。通信雙方對彼此的身份進行確認以后,兩個節(jié)點就可以放心地進行下一步通信。有效抵御了傳感器網絡中一些常見的安全威脅,例如女巫攻擊等。
同時,方案還具有很強的攻擊容忍性,任何節(jié)點被破壞或俘獲以后,都不會影響其他未被俘獲節(jié)點的通信安全。
2.2 性能分析
從性能角度看,在計算效率方面,方案采用了單向Hash算法,相比于非對稱密碼體制下的節(jié)點鑒別和密鑰協(xié)商協(xié)議,該協(xié)議的計算量要小得多。而且每個通信節(jié)點最多只需要進行3次Hash運算,Hash算法也可以根據網絡的實際情況進行選擇;在通信負載方面,一次協(xié)議運算只需2條消息交互,相比于其他的節(jié)點鑒別機制,該協(xié)議的通信負載也比較低;從節(jié)點存儲方面,節(jié)點需要存儲一張密鑰表和目的節(jié)點的ID;在方案的擴展性上,新節(jié)點在加入網絡時就會從密鑰池中隨機分配到q個密鑰,新節(jié)點只需要與網絡節(jié)點建立了共享密鑰,就能實現節(jié)點的鑒別。
3 結論
本文設計了一種基于共享密鑰的節(jié)點鑒別機制。該方案利用節(jié)點之間擁有的共享密鑰和節(jié)點ID以及生成的隨機數生成一個MAC值,節(jié)點之間通過各自生成一個MAC值與對方生成并發(fā)送的MAC值進行比較,相等則表示鑒別成功。該方案在信息交互和計算量方面都表現較優(yōu),成功實現了節(jié)點在正常通信之前的身份鑒別,為節(jié)點之間下一步的安全通信工作提供了保障。