


摘要:針對智能家居物聯網中消息隊列遙測傳輸(Message Queuing Telemetry Transport,MQTT)[ 1] 協議的明文傳輸風險與傳統安全方案資源開銷過高等問題,提出一種基于橢圓曲線密碼體制(Elliptic Curve Cryptography,ECC)[ 2] 算法與Ascon算法的端到端加密通信方案。通過ECC算法實現前向安全的密鑰協商,利用Ascon算法實現“加密即認證”的數據保護。實施流程涵蓋設備注冊、雙向身份認證、密鑰分發和加密通信4個階段。安全分析表明,該方案可以有效抵御中間人攻擊、重放攻擊、身份偽造、數據篡改等安全威脅。
關鍵詞:物聯網" 橢圓曲線[ 3]" "Ascon[ 4] 算法" 安全通信
Research on MQTT Communication Security Enhancement Mechanism for Smart Home IoT
ZHANG Huafeng
Guangdong Peizheng College, Guangzhou, Guangdong Province, 510830 China
Abstract: To address the risks of plaintext transmission in the message queue telemetry transport (MQTT) protocol and the high resource overhead of traditional security solutions in smart home IoT environments, this paper proposes an end-to-end encrypted communication scheme based on elliptic curve cryptography (ECC) and Ascon algorithms. It implements forward secure key negotiation through ECC algorithm, and uses Ascon algorithm to achieve data protection of \"encryption as authentication\". The implementation process covers four stages: device registration, mutual identity authentication, key distribution, and encrypted communication. Security analysis demonstrates that this scheme can effectively resists security threats such as man-in-the-middle attacks, replay attacks, identity forgery, and data tampering.
Key Words: Internet of things; Elliptic curve cryptography; Ascon algorithm; Secure communication
智能家居物聯網是信息技術與物聯網技術的融合應用,其核心架構通過設備數據采集、云端交互實現智能控制。數據通信作為連接設備與云端的核心紐帶,直接影響系統的實時性、可靠性與安全性。消息隊列遙測傳輸(Message Queuing Telemetry Transport,MQTT[ 5] )憑借輕量化和易與互聯網互聯互通的優勢,成為當前智能家居領域的主流通信協議。然而,其原生安全機制缺失,導致普遍采用明文傳輸,存在數據竊聽、信息篡改、中間人攻擊等安全隱患[1]。
對于MQTT通信的安全增強研究,主流云服務平臺采用傳輸層安全加固策略,例如:阿里云、華為云等廠商通過集成傳輸層安全協議(Transport Layer Security,TLS)[ 6] 來提升安全性。張詩怡等人[2][ 7] 提出了一種基于AugPAKE協議的安全增強架構,通過輕量化TLS層實現對MQTT通信的安全增強。劉澤超等人[3][ 8] 提出一種基于國密算法的MQTT安全保護方案,運用SM系列算法實現雙向身份認證、消息載荷加密和數據完整性驗證。雖然相關研究取得了一定的成果,但也存在同質化程度高、對資源受限的物聯網設備適應性不足等問題。傳統的RSA算法和高級加密標準(Advanced Encryption Standard,AES)[ 9] [0a10] 混合加密方案與國密算法體系均存在資源消耗高的問題,難以滿足低成本智能設備的運行需求。針對資源受限的智能家居設備,本文提出了一種混合使用橢圓曲線密碼體制(Elliptic Curve Cryptography,ECC)[ 11] 算法與Ascon加密算法的MQTT通信安全增強方案,以提高智能家居物聯網通信的安全性。[ 12] [0a13]
1 MQTT協議概述
MQTT協議是一種專為物聯網環境設計的輕量級消息傳輸協議,旨在實現資源受限的嵌入式設備與云端服務器之間高效、可靠通信。MQTT協議采用最小化報文設計,其固定頭部僅為2個字節,額外開銷極低,基于發布/訂閱模型實現了將消息生產者與消費者解耦,從而構建出具有高度靈活性的網絡架構[4]。MQTT協議定義了3種實體:發布方作為消息源節點,訂閱方作為消息接收節點,承擔消息路由功能的MQTT代理。在MQTT網絡中,MQTT客戶端既可以充當發布方又可以充當訂閱方,并且發布方和訂閱方之間無需建立直接通信鏈路,如圖1所示。
MQTT協議報文采用分層結構設計,由固定頭部、可變頭部和有效載荷3部分構成。固定頭部包含了消息類型、標志位與剩余長度字段。可變頭部和有效載荷在部分報文中存在,其中,有效載荷是實際發送的消息數據。
2 加密算法
2.1 Ascon算法
Ascon是一種面向物聯網、邊緣計算等資源受限場景設計的輕量級對稱加密算法,于2023年正式成為美國國家標準與技術研究院輕量級密碼標準[5],其核心特征在于采用海綿結構實現加密與認證一體化。其加密過程由4個階段組成:(1)初始化階段:通過12輪置換函數,將128位密鑰和Nonce擴展為320位初始狀態;(2)關聯數據處理階段:將數據分塊與狀態異或后執行6輪置換;(3)明文加密階段:明文分塊與狀態異或生成密文,同時將密文吸收回狀態并執行6輪置換;(4)認證標簽生成階段:通過二次密鑰綁定與12輪置換生成128位認證標簽。
解密時,首先使用相同密鑰和Nonce解密恢復明文,接著按加密步驟重新計算認證標簽,最后比對認證標簽的一致性,以確保數據完整性與真實性。Ascon算法憑借其“加密即認證”的特性,以及在低于1 KB的資源開銷下即可實現抗側信道與重放攻擊,成為資源受限型物聯網設備的理想選擇。
2.2 ECC算法
ECC算法是一種基于橢圓曲線離散對數問題的非對稱加密算法,其安全性依賴于橢圓曲線線群運算的非對稱性,即已知基點和標量積,求解標量因子在計算上不可行。ECC算法應用于加密時,可以分為密鑰生成、加密與解密3個過程。(1)密鑰生成.確定一條橢圓曲線、基點和私鑰,然后通過標量乘法計算得到公鑰。(2)加密。使用公鑰,通過標量運算將明文生成密文。(3)解密。使用私鑰,對密文進行標量運算來恢復明文。[ 16] [0a17]
研究表明,ECC算法在等效安全強度下具有更優的性能表現:在相同安全等級下,RSA算法需要的模長為1 024位,ECC算法只需要160位,并且ECC算法在計算速度、存儲需求等方面都優于RSA算法[6]。
3 MQTT通信安全增強機制研究
現有基于TLS框架的MQTT通信安全增強方案普遍面臨資源受限設備的適配瓶頸。以在智能家居設備上廣泛使用的ESP8266芯片為例,其典型主頻為80 MHz[ 18] [0a19] ,加載必需模塊后的可用內存不足50 KB,無法正常運行以RSA和AES算法為核心的TLS框架。此外,現有研究多聚焦于MQTT代理的安全改造,但在實際商業場景中,多數智能家居廠商采購標準化MQTT云服務,無法對MQTT代理進行定制化安全升級。針對上述雙重約束,本文提出基于ECC和Ascon算法混合加密的端到端加密MQTT通信安全增強方案,通過將加、解密下沉至終端設備和云平臺,使MQTT代理僅負責消息轉發,在維持現有通信架構基礎上,實現傳輸層安全保障。
3.1 MQTT通信安全增強方案設計
基于端到端加密的智能家居物聯網MQTT通信過程由4個步驟組成:首先,發送方對原始明文進行加密生成密文載荷;其次,發送方將密文載荷封裝到MQTT報文有效載荷字段并發送給MQTT代理;再次,MQTT代理依據主題匹配規則將報文轉發給接收方;最后,接收方對密文載荷進行解密,恢復原始明文。在此過程中,敏感的明文數據僅存在于智能家居設備和云平臺內部,MQTT代理與傳輸鏈路中僅處理密文數據,從而構建起端到端的數據加密傳輸機制。
通過分析以上通信過程,可知該方案的有效性取決于加密算法的安全強度與性能適配性。對稱加密算法具備高效的大規模數據加密能力,但面臨密鑰安全分發的挑戰;非對稱加密算法雖然有效解決了密鑰分發問題,但存在計算資源需求瓶頸。因此,本文提出分層式混合加密架構:利用ECC算法構建身份認證與安全密鑰協商機制,通過Ascon算法實現高效數據加密。
3.2 MQTT通信安全增強方案實施架構[ 20]
如圖2所示,本方案在智能家居物聯網場景下的實施架構包含4個核心階段:設備入網注冊、設備身份認證、會話密鑰協商和安全數據通信。各階段的技術實現流程如下所述。
3.2.1 設備入網注冊階段
在智能家居設備首次接入網絡前,需要在云平臺注冊并完成安全初始化配置。具體過程如下:首先,云平臺為設備生成全局[A23] [0a24] 唯一標識符通用唯一識別碼(Universally Unique Identifier,,并基于ECC生成設備ECC密鑰對;其次,將設備、設備ECC私鑰與云平臺ECC公鑰寫入設備安全存儲區;最后,在云平臺建立設備身份注冊庫,存儲設備、設備ECC公鑰,形成設備白名單。
設備身份認證階段
設備接入網絡時,需要完成雙向身份認證。首先,設備構造認證請求報文,使用對實施加密,形成密文。其次,云平臺通過解密獲取設備,查詢注冊庫驗證設備合法性。最后,認證通過后,觸發會話密鑰協商流程,未注冊設備將被忽略。
會話密鑰協商階段
在智能家居物聯網中,常見的通信模式為設備與云平臺之間的一對一通信,以及云平臺向設備進行消息廣播。為了適配這兩種模式,實施中,采取由云平臺按照前向安全原則實施動態密鑰管理。首先,云平臺隨機生成128位Ascon會話密鑰;其次,云平臺使用設備ECC公鑰加密會話密鑰,生成密文;最后,設備通過解密獲取,存儲于芯片安全內存區域。
為避免因長時間使用同一會話密鑰而導致密鑰泄露問題,云平臺設置會話密鑰有效期為24 h[ 25] [0a26] ,超時后,自動再次觸發會話密鑰協商流程。
安全數據通信階段
雙方基于協商的會話密鑰在MQTT網絡中實施端到端數據加密通信。首先,設備采用Ascon算法對原始數據執行認證加密操作,生成密文與128位認證標簽。其次,將密文和認證標簽封裝到MQTT報文有效載荷字段,通過MQTT代理進行消息路由。最后,云平臺收到報文后,使用執行解密與認證標簽驗證,確保數據完整性與真實性。
本方案實施架構通過設備注冊、設備認證、會話密鑰協商3個階段,實現了雙向身份認證和會話密鑰安全分發,從而實現端到端加密的MQTT通信安全增強。
3.3 端到端加密的MQTT通信安全分析
3.3.1 密碼學安全性分析
密碼學安全性是密碼系統抵御惡意攻擊、確保信息安全的能力。本方案在設備認證、會話密鑰協商階段使用ECC算法對數據進行加密,在數據通信階段使用Ascon算法進行加密,此混合加密架構保障了機密性。Ascon算法加密與認證一體化,密文附帶了128位認證標簽,可以實現數據完整性和真實性驗證;會話密鑰超時自動更新機制與ECC密鑰不參與數據加密的密鑰隔離設計保證了前向安全性。
3.3.2 實施架構安全性分析
系統通過由兩階段構成的雙向身份認證機制抵御身份偽造攻擊。(1)云平臺驗證設備身份。設備使用云平臺ECC公鑰加密設備,因此只有云平臺才能解密得到設備,并通過與注冊庫內的設備信息驗證來確認設備身份。(2)設備驗證云平臺身份。云平臺使用設備ECC公鑰加密會話密鑰,只有對應的設備才能解密得到正確的會話密鑰,從而得以正常進行數據加密通信。
3.3.3 抗攻擊能力分析
系統的抗攻擊能力分析如表1所示。
本方案通過混合加密架構與實施架構優化,實現了雙向身份認證和會話密鑰的安全分發,在資源受限條件下,實現基于端到端加密的MQTT通信安全增強。
4 結語
本文提出了一種面向智能家居物聯網的端到端加密MQTT通信安全增強方案,通過融合ECC算法與Ascon算法構建分層混合加密架構,有效平衡了資源受限環境下的安全性與效率。系統采用4階段實施流程:設備注冊階段,通過云平臺生成唯一設備ID和ECC密鑰對;設備認證階段,基于ECC加密設備唯一ID實現設備身份認證;密鑰協商階段,利用橢圓曲線綜合加密方案機制動態分發Ascon會話密鑰,結合密鑰動態管理保障前向安全,并實現了云平臺身份認證;安全通信階段,借助Ascon算法實現“加密即認證”,確保數據機密性與完整性。該方案通過端到端加密隔離MQTT代理的明文接觸,實現抗中間人攻擊、重放攻擊與側信道分析的綜合防護,為智能家居物聯網的MQTT安全通信提供了一個可行方案。
參考文獻
鄭堯文,文輝,程凱,等.物聯網安全威脅與安全模型[J].信息安全學報,2023,8(5):81-95[ 27] .
張詩怡,朱豪杰,黃明浩,等[ 28] .MQTT協議安全加固研究[J].通信技術,2022,55(12):1626-1635[ 29] .
劉澤超,梁濤,孫若塵,等.基于國密算法的MQTT安全機制研究與實現[J].計算機科學,2024,51(2):333-342.[ 30]
MQTT Specifications MQTT Version 5.0[EB/OL].(2019-03-07)[2025-04-02]. https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html.[ 31]
汪靜,何樂生,李忠紅,等.物聯網輕量級認證加密算法ASCON的軟硬件協同設計[J].物聯網學報,2022,6(4):139-148[ 32] .
王鑫淼,孫婷婷,馬晶軍.RSA算法在網絡數據傳輸中的研究進展[J].計算機科學,2023,50(S1):703-709[ 33] .