楊運平,吳成賓
(1.四川凱路威電子有限公司,四川 綿陽 621000;2.成都大學信息網(wǎng)絡中心,四川 成都 610106)
一種無線環(huán)境監(jiān)測數(shù)據(jù)采集與推送系統(tǒng)
楊運平1,吳成賓2
(1.四川凱路威電子有限公司,四川 綿陽 621000;2.成都大學信息網(wǎng)絡中心,四川 成都 610106)
針對自然災害易發(fā)區(qū)環(huán)境監(jiān)測的現(xiàn)狀,設計了一種無線環(huán)境監(jiān)測數(shù)據(jù)采集和推送系統(tǒng),給出了系統(tǒng)的總體結構以及各主要組成監(jiān)測單元的構成.一方面,結合傳感網(wǎng)節(jié)點資源緊張的特點,提出了基于消息隊列遙測傳輸協(xié)議的信息推送方案;另一方面,為了避免監(jiān)控中心下達的配置命令等指令數(shù)據(jù)被非法監(jiān)聽甚至纂改,改進了現(xiàn)有的洋蔥路由協(xié)議,在通信實體間預先建立安全的通信鏈路,從而確保了數(shù)據(jù)在各種通信實體間的安全傳輸.
環(huán)境監(jiān)測;無線傳感網(wǎng);推送;消息隊列遙測傳輸協(xié)議;洋蔥路由器
山洪、泥石流高發(fā)易發(fā)等復雜野外環(huán)境,隱藏著許多潛在的危險因素,給人民的生命與財產(chǎn)安全帶來巨大隱患.長期以來,人們試圖通過各種方法觀測、提前發(fā)現(xiàn)危險因素,盡量做到在災害發(fā)生前做出預警提示,從而降低災害帶來的損失.目前,對災害發(fā)生前的預警人們主要采用2種方案:一是借助簡單設備,定期或不定期觀測危險區(qū)域相關參數(shù)的變化情況,比如溫度、濕度、壓力、位移、雨量等,記錄保存到紙質材料或計算機中,并做同比和環(huán)比分析,從而預測出可能到來的災害概率,這種方法簡單易行,但是效率較低,不能作為一種常規(guī)通用的監(jiān)測手段;二是利用傳感器與互聯(lián)網(wǎng)手段來完成對自然災害頻發(fā)區(qū)域的早期監(jiān)測、數(shù)據(jù)分析與預警提示,這種方案大大提高了監(jiān)測與預測效率,但其缺點是布設通信線纜成本高昂,且后期維護不易,因此這種方案也不適宜大規(guī)模推廣應用.隨著技術的進步,通過引入無線傳感器網(wǎng)、移動通信網(wǎng)、互聯(lián)網(wǎng)及數(shù)據(jù)庫等技術[1-4],完全可以實現(xiàn)在復雜環(huán)境下的全天候原始監(jiān)測數(shù)據(jù)實時采集、傳輸與處理等一系列工作,從而取代老舊的監(jiān)測系統(tǒng)甚至人工系統(tǒng),其特別適合于通信基礎設施比較薄弱的環(huán)境.此外,由于原始的監(jiān)測數(shù)據(jù)保存在大型數(shù)據(jù)庫中,相關部門也可以通過互聯(lián)網(wǎng)遠程訪問被監(jiān)測對象,從而為正確決策提供大數(shù)據(jù)支持.基于此,本研究設計了一種無線環(huán)境監(jiān)測數(shù)據(jù)采集和推送系統(tǒng),給出了系統(tǒng)的總體結構以及各主要組成監(jiān)測單元的構成.
本研究所設計的無線環(huán)境監(jiān)測數(shù)據(jù)采集與推送系統(tǒng)總體結構如圖1所示.
圖1 系統(tǒng)總體結構示意圖
本系統(tǒng)的采集節(jié)點由數(shù)個傳感器、單片機、模數(shù)轉換電路、無線射頻芯片和電源等組成.傳感器采集的數(shù)據(jù)通過模數(shù)轉換電路轉換為數(shù)字信號后送給低功耗單片機處理單元,數(shù)據(jù)信號經(jīng)過處理后通過射頻電路和天線發(fā)送給收集器.采集節(jié)點和收集器之間可以雙向通信,即采集節(jié)點可以向收集器發(fā)送監(jiān)測到的數(shù)據(jù)信息,同時也可以通過收集器向采集節(jié)點發(fā)送操作指令.圖2為采集節(jié)點構造示意圖.
圖2 采集節(jié)點構造示意圖
收集器的主要功能是通過無線模塊接收監(jiān)控中心或其他收集器/采集節(jié)點傳來的數(shù)據(jù)或指令,并將接收到的數(shù)據(jù)通過3/4G無線信道傳送到監(jiān)控中心.收集器內置Flash存儲單元,當與監(jiān)控中心通信中斷時,可以暫存采集節(jié)點送來的原始數(shù)據(jù)到Flash中,待通信恢復后,再將Flash中的數(shù)據(jù)批量補發(fā)給監(jiān)控中心.同時,本系統(tǒng)收集器采用太陽能電池板或外接電源供電,保證了收集器可長時間無人值守工作.此外,收集器之間可以實現(xiàn)雙向通信,收集器通過運行ucLinux嵌入式操作系統(tǒng),配置高增益全向天線,以保證實時接收采集節(jié)點或其他收集器傳來的數(shù)據(jù).監(jiān)測區(qū)域可按一定距離布設多個收集器.圖3為收集器結構示意圖.
圖3 收集器結構示意圖
監(jiān)控中心主要實現(xiàn)2大功能:其一,接收收集器送來的原始采集數(shù)據(jù)并將其存入數(shù)據(jù)庫,然后根據(jù)一定的智能算法與歷史數(shù)據(jù)做同比、環(huán)比等對比分析,判斷是否出現(xiàn)異常,若有,則立即向相關部門和有關責任人員發(fā)出語音或短信通知報警,并在大屏幕上實時繪出被監(jiān)測對象的坐標、高程、狀態(tài)與監(jiān)測指標等信息變化圖,從而為環(huán)境災害應急響應提供較為可靠的數(shù)據(jù)依據(jù)和充裕的時間保證;其二,向下轄的各收集器推送各種配置和命令數(shù)據(jù),例如配置不同收集器的數(shù)據(jù)上報頻率,推送給收集器要求其主動上報某一時間段內的原始監(jiān)測數(shù)據(jù),收集器時鐘校準,采集節(jié)點邏輯分組調整等命令.收集器同時負責與采集節(jié)點的雙向通信.圖4為系統(tǒng)監(jiān)控中心組成示意圖.
圖4 系統(tǒng)監(jiān)控中心組成示意圖
本系統(tǒng)定義監(jiān)控中心、收集器與采集節(jié)點之間的數(shù)據(jù)交換命令格式為:幀頭+報文數(shù)據(jù)內容(最大65535+8字節(jié))+幀尾.
幀頭(SOH)以0x01表示,幀尾(EOH)以0x02表示,位于0x01與0x02之間的數(shù)據(jù)表示通過收集器傳來的采集節(jié)點監(jiān)測到的原始數(shù)據(jù)或者監(jiān)控中心發(fā)給收集器的配置或命令報文.
為了方便實際報文包的組包和解包,定義報文數(shù)據(jù)內容格式如表1所示:
表1 報文內容字段格式(長度單位:字節(jié))
表1中,Src或Dest,表示監(jiān)控中心或采集器編號,0表示監(jiān)控中心,1~255表示采集器;Node,表示采集節(jié)點,取值范圍0~255,其中0表示本條命令僅涉及監(jiān)控中心和采集器之間通信;ID,命令編號,支持多達256條不同種類的命令;Len,指凈荷數(shù)據(jù)總長度,以字節(jié)為單位,這里的凈荷數(shù)據(jù)是指經(jīng)Zlib壓縮后的數(shù)據(jù);Data,凈荷數(shù)據(jù),包括命令數(shù)據(jù)、響應數(shù)據(jù)、主動上報數(shù)據(jù)和監(jiān)測數(shù)據(jù);Checksum,從Src字段(含)到校驗前一個字節(jié)(含)的累加和.
監(jiān)控中心通過信息推送技術手段將數(shù)據(jù)或配置指令送達收集器,并采用MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)協(xié)議[5].MQTT協(xié)議是IBM開發(fā)的一個即時通訊協(xié)議,是為大量計算能力有限,且工作在低帶寬、不可靠的網(wǎng)絡的遠程傳感器和控制設備通訊而設計的協(xié)議,采用輕量級發(fā)布和訂閱消息傳輸機制,幾乎支持所有平臺,可以把所有聯(lián)網(wǎng)物品和外部連接起來,它具有以下主要的幾項特性:使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,解除應用程序耦合;對負載內容屏蔽的消息傳輸;使用TCP/IP提供網(wǎng)絡連接.
此外,MQTT協(xié)議采用小型傳輸,開銷很小,協(xié)議交換最小化,以降低網(wǎng)絡流量;使用Last Will和Testament特性通知有關各方客戶端異常中斷的機制.基于MQTT協(xié)議的上述特點,本系統(tǒng)決定采用此協(xié)議,同時,監(jiān)控中心采用MQTT協(xié)議架構把命令、控制、配置等信息推送給各收集節(jié)點,并隨時接收收集節(jié)點采集到的現(xiàn)場環(huán)境監(jiān)測數(shù)據(jù).
監(jiān)控中心與與各收集器(以下簡寫為C)之間通過公眾信道連接,攻擊者通過運用竊聽、流量分析等多種手段不難獲得或推斷出一些有價值的信息,包括通信雙方的真實IP地址、ID等敏感信息,進而實施惡意破壞行為.因此,在進行數(shù)據(jù)交換前,必須首先建立安全可信的鏈路.匿名通信技術可以力爭避免攻擊者探知通信流的真實來源及目的地,它隱藏了通信對象間的真實關系,故能較有效地對抗竊聽、跟蹤等攻擊手段.Tor[6](The onion router,洋蔥路由器技術)是一種有效的匿名通信技術,Tor由洋蔥代理(Onion Proxy,OP)和一組洋蔥路由器(Onion Router,OR)組成,在通信前,OP通過選擇OR建立一條從源到目的地的安全鏈路,以后的所有數(shù)據(jù)都沿這條鏈路傳輸.Tor支持基于證書的公鑰密碼體制,但依賴于可信的第三方提供證書服務與管理.本系統(tǒng)通過簡化文獻[7]的方法,設計了一種Tor匿名通信系統(tǒng)技術,即可滿足Tor系統(tǒng)中的用戶認證問題,又能在2個洋蔥路由器間實現(xiàn)密鑰協(xié)商,同時免去了原有Tor系統(tǒng)中使用證書的復雜性問題.為敘述方便,假定系統(tǒng)中只有2個洋蔥路由器,其具體實現(xiàn)步驟為:
1)系統(tǒng)初始化.目錄服務器DS和登記在其上的多個洋蔥路由器(Tor1,Tor2,…,Torn)都向密鑰生成中心注冊,得到了各自的公鑰和私鑰;
2)C上的OP向目錄服務器DS發(fā)出問詢洋蔥路由器信息的請求,DS收到請求后,隨機選取2個洋蔥路由器的信息返回給OP;
3)匿名傳輸路徑的建立過程.假設OP的私鑰為SKOP,公鑰為PKOP;洋蔥路由器代理OR的私鑰為SKOR,公鑰為PKOR;洋蔥路由器 ORi的私鑰為SKORi,公鑰為 PKORi,其中 i=1,2.
(1)OP與第一個洋蔥路由器OR1建立連接的過程.
①OP選取隨機數(shù)a屬于RZq,計算WA=aP,OP創(chuàng)建Create數(shù)據(jù)包,包含第一個序列號C1以及WA,PKOP發(fā)送給 OR1.
②OR1收到OP發(fā)送來的數(shù)據(jù)后,驗證OP公鑰的合法性.如合法,則選取隨機數(shù)b屬于RZq,計算TB=bP并將TB發(fā)送給OR1,隨后OR1計算會話密鑰 KOP,OR1.OR1向 OP 回復一個 Created 數(shù)據(jù)包,包含虛電路序列號C1以及它所計算出來的會話密鑰KOP,OR1的散列值 H(KOP,OR1).
③OP收到OR1發(fā)送來的數(shù)據(jù)后,驗證OR1的公鑰是否合法,若驗證通過,計算會話密鑰KOP,OR1,計算共享密鑰的散列值,并與從OR1收到的共享密鑰的散列值做對比,如果相同則第一個鏈路建立成功,否則返回出錯信息.
(2)OP通過第一個洋蔥路由器OR1跟第二個洋蔥路由器OR2建立連接的過程.
①OP選取隨機數(shù)c屬于RZq,計算WA=cP.并把WA,PKOP和想要連接的第二個洋蔥路由OR2的地址組合成一個Create數(shù)據(jù)包,用和第一個洋蔥路由協(xié)商好的共享密鑰KOP,OR1加密后放入數(shù)據(jù)包中發(fā)送給 OR1.
②OR1用共享密鑰KOP,OR1解開加密的數(shù)據(jù)包,并把Create數(shù)據(jù)包發(fā)送給OR2;OR2收到Create數(shù)據(jù)包中的數(shù)據(jù),用前述類似方法,隨機數(shù)d屬于RZq,計算 TB=dP,并計算它和 OP的會話密鑰KOP,OR2.OR2向 OR1回復一個 Created 數(shù)據(jù)包,包含虛電路序列號C2以及TB,共享密鑰KOP,OR2的散列值 H(KOP,OR2).
③OR1把從OR2收到的Create數(shù)據(jù)包用它與OP之間的共享密鑰KOP,OR1加密后發(fā)送給OP.
④OP收到OR2的數(shù)據(jù)包后用OR1的共享密鑰KOP,OR1解開,并用同樣的方法驗證OR2的公鑰,并計算它與OR2之間的共享密鑰KOP,OR2及其散列值H(KOP,OR2)并與從OR2收到的散列值做對比,如果相同則建立第二個鏈路成功,否則返回錯誤信息.
4)從本地服務器加密之后發(fā)送出來的數(shù)據(jù)在經(jīng)過逐層解密后就是明文信息,可正常加載HTTP信息.
由于建立了包含2個洋蔥路由器的虛電路,C發(fā)出去的數(shù)據(jù)首先用OR2的公鑰密鑰加密,然后用OR1的公鑰密鑰加密.OR1在收到數(shù)據(jù)后,用其私鑰解密,驗證完整性后,把數(shù)據(jù)發(fā)給 OR2.OR2收到OR1的數(shù)據(jù)后,用其私鑰解密,得到明文數(shù)據(jù),至此安全的HTTP連接成功建立.
本研究設計了一種無線環(huán)境監(jiān)測數(shù)據(jù)采集和推送系統(tǒng),并給出了消息數(shù)據(jù)格式,確保監(jiān)控中心、收集器與采集器3類對象溝通無障礙.該系統(tǒng)采用基于無證書公鑰密碼體制的洋蔥路由協(xié)議建立安全的HTTP連接,確保數(shù)據(jù)傳輸?shù)陌踩裕⑨槦o線傳感器網(wǎng)絡資源緊張的特點,提出了基于MQTT輕量級協(xié)議的信息推送機制.下一步的工作將對該系統(tǒng)做進一步的節(jié)能和優(yōu)化工作,解決諸如同一分組中的部分采集節(jié)點電能耗費太快,導致節(jié)點過早死亡,以及由于樣本減少,致使采集到的數(shù)據(jù)濾波結果不夠準確.畸變較多等問題,進一步提高本系統(tǒng)對復雜自然環(huán)境的適應能力.
[1]黃建清,王衛(wèi)星,姜晟,等.基于無線傳感器網(wǎng)絡的水產(chǎn)養(yǎng)殖水質監(jiān)測系統(tǒng)開發(fā)與試驗[J].農(nóng)業(yè)工程學報,2013,29(4):183 -190.
[2]付春輝.基于uClinux操作系統(tǒng)的聲光信號后處理軟件設計與實現(xiàn)[D].成都:電子科技大學,2013.
[3]林澍,劉曦,林怡琛,等.一種Ku頻段全向高增益天線設計[J].航天器工程,2012,23(6):103 -107.
[4]楊文婷.基于HTTP長連接的消息推送平臺的研究與實現(xiàn)[D].武漢:華中科技大學,2012.
[5]任亨,馬躍,楊海波.基于MQTT協(xié)議的消息推送服務器[J].計算機系統(tǒng)應用,2014,23(3):77 -82.
[6]楊元原,馬文平,白曉峰,等.一種混合的Tor匿名通信系統(tǒng)[J].計算機應用研究,2010,18(10):141 -144.
Acquisition and Push System of Wireless Environmental Monitoring Data
YANG Yunping1,WU Chengbin2
(1.Sichuan Kiloway Electronics Co.,Ltd.,Mianyang 621000,China;2.Information Network Center,Chengdu University,Chengdu 610106,China)
In view of the current situation of environmental monitoring in the natural disaster-prone areas,this paper designs a kind of wireless environment monitoring data acquisition and push system,including the architecture of the system and main components of monitoring units.On the one hand,considering the limited resources of sensor network nodes,this paper proposes an information pushing scheme based on the message queue telemetry transmission(MQTT)protocol.On the other hand,in order to avoid the illegal eavesdropping or modifying of instruction data such as configuration command issued by monitoring center,this paper improves the onion routing protocol to pre-establish secure communication link between communication entities for ensuring secure transmission of data.
environmental monitoring;wireless sensor network;push;MQTT;onion router
X830.3;TP274+.2
A
1004-5422(2015)01-0059-04
2015-01-14.
四川省科技廳科技支撐計劃(2014SZ0107).
楊運平(1962—),男,博士后,副教授,從事計算機物聯(lián)網(wǎng)技術研究.