裴慶祺 寧奔 吳洋 楊亮 尹浩 唐宏
1中國(guó)電子設(shè)備系統(tǒng)工程公司研究所 北京 100141 2西安電子科技大學(xué)計(jì)算機(jī)網(wǎng)絡(luò)與信息安全教育部重點(diǎn)實(shí)驗(yàn)室 陜西 710071
無(wú)線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān),通常是指擁有多種網(wǎng)絡(luò)通信接口,既可以和無(wú)線傳感器網(wǎng)絡(luò)通信又可以和其他網(wǎng)絡(luò)的網(wǎng)絡(luò)設(shè)備進(jìn)行通信。通常網(wǎng)關(guān)具有比一般節(jié)點(diǎn)強(qiáng)得多的計(jì)算能力、通信能力和比一般節(jié)點(diǎn)大得多的存儲(chǔ)空間。
在異構(gòu)環(huán)境下無(wú)線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān)更加復(fù)雜性,使網(wǎng)關(guān)的安全可能面臨更多的挑戰(zhàn)。而網(wǎng)關(guān)的不安全很可能導(dǎo)致通過(guò)網(wǎng)關(guān)的秘密信息泄露,從而讓整個(gè)無(wú)線傳感器網(wǎng)絡(luò)的安全面臨重大威脅。本文針對(duì)異構(gòu)環(huán)境下無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)可能出現(xiàn)的安全問(wèn)題,提出了一種基于虛擬機(jī)技術(shù)的無(wú)線傳感器網(wǎng)絡(luò)安全網(wǎng)關(guān)的新型設(shè)計(jì),有助于解決異構(gòu)環(huán)境下的無(wú)線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān)安全問(wèn)題。
在這一方案中,我們使用了虛擬機(jī)技術(shù)提高網(wǎng)關(guān)的安全。虛擬機(jī)是指通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。使用虛擬機(jī)技術(shù),可以通過(guò)在現(xiàn)有平臺(tái)上添加一層虛擬機(jī)監(jiān)視器而實(shí)現(xiàn)對(duì)系統(tǒng)的虛擬化。虛擬機(jī)技術(shù)通過(guò)將不同的應(yīng)用運(yùn)行在不同的虛擬機(jī)上,可以避免不同應(yīng)用程序之間的互相干擾,一個(gè)應(yīng)用不會(huì)影響到其它虛擬機(jī)內(nèi)的應(yīng)用。這種由虛擬機(jī)技術(shù)實(shí)現(xiàn)的各個(gè)應(yīng)用之間的完全隔離,有著重要的意義,本文中也將根據(jù)這一特性設(shè)計(jì)異構(gòu)環(huán)境下無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的設(shè)計(jì)方案。
在無(wú)線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān)中,不同功能在網(wǎng)關(guān)中通過(guò)功能模塊的方式實(shí)現(xiàn)。我們將各功能模塊根據(jù)其安全性分為安全的和非安全的。參照?qǐng)D 1,在無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的設(shè)計(jì)中使用了虛擬機(jī)技術(shù),將無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)中的安全模塊和非安全模塊通過(guò)虛擬機(jī)方式隔離,以提高網(wǎng)關(guān)的安全性。
在此方案中,無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的硬件層上搭建有虛擬機(jī)監(jiān)視器,在虛擬機(jī)監(jiān)視器上搭建有兩個(gè)不同虛擬機(jī),服務(wù)虛擬機(jī)和安全虛擬機(jī)。兩個(gè)虛擬機(jī)內(nèi)部包括各自的功能模塊。其中安全虛擬機(jī)內(nèi)運(yùn)行安全的功能模塊,服務(wù)虛擬機(jī)中運(yùn)行非安全的模塊,兩個(gè)虛擬機(jī)之間相互隔離,僅能通過(guò)虛擬機(jī)監(jiān)視器內(nèi)的安全數(shù)據(jù)通道交互受限的數(shù)據(jù)。
服務(wù)虛擬機(jī),主要負(fù)責(zé)不同網(wǎng)絡(luò)的接口,用戶和感知節(jié)點(diǎn)的管理以及信息的發(fā)布,它是用戶直接訪問(wèn)的虛擬機(jī),擁有接入網(wǎng)絡(luò)和無(wú)線傳感器網(wǎng)絡(luò)的接口。安全虛擬機(jī),主要負(fù)責(zé)密鑰和數(shù)據(jù)明文的管理和儲(chǔ)存,同時(shí)對(duì)服務(wù)虛擬機(jī)中的模塊功能進(jìn)行支持,它是禁止用戶直接訪問(wèn)的虛擬機(jī)。

