APP下载

基于消息队列加密传输的智能灌溉系统

2020-04-17康云川钟静李若枫梁裕巧

人民黄河 2020年1期
关键词:传输信息安全物联网

康云川 钟静 李若枫 梁裕巧

摘要:针对当前智能灌溉系统中数据在传输时存在资源消耗大、时延长、安全性差的问题,采用消息队列遥测传输协议进行数据交互,并对协议进行了安全改进,研制了一种消息队列加密传输的安全可靠的智能灌溉系统,确保数据能快速高效地传输,且在传输过程中不被非法窃取或篡改。用户可通过移动终端将灌溉指令推送至NodeMCU控制单元,对作物进行远程灌溉与数据实时监测,系统也可根据土壤墒情对作物进行自动灌溉。试验结果表明:该系统传输时延短、稳定性强、安全性高,在不可靠的网络环境下具有良好的适应性和安全性,可为农业精准灌溉技术发展提供一种新的解决方案。

关键词:信息安全;感知传感器;传输;消息队列;物联网;智能灌溉系统

中图分类号:S275;TP273

文献标志码:A

doi:10.3969/j .issn.1000- 1379.2020.01.031

随着物联网与传感器技术的发展,灌溉智能化的手段越来越丰富,智能灌溉系统是现代农业种植管理走向现代化、科技化的重要一步,不管是科学层面还是经济层面,对推动农业的发展都具有重要意义[1]。而智能灌溉系统数据传输的实时性与安全性尤为重要,特别是对实时性要求较高的农作物精准化灌溉作业,需要保证消息推送的实时性与准确性,以及设施设备操作指令的可靠性与安全性。

国内外许多学者已经发表了智能灌溉系统的相关研究成果。例如:金永奎等[2]提出高效节水灌溉自动监控及信息化系统设计与应用,实现了灌溉自动监控信息化系统;Aguilar R.B.等[3]利用带水位指示器的土壤水分自动灌溉系统,实现了作物自动灌溉;吴凤娇等[4]开发了基于C#和Access数据库的无线精准灌溉系统软件,实现了无线灌溉;谭燕等[5 ]提出基于Rasp-berry Pi的室内智能灌溉系统设计,实现了基于Rasp-berry Pi的精准灌溉,最后通过种植作物进行了试验,达到了节水目的。但是,目前已有的研究成果大多数基于HTTP协议,采用无线网络进行数据交互,在互联网上透明运行,消息在传输过程中未进行加密与校验,虽然从技术上实现了自动化灌溉,满足了作物基本的自动灌溉需求,但都存在信息安全与性能问题,其中信息安全问题更为明显,系统面临被入侵的风险,数据面临被窃取、被恶意篡改等威胁,很难保证消息的可靠、安全传输。

针对以上问题,笔者研制了一种基于消息队列加密传输的智能灌溉系统,系统基于MQTT( messagequeuing telemetry transport,消息队列遥测传输)协议开发,并对协议的消息报文进行加密、加签与校验改进,改进后的协议有效解决了灌溉系统中网络通信的安全与性能问题。系统采用NodeMCU微控制器、土壤墒情传感器、无线网络、MQTT代理服务器构建,用户可实时监测作物土壤墒情、环境因子等信息,还可根据作物生长所需含水量精确控制土壤水分,保证作物生长,同时避免灌溉水资源的浪费,为智慧农业提供了一种安全、可靠的解决方案。

1 系统总体设计

系统总体结构见图1。智能灌溉系统由硬件系统、软件系统组成,硬件系统主要集成了NodeMCU微控制器、DHT11温湿度传感器、电容式土壤湿度传感器、HC-SR04超声测距传感器、L298N双H桥电机驱动及其他硬件,其中NodeMCU集成了无线网络模块、数字签名模块、数据采集模块的处理程序。软件系统由用户终端WEB平台与阿里钉钉APP组成,集成了数据展示、消息通知、灌溉设备远程控制等模块处理程序。

