吳飛燕
(江西師范高等專科學(xué)校物聯(lián)網(wǎng)學(xué)院,江西 鷹潭335000)
物聯(lián)網(wǎng)云平臺是基于傳感器,ZigBee,Wi-Fi,NB-IoT,LoRa無線通信技術(shù),大數(shù)據(jù)技術(shù)和遠(yuǎn)程控制系統(tǒng)集成的平臺[1-2]。它具有實時數(shù)據(jù)收集、實時監(jiān)控、遠(yuǎn)程控制、設(shè)備上線、發(fā)布報警信息、決策控制執(zhí)行等特征功能。物聯(lián)網(wǎng)云平臺為高職院校物聯(lián)網(wǎng)應(yīng)用技術(shù)專業(yè)的教育、科研提供了一個開放的教學(xué)平臺,主要應(yīng)用于物聯(lián)網(wǎng)課程綜合實訓(xùn)和職業(yè)技能大賽的技術(shù)展示,讓學(xué)生能夠快速地了解物聯(lián)網(wǎng)行業(yè)的應(yīng)用并掌握物聯(lián)網(wǎng)相關(guān)技術(shù)。
隨著科學(xué)技術(shù)的快速發(fā)展,智能家居已成為服務(wù)社會的新興產(chǎn)業(yè)。那么如何便捷、高效地對家居設(shè)備和數(shù)據(jù)進(jìn)行智能化、科學(xué)化管理是當(dāng)前研究的熱點(diǎn)話題。文章對智能家居監(jiān)測物聯(lián)網(wǎng)云平臺進(jìn)行了研究,用戶可以使用臺式/筆記本電腦、手機(jī)、iPad等設(shè)備實時查看傳感器數(shù)據(jù),并自動或手動控制相關(guān)設(shè)備,從而可以輕松、高效地管理設(shè)備和數(shù)據(jù)。
智能家居監(jiān)測物聯(lián)網(wǎng)云平臺使用瀏覽器/服務(wù)器(B/S)MVC模式[3]和客戶端/服務(wù)器(C/S)MVVM模式[4]來處理不同模塊之間的數(shù)據(jù)傳輸。平臺的物理架構(gòu)包含4個區(qū)域,即設(shè)備區(qū)域、網(wǎng)關(guān)區(qū)域、云平臺區(qū)域和用戶使用區(qū)域,見圖1。
圖1 智能家居監(jiān)測物聯(lián)網(wǎng)云平臺物理架構(gòu)圖
設(shè)備區(qū)域主要是存放各種智能設(shè)備,例如傳感器、LED顯示屏、攝像頭、RFID等物聯(lián)網(wǎng)硬件設(shè)備;網(wǎng)關(guān)區(qū)域主要功能是解析CoAP/TCP/HTTP/MQTT多種協(xié)議[5-6],具備遠(yuǎn)程控制、數(shù)據(jù)傳輸?shù)裙δ?;平臺區(qū)域中每臺服務(wù)器的磁盤空間連接網(wǎng)絡(luò),運(yùn)用云計算和大數(shù)據(jù)處理技術(shù),將分散的存儲資源虛擬化為一個存儲設(shè)備,以分布式方式存儲數(shù)據(jù),該區(qū)域支持多種協(xié)議的多個網(wǎng)關(guān)設(shè)備接入,還具有終端移動云平臺物聯(lián)網(wǎng)應(yīng)用的能力;用戶使用區(qū)域通過手機(jī)、PC等設(shè)備進(jìn)行管理,支持用戶隨時隨地在線訪問。
在設(shè)備接入過程中,主要實現(xiàn)數(shù)據(jù)收集、終端設(shè)備與云平臺之間的連接以及數(shù)據(jù)交互。在完成開發(fā)人員注冊、項目創(chuàng)建、設(shè)備創(chuàng)建和傳感器創(chuàng)建之后,可以根據(jù)創(chuàng)建設(shè)備的協(xié)議類型選擇相應(yīng)的設(shè)備接入開發(fā)以及應(yīng)用開發(fā)。當(dāng)設(shè)備接入新大陸網(wǎng)關(guān)設(shè)備之后,在系統(tǒng)文件中修改連接云的IP地址和端口。通過應(yīng)用設(shè)計器在線拖拽設(shè)計和一鍵發(fā)布,使用瀏覽器訪問生成的統(tǒng)一網(wǎng)址。
安全認(rèn)證技術(shù)的主要作用是在直接網(wǎng)絡(luò)傳輸中防止核心密鑰泄露,并且該認(rèn)證是使用不可逆算法生成的簽名Token執(zhí)行身份驗證。若Token被盜取,則攻擊者無法通過Token反向獲得核心密鑰。Token認(rèn)證參數(shù)具有用戶定義的時間到期屬性,可以從時間維度上降低遭受攻擊/篡改的風(fēng)險。
Token由clientId,projectId,method,timestamp,sign 5個參數(shù)組成。clientId類型是string,表示客戶端ID,建議使用設(shè)備的序列號;projectId類型是int,表示項目ID,是平臺創(chuàng)建項目時的唯一ID,非設(shè)備ID;method類型是string,支持md5,sha1,sha256簽名方法;timestamp類型是string,表示訪問過期時間戳timestamp,當(dāng)訪問參數(shù)中的timestamp時間小于當(dāng)前時間時,平臺會認(rèn)為訪問參數(shù)過期從而拒絕該訪問;sign是string類型,表示簽名結(jié)果字符串signature。
上述的5個參數(shù)值之間通過"&"字符相接。在Token組成中,參數(shù)sign的生成算法為:需將clientId,projectId,method,timestamp 4個參數(shù)值按固定順序依次相連,然后接上由平臺申請的核心秘鑰SecretKey,使用method支持的簽名方法加簽。假設(shè)clientId=iotdevice,projectId=51800,method=sha256,timestamp=1567266623128,SecretKey=a4526687647040c4a89cc61deb526bde。那么使用生成的sign參數(shù)如下:sign=sha256("iotdevice51800 sha2561567266623128a4526687647040c4a89cc61deb 526bde")。Token="iotdevice&51800&sha256&15672 66623128&"+sign。
在TCP協(xié)議中加入SSL/TLS協(xié)議,為物聯(lián)網(wǎng)設(shè)備與云平臺之間的通信提供了安全保障。并且設(shè)備具有由云平臺提供的根證書,設(shè)備客戶端在使用端口8601建立TLS連接時,對NLEcloud執(zhí)行單向驗證。因此,對中間人的攻擊提出了更高的要求。
TCP協(xié)議接入以記錄的傳輸密鑰和設(shè)備標(biāo)識作為參數(shù),使用相應(yīng)的SDK函數(shù)來組織TCP握手連接報文,并將其發(fā)送給平臺以建立握手連接。若握手連接成功,云平臺則發(fā)送響應(yīng)成功消息,同時在設(shè)備管理中會看到一個在線標(biāo)記。
當(dāng)網(wǎng)關(guān)設(shè)備連接正確之后,顯示在線狀態(tài)。這時云平臺就可以接收終端設(shè)備的數(shù)據(jù),并將其直接存儲到數(shù)據(jù)庫和服務(wù)器中,實現(xiàn)24 h實時監(jiān)控。打開采集數(shù)據(jù)監(jiān)控頁面,點(diǎn)擊開發(fā)者中心—智能家居—設(shè)備管理—傳感器管理,能夠查看傳感器、執(zhí)行器、攝像頭以及其他配置信息。點(diǎn)擊編輯設(shè)備按鈕可以對當(dāng)前設(shè)備進(jìn)行編輯操作,若當(dāng)前設(shè)備處于在線狀態(tài),則不能對設(shè)備進(jìn)行編輯操作,需要將設(shè)備下線后,才能進(jìn)行編輯操作。點(diǎn)擊刪除設(shè)備按鈕可以刪除當(dāng)前選擇的設(shè)備,若當(dāng)前設(shè)備處于在線狀態(tài),那么需要將設(shè)備下線后才能刪除。
智能家居監(jiān)測物聯(lián)網(wǎng)云平臺采用B/S MVC模式、C/S MVVM模式開發(fā)。利用大數(shù)據(jù)技術(shù)、云計算虛擬化技術(shù)、分布式數(shù)據(jù)庫等技術(shù)整合軟硬件資源和存儲傳感數(shù)據(jù),實現(xiàn)傳感數(shù)據(jù)實時監(jiān)控,方便物聯(lián)網(wǎng)應(yīng)用的科學(xué)化、智能化統(tǒng)一管理,具有可推廣的應(yīng)用前景。