圖1 基于虛擬機(jī)的異構(gòu)環(huán)境下無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)結(jié)構(gòu)
在基于虛擬機(jī)技術(shù)的無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的數(shù)據(jù)交互方式中,有以下基本安全要求:
(1) 在不泄露用戶密鑰(口令)前提下完成用戶的認(rèn)證;
(2) 在不泄露節(jié)點(diǎn)相關(guān)密鑰的前提下完成對(duì)節(jié)點(diǎn)身份或信息的認(rèn)證;
(3) 完成數(shù)據(jù)格式的轉(zhuǎn)換,并保證明文不在網(wǎng)關(guān)的非安全部分出現(xiàn)。
參照?qǐng)D 2,本方案中當(dāng)用戶對(duì)無(wú)線傳感器網(wǎng)絡(luò)的數(shù)據(jù)獲取時(shí)的數(shù)據(jù)交互方法包括以下部分。

圖2 基于虛擬機(jī)的無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的數(shù)據(jù)交換方法
1.2.1 用戶的認(rèn)證接入和信息獲取過(guò)程
步驟1:當(dāng)用戶試圖接入無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)獲取信息時(shí),需要向無(wú)線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān)認(rèn)證自己。不同網(wǎng)絡(luò)的用戶通過(guò)多網(wǎng)絡(luò)接口模塊接入網(wǎng)關(guān),通過(guò)適當(dāng)?shù)恼J(rèn)證協(xié)議進(jìn)行用戶認(rèn)證。在實(shí)際的認(rèn)證過(guò)程中,用戶實(shí)際是向發(fā)布模塊發(fā)送認(rèn)證信息,發(fā)布模塊將認(rèn)證信息發(fā)送給用戶管理模塊,用戶管理模塊通過(guò)安全數(shù)據(jù)通道將認(rèn)證信息發(fā)送給安全虛擬機(jī)中的認(rèn)證模塊,認(rèn)證模塊在安全虛擬機(jī)內(nèi)完成認(rèn)證算法后將結(jié)果返回給用戶管理模塊。用戶管理模塊根據(jù)結(jié)果判斷用戶的身份uID是否認(rèn)證成功。
步驟2:信息管理模塊收到用戶的指令后,首先存儲(chǔ)用戶身份uID和用戶所在網(wǎng)絡(luò)信息field組成的信息元組(uID,field)并將指令中的數(shù)據(jù)要求和用戶身份uID通過(guò)安全數(shù)據(jù)通道發(fā)送給安全虛擬機(jī)的判定模塊。
信息管理模塊可以根據(jù)配置的更新時(shí)間向判斷模塊發(fā)送自動(dòng)更新要求,以保證網(wǎng)關(guān)對(duì)感知區(qū)域內(nèi)的節(jié)點(diǎn)數(shù)據(jù)的定時(shí)更新收集。
步驟3:判定模塊產(chǎn)生任務(wù)通知。整個(gè)過(guò)程中對(duì)數(shù)據(jù)發(fā)布的觸發(fā)是通過(guò)任務(wù)通知方式產(chǎn)生的。任務(wù)通知有以下3種方式,用戶數(shù)據(jù)要求、更新要求和警報(bào)。用戶數(shù)據(jù)要求來(lái)自于上一步驟中的信息處理模塊,當(dāng)有用戶對(duì)數(shù)據(jù)有要求時(shí)產(chǎn)生;更新為了的更新網(wǎng)關(guān)中的感知數(shù)據(jù),通過(guò)用戶指令或者定時(shí)產(chǎn)生;警報(bào)要求來(lái)自信息處理模塊,當(dāng)節(jié)點(diǎn)對(duì)某些敏感信息感知后發(fā)現(xiàn)超過(guò)門限后產(chǎn)生警報(bào)。
④縣級(jí)建設(shè)旱情(墑情)信息自動(dòng)采集站,負(fù)責(zé)全縣旱情信息的收集統(tǒng)計(jì)和灌溉決策,并按規(guī)定格式傳輸和上報(bào)。固定墑情信息采集站按每個(gè)示范鄉(xiāng)鎮(zhèn)1處布設(shè)。
上述3種觸發(fā)條件出現(xiàn)后,判定模塊產(chǎn)生相應(yīng)的任務(wù)通知。當(dāng)收到來(lái)自信息處理模塊的更新要求時(shí),向感知節(jié)點(diǎn)管理模塊發(fā)送更新要求,進(jìn)行無(wú)線傳感器網(wǎng)絡(luò)感知數(shù)據(jù)的更新。當(dāng)收到用戶數(shù)據(jù)要求或者警報(bào)要求時(shí),判定模塊向加解密模塊發(fā)送數(shù)據(jù)更新要求或警報(bào)要求的用戶的身份uID,并通知其對(duì)感知數(shù)據(jù)進(jìn)行處理。
步驟4:安全虛擬機(jī)內(nèi)的加解密模塊收到來(lái)自判定模塊的通知后,根據(jù)涉及的用戶身份uID在密鑰管理模塊中查找到與用戶身份uID相應(yīng)的安全要求和權(quán)限。根據(jù)用戶權(quán)限,如需將數(shù)據(jù)加密,則使用相應(yīng)的用戶通信密鑰utK對(duì)用戶要求的權(quán)感知數(shù)據(jù)進(jìn)行加密,將加密后的數(shù)據(jù)和用戶身份uID通過(guò)安全數(shù)據(jù)通道發(fā)送給信息管理模塊。如果感知信息是非私密保護(hù)的信息,并且用戶的安全要求也不需要對(duì)信息加密,則直接將需要的消息明文和用戶身份uID通過(guò)安全數(shù)據(jù)通道發(fā)送給信息管理模塊。
在這一部分中,由于用戶所在網(wǎng)絡(luò)不同,用戶使用的密碼算法也可能不同,加解密模塊可以根據(jù)用戶的信息選擇需要的算法進(jìn)行處理。
步驟5:發(fā)布模塊發(fā)布來(lái)自安全虛擬機(jī)內(nèi)的處理過(guò)的數(shù)據(jù)。信息管理模塊在收到來(lái)自安全虛擬機(jī)的數(shù)據(jù)密文和對(duì)應(yīng)的用戶身份uID后,根據(jù)元組(uID,field查詢用戶所在網(wǎng)絡(luò)信息field。之后信息管理模塊將用戶身份uID、用戶所在網(wǎng)絡(luò)信息field和數(shù)據(jù)(明文或密文)發(fā)送給發(fā)布模塊。發(fā)布模塊根據(jù)用戶所在網(wǎng)絡(luò)信息field在多網(wǎng)絡(luò)接口模塊中選擇合適的網(wǎng)絡(luò)接口,將數(shù)據(jù)發(fā)布給用戶。
1.2.2 網(wǎng)關(guān)內(nèi)感知數(shù)據(jù)的的更新過(guò)程
感知數(shù)據(jù)的更新有兩種觸發(fā)條件,包括:(1)感知節(jié)點(diǎn)管理模塊向節(jié)點(diǎn)發(fā)布更新要求;(2)感知節(jié)點(diǎn)感知到區(qū)域內(nèi)事件發(fā)生。當(dāng)以上兩種情況發(fā)生時(shí),感知節(jié)點(diǎn)將對(duì)區(qū)域內(nèi)的數(shù)據(jù)進(jìn)行感知,并將數(shù)據(jù)通過(guò)無(wú)線傳感器網(wǎng)絡(luò)內(nèi)的多跳路由方式發(fā)送給網(wǎng)關(guān)。當(dāng)網(wǎng)關(guān)收到節(jié)點(diǎn)發(fā)送來(lái)的數(shù)據(jù)信息時(shí),通過(guò)以下步驟進(jìn)行數(shù)據(jù)更新。
步驟1:節(jié)點(diǎn)管理模塊將收到的感知節(jié)點(diǎn)身份nID和使用相關(guān)加密算法的數(shù)據(jù)密文通過(guò)安全數(shù)據(jù)通道發(fā)送給安全虛擬機(jī)。本步驟中默認(rèn)傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)與網(wǎng)關(guān)已經(jīng)完成相互認(rèn)證,具體的認(rèn)證方式在本文中不進(jìn)行深入探討。但是此處的對(duì)于節(jié)點(diǎn)的認(rèn)證也使用用戶認(rèn)證相類似的方式,即認(rèn)證算法在安全虛擬機(jī)內(nèi)完成,將結(jié)果返回節(jié)點(diǎn)管理模塊。
步驟2:安全虛擬機(jī)內(nèi)的加解密模塊在收到來(lái)自感知節(jié)點(diǎn)管理模塊的數(shù)據(jù)密文后,根據(jù)感知節(jié)點(diǎn)身份nID在密鑰管理模塊中查找到相應(yīng)的感知節(jié)點(diǎn)通信密鑰ntK,使用ntK對(duì)數(shù)據(jù)密文進(jìn)行解密,并將解密后得到的數(shù)據(jù)明文發(fā)送給信息處理模塊。
步驟3:信息處理模塊對(duì)數(shù)據(jù)進(jìn)行處理,并判斷其中是否有來(lái)自節(jié)點(diǎn)的警報(bào)信息。如果有警報(bào)信息,則發(fā)送警報(bào)要求給判定模塊,將處理后的數(shù)據(jù)暫存在安全虛擬機(jī)中。如果沒有警報(bào)信息,則不發(fā)送警報(bào)要求,將處理后的數(shù)據(jù)暫存在安全虛擬機(jī)中。數(shù)據(jù)更新完成,當(dāng)有判定模塊的任務(wù)通知到達(dá)時(shí),根據(jù)具體情況將這些數(shù)據(jù)信息發(fā)布給用戶。
密鑰和私密明文泄露是無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)面臨的最重要威脅。當(dāng)無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)接入到網(wǎng)絡(luò)環(huán)境復(fù)雜的Internet或無(wú)線通信網(wǎng)絡(luò),由于前文提到的安全威脅網(wǎng)關(guān)可能發(fā)生秘密信息的泄露問(wèn)題。為了防止秘密信息的泄露,方案限制了不可信的應(yīng)用程序?qū)ι婕鞍踩拿荑€、明文和用戶信息的存儲(chǔ)介質(zhì)的訪問(wèn)。
在上述設(shè)計(jì)方案中,使用了虛擬機(jī)技術(shù),將不同安全要求的程序隔離在兩個(gè)不同的虛擬機(jī)內(nèi)。如圖3所示,網(wǎng)關(guān)設(shè)計(jì)方案可以有效的防止秘密數(shù)據(jù)在網(wǎng)關(guān)處的泄露。通過(guò)不同可信程度的功能模塊隔離,保證安全虛擬機(jī)內(nèi)只有必要的可信的安全相關(guān)的功能模塊,同時(shí)隔離安全虛擬機(jī)的對(duì)外接口。當(dāng)可能攻擊發(fā)生時(shí),由于安全虛擬機(jī)內(nèi)沒有接入網(wǎng)絡(luò)的對(duì)外接口,同時(shí)其中的程序也都是可信的,因此惡意程序只可能在服務(wù)虛擬機(jī)內(nèi)出現(xiàn)。由于隔離特性,虛擬機(jī)監(jiān)視器將存儲(chǔ)空間等資源單獨(dú)的分配兩個(gè)虛擬機(jī)。惡意程序無(wú)法訪問(wèn)到與服務(wù)虛擬機(jī)完全隔離的安全虛擬機(jī)內(nèi)存儲(chǔ)介質(zhì)的內(nèi)容。
由于網(wǎng)關(guān)功能的需要,在兩個(gè)虛擬機(jī)之間搭設(shè)了一條安全數(shù)據(jù)通道,以使得兩個(gè)虛擬機(jī)間的一些信息可以通過(guò)這一通道進(jìn)行交互。但是由于這一通道是受限的,僅能通過(guò)它傳輸之前約定好的內(nèi)容,如密文,指令等,惡意程序無(wú)法通過(guò)這一受限通道訪問(wèn)到安全虛擬機(jī)內(nèi)的密鑰等重要信息。
在方案中,信息的加解密、信息處理、用戶和節(jié)點(diǎn)的認(rèn)證等涉及重要私密信息的功能,其運(yùn)算或?qū)嵤┻^(guò)程都在安全虛擬機(jī)內(nèi)完成,僅將結(jié)果返回給服務(wù)虛擬機(jī)。在這些過(guò)程中需要的秘密信息都不會(huì)出現(xiàn)在服務(wù)虛擬機(jī)內(nèi)。無(wú)法在服務(wù)虛擬機(jī)端獲得這些秘密信息。

