王杰昌 張 平
1(鄭州大學(xué)體育學(xué)院計算機(jī)教研室 河南 鄭州 450044)2(河南科技大學(xué)數(shù)學(xué)與統(tǒng)計學(xué)院 河南 洛陽 471023)
NB-IoT是物聯(lián)網(wǎng)的重要分支,自從標(biāo)準(zhǔn)建立以來,因其低功耗、廣覆蓋、大連接、低成本等特點而迅速發(fā)展[1-3]。在中國市場,因政府的大力支持,NB-IoT前景廣闊,將是物聯(lián)網(wǎng)行業(yè)的一個新爆點。其應(yīng)用場景有智能停車、智能抄表、共享單車、智能穿戴[4]、共享汽車、共享空調(diào)、大學(xué)宿舍智能門禁、公租房智能鎖等,NB-IoT將融入我們生活的方方面面。
隨著NB-IoT技術(shù)的大量使用,其安全問題自然是首要考慮的,比如政府公租房NB-IoT智能鎖,一旦開鎖密鑰被竊取,租客財物則面臨丟失的風(fēng)險,所以如何管理密鑰成為研究重點。文獻(xiàn)[5]為解決NB-IoT應(yīng)用的數(shù)據(jù)安全問題,提出一種基于AES[6]與混沌序列的輕量級加密算法以及加密模型,對NB-IoT終端和HCI之間傳輸?shù)臄?shù)據(jù)利用密鑰Key進(jìn)行加密,然而其未說明如何傳遞密鑰。文獻(xiàn)[7]在NB-IoT不可靠的UDP數(shù)據(jù)傳輸方式下,精心設(shè)計了一個密鑰傳輸交互方案,以盡可能小的計算開銷和通信開銷來完成用戶開鎖密鑰的可靠更新,但其出現(xiàn)開鎖密鑰更新失敗繼續(xù)使用舊密鑰的情況。同時,該方案在服務(wù)器和智能鎖之間使用舊密鑰或之前協(xié)商好的密鑰作為會話密鑰,所以兩者間的會話安全性不高。文獻(xiàn)[8]為防止惡意用戶合謀遠(yuǎn)程開鎖以及重放攻擊,設(shè)計了基于位置證明的身份驗證機(jī)制以及時間戳加密機(jī)制,但其沒有具體說明服務(wù)器如何向智能鎖下發(fā)開鎖密鑰,同時智能鎖未向服務(wù)器上傳運行信息,服務(wù)器無法掌握智能鎖的運行狀況,其安全性有待提高。
NB-IoT智能鎖所面臨的安全問題:管理服務(wù)器如何安全地接收用戶和智能鎖的信息;管理服務(wù)器如何安全地向智能鎖和合法用戶下發(fā)開鎖密鑰;系統(tǒng)如何防止用戶用過期的密鑰開鎖?,F(xiàn)有研究并未很好地解決這些問題,對此本文將改進(jìn)文獻(xiàn)[7-8]的方案,設(shè)計一種更安全的密鑰管理方案,妥善解決密鑰傳輸以及信息交互問題,并證明其安全性。
NB-IoT智能鎖系統(tǒng)中主要有三方:用戶智能手機(jī)SP(Smart Phone)、智能鎖SL(Smart Lock)和管理服務(wù)器MS(Management Server),如圖1所示。管理服務(wù)器接收用戶智能手機(jī)請求、審核用戶資質(zhì)、接收智能鎖運行信息、管理開鎖密鑰;智能鎖利用NB-IoT和管理服務(wù)器進(jìn)行通信,通過藍(lán)牙接收手機(jī)的開鎖指令;合法用戶智能機(jī)向管理服務(wù)器申請開鎖密鑰,通過藍(lán)牙向智能鎖發(fā)送加密的開鎖指令。該系統(tǒng)的關(guān)鍵在于如何管理開鎖密鑰。
圖1 NB-IoT智能鎖系統(tǒng)架構(gòu)圖
在NB-IoT智能鎖系統(tǒng)中,管理服務(wù)器是可信的,它會向智能鎖和合法用戶下發(fā)正確的開鎖密鑰,注銷到期用戶的密鑰,且不會向敵手泄露密鑰。鎖是安全可控的,不會泄露密鑰。用戶是半誠信的,他會遵守密鑰管理方案規(guī)則,但是他還會盡量利用已獲取的系統(tǒng)信息,在密鑰過期或無密鑰的情況下開鎖。
每個NB-IoT智能鎖都有唯一一個國際移動設(shè)備身份標(biāo)識碼IMEI(international mobile equipment identity),是15位數(shù)字組成的“電子串號”,本文將利用IMEI為智能鎖產(chǎn)生會話密鑰。
ECC[9](橢圓曲線密碼體制)是一種強(qiáng)大的公鑰密碼體制,其使用的是變元和系數(shù)均為有限域中元素的橢圓曲線,其數(shù)學(xué)基礎(chǔ)是利用橢圓曲線上的有理點構(gòu)成的阿貝爾群上橢圓曲線離散對數(shù)的計算困難性。對于有限域GF(q)(其中q為一大素數(shù))上的橢圓曲線E,其任意兩點R和G,有R=cG,在已知R和G的前提下求出小于q的正整數(shù)c。已知c和G計算R比較容易,但是已知R和G計算c非常困難,ECC的安全性就是建立在這個問題的困難程度之上的,這個問題稱為橢圓曲線對數(shù)問題。本文所述的秘密鑰是指對稱加密算法中使用的密鑰,而非公鑰密碼學(xué)中使用的公鑰和私鑰。
應(yīng)用中所使用的兩種橢圓曲線分別是在有限域GF(2m)上構(gòu)造的二元曲線和定義在有限域Zq上的素曲線,其中:GF(2m)元素個數(shù)為2m,m為正整數(shù);Zq是小于q的非負(fù)整數(shù)集合,稱為模q的同余類集合,同時也是一個有限域。文獻(xiàn)[10]認(rèn)為,因為可以用很少的門電路來得到快速且強(qiáng)大的密碼體制,對硬件應(yīng)用最好使用在GF(2m)上構(gòu)造的二元曲線;而對軟件應(yīng)用最好使用定義在Zq上的素曲線,因其不需要二元曲線所要求的位混淆運算。本文在硬件上使用ECC,故采用GF(2m)上構(gòu)造的二元曲線。
1976年Diffie等[12]基于有限域上計算離散對數(shù)的困難性,提出了Diffie-Hellman密鑰交換算法,ECDH算法[13]是Diffie-Hellman密鑰交換在橢圓曲線上的實現(xiàn)。對于給定的安全級別,點乘運算比模冪運算快大約10倍左右,因此ECDH算法比Diffie-Hellman密鑰交換算法效率要高[14]。利用ECDH可產(chǎn)生雙方共享的秘密鑰,首先挑選一個大整數(shù)2m,以及使有限域GF(2m)上橢圓曲線y2+xy=x3+ax2+b成立的參數(shù)a和b,由此可以定義出點的橢圓群E2m(a,b);其次,在E2m(a,b)中挑選基點G=(x0,y0),G的階為一個非常大的數(shù)n。橢圓曲線上點G的階n是使得nG=0成立的最小正整數(shù)。E2m(a,b)和G是該密碼體制中通信各方均已知的參數(shù)。
本文方案的密鑰管理流程如圖2所示,通過ECDH實現(xiàn)管理服務(wù)器和智能鎖間的密鑰交換,生成兩者間共享的會話密鑰(該會話密鑰安全性高于文獻(xiàn)[7-8])。管理服務(wù)器生成開鎖密鑰,并利用會話密鑰加密開鎖密鑰將其下發(fā)給智能鎖,智能鎖利用會話密鑰將自己的運行信息加密上傳給管理服務(wù)器,這兩種通信過程中采用AES對稱加密體制,均在NB-IoT鏈路上進(jìn)行。用戶通過掃碼向管理服務(wù)器申請公租房,則管理服務(wù)器審核其資格,若不符合條件,拒絕向其下發(fā)密鑰;若符合條件,管理服務(wù)器使用用戶的公鑰加密開鎖密鑰將其下發(fā)給用戶,用戶用自己的私鑰解密得到開鎖密鑰。之后,用戶可使用開鎖密鑰加密開鎖指令發(fā)送給智能鎖,智能鎖利用開鎖密鑰解密消息,得到開鎖指令并開鎖,此過程采用AES對稱加密算法,若雙方的開鎖密鑰不一致,則智能鎖不能解密及開鎖。
圖2 NB-IoT智能鎖系統(tǒng)密鑰管理流程圖
在使用過程中,NB-IoT智能鎖系統(tǒng)可視安全狀況定期更新密鑰。如果用戶已到租期(喪失資格),則管理服務(wù)器重新生成開鎖密鑰,并下發(fā)給智能鎖,用戶使用舊的開鎖密鑰則無法開鎖。
本文方案所涉相關(guān)符號如表1所示。
表1 本文符號說明
續(xù)表1
本文方案的詳述如下:
1) 管理服務(wù)器MS與智能鎖SL進(jìn)行密鑰交換,MS選擇私有的nMS(nMS是保密的,且滿足nMS 2) 智能鎖SL選擇私有的nSL(nSL是保密的,且滿足nSL 3) 管理服務(wù)器MS利用私有的nMS和接收到的PSL,通過計算產(chǎn)生密鑰: K=nMS×PSL=nMS×nSL×G=(xK,yK) (1) 同樣的智能鎖SL利用私有的nSL和接收到的PMS,通過計算產(chǎn)生密鑰: K=nSL×PMS=nSL×nMS×G=(xK,yK) (2) 兩個密鑰K相等,且只有MS和SL知道。因為密鑰K是一對數(shù)字(xK,yK),故雙方可按出廠協(xié)定取會話密鑰kML=xK+last(IMEI),其中函數(shù)取了智能鎖SL的電子串號IMEI的最后一位數(shù)字。因xK只有MS和SL知道,所以會話密鑰kML也只有雙方知道。 4) MS生成隨機(jī)的128 bit開鎖密鑰kSL=random(),并將加密消息EkML(kSL)發(fā)送給SL;同時SL將加密消息EkML(Info)發(fā)送給MS,上報SL的運行信息Info;SL利用會話密鑰kML解密消息EkML(kSL)得到開鎖密鑰kSL。其中:E為AES對稱加密算法;random()為隨機(jī)生成函數(shù)。 5) 用戶通過其智能手機(jī)SP掃碼,下載App,并向管理服務(wù)器MS發(fā)出開鎖密鑰申請,同時SP產(chǎn)生一對密鑰:私鑰KRSP和公鑰KUSP(比如其手機(jī)號或身份證號的函數(shù)生成值),并將其公鑰KUSP發(fā)送給MS。 6) 管理服務(wù)器MS收到申請后,審核該用戶資格。如果該用戶無租房資格,則拒絕申請。 7) 如果該用戶有租房資格,則MS利用其接收到的合法用戶公鑰KUSP將開鎖密鑰kSL加密,得到密文: C=EKUSP(kSL) (3) 并將其發(fā)送給合法用戶SP。傳輸過程中即使被第三方竊聽到C,但因第三方不知道私鑰KRSP,所以無法解密C得到kSL。 8) 合法用戶SP接收到密文C,利用其私鑰KRSP計算: DKRSP(C)=DKRSP[EKUSP(kSL)]=kSL (4) 得到智能鎖SL的開鎖密鑰kSL。 9) SP使用對稱密碼算法AES加密開鎖指令open和時間戳t,并將EkSL(open,t)通過藍(lán)牙發(fā)送給SL,SL利用kSL計算: DkSL[EkSL(open,t)]=(open,t) (5) 得到開鎖指令和時間戳,即執(zhí)行開鎖指令。若SP開鎖密鑰錯誤,則SL無法計算出開鎖指令,就不開鎖。使用藍(lán)牙通信可防止用戶轉(zhuǎn)租房屋,加入時間戳還可防范重放攻擊。 10) 若SP租期已到,則MS生成新的開鎖密鑰kSL,并將其下發(fā)給SL。SP則無法利用舊的kSL開鎖。 本文密鑰管理方案算法如下: 1. MS→SL:PMS,SL→MS:PSL 2.K=nSL×PMS=nMS×PSL=(xK,yK), kML=xK+last(IMEI) 3.kSL=random(),MS→SL:EkML(kSL), SL→MS:EkML(Info) 4. SL:kSL=DKML[EKML(kSL)] 5. SP→MS:request(KUSP) 6. if SP==false end 7. else 8. MS→SP:EKUSP(kSL), SP:kSL=DKRSP[EKUSP(kSL)] 9. SP→SL:EkSL(open,t), SL:DkSL[EkSL(open,t)]=(open,t) 10. if SP become due 11. run step 3 12. end 一個密鑰管理方案的性能指標(biāo)主要包括安全性和運行效率。本文用信息熵來衡量安全性,香農(nóng)用信息熵的概念來描述信源的不確定度[15],明文信息經(jīng)過加密算法加密后產(chǎn)生的密文信息熵越大,其不確定性越大,安全性也越高[16]。運行效率本文用運行時間來衡量,時間越短,效率越高。 信息熵在事件發(fā)生之前,它是結(jié)果不確定性的量度,在事件發(fā)生之后,它是從該事件中所得到的信息量度[17]。 在管理服務(wù)器MS和用戶智能手機(jī)SP的信息交互過程中,以及智能手機(jī)SP和智能鎖SL的信息交互中,因本方案與文獻(xiàn)[7-8]采取同樣的加密算法和相同長度的密鑰,故信息熵一樣。因此,只比較服務(wù)器MS與智能鎖SL信息交互過程中本方案與文獻(xiàn)[7-8]的信息熵,MS與SL的信息交互如圖3所示。因本方案和文獻(xiàn)[7-8]均使用128 bit的開鎖密鑰kSL,所以隨機(jī)變量kSL的信息熵一樣,記為H(kSL)。 圖3 管理服務(wù)器與智能鎖信息交互圖 3.1.1 本方案信息熵 1) 信源MS向SL傳遞消息,其信息熵表示為H(S1);MS→SL:EkML(kSL),消息EkML(kSL)的信息熵又為離散隨機(jī)變量KML和kSL的聯(lián)合熵H(kSL,KML)。隨機(jī)變量KML和kSL相互獨立,所以兩者的互信息I(KML;kSL)=0;前文中MS和SL通過密鑰交換產(chǎn)生的共享秘密鑰為K=nSL×nMS×G=(xK,yK),而開鎖密鑰kML=xK+last(IMEI),所以: (6) 因此,可得到: H(S1)=H(kSL,KML)=H(kSL)+H(KML)-I(KML;kSL)= H(kSL)+H(KML)=H(kSL)+ (7) 2) 信源SL向MS上傳加密消息,其信息熵表示為H(S2);SL→MS:EkML(Info),消息EkML(Info)的信息熵又為離散隨機(jī)變量KML和Info的聯(lián)合熵H(KML,Info)。隨機(jī)變量KML和Info相互獨立,所以兩者的互信息I(KML;Info)=0,所以有: H(S2)=H(KML,Info)=H(KML)+H(Info)- I(KML;Info)=H(Info)+H(KML)= (8) 綜合1)和2)可知,在MS和SL的一輪信息交互中,總體信息熵為: H(S)=H(S1)+H(S2)=H(kSL)+H(Info)+ (9) 3.1.2 文獻(xiàn)[7]方案信息熵 文獻(xiàn)[7]中,開鎖密鑰有更新成功和更新失敗兩種情況,這兩種情況下的信息熵不同,下面分別討論: (10) (11) (12) 綜合(1)和(2)可知,在MS和SL的一輪信息交互中,總體信息熵為: (13) 所以H(SL)≤H(S),文獻(xiàn)[7]的總體信息熵不超過本方案的總體信息熵。 (14) (1) MS→/SL,管理服務(wù)器MS無信息成功發(fā)送至智能鎖SL,所以: (15) (16) 綜合(1)和(2)可知,在MS和SL的一輪信息交互中,總體信息熵為: (17) 所以H(SL) 經(jīng)以上證明可知,文獻(xiàn)[7]中在兩種不同情況下的總體信息熵基本低于本文方案的總體信息熵。 3.1.3 文獻(xiàn)[8]方案信息熵 (18) 因此有: (19) (20) 綜合1)和2)可知,在MS和SL的一輪信息交互中,總體信息熵為: (21) 所以H(SS) 由本節(jié)分析可知,本方案的信息熵高于文獻(xiàn)[7-8]的信息熵,安全性也就高于文獻(xiàn)[7-8]方案。 將本文方案應(yīng)用于公租房,租期一般3至5年,用戶對方案系統(tǒng)的體驗主要是租期內(nèi)開鎖算法的運行時間。本文方案在開鎖階段與文獻(xiàn)[7-8]一樣都采用AES算法,且都使用128 bit的開鎖密鑰,故在大多數(shù)情況下,本文方案的運行時間、文獻(xiàn)[7-8]運行效率以及用戶的開鎖體驗相同。 通過對信息熵和運行時間的分析可知,本文方案的安全性高于文獻(xiàn)[7-8],運行效率與文獻(xiàn)[7-8]相同。 本文妥善地解決了NB-IoT智能鎖系統(tǒng)中的密鑰管理問題,實現(xiàn)了安全有效的密鑰下發(fā)、密鑰更新、信息交互等過程,又引入信息熵作為評價安全性的指標(biāo),并通過數(shù)學(xué)證明了文中方案具有較高的安全性。另外,本文也通過理論分析證明方案的運行效率并不低。面對日益蓬勃發(fā)展的NB-IoT應(yīng)用,本文方案具有較高的實用性。2.3 密鑰管理方案算法
3 性能評估
3.1 信息熵
3.2 運行時間
4 結(jié) 語