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

圖1 基于虛擬機的異構環境下無線傳感器網絡網關結構
在基于虛擬機技術的無線傳感器網絡網關的數據交互方式中,有以下基本安全要求:
(1) 在不泄露用戶密鑰(口令)前提下完成用戶的認證;
(2) 在不泄露節點相關密鑰的前提下完成對節點身份或信息的認證;
(3) 完成數據格式的轉換,并保證明文不在網關的非安全部分出現。
參照圖 2,本方案中當用戶對無線傳感器網絡的數據獲取時的數據交互方法包括以下部分。

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

圖3 基于虛擬機的無線傳感器網絡網關結構對秘密信息的保護
針對本文中提出的網關方案,以相關工作為基礎,對其作出了功能的實現。在實現中選擇了 XEN虛擬機監視器。選擇了Linux系統作為運行的虛擬機。
在實現中網關服務虛擬機內的節點管理模塊,通過輪詢方式,收集節點的數據。節點使用自身的傳感器模塊感知區域內的數據,并發送給網關,網關將數據發送給安全虛擬機處理后,通過服務虛擬機的發布模塊將數據發布,見圖4。

圖4 基于虛擬機的異構環境下無線傳感器網絡網關的工作方式
網關使用了Boa服務器軟件作為Web服務器程序作為網關的發布模塊,并在網關內設計了用戶可以訪問的數據發布頁,詳見圖5。

圖5 通過流瀏覽器觀察到的感知溫度數據
同時也可以使用WEB服務器發布一定格式的數據信息,作為其他應用使用無線傳感器網絡的數據接口。節點和網關之間的數據的傳輸使用RC5算法加密。網關在安全虛擬機內對數據密文進行解密和處理。之后通過安全數據通道將數據傳送給發布模塊,發布模塊通過Web服務器對用戶發布。實現中為了簡便起見,沒有對網關和用戶之間的數據進行加密。
為了解決異構環境下無線傳感器網絡網關的安全問題,本文提出了一種基于虛擬機的異構環境下的無線傳感器網絡網關結構。該結構運用了虛擬機技術中隔離的重要特性,對無線傳感器網絡網關中的各應用模塊根據其安全特點,將其分別部署在網關中的不同虛擬機內。由于虛擬機技術的隔離特點,只有在同一虛擬機內的應用程序才能對此虛擬機內的資源進行訪問。通過這種方式,可以有效的避免網關中的非可信程序或者非可信用戶對網關中存儲的安全信息的訪問,有效的提高了網關系統的安全性。
[1]孫利民,李建中,陳渝等.無線傳感器網絡[M].清華大學出版社.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.