幸大樹 佘文魁 顧思明 何明陽



摘 ?要:在電力物聯網的建設中,不同種類的設備將會被大量接入,設備數據的安全尤為重要,若在物聯平臺建設過程中,安全性考慮不足或存在漏洞,將給設備廠商帶來安全風險,所以在設備接入、設備數據上報、設備連接通道等各個環節都需要考慮安全性方案,為此該文提出在物聯平臺(Stariot)建設中,基于Emqx broker架構物聯平臺設備數據安全方案,方案以Emqx broker架構為基礎,進行針對性優化改造,設計一套安全機制,數據通道使用雙向傳輸層安全性協議(Transport Layer Security,TLS)機制進行驗簽,連接消息服務器時使用emqx_auth_mysql插件認證物聯平臺租戶的用戶名/密碼,設計數據傳輸使用國密算法加解密并滿足規則引擎要求,實現設備的安全接入和數據的安全傳輸。
關鍵詞:泛在電力物聯網 ?Emqx broker ?物聯平臺 ?TLS
中圖分類號:TP311.5 ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A文章編號:1672-3791(2021)04(c)-0054-04
Research on Device Data Security of IOT Platform Based on Emqx broker Architecture
XING Dashu ?SHE Wenkui ?GU Siming ?HE Mingyang
(Aostar Information Technologies Co., Ltd., Chengdu, Sichuan Province, 610041 ?China)
Abstract: In the construction of the ubiquitous power Internet of Things, different types of Intelligent devices will be accessed in large quantities, the security of equipment data is particularly important. In the process of building the IOT management platform (Stariot), insufficient security consideration or loopholes will bring security risks to equipment manufacturers. Therefore, security scheme should be considered in all sections of equipment access, equipment data reporting, equipment security channel. In order to solve this problem, this paper proposes a device data security scheme based on Emqx broker architecture in IOT platform construction. The scheme is based on Emqx broker architecture and is optimized pertinently. The data channel uses two-way Tansport Layer Security (TLS) for signature verification, and emqx_ auth_ mysql plug-in is used to authenticate the user name and password of IOT management platform tenants when connecting to the message server. The design of data transmission uses the encryption and decryption of national secret algorithm and meets the requirements of the rule engine to realize the safe access of equipment and the safe transmission of data.
Key Words:Ubiquitous power Internet of Things; Emqx broker; Stariot; TLS
隨著國家電網公司在2019年兩會提出了建設“三型兩網”的目標,泛在電力物聯網的建設步入了快車道,泛在電力物聯網圍繞電力系統各環節,充分應用移動互聯、人工智能等現代信息技術、先進通信技術,實現電力系統各環節萬物互聯、人機交互,具有狀態全面感知、信息高效處理、應用便捷靈活特征的智慧服務系統。泛在電力物聯網建設的首要工作就是將大量傳感器設備、智能終端等設備安全接入到物聯平臺,因此該文提出了基于Emqx broker技術實現的物聯平臺,通過對Emqx broker應用方案研究,進行針對性優化改造,設計一套安全機制,實現物聯平臺設備的安全接入和數據的安全傳輸。
該文將從物聯平臺簡述、基于Emqx broker架構的物聯平臺設備數據安全方案設計等方面進行闡述。
1 ?物聯平臺簡述
物聯平臺(Stariot)是由啟明星公司自主研發設計的一個平臺級服務,基于Emqx broker/MQTT通信服務,為設備提供安全可靠的連接通信能力,可接入邊緣網關設備、直聯設備和傳感器等硬件設備,支撐設備數據采集上云。對下統籌輸變電、配電網、客戶側和供應鏈等領域泛在物聯和深度感知需求,實現統一物聯管理和終端標準化接入,實現設備和平臺間數據采集、命令下發的雙向通信,對設備進行高效、可視化的管理。對上為企業中臺或其他上層應用提供開放、標準的服務,形成跨專業數據共享共用的生態,并基于規則引擎對數據進行清洗后轉發,為上層大數據分析以及人工智能計算提供有效數據來源,充分發揮業務數據資產價值[1]。
2 ?基于Emqx broker架構的物聯平臺設備數據安全方案設計
2.1 物聯平臺系統架構
如圖1物聯平臺(Stariot)架構[2]所示,設備安全風險主要是在設備接入時和設備數據傳輸過程中,物聯平臺設備數據安全方案的設計從此處著手,設計一整套機制,數據通道使用雙向傳輸層安全性協議(Transport Layer Security,TLS)機制進行驗簽,連接消息服務器時使用emqx_auth_mysql插件認證物聯平臺租戶的用戶名/密碼,設計數據傳輸使用國密算法加解密并滿足規則引擎數據格式要求。
2.2 物聯平臺通道安全設計
設備上線連接Emqx broker消息服務器時,將在 TCP/IP協議之上建立MQTT連接通道,為了連接通道安全,物聯平臺設計為MQTT啟用雙向SSL/TLS安全連接,在進行通信認證時要求服務端和客戶端都需要證書,雙方都要進行身份認證,以確保通信中涉及的雙方都是受信任的,設備連接時強認證,保證會話機密性、安全性,加密通信中的數據很難被篡改而不被發現,保證數據完整性[3-5]。
物聯平臺設計了一套租戶隔離的證書生成發放機制。租戶全新注冊時,物聯平臺內部請求為租戶生成一套TLS客戶端證書,證書存儲于物聯平臺云端,租戶下載SDK開發設備側App時,租戶專有證書隨SDK一起下載,若租戶在使用過程中,發現證書可能失密,可以更新獲取新證書,注銷老證書。設備App基于客戶端證書與物聯平臺Emqx broker建立雙向信任的MQTT/TLS安全通道,租戶設備接入連云不必關注安全通道內在細節,僅需按照SDK的指導說明關注業務開發,就可獲取安全高效的服務,提高設備接入物聯平臺效率和安全性。安全通道流程見圖2。
2.3 物聯平臺連接認證設計與改造
身份認證是平臺安全的重要組成部分,MQTT協議支持用戶名密碼認證,啟用身份認證能有效阻止非法客戶端的連接。當一個設備App連接到物聯平臺的時候,MQTT協議本身在連接報文中指定用戶名密碼。通過修改優化Emqx_auth_mysql插件,插件能根據連接報文中username、en_password和ClientID數據共同校驗連接報文正確性,認證成功才可以使設備接入物聯平臺。
租戶在設備側使用SDK開發APP時,根據物聯平臺及SDK的規則生成ClientID,ClientID包含了設備標識信息,設備建立連接時,連接報文包含了username、en_password和ClientID三元信息。通過優化修改Emqx_auth_mysql插件,插件可識別出ClientID中設備標識信息,并結合用戶名/密碼數據進行兩層驗證,一層驗證用戶名/密碼正確性,二層鑒權此設備與租戶所有權關系,防止租戶越權連接其它設備。認證流程見圖3。
2.4 設備數據安全的Emqx broker改造
Emqx_rule_engine插件能夠對JSON數據格式的設備數據按規則SQL進行流式計算,但JSON數據未經加密處理,存在明文泄漏的風險,即使使用base64編碼或Avro和Protobuf編碼成二進制,安全性也存在不足,只要簡單地反編碼就會獲取明文數據。
為此,物聯平臺設計了一套數據加解密機制[6-7],流程見圖4。租戶在設備側開發時,使用GMTool生成一套國密加密算法公私鑰(privatekey/publickey),設備App使用公鑰加密采集的設備數據發送到物聯平臺,這樣出設備的數據是加密的,只有對應生成的私鑰才可以解密,私鑰只由租戶知曉保管,無安全風險;租戶可通過物聯平臺界面創建規則引擎的規則,規則SQL中可以包含公私鑰信息,例如SELECT gm_decode(payload) AS p FROM "topic/#" WHERE p.x = p.y DECODE BY privatekey ENCODE BY publickey。
優化修改emqx_rule_engine插件,解析出規則SQL的公私鑰,用于規則引擎[8]計算前后的加解密;還新增emqx_rule_engine插件支持啟明星公司基于國密SM2+SM3的融合加密算法,該算法融合了SM2和SM3兩種國密算法,更加復雜,也更加安全,加解密效率接近SM2。從原明文A加密到密文B,公式如下:
emqx_rule_engine插件對設備數據進行規則計算時,首先使用私鑰解密出數據,然后對原始JSON格式數據進行規則計算,計算命中后,對計算命中結果數據再用公鑰加密,滿足租戶業務需求的設備數據加密流轉到租戶的中間件或http服務中,這樣流出物聯平臺的數據也是加密的,無安全風險。由此設計可見,設備數據從產生到流轉過程各個環節都擁有非常高的安全性。
2.5 設備使用SDK聯網接入的規范要求
物聯平臺提供了SDK供設備開發者開發App接入設備到物聯平臺,SDK已經封裝集成了上述安全設計環節,從物聯平臺獲取SDK及開發規范,開發設備App即可。
開發者通過規則引擎清洗數據時,在規則SQL中帶入公私鑰信息即可解密數據后進行規則計算,最后將計算結果加密導入到其他系統。
由此可見,租戶在設備接入連云過程中不必關注安全通道內在細節,僅需按照SDK的指導說明關注業務開發,就可獲取安全高效的服務,提高了設備接入物聯平臺效率和安全性。
3 ?結語
該文介紹了基于Emqx broker架構的物聯平臺,在設備數據安全方面的設計實現方案,詳細介紹了Emqx broker消息服務器、規則引擎和物聯平臺自身架構等關鍵技術,為了實現設備的安全接入、設備數據安全傳輸,對Emqx broker的幾個插件進行了改造,設計了安全連接通道方案,實現了設備的安全接入和數據的安全傳輸,使租戶設備上云時專注于業務,提高了設備接入物聯平臺效率和安全性,為云平臺及物聯網近一步建設提供技術支撐。
參考文獻
[1] 李婕茜.公司全面部署泛在電力物聯網建設[N].國家電網報,2019-03-11(1).
[2] 談榮強,吳森.百萬級物聯網軟件平臺系統架構系統設計與實現——以共享充電樁物聯網軟件平臺為例[J].物聯網技術,2019,9(12):100-102.
[3] 閆露.傳輸層安全協議TLS數據采集及認證技術研究[D].中國科學院大學,2018.
[4] 魏來,陳睿,張帆,等.支持國產密碼算法的OpenSSL設計實現及應用[J].中國新通信,2019,21(7):104-105.
[5] 中金金融認證中心有限公司.基于國密算法在TLS1_3協議中建立通道的方法:CN201911334828.X[P].2020-04-10.
[6] 董海韜.傳輸層安全協議加速若干關鍵技術研究[D].中國科學院大學,2016.
[7] 杭州字節物聯安全技術有限公司.基于邊緣網關的物聯網感知節點認證方法:CN202010145146.0[P].2020-04-10.
[8] 劉文,張召民.基于規則引擎技術的電網穩定限額智能化管理方法[J].科技經濟導刊,2016(17):206.
①作者簡介:幸大樹(1990—),男,本科,工程師,從事云計算、物聯網、企業信息化領域相關工作。
佘文魁(1982—),男,碩士,工程師,從事云計算領域相關工作。
顧思明(1996—),男,本科,工程師,從物聯網領域相關工作。