?

國密算法在智能家居數據安全應用研究

2021-01-03 13:21侯憲鋒韓磊王興元王豐
中國新通信 2021年20期
關鍵詞:字節客戶端加密

侯憲鋒 韓磊 王興元 王豐

【摘要】? ? 智能家居給人們帶來舒適便捷的同時,隱私安全問題也日益凸顯。文章闡述了基于自定義協議的數據加密系統,系統采用國密算法,自主可控。建立算法模型,使用SM3,SM4算法實現終端與服務端身份互認證,數據加密,秘鑰因子分發等功能。提高了各端數據安全性。

【關鍵字】? ? 國密算法? ? 身份認證? ? 數據加密? ? 算法模型

引言:

智能家居就是采用現代聯網、布線及自動控制等技術將家居終端設備集成,智能家居提高了生活的便捷及舒適性。任何通過網絡傳輸的信息都存在一定的安全隱患,當前,對智能家居的研究主要集中在應用開發,對使用過程中安全問題投入的關注度還不夠。

智能家居進行終端控制采用的通信方式主要分為兩種:無線通信和有線通信。無線通信包含以下通訊方式:ZigBee,Z-wave,RF,Bluetooth,WiFi,Lora,NB-IOT等;有線通信包含以下通訊方式:RS485,RS232,CAN,Lonworks,Modbus,KNX等[1]。

智能家居通過網絡傳輸控制指令進行家居設備控制及設備狀態上報,達到智能化。帶來便捷的同時,也對家居設備帶來了安全威脅問題。數據安全,才能保障智能家居系統安全,保證用戶隱私安全;智能家電安全同樣引起重視[2-3]。

系統采用身份認證,指令數據加密提高了抵御來自網絡威脅的能力。系統中所涉及到的所有與終端交互數據加密部分,都采用國密算法。國密常用算法:對稱算法,SM1,SM4;非對稱算法,SM2;密碼雜湊算法,SM3(HASH算法庫)[4]。其中SM2,SM3,SM4已公開算法,SM1算法未公開,必須調用硬件接口。本文主要關于系統中服務端與網關設備端數據交互部分。

一、系統架構

系統由服務端、終端、網絡等組成。系統軟件框架圖如圖1所示。

系統服務端負責業務處理:信息管理、收發數據、身份認證、數據處理、存儲等功能;用戶端查詢、控制范圍內的設備狀態;終端網關鏈接服務端與家居設備,收發指令。

二、算法模型

服務與網關客戶端數據交互采用自定義協議,方便后期的維護與擴展,協議格式如下:

數據交互過程中,主要包括:身份認證,數據加密交互。數據加密流程中首先要完成秘鑰因子的生成及確認。圖2所示身份認證邏輯流程,圖3所示秘鑰因子生成邏輯流程。

2.1身份認證

身份認證是相互的,假設通訊雙方是客戶端和服務端:客戶端認證服務端身份,服務端認證客戶端身份,只有同時通過認證,才可以進行數據通訊。

身份認證邏輯流程圖2所示。

身份認證采用SM3算法,輸出結果256比特,32字節。

假設IN(n)標識長度為n字節的字符串,其中n>0。

客戶端身份認證數據封裝算法模型:

注解:

(1)協議中校驗范圍內的所有數據;(2)驗證因子:設備注冊到平臺時,產生的數值,只保存在服務端和設備端,不在網絡上傳輸,只驗證時參與運算;(3)使用SM3計算校驗值,校驗范圍數據與驗證因子組成字符集合做校驗,生成校驗值hash_in(32);(4)封裝身份認證數據DATA。

客戶端按照算法模型計算封裝認證協議數據包發送到服務端。

服務端身份認證算法模型:

注解:

(1)校驗值,隨協議包明文傳輸的驗證數據32字節;(2)長度為n(n>0)的協議數據,不包含(1)校驗值內容;(3)驗證因子,與客戶端同一驗證因子;(4)使用SM3算法計算出的值生成認證數據hash(32);(5)比對兩個驗證數據是否相等,結果為0或1,相等為1通過驗證,不等為0不通過驗證。RET表示最后的結果0或1。

