嚴彥歡
(上海領路人照明工程有限公司 上海市 201101)
消息隊列遙測傳輸協議,簡稱MQTT協議,是一種新型物聯網傳輸協議,與請求/應答(request/response)這種同步模式不同的是,MQTT協議將傳統的請求/應答方進行了解耦,消息的發送方(生產者)和接收方(訂閱者)無需進行直連通信,而是由MQTT的代理方(broker)在中間進行消息的轉發。broker的主要職責是接受發布者發布的所有消息,并將其過濾后分發給不同的消息訂閱者。這樣的傳輸方式非常適合一些復雜的物聯網應用場景。本文就MQTT相關技術及其應用進行初步探討和研究。
現如今,物聯網應用已經深入到現代生活的方方面面。從日常生活中的哈羅單車,互聯網汽車再到智慧家居以及工業自動化等領域,各種不同類型的設備都在全球范圍內實現了數字連接和信息共享。我國在物聯網行業起步雖晚,但是發展速度卻很驚人。
筆者所屬公司位于上海市松江漕河涇高新技術開發區,公司擁有專利50余項,擁有城市及道路照明一級資質、照明工程設計專項甲級,“雙甲”資質,是國內領先的智慧城市與文旅夜游燈光設計施工的高新技術企業。近年來,在5G商用、新基建、智慧城市等國家戰略的推動下,公司以景觀照明為基礎,以智慧路燈為切入點,在亮化工程、智慧社區、智慧停車場等多個領域展開技術開發和應用推廣,聚集了在智慧城市建設中承接重大項目的優勢資源和成功經驗。公司將依托優秀的人才團隊、強大的運作實力及完善的服務保障,致力于為客戶提供高標準解決方案,打造高效、和諧、人文的智慧城市,與合作伙伴攜手共同創造智慧生活,成為優秀的合伙人。
在這樣的大環境下,我司堅持從傳統照明亮化工程,向物聯網亮化燈光行業轉型,堅持兩條腿走路,開拓新的更廣闊的市場空間。力爭在物聯網亮化燈光領域先人一步,搶占先機,發揮自身傳統照明行業領導者的優勢基礎上,再上新的臺階。公司短期將把資源向智慧研發部門傾斜,以傳統亮化燈光項目為依托,在此基礎上定制開發一套基于互聯網思維的云智慧管控平臺。通過此平臺以期達到能夠同時控制燈光行業的強電和弱電設備,并借助于先進的消息隊列遙測傳輸協議等技術,實現遠程精準控制亮化燈光設備。同時,著力突破物聯網與傳統亮化燈光相結合產生的各種潛在的風險點,比如:如何避免黑客惡意入侵燈光控制系統,播放違規的亮化燈光節目;如何保證遠距離傳輸指令時,播放指令不被惡意竊取并篡改;如何避免操作人員誤操作導致重要的節目數據丟失等風險。
《探路者智慧城市云平臺》項目正是在這樣的背景下提出并立項的,主要目標是為了在與物聯網密切相關的“亮化文旅行業”搶占先機,利用筆者所屬公司在亮化行業的先導地位,將傳統照明燈控和亮化行業的各類設施,與云中心遠程對接,旨在構建一套基于物聯網思維下的智慧城市云平臺。
十四五規劃綱要中多次提到“物聯網”,重點發展的領域有:推動傳感器、高精度定位等技術創新、培育車聯網、醫療物聯網和智能家居物聯網產業[1]。
筆者所屬公司為了積極響應國家政策,成立了智慧研發部門,聚合了物聯網行業內高端人才,重金投入打造《探路者智慧城市云平臺》系統,為企業指明了發展方向,以傳統燈光照明行業為依托,全面引入物聯網思維,將傳統燈光照明以及樓宇亮化工程,通過與物聯網思維的整合,催生出智慧研發板塊。既在傳統燈光照明行業做大做強,成為行業領跑者。同時,發展自身的物聯網平臺,將傳統的燈光照明系統中用到的各種硬件設備,接入到云平臺,通過統一的控制中心,做到中心端進行決策,向終端設備下發指令。同時,所有的被管對象應在接到指令的第一時間進行響應,保證指令響應及時并將執行的結果反饋給中心端。所有對接物聯終端設備應納入中心端統一進行管理,由云平臺遠程發送開關指令進行強電控制,并支持對亮化主體燈光節目的遠程管控。
本人作為智慧研發部門的技術主管,從《探路者智慧城市云平臺》這個項目立項一開始就參與到項目中,對該項目的各項技術選型進行了科學的分析評估,項目開發過程中也確實遇到了不少技術難題。例如:
(1)對接的物聯終端設備種類繁多,包括:強電模塊下配電箱、模塊、回路的遠程控制,弱電模塊下脫機主控、聯機主控、霧森、音響、激光燈、噴泉等如何管控;
(2)燈光節目管控模塊下播放策略的制定,如何將計劃好的播放策略下發到采集終端上保證計劃正常執行;
(3)如何實現一個項目中的多個亮化樓宇的節目聯動播放等。
由于該項目中涉及到的技術難題數量較多,本篇論文只針對如何實現即時遠程播放樓宇燈光節目以及定時下發節目播放場景問題做進一步研究。
如果想要做到一個項目下的亮化主體燈光節目進行實時播放,一般有兩種解決方案:
方案一:通過傳統互聯網行業廣泛使用的TCP/IP或者UDP協議,由中心端向終端設備下發同步指令,告知終端設備立刻播放預置好的節目;
方案二:通過目前物聯網行業普遍使用的MQTT協議,下發指令給到終端設備,告知終端設備播放節目。
TCP/IP和UDP協議相信對于了解互聯網行業的讀者來說比較熟悉,但MQTT協議為何物?本人先做一個簡單的說明:一種基于物聯網行業消息隊列遙測傳輸協議。MQTT可以使用少量的代碼,在帶寬有限的惡劣環境下,提供實時且安全的消息服務。MQTT以其安全性高功耗低的優勢,迅速應用于各類小型終端設備、醫療物聯網、智能家居等行業。
通過上述對MQTT定義說明,結合以上兩種解決方案綜合來看,如果針對的是物聯網場景,顯然MQTT協議更合適。MQTT是為物聯網行業而生,天生就適合在物聯網、各類中小型設備以及移動應用上傳輸消息。但是也有其自身的缺陷,比如說:由于MQTT一般獨立運行于TCP層之上并通常會以明文方式進行傳輸,使用某些抓包工具完全可以看到MQTT發送的所有消息,消息指令一覽無余,這樣就可能會產生如下的風險:
(1)設備可能會被盜用;
(2)客戶端和服務端的靜態數據可能是可訪問的(可能會被修改);
(3)協議行為可能有副作用(如計時器攻擊);
(4)拒絕服務攻擊;
(5)通信可能會被攔截、修改、重定向或者泄露;
(6)虛假控制報文注入。
《探路者智慧城市云平臺》項目需要符合國家網絡安全等級三級保護制度。也就是行業內通常所說的三級等保制度,國家網絡安全等級三級保護制度的細則如下:
等級一,自主保護級:信息系統在遭受到外部破壞后,將會對公民、各類組織和法人的合法權益造成一定程度的損害,但不損害到國家安全和公共社會秩序。一般適用于小型私營企業、個體企業,鄉鎮級安全性一般的信息系統。
等級二,指導保護級:系統在遭受到外部網絡攻擊后,會對公民、法人及其他合法組織造成較為嚴重的損害,但不會損害到國家安全。一般適用于縣級相關單位中的某些信息系統;
等級三,監督保護級:信息系統在受到外部破壞后,將會對社會秩序和公共利益造成很嚴重的損害,或者會對國家安全造成損害。這種級別一般適合地市級以上國家重要機關,企事業單位內部重要的信息系統,比如涉及國家安全、軍事設施、重要商業機密等管理系統;比如:跨省調度的重要信息系統,中央各部位、省(市、區)的門戶網站等。
3.3.1 技術分析
三級等保認證到底有多嚴格呢?展開來看:
在物理安全層面上,部署系統的機房除有最基本的安全控制之外,還應具備防火、抗風、防潮甚至電磁防護能力等,同時也要具備災后數據恢復的能力,如要具備所有這些條件的話,平臺需要付出的資金成本及人力相對是很大的,所以針對有些體量較小的軟件平臺完全就沒有達成這些要求的實力。
三級等保認證最嚴的地方還是在技術層面,主要體現在系統安全管理和惡意代碼防范上,簡單可以理解為當有黑客對平臺進行攻擊時,平臺應該具備一定的防范能力。
如果需要滿足這樣嚴格的要求,最終通過三級等保認證的話,使用MQTT協議的弊端就顯現出來了,經過項目組成員幾番激烈的討論綜合分析下來,使用MQTT的利還是大于弊的。因此,我們需要針對MQTT協議做缺陷修復。
3.3.2 技術方案
首先,我們從應用層和傳輸層來對MQTT協議進行認證;
(1)MQTT客戶端可以使用客戶標識來進一步認證;
(2)在傳輸層進行認證。
(3)選擇用戶數據格式:本系統使用JSON數據作為消息體的傳輸格式[2]。
通過以上技術方案,目前可以實現如下功能:
(1)在應用層面上,MQTT支持客戶標識、用戶名和密碼的多項認證[3];并且在傳輸層可以使用TLS,除了加密通訊,還可以使用X509證書來認證設備。
(2)MQTT協議;本系統使用客戶標識、用戶名和密碼進行認證。如果后期感覺不夠安全,還可以在傳輸層進行認證。在傳輸層認證是這樣的:MQTT代理[4]在TLS握手成功之后可以繼續發送客戶端的X509證書來認證設備,如果設備不合法便可以中斷連接。使用X509認證的好處是,在傳輸層就可以驗證設備的合法性,在發送CONNECT消息之前便可以阻隔非法設備的連接,以節省后續不必要的資源浪費。而且,MQTT協議運行在使用TLS時,除了提供身份認證外,還可以確保消息的完整性和保密性。
(3)JSON的中文名稱是JavaScript對象標記語言,也是基于萬物皆對象的思想。因此,任何對象的定義都可以使用JSON來表示,比如:數值、字符串、對象、數組等。其語法有如下規則:
(1)對象表示為鍵值對(key-value)形式[5];
(2)數據之間由逗號分隔;
(3)對象由花括號進行封裝;
(4)數組由方括號進行封裝。
JSON格式層次結構清晰,易于閱讀和編碼,同時也方便機器生成和解析,大大提高了網絡傳輸效率。
運用MQTT協議技術能夠最大滿足《探路者智慧城市云平臺》項目內的數據分發任務,保證物聯網項目在協議層面具有高安全、低開銷,并且在項目組成員的優化后能滿足國家網絡三級等保審核?!短铰氛咧腔鄢鞘性破脚_》項目目前還在進一步功能擴充中,它的正式上線將會是“亮化文旅”行業由傳統人為管控過渡到遠程智能云平臺管控的一次巨大變革。此項目不僅對“亮化文旅”行業是一個技術革新,并且融合了市政環保、社區生活、養老醫療、安防監控等領域的物聯設備,未來可能以物聯網為載體向著智慧城市方向進一步邁進。使物聯網行業真正成為改善人類生活方式的貼心助手。