智能灌溉系统的运行原理:各传感器采集空气温湿度、作物土壤墒情、灌溉系统蓄水容器水位等数据,并由NodeMCU将数据通过WiFi方式发送至服务器再至用户端,其中采用MQTT协议的通信方法来实现数据交互,交互时利用AES、SM2加密算法对MQTI协议进行数字签名处理,接收端对收到的数据进行解密与验签操作,验证数据的合规性;最终用户可通过终端WEB对数据进行实时监测,通过阿里钉钉APP实时接收服务器推送的警告信息。

2 MQTT协议改进

MQTT协议由IBM公司提出,最初用于远程医疗服务通信,该协议基于TCP/IP协议栈,是一种异步通信的轻量级消息发布/订阅传输协议,由于其具有开销小、时延短、可靠性高等优点,在时间和空间上将消息发送者与接收者分离,可以在不可靠的网络环境中进行扩展,适用于硬件性能低下的远程设备以及不可靠的网络环境,因此在物联网中得到了广泛应用‘6]。MQTT协议的消息报文最多由3个部分组成:固定报头、可变报头和有效载荷。

(1)固定报头。包括:①Message Type,表示14种消息类型;②Dup Flag,当客户端或服务器端试图重新传 送

PUBUSH、 PUBREL、 SUBSCRIBE

或UNSUBSCRIBE命令消息时设置此标志;③QoS Level,服务质量级别。

(2)可变报头。该报头位于固定报头和有效载荷之间,不同报文的可变报头是不同的。可变报头主要包括Protocol name、Protocol version、Clean session、Will标志等头域。

(3)有效载荷。载荷位于报文最后一部分,其负载内容为需要发布的消息,如PUBLISH。

MQlTr协议通过控制QoS等级来确定服务質量,消息在传输过程中由QoS的值来决定安全级别,但协议本身并没有提供消息加签、验签与加密的功能,数据以明文方式传输[7]。MQTT协议消息发布抓包见图2。

根据图2中Wireshark抓包工具可分析出MQTT协议传输的消息报文,例如报文头标记为Ox30.消息类型为3,DUP Flag未设置,QoS Level为0,消息长度为45等,这些报文数据都以明文方式交互,也未进行加签处理。因此,MQTI协议在推送数据的过程中可能面临数据被恶意篡改或非法窃取的风险。本文结合MQTI的报文特征与数据推送的安全要求,对协议进行改进,改进后的协议传输流程见图3。

2.1 有效载荷负载内容加密传输

消息报文在传输过程中,有效载荷的负载内容存在被非法窃取的风险,因此加密过程在数据推送前完成,加密时需要一个私钥“Private Encryption”来生成密文,Private Encryption是一个由用户随机生成的32位字符串,图4为有效载荷负载内容的加密与解密过程,其主要步骤:第一步,将发送端传输的消息报文的载荷内容根据用户的Private Encryption进行AES算法加密,以密文方式传输;第二步,消息接收端根据用户的Private Encryption对载荷内容密文解密,还原原始负载内容。

AES算法具有运算速度快、分组长度与密钥长度设计灵活等优点,是一种数据块长度和密钥长度可变的分组迭代加密算法,算法中的明文分组位为128位,密钥分组可分别设定为128、192、256位。AES算法在整体结构上采用的是轮变换,多轮迭代[8]。可以用以下方法对信息进行加密,见图5。

目前,还没有方法可以破解以上算法加密后的数据,并且AES与SM2算法的加密运算速度快,将其运用至智能灌溉系统,可以有效地保护数据交互安全[10]。3硬件系统设计

系统主控单元采用NodeMCU微型开发板,该开发板是一款开源的硬件产品,基于ESP8266模块构建,具有WiFi、GPIO、PWM、I2C、1-Wire、ADC等功能[11]。NodeMCU的主要特点:第一,体积较小、价格低廉,Flash和RAM的存储容量较大,具有丰富的外围接口,输入电压为SV.工作电压为3.3 V.可采用USB接口或GPIO引脚接口供电[12];第二.NodeMCU烧录程序比传统的单片机更简单、方便,不需要额外的烧录器,直接通过USB接口上传程序[13];第三,采用NodejS语言编写网络应用事件驱动型API,开发人员不需要熟悉芯片寄存器就可实现程序开发,编写代码容易,开发效率更高[14]。NodeMCU的主要作用:获取传感器感知的数据,并对数据进行加密处理;与Mosquitto消息服务器进行无线通信;根据用户终端下发的指令对灌溉水泵进行控制。