圖3 基于虛擬機(jī)的無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)結(jié)構(gòu)對(duì)秘密信息的保護(hù)
針對(duì)本文中提出的網(wǎng)關(guān)方案,以相關(guān)工作為基礎(chǔ),對(duì)其作出了功能的實(shí)現(xiàn)。在實(shí)現(xiàn)中選擇了 XEN虛擬機(jī)監(jiān)視器。選擇了Linux系統(tǒng)作為運(yùn)行的虛擬機(jī)。
在實(shí)現(xiàn)中網(wǎng)關(guān)服務(wù)虛擬機(jī)內(nèi)的節(jié)點(diǎn)管理模塊,通過(guò)輪詢方式,收集節(jié)點(diǎn)的數(shù)據(jù)。節(jié)點(diǎn)使用自身的傳感器模塊感知區(qū)域內(nèi)的數(shù)據(jù),并發(fā)送給網(wǎng)關(guān),網(wǎng)關(guān)將數(shù)據(jù)發(fā)送給安全虛擬機(jī)處理后,通過(guò)服務(wù)虛擬機(jī)的發(fā)布模塊將數(shù)據(jù)發(fā)布,見圖4。

圖4 基于虛擬機(jī)的異構(gòu)環(huán)境下無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的工作方式
網(wǎng)關(guān)使用了Boa服務(wù)器軟件作為Web服務(wù)器程序作為網(wǎng)關(guān)的發(fā)布模塊,并在網(wǎng)關(guān)內(nèi)設(shè)計(jì)了用戶可以訪問(wèn)的數(shù)據(jù)發(fā)布頁(yè),詳見圖5。

