裴慶祺 寧奔 吳洋 楊亮 尹浩 唐宏
1中國電子設(shè)備系統(tǒng)工程公司研究所 北京 100141 2西安電子科技大學(xué)計算機(jī)網(wǎng)絡(luò)與信息安全教育部重點實驗室 陜西 710071
無線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān),通常是指擁有多種網(wǎng)絡(luò)通信接口,既可以和無線傳感器網(wǎng)絡(luò)通信又可以和其他網(wǎng)絡(luò)的網(wǎng)絡(luò)設(shè)備進(jìn)行通信。通常網(wǎng)關(guān)具有比一般節(jié)點強(qiáng)得多的計算能力、通信能力和比一般節(jié)點大得多的存儲空間。
在異構(gòu)環(huán)境下無線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān)更加復(fù)雜性,使網(wǎng)關(guān)的安全可能面臨更多的挑戰(zhàn)。而網(wǎng)關(guān)的不安全很可能導(dǎo)致通過網(wǎng)關(guān)的秘密信息泄露,從而讓整個無線傳感器網(wǎng)絡(luò)的安全面臨重大威脅。本文針對異構(gòu)環(huán)境下無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)可能出現(xiàn)的安全問題,提出了一種基于虛擬機(jī)技術(shù)的無線傳感器網(wǎng)絡(luò)安全網(wǎng)關(guān)的新型設(shè)計,有助于解決異構(gòu)環(huán)境下的無線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān)安全問題。
在這一方案中,我們使用了虛擬機(jī)技術(shù)提高網(wǎng)關(guān)的安全。虛擬機(jī)是指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個完全隔離環(huán)境中的完整計算機(jī)系統(tǒng)。使用虛擬機(jī)技術(shù),可以通過在現(xiàn)有平臺上添加一層虛擬機(jī)監(jiān)視器而實現(xiàn)對系統(tǒng)的虛擬化。虛擬機(jī)技術(shù)通過將不同的應(yīng)用運(yùn)行在不同的虛擬機(jī)上,可以避免不同應(yīng)用程序之間的互相干擾,一個應(yīng)用不會影響到其它虛擬機(jī)內(nèi)的應(yīng)用。這種由虛擬機(jī)技術(shù)實現(xiàn)的各個應(yīng)用之間的完全隔離,有著重要的意義,本文中也將根據(jù)這一特性設(shè)計異構(gòu)環(huán)境下無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的設(shè)計方案。
在無線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān)中,不同功能在網(wǎng)關(guān)中通過功能模塊的方式實現(xiàn)。我們將各功能模塊根據(jù)其安全性分為安全的和非安全的。參照圖 1,在無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的設(shè)計中使用了虛擬機(jī)技術(shù),將無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)中的安全模塊和非安全模塊通過虛擬機(jī)方式隔離,以提高網(wǎng)關(guān)的安全性。
在此方案中,無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的硬件層上搭建有虛擬機(jī)監(jiān)視器,在虛擬機(jī)監(jiān)視器上搭建有兩個不同虛擬機(jī),服務(wù)虛擬機(jī)和安全虛擬機(jī)。兩個虛擬機(jī)內(nèi)部包括各自的功能模塊。其中安全虛擬機(jī)內(nèi)運(yùn)行安全的功能模塊,服務(wù)虛擬機(jī)中運(yùn)行非安全的模塊,兩個虛擬機(jī)之間相互隔離,僅能通過虛擬機(jī)監(jiān)視器內(nèi)的安全數(shù)據(jù)通道交互受限的數(shù)據(jù)。
服務(wù)虛擬機(jī),主要負(fù)責(zé)不同網(wǎng)絡(luò)的接口,用戶和感知節(jié)點的管理以及信息的發(fā)布,它是用戶直接訪問的虛擬機(jī),擁有接入網(wǎng)絡(luò)和無線傳感器網(wǎng)絡(luò)的接口。安全虛擬機(jī),主要負(fù)責(zé)密鑰和數(shù)據(jù)明文的管理和儲存,同時對服務(wù)虛擬機(jī)中的模塊功能進(jìn)行支持,它是禁止用戶直接訪問的虛擬機(jī)。
圖1 基于虛擬機(jī)的異構(gòu)環(huán)境下無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)結(jié)構(gòu)
在基于虛擬機(jī)技術(shù)的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的數(shù)據(jù)交互方式中,有以下基本安全要求:
(1) 在不泄露用戶密鑰(口令)前提下完成用戶的認(rèn)證;
(2) 在不泄露節(jié)點相關(guān)密鑰的前提下完成對節(jié)點身份或信息的認(rèn)證;
(3) 完成數(shù)據(jù)格式的轉(zhuǎn)換,并保證明文不在網(wǎng)關(guān)的非安全部分出現(xiàn)。
參照圖 2,本方案中當(dāng)用戶對無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)獲取時的數(shù)據(jù)交互方法包括以下部分。
圖2 基于虛擬機(jī)的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的數(shù)據(jù)交換方法
1.2.1 用戶的認(rèn)證接入和信息獲取過程
步驟1:當(dāng)用戶試圖接入無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)獲取信息時,需要向無線傳感器網(wǎng)絡(luò)的網(wǎng)關(guān)認(rèn)證自己。不同網(wǎng)絡(luò)的用戶通過多網(wǎng)絡(luò)接口模塊接入網(wǎng)關(guān),通過適當(dāng)?shù)恼J(rèn)證協(xié)議進(jìn)行用戶認(rèn)證。在實際的認(rèn)證過程中,用戶實際是向發(fā)布模塊發(fā)送認(rèn)證信息,發(fā)布模塊將認(rèn)證信息發(fā)送給用戶管理模塊,用戶管理模塊通過安全數(shù)據(jù)通道將認(rèn)證信息發(fā)送給安全虛擬機(jī)中的認(rèn)證模塊,認(rèn)證模塊在安全虛擬機(jī)內(nèi)完成認(rèn)證算法后將結(jié)果返回給用戶管理模塊。用戶管理模塊根據(jù)結(jié)果判斷用戶的身份uID是否認(rèn)證成功。
步驟2:信息管理模塊收到用戶的指令后,首先存儲用戶身份uID和用戶所在網(wǎng)絡(luò)信息field組成的信息元組(uID,field)并將指令中的數(shù)據(jù)要求和用戶身份uID通過安全數(shù)據(jù)通道發(fā)送給安全虛擬機(jī)的判定模塊。
信息管理模塊可以根據(jù)配置的更新時間向判斷模塊發(fā)送自動更新要求,以保證網(wǎng)關(guān)對感知區(qū)域內(nèi)的節(jié)點數(shù)據(jù)的定時更新收集。
步驟3:判定模塊產(chǎn)生任務(wù)通知。整個過程中對數(shù)據(jù)發(fā)布的觸發(fā)是通過任務(wù)通知方式產(chǎn)生的。任務(wù)通知有以下3種方式,用戶數(shù)據(jù)要求、更新要求和警報。用戶數(shù)據(jù)要求來自于上一步驟中的信息處理模塊,當(dāng)有用戶對數(shù)據(jù)有要求時產(chǎn)生;更新為了的更新網(wǎng)關(guān)中的感知數(shù)據(jù),通過用戶指令或者定時產(chǎn)生;警報要求來自信息處理模塊,當(dāng)節(jié)點對某些敏感信息感知后發(fā)現(xiàn)超過門限后產(chǎn)生警報。
④縣級建設(shè)旱情(墑情)信息自動采集站,負(fù)責(zé)全縣旱情信息的收集統(tǒng)計和灌溉決策,并按規(guī)定格式傳輸和上報。固定墑情信息采集站按每個示范鄉(xiāng)鎮(zhèn)1處布設(shè)。
上述3種觸發(fā)條件出現(xiàn)后,判定模塊產(chǎn)生相應(yīng)的任務(wù)通知。當(dāng)收到來自信息處理模塊的更新要求時,向感知節(jié)點管理模塊發(fā)送更新要求,進(jìn)行無線傳感器網(wǎng)絡(luò)感知數(shù)據(jù)的更新。當(dāng)收到用戶數(shù)據(jù)要求或者警報要求時,判定模塊向加解密模塊發(fā)送數(shù)據(jù)更新要求或警報要求的用戶的身份uID,并通知其對感知數(shù)據(jù)進(jìn)行處理。
步驟4:安全虛擬機(jī)內(nèi)的加解密模塊收到來自判定模塊的通知后,根據(jù)涉及的用戶身份uID在密鑰管理模塊中查找到與用戶身份uID相應(yīng)的安全要求和權(quán)限。根據(jù)用戶權(quán)限,如需將數(shù)據(jù)加密,則使用相應(yīng)的用戶通信密鑰utK對用戶要求的權(quán)感知數(shù)據(jù)進(jìn)行加密,將加密后的數(shù)據(jù)和用戶身份uID通過安全數(shù)據(jù)通道發(fā)送給信息管理模塊。如果感知信息是非私密保護(hù)的信息,并且用戶的安全要求也不需要對信息加密,則直接將需要的消息明文和用戶身份uID通過安全數(shù)據(jù)通道發(fā)送給信息管理模塊。
在這一部分中,由于用戶所在網(wǎng)絡(luò)不同,用戶使用的密碼算法也可能不同,加解密模塊可以根據(jù)用戶的信息選擇需要的算法進(jìn)行處理。
步驟5:發(fā)布模塊發(fā)布來自安全虛擬機(jī)內(nèi)的處理過的數(shù)據(jù)。信息管理模塊在收到來自安全虛擬機(jī)的數(shù)據(jù)密文和對應(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ù)的的更新過程
感知數(shù)據(jù)的更新有兩種觸發(fā)條件,包括:(1)感知節(jié)點管理模塊向節(jié)點發(fā)布更新要求;(2)感知節(jié)點感知到區(qū)域內(nèi)事件發(fā)生。當(dāng)以上兩種情況發(fā)生時,感知節(jié)點將對區(qū)域內(nèi)的數(shù)據(jù)進(jìn)行感知,并將數(shù)據(jù)通過無線傳感器網(wǎng)絡(luò)內(nèi)的多跳路由方式發(fā)送給網(wǎng)關(guān)。當(dāng)網(wǎng)關(guān)收到節(jié)點發(fā)送來的數(shù)據(jù)信息時,通過以下步驟進(jìn)行數(shù)據(jù)更新。
步驟1:節(jié)點管理模塊將收到的感知節(jié)點身份nID和使用相關(guān)加密算法的數(shù)據(jù)密文通過安全數(shù)據(jù)通道發(fā)送給安全虛擬機(jī)。本步驟中默認(rèn)傳感器網(wǎng)絡(luò)中的節(jié)點與網(wǎng)關(guān)已經(jīng)完成相互認(rèn)證,具體的認(rèn)證方式在本文中不進(jìn)行深入探討。但是此處的對于節(jié)點的認(rèn)證也使用用戶認(rèn)證相類似的方式,即認(rèn)證算法在安全虛擬機(jī)內(nèi)完成,將結(jié)果返回節(jié)點管理模塊。
步驟2:安全虛擬機(jī)內(nèi)的加解密模塊在收到來自感知節(jié)點管理模塊的數(shù)據(jù)密文后,根據(jù)感知節(jié)點身份nID在密鑰管理模塊中查找到相應(yīng)的感知節(jié)點通信密鑰ntK,使用ntK對數(shù)據(jù)密文進(jìn)行解密,并將解密后得到的數(shù)據(jù)明文發(fā)送給信息處理模塊。
步驟3:信息處理模塊對數(shù)據(jù)進(jìn)行處理,并判斷其中是否有來自節(jié)點的警報信息。如果有警報信息,則發(fā)送警報要求給判定模塊,將處理后的數(shù)據(jù)暫存在安全虛擬機(jī)中。如果沒有警報信息,則不發(fā)送警報要求,將處理后的數(shù)據(jù)暫存在安全虛擬機(jī)中。數(shù)據(jù)更新完成,當(dāng)有判定模塊的任務(wù)通知到達(dá)時,根據(jù)具體情況將這些數(shù)據(jù)信息發(fā)布給用戶。
密鑰和私密明文泄露是無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)面臨的最重要威脅。當(dāng)無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)接入到網(wǎng)絡(luò)環(huán)境復(fù)雜的Internet或無線通信網(wǎng)絡(luò),由于前文提到的安全威脅網(wǎng)關(guān)可能發(fā)生秘密信息的泄露問題。為了防止秘密信息的泄露,方案限制了不可信的應(yīng)用程序?qū)ι婕鞍踩拿荑€、明文和用戶信息的存儲介質(zhì)的訪問。
在上述設(shè)計方案中,使用了虛擬機(jī)技術(shù),將不同安全要求的程序隔離在兩個不同的虛擬機(jī)內(nèi)。如圖3所示,網(wǎng)關(guān)設(shè)計方案可以有效的防止秘密數(shù)據(jù)在網(wǎng)關(guān)處的泄露。通過不同可信程度的功能模塊隔離,保證安全虛擬機(jī)內(nèi)只有必要的可信的安全相關(guān)的功能模塊,同時隔離安全虛擬機(jī)的對外接口。當(dāng)可能攻擊發(fā)生時,由于安全虛擬機(jī)內(nèi)沒有接入網(wǎng)絡(luò)的對外接口,同時其中的程序也都是可信的,因此惡意程序只可能在服務(wù)虛擬機(jī)內(nèi)出現(xiàn)。由于隔離特性,虛擬機(jī)監(jiān)視器將存儲空間等資源單獨的分配兩個虛擬機(jī)。惡意程序無法訪問到與服務(wù)虛擬機(jī)完全隔離的安全虛擬機(jī)內(nèi)存儲介質(zhì)的內(nèi)容。
由于網(wǎng)關(guān)功能的需要,在兩個虛擬機(jī)之間搭設(shè)了一條安全數(shù)據(jù)通道,以使得兩個虛擬機(jī)間的一些信息可以通過這一通道進(jìn)行交互。但是由于這一通道是受限的,僅能通過它傳輸之前約定好的內(nèi)容,如密文,指令等,惡意程序無法通過這一受限通道訪問到安全虛擬機(jī)內(nèi)的密鑰等重要信息。
在方案中,信息的加解密、信息處理、用戶和節(jié)點的認(rèn)證等涉及重要私密信息的功能,其運(yùn)算或?qū)嵤┻^程都在安全虛擬機(jī)內(nèi)完成,僅將結(jié)果返回給服務(wù)虛擬機(jī)。在這些過程中需要的秘密信息都不會出現(xiàn)在服務(wù)虛擬機(jī)內(nèi)。無法在服務(wù)虛擬機(jī)端獲得這些秘密信息。
圖3 基于虛擬機(jī)的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)結(jié)構(gòu)對秘密信息的保護(hù)
針對本文中提出的網(wǎng)關(guān)方案,以相關(guān)工作為基礎(chǔ),對其作出了功能的實現(xiàn)。在實現(xiàn)中選擇了 XEN虛擬機(jī)監(jiān)視器。選擇了Linux系統(tǒng)作為運(yùn)行的虛擬機(jī)。
在實現(xiàn)中網(wǎng)關(guān)服務(wù)虛擬機(jī)內(nèi)的節(jié)點管理模塊,通過輪詢方式,收集節(jié)點的數(shù)據(jù)。節(jié)點使用自身的傳感器模塊感知區(qū)域內(nèi)的數(shù)據(jù),并發(fā)送給網(wǎng)關(guān),網(wǎng)關(guān)將數(shù)據(jù)發(fā)送給安全虛擬機(jī)處理后,通過服務(wù)虛擬機(jī)的發(fā)布模塊將數(shù)據(jù)發(fā)布,見圖4。
圖4 基于虛擬機(jī)的異構(gòu)環(huán)境下無線傳感器網(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è)計了用戶可以訪問的數(shù)據(jù)發(fā)布頁,詳見圖5。
圖5 通過流瀏覽器觀察到的感知溫度數(shù)據(jù)
同時也可以使用WEB服務(wù)器發(fā)布一定格式的數(shù)據(jù)信息,作為其他應(yīng)用使用無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)接口。節(jié)點和網(wǎng)關(guān)之間的數(shù)據(jù)的傳輸使用RC5算法加密。網(wǎng)關(guān)在安全虛擬機(jī)內(nèi)對數(shù)據(jù)密文進(jìn)行解密和處理。之后通過安全數(shù)據(jù)通道將數(shù)據(jù)傳送給發(fā)布模塊,發(fā)布模塊通過Web服務(wù)器對用戶發(fā)布。實現(xiàn)中為了簡便起見,沒有對網(wǎng)關(guān)和用戶之間的數(shù)據(jù)進(jìn)行加密。
為了解決異構(gòu)環(huán)境下無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)的安全問題,本文提出了一種基于虛擬機(jī)的異構(gòu)環(huán)境下的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)結(jié)構(gòu)。該結(jié)構(gòu)運(yùn)用了虛擬機(jī)技術(shù)中隔離的重要特性,對無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)中的各應(yīng)用模塊根據(jù)其安全特點,將其分別部署在網(wǎng)關(guān)中的不同虛擬機(jī)內(nèi)。由于虛擬機(jī)技術(shù)的隔離特點,只有在同一虛擬機(jī)內(nèi)的應(yīng)用程序才能對此虛擬機(jī)內(nèi)的資源進(jìn)行訪問。通過這種方式,可以有效的避免網(wǎng)關(guān)中的非可信程序或者非可信用戶對網(wǎng)關(guān)中存儲的安全信息的訪問,有效的提高了網(wǎng)關(guān)系統(tǒng)的安全性。
[1]孫利民,李建中,陳渝等.無線傳感器網(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.