專利名稱:可抵御妥協(xié)節(jié)點攻擊的無線傳感器網(wǎng)絡(luò)程序動態(tài)更新方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種程序(也被稱為軟件,下同)動態(tài)更新方法,屬于無線通信領(lǐng)域。
背景技術(shù):
近年來,無線傳感器網(wǎng)絡(luò)因其廣闊的應(yīng)用前景而受到學(xué)術(shù)界和工業(yè)界越來越廣泛 的重視。在大多數(shù)場合,為了提供新的需求,基站需要更新所有傳感器節(jié)點上的程序。然而, 目前為止,還沒有出現(xiàn)一種安全有效的動態(tài)程序更新方法。有些協(xié)議使用數(shù)字簽名來保障 程序動態(tài)更新的安全性,不過這種方法會消耗大量的資源,并不適用在資源受限的傳感器 節(jié)點上;有些協(xié)議采用矩陣正交性原理來保障程序動態(tài)更新的安全性,這種方法雖然計算 花銷少,但是這些協(xié)議無法抵御妥協(xié)節(jié)點發(fā)動的偽裝攻擊。也就是說,在這些協(xié)議里,妥協(xié) 節(jié)點能夠成功偽裝基站廣播虛假程序更新消息,進而控制整個傳感器網(wǎng)絡(luò)。
發(fā)明內(nèi)容
-本發(fā)明的目的在于提供一種可抵御妥協(xié)節(jié)點攻擊的無線傳感器網(wǎng)絡(luò)程序動態(tài)更 新方法。 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案如下 可抵御妥協(xié)節(jié)點攻擊的無線傳感器網(wǎng)絡(luò)程序動態(tài)更新方法主要包括以下部分
1)在傳感器節(jié)點部署前,
基站確定一個哈希函數(shù); 基站選擇一個歐氏空間,將該歐氏空間分解為正交的第一子空間和第二子空間, 所述第一子空間的維數(shù)為k,所述第二子空間的維數(shù)為n-k,其中,n為所述歐氏空間的維 數(shù),k為所述無線傳感器網(wǎng)絡(luò)中傳感器節(jié)點的數(shù)量; 基站為每一個傳感器節(jié)點選擇一個身份標(biāo)識符和屬于第一子空間的向量;
所述向量、身份標(biāo)識符和哈希函數(shù)分別被裝載到每一個傳感器節(jié)點中;
2)在傳感器節(jié)點部署后, 當(dāng)基站需要對所有傳感器節(jié)點上的程序進行更新時,基站向傳感器網(wǎng)絡(luò)廣播程序 更新消息,該程序更新消息包括更新序號、消息發(fā)送的時間戳、更新后的程序、程序版本號、 程序標(biāo)識符、每個傳感器節(jié)點的身份標(biāo)識符和與每個傳感器節(jié)點相對應(yīng)的密鑰散列消息認(rèn) 證碼,所述密鑰散列消息認(rèn)證碼以對應(yīng)的傳感器節(jié)點的向量作為密鑰; 3)每個傳感器節(jié)點收到所述程序更新消息后按以下步驟驗證該消息的有效性
i.傳感器節(jié)點根據(jù)自己的身份標(biāo)識符,從接收到的程序更新消息中提取出自己的 密鑰散列消息認(rèn)證碼; ii.傳感器節(jié)點驗證程序更新消息中的更新序號和消息發(fā)送的時間戳的有效性, 如果都有效,則進行下一步驟;否則拒絕該程序更新消息; iii.傳感器節(jié)點根據(jù)所裝載的向量得到密鑰散列消息認(rèn)證碼,將該密鑰散列消息 認(rèn)證碼與步驟i中提取的密鑰散列消息認(rèn)證碼比較,如果兩者相等,接受程序更新消息并進行程序更新;否則拒絕該程序更新消息。
與現(xiàn)有技術(shù)相比,本發(fā)明具有的優(yōu)點是 (1)即使敵方妥協(xié)了任一傳感器節(jié)點m,從而獲得了秘密值Cm,但是敵方無法偽 裝成基站發(fā)布虛假程序更新信息并且通過其他傳感器節(jié)點的驗證,因此即使某些節(jié)點被妥 協(xié),該無線傳感器網(wǎng)絡(luò)的安全性仍然能夠得到保障; (2)通過簡單的運算(包括哈希函數(shù)、矩陣正交和密鑰散列消息認(rèn)證碼)來保障無
線傳感器網(wǎng)絡(luò)的安全性,可靠性高,因此特別適合于資源受限的無線傳感器網(wǎng)絡(luò); (3)為了更新所有傳感器節(jié)點上的程序,基站僅需要發(fā)送一個廣播消息就能更新
所有傳感器節(jié)點上的程序。
圖1是本發(fā)明無線傳感器網(wǎng)絡(luò)程序動態(tài)更新方法的工作流程圖。
具體實施例方式
有關(guān)的技術(shù)術(shù)語如下
M 程序
Xpid 程序M的標(biāo)識符
XVCT 程序M的版本 薩C()密鑰散列消息認(rèn)證碼(keyed hash message authentication code)
@異或操作 A B 矩陣A和矩陣B的點積
AT 矩陣A的轉(zhuǎn)置 I I 串連接操作
IDi節(jié)點i的標(biāo)識符 參見圖l,本發(fā)明可抵御妥協(xié)節(jié)點攻擊的無線傳感器網(wǎng)絡(luò)程序動態(tài)更新方法如 下 A.在傳感器節(jié)點部署前,基站確定一個哈希函數(shù)h ;并且,基站選擇一個n維的歐 氏空間V,將V分解為兩個正交的子空間,即第一子空間K和第二子空間、,其中^是k維, 、是n-k維,其中,k為該無線傳感器網(wǎng)絡(luò)的所有傳感器節(jié)點的數(shù)量。此外,基站為每個傳 感器節(jié)點i選擇一個身份標(biāo)識符IDi和一個屬于K的向量&, i = 1,2K, k, &的長度應(yīng)足 夠大以避免用窮舉法猜測出該Ci,例如Ci的長度可以是512比特。向量Cp哈希函數(shù)h和 身份標(biāo)識符IDi被安裝到每個傳感器節(jié)點中。 B.在傳感器節(jié)點部署后,當(dāng)基站需要對所有傳感器節(jié)點上的程序進行更新時,基
站向所有的傳感器節(jié)點廣播程序更新消息M^W,
w二) A/ , X , X ver, /£>,, C (C,, (乂 II ?!?II A/ II /£), n Z 一 II Z ""),K , IDk,薩C(Ck, (j| |tj| |M| |lDk| |Xpid| |乂做))},其中j = 1,2Kk, j表示程序更新序 號,tj表示發(fā)送消息Mj"的時間戳,M表示更新后的程序。 C.當(dāng)任一傳感器節(jié)點i接收到消息M^(J)時,為了對該消息進行驗證,需進行以下操作 1)傳感器節(jié)點i根據(jù)自己的標(biāo)識符ID"提取出自己的密鑰散列消息認(rèn)證碼 薩C(Ci, (j| |tj| |M| |IDJ |Xpid| |Xver))。 2)驗證j的有效性,如果j小于或者等于存貯于節(jié)點的j*時,傳感器節(jié)點拒絕該 消息;否則,傳感器節(jié)點認(rèn)為j是新鮮的并且用j替換掉j*(初始時,節(jié)點存貯的j* = 0)。 并繼續(xù)驗證tj的有效性,傳感器節(jié)點的當(dāng)前時間為Clock,如果IClock-tjl < At,進入下 一步驟,否則傳感器節(jié)點拒絕該消息。這里At為預(yù)先設(shè)置好的程序更新消息的時間延遲 閾值。 3)傳感器節(jié)點根據(jù)自己的&計算HMAC(Ci, ( j | 11」| | M | |叫| | Xpid | | XVCT)), 將計算得到的薩C(Ci, (j| |tj| |M| llDj |Xpid| |XVCT))與1)中提取出的薩C(Ci, (j| |tj| |M| |ID」|Xpid| |XVCT))進行比較,如果相等,傳感器節(jié)點接受該廣播消息并且更新自 身的程序;否則傳感器節(jié)點拒絕該消息; 每個傳感器節(jié)點對所收到的程序更新廣播消息進行以上一系列的檢驗,若該消息 能夠通過以上全部的檢驗,則該傳感器節(jié)點接受該廣播消息;否則,該傳感器節(jié)點拒絕該廣 播消息。假設(shè)敵方妥協(xié)了某一傳感器節(jié)點m,從而獲得了該傳感器節(jié)點上的秘密值Cm,但是 敵方無法偽裝基站發(fā)布虛假程序更新信息并且通過其他傳感器節(jié)點的驗證。因此,即使在 傳感器節(jié)點被妥協(xié)的情況下,本發(fā)明也能保障傳感器網(wǎng)絡(luò)的程序動態(tài)更新的安全性。
權(quán)利要求
一種可抵御妥協(xié)節(jié)點攻擊的無線傳感器網(wǎng)絡(luò)程序動態(tài)更新方法,其特征在于包括以下部分1)在傳感器節(jié)點部署前,基站確定一個哈希函數(shù);基站選擇一個歐氏空間,將該歐氏空間分解為正交的第一子空間和第二子空間,所述第一子空間的維數(shù)為k,所述第二子空間的維數(shù)為n-k,其中,n為所述歐氏空間的維數(shù),k為所述無線傳感器網(wǎng)絡(luò)中傳感器節(jié)點的數(shù)量;基站為每一個傳感器節(jié)點選擇一個身份標(biāo)識符和屬于第一子空間的向量;所述向量、身份標(biāo)識符和哈希函數(shù)分別被裝載到每一個傳感器節(jié)點中;2)在傳感器節(jié)點部署后,當(dāng)基站需要對所有傳感器節(jié)點上的程序進行更新時,基站向傳感器網(wǎng)絡(luò)廣播程序更新消息,該程序更新消息包括更新序號、消息發(fā)送的時間戳、更新后的程序、程序版本號、程序標(biāo)識符、每個傳感器節(jié)點的身份標(biāo)識符和與每個傳感器節(jié)點相對應(yīng)的密鑰散列消息認(rèn)證碼,所述密鑰散列消息認(rèn)證碼以對應(yīng)的傳感器節(jié)點的向量作為密鑰;3)每個傳感器節(jié)點收到所述程序更新消息后按以下步驟驗證該消息的有效性i)傳感器節(jié)點根據(jù)自己的身份標(biāo)識符,從接收到的程序更新消息中提取出自己的密鑰散列消息認(rèn)證碼;ii)傳感器節(jié)點驗證程序更新消息中的更新序號和消息發(fā)送的時間戳的有效性,如果都有效,則進行下一步驟;否則拒絕該程序更新消息;iii)傳感器節(jié)點根據(jù)所裝載的向量得到密鑰散列消息認(rèn)證碼,將該密鑰散列消息認(rèn)證碼與步驟i中提取的密鑰散列消息認(rèn)證碼比較,如果兩者相等,接受程序更新消息并進行程序更新;否則拒絕該程序更新消息。
全文摘要
本發(fā)明公開了一種可抵御妥協(xié)節(jié)點攻擊的無線傳感器網(wǎng)絡(luò)程序動態(tài)更新方法,包括以下部分在傳感器節(jié)點部署前,基站確定一個哈希函數(shù)、選擇一個歐氏空間,將該歐氏空間分解為正交的第一子空間和第二子空間;基站為每一個傳感器節(jié)點選擇一個身份標(biāo)識符和屬于第一子空間的向量;將向量、身份標(biāo)識符和哈希函數(shù)分別裝載到每一個傳感器節(jié)點中;在傳感器節(jié)點部署后,程序更新時,基站向傳感器網(wǎng)絡(luò)廣播程序更新消息,每個傳感器節(jié)點收到所述程序更新消息后驗證該消息的有效性。本發(fā)明的優(yōu)點是基站僅需要發(fā)送一個廣播消息就能更新所有傳感器節(jié)點上的程序;運算簡單、可靠性高;即使某些節(jié)點被妥協(xié),該無線傳感器網(wǎng)絡(luò)的安全性仍然能夠得到保障。
文檔編號H04W84/18GK101765109SQ20091015504
公開日2010年6月30日 申請日期2009年12月14日 優(yōu)先權(quán)日2009年12月14日
發(fā)明者何道敬, 卜佳俊, 尹明劍, 陳純 申請人:浙江大學(xué)