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