本文摘要:摘要:目前基于无线技术的智能家居系统给人们带来了舒适和便利,但系统容易遭受攻击,有较多的隐私数据需要保护。针对无线通信中数据安全问题,设计了一种智能家居系统及其安全通信方法,即设计了系统的组网结构,规划了外网和内网。内网的家居设备节点采集信息并采用Z
摘要:目前基于无线技术的智能家居系统给人们带来了舒适和便利,但系统容易遭受攻击,有较多的隐私数据需要保护。针对无线通信中数据安全问题,设计了一种智能家居系统及其安全通信方法,即设计了系统的组网结构,规划了外网和内网。内网的家居设备节点采集信息并采用ZigBee通信方式,其它设备采用WiFi通信方式。路由器部署为MQTT服务器,手机等控制设备为MQTT客户端,并在服务器上进行SSL通信相关的配置、设计客户端程序。每次外部网络的MQTT客户端访问服务器时,先采用安全的内网穿透方案ZeroTier连接到内部网络,再通过SSL协议产生公钥和证书,进行安全通信。提出基于L-P混沌系统交叉扩散方法产生AES初始轮密钥,并用于ZigBee安全通信。实验结果为外网MQTT客户端和服务器可以连接到一个ZeroTier网络,并通过SSL协议安全通信;ZigBee通信方式达到了加密效果,相对标准AES算法,加密时间短、平均端到端通信延迟小,分别降低了3.77%和28.5%,且能量消耗少,节点平均剩余能量提高了30.22%。因此,实验结果表明,本文提出的通信方法安全,且具有应用性。
关键词:智能家居;WiFi通信方式;ZigBee通信方式;MQTT服务器;混沌系统
0引言
基于无线组网的智能家居系统,便于安装、扩展,使人们生活更加便利和智能。大容量、低功耗、低成本是智能家居的重要需求[1],Zigbee技术最多可组成65000个节点的网络,节点使用两节干电池可工作0.5-2年,Zigbee芯片价格较低[2],因此,ZigBee技术能很好的满足智能家居的应用场景[3]。此外,MQTT(消息队列遥测传输协议)是一种低开销[4]、低带宽的即时通信协议[5],可以为远程设备提供实时可靠的消息服务[6],易于实现智能家居设备的远程控制[7]。伴随通信技术的引入,智能家居也遭到了大量的网络威胁,用户信息在传输过程中容易被窃取和篡改,迫切需要解决数据在传输过程中的安全问题[8]。
文献[9]提出了一种内网穿透控制智能家居设备的方案,手机APP和家庭路由器之间采用ZeroTier方案进行P2P内网穿透的通信,保证了安全性,提高了远程控制响应速度,但未涉及家居设备间的安全通信方法。文献[10]以智能终端远程控制的智能家居系统为模型,分析了智能家居的安全风险问题,并提出了相应的防护手段,重点给出了认证、加密、安全传输协议的应用分析,但未进行应用相关的实验。文献[11]将智能家居的安全问题划分为平台安全、设备安全、通信安全,分析了他们的研究现状,并提出了未来的研究方向。
文献[12]提出了融合身份认证和AES算法的智能家居通信安全系统,系统的外部网络通信,采用一次口令认证登录,内部网络通信通过动态生成128位密钥的AES算法加密,提高了系统保密性,保证系统中数据传输更加安全,有效解决了智能家居的安全通信问题,但输入数据量增加,系统运行时间会增加,系统的稳定性及有效性有待提高。文献[13]实时提取、处理人体脉搏特征数据,生成128位密钥,然后使用ECC加密密钥、AES算法加密原始数据,时空开销低,可以适应健康智能家居系统数据处理要求,但密钥的随机性有待改进。
因此,考虑到Logistic混沌映射产生的变量具有较强的遍历性[14]、较好的随机性[15],如文献[16]改进了标准Logistic混沌映射,提高了种群多样性,改善了教育学优化算法的精度和效率。综合分析以上文献本文设计了一种基于ZigBee智能家居系统,提出了系统的安全通信方法。首先给出了系统的组网结构,部署了系统的MQTT服务器和客户端,并设计了他们之间的安全通信方案。然后,提出基于L-P混沌系统交叉扩散方法产生AES初始轮密钥,并用于家居设备之间的ZigBee安全通信。
1系统组网结构及安全通信方法研究
1.1系统组网结构设计
系统包括内部网络和外部互联网,内部网络便于用户在家控制家居设备,外部网络用于实现远程控制,内部网络传输的数据量小、传输距离短、节点多,采用ZigBee协议通信方式,外部网络采用安全的内网穿透方案ZeroTier,并基于MQTT协议进行远程控制。路由器作为MQTT服务器,Android手机和Z-W控制器作为MQTT客户端,内部网络的ZigBee终端节点通过传感器采集室内的温度、光照等信息,并通过ZigBee协议发送给Z-W控制器,Z-W控制器再通过WiFi发送给MQTT服务器。
Android手机是控制设备,可以发送控制信息给MQTT服务器,MQTT服务器再发送给Z-W控制器,Z-W控制器依据接收的控制信息,控制家居设备进行相应动作,如开启或关闭窗帘、开/关电灯等。因此,系统主要包括MQTT客户端和服务器之间的通信、ZigBee节点之间的通信,下面分别介绍它们之间的安全通信方法。
1.2MQTT客户端和服务器之间的安全通信
Andriod手机和Z-W控制器之间使用MQTT协议通信,需要研究MQTT协议的安全性。本文的安全通信体现在MQTT客户端通过用户名和密码登陆服务器,MQTT服务器启用SSL安全连接,处于非家居内网的Andriod手机1使用内网穿透方案ZeroTier,实现在加密安全的全球点对点(P2P)对等网上进行分布式的管理。 2)通信平台构建路由器上刷OpenWrt系统,以小米路由器mini为例,刷OpenWrt18.06,安装MQTT服务器mosquitto软件,并客户端用户名、密码,配置SSL,实现MQTT客户端和服务器的安全通信,搭建ZeroTier网络,安装ZeroTier客户端软件,实现外网的Andriod手机安全访问内网的Z-W控制器。
主要步骤:步骤1:路由器刷OpenWrt系统(1)刷入与路由器型号对应的开发版系统(2)获取SSH工具(3)获取路由器的root权限(4)刷入OpenWrt系统步骤2:服务器mosquito软件安装及配置(1)通过putty软件,使用SSH协议登陆到路由器,通过以下命令安装mosquitto服务器软件opkginstallmosquito(2)配置MQTT客户端登陆的用户名和密码第1步:修改mosquitto.conf配置文件内容,禁止匿名用户登陆,使用密码文件password_file、访问权限列表文件acl_file。
allow_anonymousfalsepassword_file/etc/mosquito/pwfileacl_file/etc/mosquittto/aclfile第2步:添加用户名和密码为MQTT客户端Andriod手机和Z-W控制器分别设置用户名、密码,假设Andriod手机的用户名、密码都为samqtt,则配置用户名的命令如下:mosquito_passwd-c/etc/mosquito/pwfilesamqtt按提示输入2次密码即可。第3步:添加用户的主题控制权限在/etc/mosquito/目录下,新建一个文件aclfile,添加命令,指定所有MQTT用户对所有主题都有读写权限,以便订阅或发布家居系统的信息。
步骤3:配置通过ssl通信首先,安装openssl然后,按以下步骤产生证书文件第1步:产生CA的公钥和证书文件opensslreq-new-x509-days36500-extensionsv3_ca-keyoutca.key-outca.crt第2步:为MQTT服务器产生一个私钥文件server.key,并设置加密方式opensslgenrsa-outserver.key2048opensslgenrsa-des3-outserver.key2048第3步:为MQTT服务器产生一个签发证书的请求文件“server.csr”opensslreq-outserver.csr-keyserver.key-new第4步:为mosquittoserver产生一个证书文件opensslx509-req-inserver.csr-CAca.crt-CAkeyca.key-CAcreateserial-outserver.crt-days36500第5步:重复a-f步,为3个MQTT客户端生成证书文件。
步骤3:搭建ZeroTier网络(1)在ZeroTier官网先注册账号。(2)下载OpenWrt系统、Android系统的ZeroTier客户端软件,并分别安装到路由器、Android手机1上。(3)网页登录个人账号工作面板,创建网络ID。(4)在使用环境中运行ZeroTierOne软件,加入创建好的网络ID。(5)在工作面板上授权各客户端的连接,分配虚拟局域网IP。
(6)网络连通测试。由路由器向手机IPv4地址发送PING包,若建立起了P2P通道,则可PING通。3)安全通信方案实现方法Android手机和Z-W控制器都是MQTT客户端,而且Android手机是控制端,它们之间通过路由器实现通信,因此,Android手机和Z-W控制器都需要设计MQTT客户端程序,本文使用AndroidStudio设计Android手机MQTT客户端程序,采用Arduino开发环境设计Z-W控制器的MQTT客户端程序。
设计完成后,Android手机1采用ZeroTier技术分配的虚拟局域网IP地址,进行网络连通后,从手机APP发布的MQTT消息内网穿透后,直接以P2P方式传到路由器,路由器上MQTT服务器收到这个消息后,转发给Z-W控制模块从而控制家居设备,从而控制ZigBee终端节点。
1.3ZigBee网络的安全通信
由系统的网络结构可知,Z-W控制器既包括WiFi模块,也包括ZigBee协调器模块,后者和ZigBee终端节点统称ZigBee节点,组成了ZigBee网络,通过改进的Z-Stack协议栈AES加密算法实现它们之间的安全通信。Z-Stack协议栈中文件nwk_global.c给出了默认的初始轮密钥,所有ZigBee节点开启AES加密算法后,可以设置协调器节点向各个节点发送初始轮密钥,它们之间通过AES加密算法通信,提高安全性。但是AES加密算法的初始轮密钥不具有随机性,容易破解。
初始轮密钥由ZigBee协调器产生,每隔10分钟,或重启后轮密钥都重新设置,由Logistic、PWLCM混沌映射交叉扩散生成,为了保证密钥的随机性,Logistic混沌映射、PWLCM混沌映射先分别迭代若干次。ZigBee协调器产生轮密钥后,将其通过MD5函数生数字签名,并将轮密钥及其数字签名发送给其它所有Zigbee节点,ZigBee节点接收后,进行数字签名验证,验证无误后,再将轮密钥作为初始轮密钥进行AES加密或解密。
2实验与分析
针对前面所述MQTT客户端和服务器、ZigBee节点的安全通信方法,本节进行了实验。
2.1MQTT客户端和服务器的通信方法实验按1.2.2所述构建通信平台,将路由器部署为MQTT服务器,建立ZeroTier网络,使外网的MQTT客户端以P2P方式和MQTT服务器同在一个局域网中,然后通过mosquitto的SSL产生公钥和证书,进行安全通信。
3结论
针对智能家居目前的安全问题,本文设计了一种新的智能家居组网结构,采用WiFi和ZigBee技术通信,将路由器部署为MQTT服务器,路由器上配置安全方案,实现MQTT客户端和服务器安全通信,既节约了成本又提高了安全性。同时家居设备通过ZigBee技术进行通信,为了提高安全性,基于Logistic混沌系统和PWLCM混沌系统进行交叉扩散,产生AES初始轮密钥,来提升AES算法的安全性,经过实验分析,相对标准AES算法,改进的加密算法运行时间较短,能耗和通信延迟小,具有应用性。
参考文献
[1]鲁玉军,刘振.ZigBee技术在智能家居系统中的应用[J].物联网技术,2017,7(004):40-43.
[2]杨蒲菊.基于ZigBee技术的智能家居系统设计与应用研究[J].电脑知识与技术,2019,15(09):96-97.
[3]JOSEAC,MALEKIANR.ImprovingSmartHomeSecurity:IntegratingLogicalSensingintoSmartHome[J].IEEESensorsJournal,2017,17(13):4269-4286.
[4]卢阿丽,顾德林,张剑书,等.基于MQTT和ILZ4压缩法的智慧能源云平台[J].控制工程,2020,181(01):176-183.
[5]陈文艺,高婧,杨辉.基于MQTT协议的物联网通信系统设计与实现[J].西安邮电大学学报,2020,25(03):30-36.
作者:王海珍1廉佐政1谷文成2
转载请注明来自发表学术论文网:http://www.fbxslw.com/dzlw/28703.html