服務端認證客戶端發送的數據,通過認證后,產生認證數據到客戶端進行認證,客戶端對服務端做出認證后,完成認證流程,鏈路保持;認證失敗,斷開鏈路,釋放資源。

算法模型驗證數據,十六進制展示發送數據(表2)。

2.2數據加密

交互數據在傳輸過程中采用一數據包一秘鑰的方式。

加密算法采用對稱算法,國密SM4公開算法,國密SM1算法沒有公開,需使用對應的硬件進行加解密。SM4為分組加密算法,秘鑰長度、數據分組長度為128位(16字節)。

data_t=sm4_enc(key,data_i)數據加密;data_i=sm4_dec(key,data_t)數據解密。data_i原始明文數據,key加密秘鑰,data_t加密后生成的密文數據。

秘鑰因子生成邏輯流程如圖3所示。

1.秘鑰因子的產生

秘鑰因子作為秘鑰的一部分參與到數據加解密中,秘鑰因子由服務產生并定時進行更換。服務端秘鑰可由硬件生成真隨機數并保存形成秘鑰池,使用時從秘鑰池中提取,秘鑰池定時更新。

服務端秘鑰因子數據封裝算法模型:

注解:

(1)服務從秘鑰池中獲取8字節秘鑰作為秘鑰因子;(2)服務端與網關客戶端默認的8字節部分秘鑰;(3)協議報文頭中8字節毫秒時間戳字段與默認8字節秘鑰組成16字節加密秘鑰;(4)SM4加密算法加密秘鑰因子,生成16字節密文數據data_t(16);(5)報文頭數據;(6)報文頭與密文數據生成32字節校驗值hash(32);(7)封包數據結果DATA。

服務端認證成功客戶端身份后,按照秘鑰因子生成算法模型封裝協議數據包發送到客戶端。

2.秘鑰因子驗證

客戶端接收到數據后,驗證數據包完整性,解密數據,獲取秘鑰因子,根據規則生成加密秘鑰,發送默認數據加密后的數據到服務端驗證秘鑰因子正確性。

客戶端加密默認數據驗證秘鑰因子算法模型:

注解:

(1)計算出校驗值驗證數據完整性;(2)解密數據內容,獲取秘鑰因子;(3)使用毫秒時間戳和秘鑰因子生成加密秘鑰;(4)加密16字節默認明文數據;(5)報文頭數據;(6)報文頭與密文數據生成32字節校驗值hash(32);(7)封包數據DATA,發送到服務端,等待服務處理結果(按照圖3流程)。

身份認證及秘鑰因子生成完成后,指令數據交互按照一數據包一秘鑰的方式進行。

算法模型驗證數據,十六進制展示發送數據(表3)。

2.3算法性能

封裝數據包過程中高頻次使用SM3、SM4國密算法,提高數據安全。對算法性能做了相關測試,可滿足通訊過程中數據處理要求:

三、結束語

本系統使用國密算法,對數據安全進行防護。身份互認證機制,維護了各端身份安全;系統設計使用一數據包一秘鑰設計,提高了每一數據包的安全性,實現了加密數據安全實時通信功能。算法采用國密算法,協議為自定義協議,自主可控,方便維護與擴展。

參? 考? 文? 獻

[1]許奎.智能家居通訊協議綜述[J].儀器儀表用戶,2017,2(24):109-111.

[2]吳曉慶,鄭駿. 基于4G網絡的視頻加密傳輸軟件設計[J]. 電子與封裝, 2021, 21(2): 020302 .

[3]肖詩滿;陳軍;紀瑤;夏江;楊林. 智能家電電路典型失效機理與設計缺陷[J]. 電子與封裝, 2020, 20(12): 120401 .

[4]王小云,于紅波.SM3密碼雜湊算法[J].信息安全研究,2016,2(11):983-994.

猜你喜歡
字節客戶端加密
字節跳動瞄準教育等新業務
保護數據按需創建多種加密磁盤
谷歌禁止加密貨幣應用程序
虛擬專用網絡訪問保護機制研究
加密與解密
新聞客戶端差異化發展策略
人類進入“澤它時代”
淺析IEEE 802.1x及其客戶端軟件
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合