空气温湿度传感器采用DHTI1,用于环境温度与湿度的测量,该传感器是一种复合传感器,体积较小、功耗低,该传感器输出的数字信号已被校准过,其专用的数字模块采集技术和温度、湿度传感器技术,确保了传感器可靠性高,能长期稳定运行[15]。NodeMCU通过调用dht.readll( D1)函数获取传感器数据。

土壤湿度传感器采用Soil moisture sensor vl.0,该传感器为电容式传感器,响应快,受土壤盐度影响小,耐电解、耐腐蚀、防水防锈,适用于各种土壤类型,可长期埋于土壤中[16]。NodeMCU通过调用adc.force_init_mode( adc.INIT_ADC)、adc.read(0)函数获取土壤电阻值,根据所测电阻值计算出土壤含水率。

蓄水容器水位测量采用HC -SR04超声测距传感器,该模块精确度能达到0.3 cm,具有高精度、盲区小等特点[17-18]。模块基本原理:NodeMCU提供10μs的高电平给模块引脚Trig,模块会自动发送频率为40kHz的8个方波信号,同时自动檢测信号的返回情况;当存在信号返回时,通过Echo引脚端输出一个高电平信号,通过记录高电平信号的持续时间,可判断出超声波从发射到结束返回的时间,从而计算出距离。

L298N模块用于灌溉水泵的驱动。NodeMCU对L298N电机驱动模块引脚ENA提供PWM脉冲宽度调制信号,通过改变其占空比来调节水泵电机转速,控制灌溉水量。NodeMCU通过调用pwm. setup( pin,clock,duty)、pwm. start( pin)函数对ENA引脚初始化与启动PWM输出,函数中的pm参数为引脚对象,clock参数为PWM脉冲宽度调制频率.duty参数为PWM占空比,最终实现作物所需水量的精准控制。

使用NodeMCU时,首先需要烧写固件并预装Crypto库与MQTI库,MQTT库则提供与消息服务器的通信功能,采用的主要MQTT库函数有Client()、connect()、subscribe()、publish(),分别提供MQTT客户端连接池的创建、服务器的连接、消息主题的订阅与发布功能,MQTT协议通信传输核心参考代码如下。

第15行代码对DHTI1传感器温度数据进行AES加密,第16行代码为MQTI传输协议把数据发布至消息服务器。

4 软件系统设计

4.1 用户终端软件

用户终端软件流程见图8.智能灌溉系统用户终端软件基于B/S架构开发,采用Linux、PHP与MySQL数据库,遵循HTML5标准,实现数据在线可视化分析、灌溉设备远程控制功能。HTML5作为新一代WEB应用标准,其不仅支持PC端,而且适用于各种移动终端,采用HTML5进行移动应用程序开发,开发成本低、效率高且易于维护,不但支持传统多媒体等应用功能,还支持离线存储、图像绘制等功能,具有强大的API接口[19-20]。用户访问终端软件时,需要鉴别身份才能进行下一步操作,防止了非法用户越权访问系统。

4.2 用户消息通知

采用阿里钉钉APP作为用户的消息通知软件。当水位不足或数据出现异常时,阿里钉钉APP实时接收服务器推送的警告信息。阿里钉钉APP是轻量级应用程序,具有良好的用户体验、流量消耗少、API接口丰富等特点,更易被用户所接受和广泛应用,提供其个人服务器通信接口,借助其接口,开发人员可以快速实现消息通知类APP.并且阿里钉钉是免费平台,每分钟为用户免费提供20条消息推送服务,每分钟超过20条信息后,平台会自动限流10 min,基于其进行消息通知的应用部署,几乎无成本且性能更稳定[21],满足智能灌溉系统的消息告警需求。由于阿里钉钉APP是第三方平台软件,可能存在收集用户隐私、行为等风险,因此用户应只赋予其最低权限,避免推送敏感信息,防止信息泄漏。智能灌溉系统消息服务器与阿里钉钉开放平台通信采用NodejS语言,通信实现的参考代码如下。