圖5 通過(guò)流瀏覽器觀察到的感知溫度數(shù)據(jù)
同時(shí)也可以使用WEB服務(wù)器發(fā)布一定格式的數(shù)據(jù)信息,作為其他應(yīng)用使用無(wú)線傳感器網(wǎng)絡(luò)的數(shù)據(jù)接口。節(jié)點(diǎn)和網(wǎng)關(guān)之間的數(shù)據(jù)的傳輸使用RC5算法加密。網(wǎng)關(guān)在安全虛擬機(jī)內(nèi)對(duì)數(shù)據(jù)密文進(jìn)行解密和處理。之后通過(guò)安全數(shù)據(jù)通道將數(shù)據(jù)傳送給發(fā)布模塊,發(fā)布模塊通過(guò)Web服務(wù)器對(duì)用戶發(fā)布。實(shí)現(xiàn)中為了簡(jiǎn)便起見,沒有對(duì)網(wǎng)關(guān)和用戶之間的數(shù)據(jù)進(jìn)行加密。
為了解決異構(gòu)環(huán)境下無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的安全問(wèn)題,本文提出了一種基于虛擬機(jī)的異構(gòu)環(huán)境下的無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)結(jié)構(gòu)。該結(jié)構(gòu)運(yùn)用了虛擬機(jī)技術(shù)中隔離的重要特性,對(duì)無(wú)線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)中的各應(yīng)用模塊根據(jù)其安全特點(diǎn),將其分別部署在網(wǎng)關(guān)中的不同虛擬機(jī)內(nèi)。由于虛擬機(jī)技術(shù)的隔離特點(diǎn),只有在同一虛擬機(jī)內(nèi)的應(yīng)用程序才能對(duì)此虛擬機(jī)內(nèi)的資源進(jìn)行訪問(wèn)。通過(guò)這種方式,可以有效的避免網(wǎng)關(guān)中的非可信程序或者非可信用戶對(duì)網(wǎng)關(guān)中存儲(chǔ)的安全信息的訪問(wèn),有效的提高了網(wǎng)關(guān)系統(tǒng)的安全性。
[1]孫利民,李建中,陳渝等.無(wú)線傳感器網(wǎng)絡(luò)[M].清華大學(xué)出版社.2005.
[2]KA Emara,M Abdeen,A Gateway-based Framework for Transparent Interconnection between WSN and IP Network[J].EUROCON'09.2009.
[3]D Gao,Y Niu. Micro Sensor Routing Protocol in IPv6 Wireless Sensor Network[C]. IEEE Networking, Sensing and Control.2009.
[4]M El Barachi,A Kadiwal,R Glitho.The Design and Implementation of a Gateway for IP Multimedia Subsystem[C]. Wireless Sensor Networks Interworking.VTC Spring.2009.
[5]http://baike.baidu.com/view/1132.htm.