本文摘要:摘要:目前基于無線技術的智能家居系統給人們帶來了舒適和便利,但系統容易遭受攻擊,有較多的隱私數據需要保護。針對無線通信中數據安全問題,設計了一種智能家居系統及其安全通信方法,即設計了系統的組網結構,規劃了外網和內網。內網的家居設備節點采集信息并采用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.cnzjbx.cn/dzlw/28703.html