5 试验结果与分析

图9为阿里钉钉告警信息推送与用户移动终端WEB端界面。在完成系统设计后,对智能灌溉系统的功能、性能、安全性进行测试,系统运行周期为75 d,7x24 h不间断运行。

5.1 功能测试

功能测试主要测试智能灌溉系统硬件主控单元能否正常、稳定运行,各传感器能否正常感知数据,灌溉系统水泵能否正常作业。对智能灌溉系统用户终端WEB平台端数据实时推送、远程灌溉功能和阿里钉钉客户端告警信息推送功能进行了测试,并对系统中的土壤水分、空气温度及灌溉需求水量3个指标进行了对比分析,试验数据见表1。

测试结果表明:平台实时刷新数据功能正常:当环境温度过高时,土壤水分低于系统设置的最低阈值,蓄水容器水位低于正常阈值,阿里钉钉客户端能及时、主动向用户推送告警信息;当土壤湿度为30% - 68%时,试验值与实际值之间的误差在1%以内;当灌溉水量为40 - 90 L/m2范围内时,试验值与实际值之间的误差在0.3%以内,能精确控制灌溉水量,满足灌溉需求。

5.2 性能测试

性能测试主要测试MQTI协议中数据传输时延,消息服务器在高负载情况下能否正常运行,运用MQTI -JMeter插件测试服务器性能,利用用户插件创建2个虚拟用户组,用户组分别为消息发布者与消息订阅者,进行发布、订阅操作,虚拟用户数量分别为100、200、300、500、600、800、1 000个,消息数量分别为10、100、300、500条,每隔一秒发送一条32字节的随机字符串,附加时间戳,时间戳用于数据传输时延计算,循环10次结束,性能测试结果见表2。

从表2可以看出,在消息推送数量不变的情况下,消息推送时间与接收时间会随着用户数的增大而延长,但延长趋势并不明显,用户数量的增加对灌溉系统的性能影响不大:随着消息发送数量的增多,在用户数量不变情况下,消息推送时间和接收时间增幅较大,消息推送时间明显延长,可看出消息的推送数量对系统性能影响较大。从性能上分析,本系统传输时延短、性能稳定,用户能实时无缝获取信息,并且能远程精确执行灌溉指令。

5.3 安全测试

安全性测试主要测试传输协议改进后的安全效果,测试消息报文在传输过程中是否存在被非法篡改、窃取的风险。利用Wireshark抓包工具对消息报文加签、数据加密情况进行分析,见图10。

从图10可看出,MQTI协议中的Header Flags、Message Type、Dup Flag、Qos Level等报文信息已通过椭圆算法加密,并且对原始报文信息进行了加签,形成了新的报文信息,数字签名数据为Msg—context后的128位数据,同时,对空气温度、土壤湿度、空气湿度、灌溉系统水位也进行了加密处理。因此,消息服务器只需进行验证签名就可防止报文在传输过程中被非法篡改,并且消息接收端利用私钥就能还原推送过来的数据,防止数据被非法窃取,从而保证智能灌溉系统安全运行。

6 结论

本文论述了一种消息队列加密传输的灌溉系统,对传输协议进行了安全改進,通过NodeMCU微控单元、消息应用服务器与用户端移动WEB平台、阿里钉钉的结合,能够对实时数据进行推送,对异常数据进行报警,并且能远程控制灌溉水泵。试验结果证明:该系统运行效果良好,系统的稳定性与安全性较高,不仅可以应用于农业物联网领域,也可以应用于其他场景,比如用于智能家居、智能工业、环境监测等。

参考文献:

[1]王宗省,苏金娣,宋炳辉,基于土壤墒情的联栋大棚智能灌溉系统的设计[J].节水灌溉,2017(10):96-99.

[2]金永奎,李强,袁圆,高效节水灌溉自动监控及信息化系统设计与应用[J].中国农村水利水电,2017(1):18 - 22. 26.

[3]AGUILAR R B,ECIJA E B,MEDALLA M M, et al.Auto-matic Soil Moisture Sensing Water Irrigation System withWater Level Indicator[J].Advanced Science Letters, 2017,23(5):4505-4508.

