幸大树 佘文魁 顾思明 何明阳
摘 要:在电力物联网的建设中,不同种类的设备将会被大量接入,设备数据的安全尤为重要,若在物联平台建设过程中,安全性考虑不足或存在漏洞,将给设备厂商带来安全风险,所以在设备接入、设备数据上报、设备连接通道等各个环节都需要考虑安全性方案,为此该文提出在物联平台(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—),男,本科,工程师,从物联网领域相关工作。