幸大樹 佘文魁 顧思明 何明陽
摘 ?要:在電力物聯(lián)網(wǎng)的建設(shè)中,不同種類的設(shè)備將會被大量接入,設(shè)備數(shù)據(jù)的安全尤為重要,若在物聯(lián)平臺建設(shè)過程中,安全性考慮不足或存在漏洞,將給設(shè)備廠商帶來安全風險,所以在設(shè)備接入、設(shè)備數(shù)據(jù)上報、設(shè)備連接通道等各個環(huán)節(jié)都需要考慮安全性方案,為此該文提出在物聯(lián)平臺(Stariot)建設(shè)中,基于Emqx broker架構(gòu)物聯(lián)平臺設(shè)備數(shù)據(jù)安全方案,方案以Emqx broker架構(gòu)為基礎(chǔ),進行針對性優(yōu)化改造,設(shè)計一套安全機制,數(shù)據(jù)通道使用雙向傳輸層安全性協(xié)議(Transport Layer Security,TLS)機制進行驗簽,連接消息服務(wù)器時使用emqx_auth_mysql插件認證物聯(lián)平臺租戶的用戶名/密碼,設(shè)計數(shù)據(jù)傳輸使用國密算法加解密并滿足規(guī)則引擎要求,實現(xiàn)設(shè)備的安全接入和數(shù)據(jù)的安全傳輸。
關(guān)鍵詞:泛在電力物聯(lián)網(wǎng) ?Emqx broker ?物聯(lián)平臺 ?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
隨著國家電網(wǎng)公司在2019年兩會提出了建設(shè)“三型兩網(wǎng)”的目標,泛在電力物聯(lián)網(wǎng)的建設(shè)步入了快車道,泛在電力物聯(lián)網(wǎng)圍繞電力系統(tǒng)各環(huán)節(jié),充分應(yīng)用移動互聯(lián)、人工智能等現(xiàn)代信息技術(shù)、先進通信技術(shù),實現(xiàn)電力系統(tǒng)各環(huán)節(jié)萬物互聯(lián)、人機交互,具有狀態(tài)全面感知、信息高效處理、應(yīng)用便捷靈活特征的智慧服務(wù)系統(tǒng)。泛在電力物聯(lián)網(wǎng)建設(shè)的首要工作就是將大量傳感器設(shè)備、智能終端等設(shè)備安全接入到物聯(lián)平臺,因此該文提出了基于Emqx broker技術(shù)實現(xiàn)的物聯(lián)平臺,通過對Emqx broker應(yīng)用方案研究,進行針對性優(yōu)化改造,設(shè)計一套安全機制,實現(xiàn)物聯(lián)平臺設(shè)備的安全接入和數(shù)據(jù)的安全傳輸。
該文將從物聯(lián)平臺簡述、基于Emqx broker架構(gòu)的物聯(lián)平臺設(shè)備數(shù)據(jù)安全方案設(shè)計等方面進行闡述。
1 ?物聯(lián)平臺簡述
物聯(lián)平臺(Stariot)是由啟明星公司自主研發(fā)設(shè)計的一個平臺級服務(wù),基于Emqx broker/MQTT通信服務(wù),為設(shè)備提供安全可靠的連接通信能力,可接入邊緣網(wǎng)關(guān)設(shè)備、直聯(lián)設(shè)備和傳感器等硬件設(shè)備,支撐設(shè)備數(shù)據(jù)采集上云。對下統(tǒng)籌輸變電、配電網(wǎng)、客戶側(cè)和供應(yīng)鏈等領(lǐng)域泛在物聯(lián)和深度感知需求,實現(xiàn)統(tǒng)一物聯(lián)管理和終端標準化接入,實現(xiàn)設(shè)備和平臺間數(shù)據(jù)采集、命令下發(fā)的雙向通信,對設(shè)備進行高效、可視化的管理。對上為企業(yè)中臺或其他上層應(yīng)用提供開放、標準的服務(wù),形成跨專業(yè)數(shù)據(jù)共享共用的生態(tài),并基于規(guī)則引擎對數(shù)據(jù)進行清洗后轉(zhuǎn)發(fā),為上層大數(shù)據(jù)分析以及人工智能計算提供有效數(shù)據(jù)來源,充分發(fā)揮業(yè)務(wù)數(shù)據(jù)資產(chǎn)價值[1]。
2 ?基于Emqx broker架構(gòu)的物聯(lián)平臺設(shè)備數(shù)據(jù)安全方案設(shè)計
2.1 物聯(lián)平臺系統(tǒng)架構(gòu)
如圖1物聯(lián)平臺(Stariot)架構(gòu)[2]所示,設(shè)備安全風險主要是在設(shè)備接入時和設(shè)備數(shù)據(jù)傳輸過程中,物聯(lián)平臺設(shè)備數(shù)據(jù)安全方案的設(shè)計從此處著手,設(shè)計一整套機制,數(shù)據(jù)通道使用雙向傳輸層安全性協(xié)議(Transport Layer Security,TLS)機制進行驗簽,連接消息服務(wù)器時使用emqx_auth_mysql插件認證物聯(lián)平臺租戶的用戶名/密碼,設(shè)計數(shù)據(jù)傳輸使用國密算法加解密并滿足規(guī)則引擎數(shù)據(jù)格式要求。
2.2 物聯(lián)平臺通道安全設(shè)計
設(shè)備上線連接Emqx broker消息服務(wù)器時,將在 TCP/IP協(xié)議之上建立MQTT連接通道,為了連接通道安全,物聯(lián)平臺設(shè)計為MQTT啟用雙向SSL/TLS安全連接,在進行通信認證時要求服務(wù)端和客戶端都需要證書,雙方都要進行身份認證,以確保通信中涉及的雙方都是受信任的,設(shè)備連接時強認證,保證會話機密性、安全性,加密通信中的數(shù)據(jù)很難被篡改而不被發(fā)現(xiàn),保證數(shù)據(jù)完整性[3-5]。
物聯(lián)平臺設(shè)計了一套租戶隔離的證書生成發(fā)放機制。租戶全新注冊時,物聯(lián)平臺內(nèi)部請求為租戶生成一套TLS客戶端證書,證書存儲于物聯(lián)平臺云端,租戶下載SDK開發(fā)設(shè)備側(cè)App時,租戶專有證書隨SDK一起下載,若租戶在使用過程中,發(fā)現(xiàn)證書可能失密,可以更新獲取新證書,注銷老證書。設(shè)備App基于客戶端證書與物聯(lián)平臺Emqx broker建立雙向信任的MQTT/TLS安全通道,租戶設(shè)備接入連云不必關(guān)注安全通道內(nèi)在細節(jié),僅需按照SDK的指導(dǎo)說明關(guān)注業(yè)務(wù)開發(fā),就可獲取安全高效的服務(wù),提高設(shè)備接入物聯(lián)平臺效率和安全性。安全通道流程見圖2。
2.3 物聯(lián)平臺連接認證設(shè)計與改造
身份認證是平臺安全的重要組成部分,MQTT協(xié)議支持用戶名密碼認證,啟用身份認證能有效阻止非法客戶端的連接。當一個設(shè)備App連接到物聯(lián)平臺的時候,MQTT協(xié)議本身在連接報文中指定用戶名密碼。通過修改優(yōu)化Emqx_auth_mysql插件,插件能根據(jù)連接報文中username、en_password和ClientID數(shù)據(jù)共同校驗連接報文正確性,認證成功才可以使設(shè)備接入物聯(lián)平臺。
租戶在設(shè)備側(cè)使用SDK開發(fā)APP時,根據(jù)物聯(lián)平臺及SDK的規(guī)則生成ClientID,ClientID包含了設(shè)備標識信息,設(shè)備建立連接時,連接報文包含了username、en_password和ClientID三元信息。通過優(yōu)化修改Emqx_auth_mysql插件,插件可識別出ClientID中設(shè)備標識信息,并結(jié)合用戶名/密碼數(shù)據(jù)進行兩層驗證,一層驗證用戶名/密碼正確性,二層鑒權(quán)此設(shè)備與租戶所有權(quán)關(guān)系,防止租戶越權(quán)連接其它設(shè)備。認證流程見圖3。
2.4 設(shè)備數(shù)據(jù)安全的Emqx broker改造
Emqx_rule_engine插件能夠?qū)SON數(shù)據(jù)格式的設(shè)備數(shù)據(jù)按規(guī)則SQL進行流式計算,但JSON數(shù)據(jù)未經(jīng)加密處理,存在明文泄漏的風險,即使使用base64編碼或Avro和Protobuf編碼成二進制,安全性也存在不足,只要簡單地反編碼就會獲取明文數(shù)據(jù)。
為此,物聯(lián)平臺設(shè)計了一套數(shù)據(jù)加解密機制[6-7],流程見圖4。租戶在設(shè)備側(cè)開發(fā)時,使用GMTool生成一套國密加密算法公私鑰(privatekey/publickey),設(shè)備App使用公鑰加密采集的設(shè)備數(shù)據(jù)發(fā)送到物聯(lián)平臺,這樣出設(shè)備的數(shù)據(jù)是加密的,只有對應(yīng)生成的私鑰才可以解密,私鑰只由租戶知曉保管,無安全風險;租戶可通過物聯(lián)平臺界面創(chuàng)建規(guī)則引擎的規(guī)則,規(guī)則SQL中可以包含公私鑰信息,例如SELECT gm_decode(payload) AS p FROM "topic/#" WHERE p.x = p.y DECODE BY privatekey ENCODE BY publickey。
優(yōu)化修改emqx_rule_engine插件,解析出規(guī)則SQL的公私鑰,用于規(guī)則引擎[8]計算前后的加解密;還新增emqx_rule_engine插件支持啟明星公司基于國密SM2+SM3的融合加密算法,該算法融合了SM2和SM3兩種國密算法,更加復(fù)雜,也更加安全,加解密效率接近SM2。從原明文A加密到密文B,公式如下:
emqx_rule_engine插件對設(shè)備數(shù)據(jù)進行規(guī)則計算時,首先使用私鑰解密出數(shù)據(jù),然后對原始JSON格式數(shù)據(jù)進行規(guī)則計算,計算命中后,對計算命中結(jié)果數(shù)據(jù)再用公鑰加密,滿足租戶業(yè)務(wù)需求的設(shè)備數(shù)據(jù)加密流轉(zhuǎn)到租戶的中間件或http服務(wù)中,這樣流出物聯(lián)平臺的數(shù)據(jù)也是加密的,無安全風險。由此設(shè)計可見,設(shè)備數(shù)據(jù)從產(chǎn)生到流轉(zhuǎn)過程各個環(huán)節(jié)都擁有非常高的安全性。
2.5 設(shè)備使用SDK聯(lián)網(wǎng)接入的規(guī)范要求
物聯(lián)平臺提供了SDK供設(shè)備開發(fā)者開發(fā)App接入設(shè)備到物聯(lián)平臺,SDK已經(jīng)封裝集成了上述安全設(shè)計環(huán)節(jié),從物聯(lián)平臺獲取SDK及開發(fā)規(guī)范,開發(fā)設(shè)備App即可。
開發(fā)者通過規(guī)則引擎清洗數(shù)據(jù)時,在規(guī)則SQL中帶入公私鑰信息即可解密數(shù)據(jù)后進行規(guī)則計算,最后將計算結(jié)果加密導(dǎo)入到其他系統(tǒng)。
由此可見,租戶在設(shè)備接入連云過程中不必關(guān)注安全通道內(nèi)在細節(jié),僅需按照SDK的指導(dǎo)說明關(guān)注業(yè)務(wù)開發(fā),就可獲取安全高效的服務(wù),提高了設(shè)備接入物聯(lián)平臺效率和安全性。
3 ?結(jié)語
該文介紹了基于Emqx broker架構(gòu)的物聯(lián)平臺,在設(shè)備數(shù)據(jù)安全方面的設(shè)計實現(xiàn)方案,詳細介紹了Emqx broker消息服務(wù)器、規(guī)則引擎和物聯(lián)平臺自身架構(gòu)等關(guān)鍵技術(shù),為了實現(xiàn)設(shè)備的安全接入、設(shè)備數(shù)據(jù)安全傳輸,對Emqx broker的幾個插件進行了改造,設(shè)計了安全連接通道方案,實現(xiàn)了設(shè)備的安全接入和數(shù)據(jù)的安全傳輸,使租戶設(shè)備上云時專注于業(yè)務(wù),提高了設(shè)備接入物聯(lián)平臺效率和安全性,為云平臺及物聯(lián)網(wǎng)近一步建設(shè)提供技術(shù)支撐。
參考文獻
[1] 李婕茜.公司全面部署泛在電力物聯(lián)網(wǎng)建設(shè)[N].國家電網(wǎng)報,2019-03-11(1).
[2] 談榮強,吳森.百萬級物聯(lián)網(wǎng)軟件平臺系統(tǒng)架構(gòu)系統(tǒng)設(shè)計與實現(xiàn)——以共享充電樁物聯(lián)網(wǎng)軟件平臺為例[J].物聯(lián)網(wǎng)技術(shù),2019,9(12):100-102.
[3] 閆露.傳輸層安全協(xié)議TLS數(shù)據(jù)采集及認證技術(shù)研究[D].中國科學院大學,2018.
[4] 魏來,陳睿,張帆,等.支持國產(chǎn)密碼算法的OpenSSL設(shè)計實現(xiàn)及應(yīng)用[J].中國新通信,2019,21(7):104-105.
[5] 中金金融認證中心有限公司.基于國密算法在TLS1_3協(xié)議中建立通道的方法:CN201911334828.X[P].2020-04-10.
[6] 董海韜.傳輸層安全協(xié)議加速若干關(guān)鍵技術(shù)研究[D].中國科學院大學,2016.
[7] 杭州字節(jié)物聯(lián)安全技術(shù)有限公司.基于邊緣網(wǎng)關(guān)的物聯(lián)網(wǎng)感知節(jié)點認證方法:CN202010145146.0[P].2020-04-10.
[8] 劉文,張召民.基于規(guī)則引擎技術(shù)的電網(wǎng)穩(wěn)定限額智能化管理方法[J].科技經(jīng)濟導(dǎo)刊,2016(17):206.
①作者簡介:幸大樹(1990—),男,本科,工程師,從事云計算、物聯(lián)網(wǎng)、企業(yè)信息化領(lǐng)域相關(guān)工作。
佘文魁(1982—),男,碩士,工程師,從事云計算領(lǐng)域相關(guān)工作。
顧思明(1996—),男,本科,工程師,從物聯(lián)網(wǎng)領(lǐng)域相關(guān)工作。