專利名稱:一種無線傳感器網(wǎng)絡(luò)的分布式安全重編程方法
技術(shù)領(lǐng)域:
本發(fā)明屬于無線通信技術(shù)領(lǐng)域,特別是涉及到無線傳感器網(wǎng)絡(luò)中的重編程技術(shù)。
背景技術(shù):
大規(guī)模無線傳感器網(wǎng)絡(luò)已經(jīng)日趨成熟,然而重編程技術(shù)的安全問題還沒有得到有效的解決?,F(xiàn)存的重編程協(xié)議是基于集中式的方法,即由基站通過多跳路由的方式將程 序鏡像發(fā)送到相應(yīng)結(jié)點(diǎn)。這種方法在基站不能工作或者基站無法連接到結(jié)點(diǎn)的情況下可靠性會大大降低。同時由于傳輸路徑太長,導(dǎo)致集中式方法效率不高,擴(kuò)展性弱,易于被攻擊。更重要的是,很多無線傳感器網(wǎng)絡(luò)沒有配置基站或者難以配置基站。對于這樣的網(wǎng)絡(luò),被授權(quán)的網(wǎng)絡(luò)用戶能夠進(jìn)行分布式重編程顯得十分必要。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種無線傳感器網(wǎng)絡(luò)的分布式安全重編程方法。網(wǎng)絡(luò)擁有者事先將用戶的重編程權(quán)限和私鑰通過安全的信道分配給該用戶,且網(wǎng)絡(luò)擁有者將系統(tǒng)公共參數(shù)裝載到所有傳感器節(jié)點(diǎn)上,所述私鑰基于用戶的重編程權(quán)限和身份信息生成;當(dāng)用戶進(jìn)入無線傳感器網(wǎng)絡(luò)對目標(biāo)傳感器節(jié)點(diǎn)進(jìn)行重編程時,用戶為其新的傳感器程序鏡像建立重編程數(shù)據(jù)包并將該重編程數(shù)據(jù)包發(fā)送給所有目標(biāo)傳感器節(jié)點(diǎn);各目標(biāo)傳感器節(jié)點(diǎn)在收到所述重編程數(shù)據(jù)包之后根據(jù)裝載到自身的所述系統(tǒng)公共參數(shù)對所述新的傳感器程序鏡像進(jìn)行驗證如果所述新的傳感器程序鏡像通過驗證,則相應(yīng)的目標(biāo)傳感器節(jié)點(diǎn)接收并裝載所述新的傳感器程序鏡像,如果驗證失敗,則將所述重編程數(shù)據(jù)包丟棄。進(jìn)一步地,所述“用戶為其新的傳感器程序鏡像建立重編程數(shù)據(jù)包并將該重編程數(shù)據(jù)包發(fā)送給所有目標(biāo)傳感器節(jié)點(diǎn)”的方法如下所述用戶將所述重編程數(shù)據(jù)包設(shè)為按先后順序生成的一個以上的頁數(shù)據(jù)包,其中,后一個生成的頁數(shù)據(jù)包包含有前一個生成的頁數(shù)據(jù)包的哈希值;接著在最后生成的頁數(shù)據(jù)包的哈希值的基礎(chǔ)上建立Merkle哈希樹,再根據(jù)該Merkle哈希樹生成初始頁的頁數(shù)據(jù)包;該用戶將所述Merkle哈希樹的根節(jié)點(diǎn)和新的傳感器程序鏡像的元數(shù)據(jù)組合在一起產(chǎn)生參數(shù)集,所述元數(shù)據(jù)包含新的傳感器程序鏡像的版本號和大小、以及所有目標(biāo)傳感器節(jié)點(diǎn)的身份集合;接著,該用戶使用自己的私鑰對所述參數(shù)集進(jìn)行簽名并將簽名所產(chǎn)生的簽名信息和所述參數(shù)集一并發(fā)送給各目標(biāo)傳感器節(jié)點(diǎn);然后,該用戶向各目標(biāo)傳感器節(jié)點(diǎn)按頁數(shù)據(jù)包的生成的先后順序的逆序發(fā)送所有的所述頁數(shù)據(jù)包。進(jìn)一步地,所述“各目標(biāo)傳感器節(jié)點(diǎn)在收到所述重編程數(shù)據(jù)包之后根據(jù)裝載到自身的所述系統(tǒng)公共參數(shù)對所述新的傳感器程序鏡像進(jìn)行驗證”的方法如下目標(biāo)傳感器節(jié)點(diǎn)首先檢驗所述參數(shù)集的合法性及用戶是否具有重編程權(quán)限若所述參數(shù)集合法且所述用戶具有重編程權(quán)限,則目標(biāo)傳感器節(jié)點(diǎn)使用所述系統(tǒng)公共參數(shù)對所述簽名信息進(jìn)行驗證
若所述簽名信息合法,則按頁數(shù)據(jù)包的生成的先后順序的逆序?qū)λ鲰摂?shù)據(jù)包進(jìn)行驗證其中,初始頁的頁數(shù)據(jù)包是由目標(biāo)傳感器節(jié)點(diǎn)使用所述Merkle哈希樹的根節(jié)點(diǎn)進(jìn)行驗證,其他頁數(shù)據(jù)包是由目標(biāo)傳感器節(jié)點(diǎn)使用該頁數(shù)據(jù)包的后一個生成的頁數(shù)據(jù)包所包含的哈希值進(jìn)行驗證;如果一旦其中有一個頁數(shù)據(jù)包未通過驗證,則表明對所述新的傳感器程序鏡像的驗證失敗,直接放棄該新的傳感器程序鏡像;如果所述新的傳感器程序鏡像的所有頁數(shù)據(jù)包通過了驗證,則裝載該新的傳感器程序鏡像。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)是(1)分布式重編程(Distributed)由于網(wǎng)絡(luò)擁有者事先將用戶的重編程權(quán)限和私鑰通過安全的信道分配給用戶,授予用戶自行對目標(biāo)傳感器節(jié)點(diǎn)進(jìn)行重編程的權(quán)限,授權(quán)用戶可以在沒有基站的參與下進(jìn)行重編程,同時保證未授權(quán)用戶不能進(jìn)行重編程。(2) 支持不同的用戶重編程權(quán)限(Supporting Different User Privileges):網(wǎng)絡(luò)擁有者事先將用戶的重編程權(quán)限和私鑰通過安全的信道分配給用戶,通過對用戶重編程權(quán)限中包含的節(jié)點(diǎn)身份集合和保留區(qū)的設(shè)置,網(wǎng)絡(luò)擁有者能對用戶權(quán)限進(jìn)行限制。(3)部分的重編程能力(Partial Reprogram Capability)為了避免傳感器節(jié)點(diǎn)被用戶完全控制,傳感器節(jié)點(diǎn)驗證通過新的傳感器程序鏡像后,僅更新對應(yīng)的那部分模塊上的程序鏡像,特殊模塊 (如對新程序鏡像進(jìn)行認(rèn)證的模塊)僅能被網(wǎng)絡(luò)擁有者進(jìn)行重編程。(4)重編程沖突避免 (Avoiding Reprogramming Conflicts)在本發(fā)明中,如果進(jìn)入網(wǎng)絡(luò)的用戶的參數(shù)集的合法性、重編程權(quán)限的合法性及簽名信息都通過驗證,則由此刻開始,在該網(wǎng)絡(luò)用戶的重編程有效期內(nèi),僅該網(wǎng)絡(luò)用戶被允許對傳感器節(jié)點(diǎn)進(jìn)行重編程,以此達(dá)到?jīng)_突避免的目的。(5) 用戶可追蹤性(User Traceability)用戶使用自己的私鑰對參數(shù)集進(jìn)行簽名并產(chǎn)生的相應(yīng)的簽名信息,所以用戶的簽名信息中包含用戶私鑰,而用戶私鑰是基于用戶的重編程權(quán)限和身份信息生成的,因此用戶的重編程權(quán)限和身份信息僅能由網(wǎng)絡(luò)擁有者修改。每個用戶都有唯一一個對應(yīng)的身份信息,網(wǎng)絡(luò)擁有者可以通過該身份信息識別該重編程用戶,如此便達(dá)到了用戶可追蹤性。(6)可擴(kuò)展性(Scalability)網(wǎng)絡(luò)擁有者僅將系統(tǒng)公共參數(shù)裝載到所有傳感器節(jié)點(diǎn)上,所述系統(tǒng)公共參數(shù)的大小與用戶數(shù)量、傳感器節(jié)點(diǎn)數(shù)目無關(guān),因此能夠保證在大量傳感器節(jié)點(diǎn)、大量網(wǎng)絡(luò)用戶環(huán)境下系統(tǒng)的有效性。(7)動態(tài)參與性(Dynamic Participation)當(dāng)新用戶向網(wǎng)絡(luò)擁有者注冊時,網(wǎng)絡(luò)擁有者將該用戶的私鑰和對應(yīng)的重編程權(quán)限通過安全的信道發(fā)送給該用 戶,即完成用戶參與步驟。當(dāng)有新傳感器節(jié)點(diǎn)需要加入網(wǎng)絡(luò)時,網(wǎng)絡(luò)擁有者只需將系統(tǒng)公共參數(shù)裝載到傳感器節(jié)點(diǎn)上并將傳感器節(jié)點(diǎn)部署到相應(yīng)位置,即完成節(jié)點(diǎn)參與步驟。因此能夠支持新傳感器節(jié)點(diǎn)和新用戶的隨時加入。(8)新鮮性保障(Freshness)本發(fā)明使用檢查版本號或者時間戳的方法以保障傳感器程序的新鮮性。(9)拒絕服務(wù)攻擊可抵御(DoS Attacks Resistance)本發(fā)明使用信息特定迷惑方法可抵御拒絕服務(wù)攻擊。
圖1是信息特定迷惑方法(Message specific puzzle)的結(jié)構(gòu)示意圖。
具體實施例方式有關(guān)的技術(shù)術(shù)語如下表
Uj第j個網(wǎng)絡(luò)用戶 Sj第j個傳感器節(jié)點(diǎn)UIDj用戶Uj的標(biāo)識號SKj用戶Uj的私鑰PKj用戶Uj的公鑰SKowner網(wǎng)絡(luò)擁有者的私鑰PKowner網(wǎng)絡(luò)擁有者的公鑰G循環(huán)加法群Gt循環(huán)乘法群e雙線性映射GXG —GtP循環(huán)加法群G的發(fā)生器q循環(huán)加法群G的素數(shù)階H1從{0,1}* 到 G 的 MapToPoint 哈希函數(shù)H2從{0,1}*到Z丨哈希函數(shù)映射本發(fā)明的分布式安全重編程方法具體過程如下網(wǎng)絡(luò)擁有者事先將用戶的重編程權(quán)限和私鑰通過安全的信道分配給該用戶,所述私鑰基于用戶的重編程權(quán)限和身份信息生成;另外,網(wǎng)絡(luò)擁有者會將系統(tǒng)公共參數(shù)裝載到所有傳感器節(jié)點(diǎn)上。其具體過程如下網(wǎng)絡(luò)擁有者執(zhí)行以下操作1.G代表一個由發(fā)生器(generator) P = (xP, yP)生成的循環(huán)加法群(cyclic additive group), Gt 代表一個循環(huán)乘法群(cyclic multiplicative group), G 禾口 Gt 有同樣的素數(shù)階q。e =GXG-Gt代表雙線性映射(bilinear map)。2.選擇一個隨機(jī)數(shù)s e Zq作為主密鑰(master key)并且計算相關(guān)的公鑰PK_CT =s · P。3.選擇兩個安全加密哈希函數(shù)Hl,H2。其中H1 {0,1} * — G而 H! {0,1}* — K 。之后取系統(tǒng)公共參數(shù)為 params = {G,GT, e,q,P, PKowner, H1, H2I,系統(tǒng)公共參數(shù)在網(wǎng)絡(luò)部署前預(yù)先裝載到所有傳感器節(jié)點(diǎn)上??紤]一個身份信息為UIA e { , 1}*的用戶Uj向網(wǎng)絡(luò)擁有者進(jìn)行注冊。在認(rèn)證了他的注冊信息之后,網(wǎng)絡(luò)擁有者基于用戶Uj 的重編程權(quán)限Prij和身份信息UIDj生成Uj的公鑰為PKj = H1 (UIDj | | Prij) e G,并且計算用戶Uj的私鑰SKj = s · PKj,這里“ I I ”表示位串聯(lián)操作。在此之后,網(wǎng)絡(luò)擁有者將用戶的重編程權(quán)限和公私鑰{PripPKpSKj通過安全的信道(例如有線傳輸層安全協(xié)議(wired Transport Layer Security protocol)分配給用戶U」。用戶重編程權(quán)限Prij用于表示用戶權(quán)限的等級,包括節(jié)點(diǎn)身份集合(node identities set)、重編程有效期(subscription period)和保留區(qū)(reserved),如表1所示。節(jié)點(diǎn)身份集合(node identities set)用來標(biāo)識用戶Uj可重編程的節(jié)點(diǎn)集合;重編程有效期(subscription period)包含用戶可重編程的有效起始時間和結(jié)束時間,保留區(qū)留給擁有者用來進(jìn)一步延伸用戶權(quán)限細(xì)節(jié),例如可以用來設(shè)置用戶對不同的傳感器件(例如溫度傳感器、土壤濕度傳感器)的重編程權(quán)限, 或者用來設(shè)置用戶對不同模塊的重編程權(quán)限(當(dāng)前的部分重編程技術(shù)是按照模塊進(jìn)行劃分)。
表1.重編程權(quán)限(Prij)的格式舉例(括號內(nèi)數(shù)字表示每個域的字節(jié)長度)
權(quán)利要求
1.一種無線傳感器網(wǎng)絡(luò)的分布式安全重編程方法,其特征是,包括如下步驟網(wǎng)絡(luò)擁有者事先將用戶的重編程權(quán)限和私鑰通過安全的信道分配給該用戶,且網(wǎng)絡(luò)擁有者事先將系統(tǒng)公共參數(shù)裝載到所有傳感器節(jié)點(diǎn)上,所述私鑰基于用戶的重編程權(quán)限和身份信息生成;當(dāng)用戶進(jìn)入無線傳感器網(wǎng)絡(luò)對目標(biāo)傳感器節(jié)點(diǎn)進(jìn)行重編程時,用戶為其新的傳感器程序鏡像建立重編程數(shù)據(jù)包并將該重編程數(shù)據(jù)包發(fā)送給所有目標(biāo)傳感器節(jié)點(diǎn);各目標(biāo)傳感器節(jié)點(diǎn)在收到所述重編程數(shù)據(jù)包之后根據(jù)裝載到自身的所述系統(tǒng)公共參數(shù)對所述新的傳感器程序鏡像進(jìn)行驗證如果所述新的傳感器程序鏡像通過驗證,則相應(yīng)的目標(biāo)傳感器節(jié)點(diǎn)接收并裝載所述新的傳感器程序鏡像,如果驗證失敗,則將所述重編程數(shù)據(jù)包丟棄。
2.根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)的分布式安全重編程方法,其特征是,所述 “用戶為其新的傳感器程序鏡像建立重編程數(shù)據(jù)包并將該重編程數(shù)據(jù)包發(fā)送給所有目標(biāo)傳感器節(jié)點(diǎn)”的方法如下所述用戶將所述重編程數(shù)據(jù)包設(shè)為按先后順序生成的一個以上的頁數(shù)據(jù)包,其中,后一個生成的頁數(shù)據(jù)包包含有前一個生成的頁數(shù)據(jù)包的哈希值;接著在最后生成的頁數(shù)據(jù)包的哈希值的基礎(chǔ)上建立Merkle哈希樹,再根據(jù)該Merkle哈希樹生成初始頁的頁數(shù)據(jù)包;該用戶將所述Merkle哈希樹的根節(jié)點(diǎn)和新的傳感器程序鏡像的元數(shù)據(jù)組合在一起產(chǎn)生參數(shù)集,所述元數(shù)據(jù)包含新的傳感器程序鏡像的版本號和大小、以及所有目標(biāo)傳感器節(jié)點(diǎn)的身份集合;接著,該用戶使用自己的私鑰對所述參數(shù)集進(jìn)行簽名并將簽名所產(chǎn)生的簽名信息和所述參數(shù)集一并發(fā)送給各目標(biāo)傳感器節(jié)點(diǎn);然后,該用戶向各目標(biāo)傳感器節(jié)點(diǎn)按頁數(shù)據(jù)包的生成的先后順序的逆序發(fā)送所有的所述頁數(shù)據(jù)包。
3.根據(jù)權(quán)利要求2所述的無線傳感器網(wǎng)絡(luò)的分布式安全重編程方法,其特征是,所述 “各目標(biāo)傳感器節(jié)點(diǎn)在收到所述重編程數(shù)據(jù)包之后根據(jù)裝載到自身的所述系統(tǒng)公共參數(shù)對所述新的傳感器程序鏡像進(jìn)行驗證”的方法如下目標(biāo)傳感器節(jié)點(diǎn)首先檢驗所述參數(shù)集的合法性及用戶是否具有重編程權(quán)限若所述參數(shù)集合法且所述用戶具有重編程權(quán)限,則目標(biāo)傳感器節(jié)點(diǎn)使用所述系統(tǒng)公共參數(shù)對所述簽名信息進(jìn)行驗證若所述簽名信息合法,則按頁數(shù)據(jù)包的生成的先后順序的逆序?qū)λ鲰摂?shù)據(jù)包進(jìn)行驗證其中,初始頁的頁數(shù)據(jù)包是由目標(biāo)傳感器節(jié)點(diǎn)使用所述Merkle哈希樹的根節(jié)點(diǎn)進(jìn)行驗證,其他頁數(shù)據(jù)包是由目標(biāo)傳感器節(jié)點(diǎn)使用該頁數(shù)據(jù)包的后一個生成的頁數(shù)據(jù)包所包含的哈希值進(jìn)行驗證;如果一旦其中有一個頁數(shù)據(jù)包未通過驗證,則表明對所述新的傳感器程序鏡像的驗證失敗,直接放棄該新的傳感器程序鏡像;如果所述新的傳感器程序鏡像的所有頁數(shù)據(jù)包通過了驗證,則裝載該新的傳感器程序鏡像。
全文摘要
本發(fā)明公開一種無線傳感器網(wǎng)絡(luò)的分布式安全重編程方法,包括如下步驟網(wǎng)絡(luò)擁有者事先將用戶的重編程權(quán)限和私鑰通過安全的信道分配給該用戶,且將系統(tǒng)公共參數(shù)裝載到所有傳感器節(jié)點(diǎn)上,所述私鑰基于用戶的重編程權(quán)限和身份信息生成;當(dāng)用戶進(jìn)入無線傳感器網(wǎng)絡(luò)對目標(biāo)傳感器節(jié)點(diǎn)進(jìn)行重編程時,用戶為其新的傳感器程序鏡像建立重編程數(shù)據(jù)包并將該重編程數(shù)據(jù)包發(fā)送給所有目標(biāo)傳感器節(jié)點(diǎn);各目標(biāo)傳感器節(jié)點(diǎn)在收到所述重編程數(shù)據(jù)包之后根據(jù)裝載到自身的所述系統(tǒng)公共參數(shù)對所述新的傳感器程序鏡像進(jìn)行驗證如果所述新的傳感器程序鏡像通過驗證,則相應(yīng)的目標(biāo)傳感器節(jié)點(diǎn)接收并裝載所述新的傳感器程序鏡像,如果驗證失敗,則將所述重編程數(shù)據(jù)包丟棄。
文檔編號H04W12/04GK102421094SQ20111025591
公開日2012年4月18日 申請日期2011年8月31日 優(yōu)先權(quán)日2011年8月31日
發(fā)明者何道敬, 卜佳俊, 尹明劍, 張學(xué)鋒, 趙志為, 陳純, 高藝 申請人:浙江大學(xué)