[4] 吴凤娇,孙培钦,龙燕,等,基于C#和Access数据库的无线精准灌溉系统软件设计[J].节水灌溉,2018(6):78-82.

[5]谭燕,秦风元,基于Raspberry Pi的室内智能灌溉系统设计与研究[J].节水灌溉,2019(7):105-108,113.

[6]HWANG H C,PARK J S,JIN G S.Design and Implemen-tation of a Reliable Message Transmission System Based onMQTT Protocol in IoT[J].Wireless Personal Communica-tions, 2016, 91(4): 1765-1777.

[7] MIGUEL A PRADA,PERFECTO RECUERA, SERAFINALONSO, et al.Communication with Resource-ConstrainedDevices Through MQTT for Control Education[J].IFAC Pa- pers Online, 2016, 49(6):150-155.

[8]林勇,冯英峰,杨玲,基于GPRS的智能控制电子门锁系统设计[Jl.合肥工业大学学报(自然科学版),2015,38(7):897-900.

[9]汪朝晖,张振峰.SM2椭圆曲线公钥密码算法综述[Jl.信息安全研究,2016,2(11):972-982.

[10] 王敏槊,熊金波,林倩,等,基于密钥分发和密文抽样的云数据确定性删除方案[J].计算机应用,2018,38(1):194-200.

[11] 王浩,王东,基于NodeMCU固件平台的RGB三色灯远程控制设计与实现[J].软件工程,2017,20(5):47-50.

[12] BRIAN B, AKOPIAN D.A Study of IoT MQrIT ControlPacket Behavior and Its Effect on Communication Delays[J]. Electronic Imaging, 2017, 2017(6): 120-129.

[13]BOONCHIENG Ekkarat, CHIEOCHAN Oran, SAOKAEWAnukit. Smart Farm: Applying the Use of NodeMCU, IoT,NETPIE and LINE API for a Lingzhi Mushroom Farm inThailand[J]. Ieice Transactions on Communications,2018.101(1):16-23.

[14] CHOORUANG K, MANGKAL.AKEEREE,P.Wireless HeartRate Monitoring System Using MQ,IT[J].Procedia ComputerScience, 2016, 86(1): 160-163.

[15] 刘雄飞,聂伟,陈浩,等,基于云计算平台的室内环境监测系统设计与实现[J].传感器与微系统,2019,38(3):92-95.

[16] 林为政,王俊楠,倪忠进,等,基于时域反射法的冬笋地下位置探测器设计[Jl.农业工程学报,2019,35(7):31-38.

[17] 付承彪,田安红,于龙,等,基于超声波测距的煤矿井下皮带检测系统设计[J].实验室研究与探索,2019,38(3):64-67.

[18]陶凤,基于超声波测距的汽车防撞系统的研究[D].上海:上海师范大学.2015:15-18.

[19] 張俊艺,冯泽佳,高磊,等,基于Android系统的农机调度管理平台的设计与开发[J].中国农机化学报,2018,39(5):91-96.

[20] 王媛,基于HTML5技术的时空联合目标轨迹动态可视化技术[Jl.科学技术与工程,2018,18( 29):98-103.

[21]孙良斌,钉钉在传媒类开放实验室管理中的应用与探索[J].实验室研究与探索,2018,37(6):243-247.

【责任编辑 翟戌亮】

收稿日期:2019- 07 - 23

基金项目:重庆市高等教育教学改革研究项目(183051)

作者简介:康云川(1987-),男,重庆铜梁人,高级工程师,硕士,主要研究领域为物联网技术、WEB技术、网络与信息安全

通信作者:钟静(1976-),女,重庆潼南人,副教授,硕士生导师,主要研究领域为神经网络与大数据

猜你喜欢

传输信息安全物联网
地铁SDH、OTN传输组网分析
信息安全不止单纯的技术问题
基于模糊综合评价法的信息安全风险评估模型
基于模糊综合评价法的信息安全风险评估模型
广播电视信号传输的技术分析
浅谈垂直极化天线在地面数字电视传输中的应用
4K传输
基于高职院校物联网技术应用人才培养的思考分析
中国或成“物联网”领军者
2014第十五届中国信息安全大会奖项