張金花,李曉偉,曾 新,趙榆琴,段 燃,楊鄧奇
大理大學數(shù)學與計算機學院 大理 中國 671000
隨著物聯(lián)網(wǎng)技術的快速發(fā)展,物聯(lián)網(wǎng)應用也逐漸廣泛。大量的終端設備接入網(wǎng)絡中將產(chǎn)生海量級的數(shù)據(jù),這為云中心及時有效地處理數(shù)據(jù)帶來了更大的挑戰(zhàn)。邊緣計算是指在網(wǎng)絡邊緣執(zhí)行計算的一種新型計算模型。網(wǎng)絡邊緣是指從數(shù)據(jù)源到云計算中心路徑之間的任意計算和網(wǎng)絡資源[1]。邊緣計算技術的引入減輕了云中心的網(wǎng)絡負擔,但同時也引起了一些安全問題。邊緣計算環(huán)境下的終端數(shù)量較多,層次復雜,多種安全域并存,安全性要求更高。身份認證是設備接入網(wǎng)絡的第一步也是網(wǎng)絡安全的第一道屏障。傳統(tǒng)的物聯(lián)網(wǎng)身份認證協(xié)議大多數(shù)都是基于云中心-終端設備的網(wǎng)絡架構(gòu),而邊緣計算環(huán)境下網(wǎng)絡架構(gòu)有所改變,如圖1 所示。在邊緣計算環(huán)境中設備計算及通信主要在設備邊緣完成,原有的網(wǎng)絡認證模式已不再適用。同時,邊緣計算環(huán)境中往往涉及多個域,多個域間設備安全通信需要跨域間身份認證與密鑰協(xié)商。物聯(lián)網(wǎng)單域間身份認證與密鑰協(xié)商方案已經(jīng)有比較成熟的研究成果[2-6]。但輕量級的邊緣計算環(huán)境下跨域間認證與密鑰協(xié)商方案仍有待研究。
現(xiàn)有的物聯(lián)網(wǎng)身份認證主要是基于公鑰基礎設施(Public Key Infrastructure,PKI)認證技術。PKI 技術依靠數(shù)字證書進行身份認證,依靠加密技術保證信息不被泄漏,以保證信息的完整性、保密性和抗抵賴性。PKI 解決了互聯(lián)網(wǎng)絡中的公鑰分發(fā)問題,是互聯(lián)網(wǎng)的信任基礎,也是目前保障網(wǎng)絡安全較好的認證體系[7]?;赑KI 體系的物聯(lián)網(wǎng)跨域認證已有學者做了如下研究:文獻[8]提出一種適用于“云-邊-端”一體化物聯(lián)網(wǎng)認證架構(gòu)下基于PKI 和國密SM9 標識的認證體系。在邊緣計算環(huán)境中,物聯(lián)網(wǎng)終端設備直接在網(wǎng)絡邊緣進行跨域認證,實現(xiàn)了高效的跨域認證和位置隱私保護。對于低性能的物聯(lián)網(wǎng)終端設備,降低了復雜度并且提高了終端跨域認證的效率。文獻[9]結(jié)合PKI 和基于身份的簽名(Identity-based signature,IBS)認證體系的優(yōu)點提出一種基于證書的簽名方案,避免了PKI 證書管理的復雜性和IBS 中密鑰托管和分發(fā)的問題,實現(xiàn)了安全高效和匿名的物聯(lián)網(wǎng)移動設備跨域認證。文獻[10]提出了基于身份的密碼體制和無證書加密體制相結(jié)合的認證方法,并優(yōu)化了跨域環(huán)境下的簽密算法,提出基于不同系統(tǒng)參數(shù)的跨域簽密方案。該方案能滿足臨時密鑰的安全需求,可應用在跨域網(wǎng)絡中提升計算效率降低成本,實現(xiàn)了物聯(lián)網(wǎng)環(huán)境下的跨域認證。
基于PKI 技術的認證方案雖然能實現(xiàn)跨域認證但需要復雜的證書管理體系,對于物聯(lián)網(wǎng)終端設備分布廣、數(shù)量多并且涉及多個通信域等特性,PKI 技術已經(jīng)不能很好的解決物聯(lián)網(wǎng)設備身份認證問題。區(qū)塊鏈技術的產(chǎn)生推動了數(shù)字證書的發(fā)展,區(qū)塊鏈與物聯(lián)網(wǎng)技術的結(jié)合也是未來的發(fā)展趨勢。區(qū)塊鏈中的數(shù)據(jù)區(qū)塊是以時間順序為序列、通過鏈式結(jié)構(gòu)鏈接形成的數(shù)據(jù)結(jié)構(gòu),每個區(qū)塊通過存儲前一個區(qū)塊的哈希值來確保區(qū)塊鏈的可追溯性[11]。區(qū)塊鏈技術具有分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法四大特性。區(qū)塊鏈解決的就是非安全環(huán)境中的可信問題、數(shù)據(jù)安全問題、身份權限問題和隱私保護問題[12]。區(qū)塊鏈的基本結(jié)構(gòu)如圖2 所示。區(qū)塊標識能對區(qū)塊進行識別,區(qū)塊體中包含某一時間段的所有交易數(shù)量,經(jīng)過哈希運算最后生成Merkle根哈希,區(qū)塊之間通過前一區(qū)塊的哈希值相互連接形成了按時間序列鏈接的區(qū)塊鏈?;趨^(qū)塊鏈的物聯(lián)網(wǎng)終端設備跨域認證方案目前研究較少。結(jié)合區(qū)塊鏈技術的跨域認證方案有如下研究:文獻[13]在不改變PKI 認證模型的基礎上結(jié)合區(qū)塊鏈技術提出了一種聯(lián)盟鏈信任模型,實現(xiàn)雙向?qū)嶓w跨域認證,并提供快速重認證。通過Hash 算法驗證證書,減少了公鑰簽名與驗證的次數(shù),提高了跨域認證的效率。文獻[14]提出了一種基于區(qū)塊鏈的物聯(lián)網(wǎng)分布式身份認證架構(gòu),對傳統(tǒng)的區(qū)塊數(shù)據(jù)結(jié)構(gòu)進行擴充,引入默克爾帕特里樹(Merkle Patricia tree,MPT)存儲物聯(lián)網(wǎng)設備及其數(shù)字證書以保證信息的可靠性,提高了認證效率和安全性。文獻[15]利用模糊提取技術并結(jié)合區(qū)塊鏈的智能合約,提出一種基于生物特征和口令雙因子的跨域認證方案。在實現(xiàn)跨域認證的同時,也避免了生物特征信息泄露保證其安全性。文獻[16]設計了一種基于區(qū)塊鏈的智能合約去中心化身份管理與認證模型,利用智能合約實現(xiàn)對用戶身份信息的發(fā)布、認證和撤銷,實現(xiàn)不同場景中的交叉認證。
以上物聯(lián)網(wǎng)認證方案中,跨域認證的方案一類是基于PKI和IBS的認證體制,主要是中心化的認證方式,這種認證方式一旦中心服務器受到攻擊就會威脅到整個系統(tǒng)安全。另一類是利用區(qū)塊鏈技術去中心化和不可篡改的特性設計分布式環(huán)境下的物聯(lián)網(wǎng)認證方案,這種方案設計相比傳統(tǒng)中心化的認證方式實現(xiàn)了更安全和高效的認證效率。由于物聯(lián)網(wǎng)環(huán)境中的異構(gòu)性以及存在多種不同的安全域,其中低性能的終端設備計算能力有限,在一些要求低延遲、實時性的物聯(lián)網(wǎng)場景中,基于傳統(tǒng)中心化的認證方式難以實現(xiàn)跨域認證和通信。本文主要解決現(xiàn)有物聯(lián)網(wǎng)環(huán)境中存在的低性能終端設備跨域認證問題,利用區(qū)塊鏈技術特點更好地解決跨域認證中存在的安全性問題。在“邊緣設備-終端設備”網(wǎng)絡架構(gòu)下設計區(qū)塊鏈的聯(lián)盟鏈信任模型,將終端設備的數(shù)字證書記錄在區(qū)塊鏈上減少了認證開銷,并且提高了認證的可靠性。本文基于以上認證方案設計邊緣計算環(huán)境下物聯(lián)網(wǎng)終端設備同域和跨域認證與密鑰協(xié)商協(xié)議,保證終端設備間通信的安全性。
2.1.1 系統(tǒng)架構(gòu)
基于區(qū)塊鏈的物聯(lián)網(wǎng)終端認證架構(gòu)如圖3 所示,主要由物聯(lián)網(wǎng)終端設備(Devices,D)、邊緣認證服務器(Edge Servers,ES)、區(qū)塊鏈認證中心(Blockch-ain Certificate Authority,BCCA)構(gòu)成。根據(jù)區(qū)塊鏈的共識機制選出每個域內(nèi)高性能的邊緣認證服務器ES,將ES 和BCCA 作為聯(lián)盟鏈內(nèi)的節(jié)點并且相互之間是可信的。BCCA 主要負責證書的頒發(fā),將證書的哈希值和狀態(tài)信息都存儲區(qū)塊鏈上。對終端設備擁有的證書哈希值與區(qū)塊鏈上的證書哈希值進行比較以實現(xiàn)物聯(lián)網(wǎng)終端設備身份認證,減少了數(shù)字證書的簽名與驗證過程。由于區(qū)塊鏈不可篡改以及可追溯的特性,本文提出的方案能夠提高物聯(lián)網(wǎng)終端設備身份認證的效率和安全性。
2.1.2 區(qū)塊鏈共識機制
本文基于聯(lián)盟鏈的特性設計了物聯(lián)網(wǎng)設備跨域認證架構(gòu),如何保證聯(lián)盟鏈內(nèi)的節(jié)點記賬達成一致,是區(qū)塊鏈研究的重點。本文選擇適用于聯(lián)盟鏈的委托權益證明(Delegated Proof of Stake,DPoS)的共識機制,根據(jù)DPoS 的工作機制將聯(lián)盟鏈內(nèi)的節(jié)點劃分為3 類:
1) 股民:包括全體節(jié)點;
2) 股東代表:節(jié)點投票選出若干名代表記賬;
3) 候選人:競爭股東代表的節(jié)點。
在DPoS 的工作機制中全體節(jié)點都可以作為候選人競爭股東代表,由股民根據(jù)占股比例進行投票選舉,獲得票數(shù)最多的若干名候選人成為股東代表,股東代表的人數(shù)由系統(tǒng)決定。股東代表負責記賬,落選的候選人成為股民,除股東代表外的其余節(jié)點同步賬本實現(xiàn)聯(lián)盟鏈內(nèi)的共識。
本節(jié)基于區(qū)塊鏈的物聯(lián)網(wǎng)認證架構(gòu)進行方案設計,認證方案分為終端設備身份注冊、設計同域和跨域認證與密鑰協(xié)商協(xié)議三個階段,同域和跨域認證的終端設備身份注冊階段相同。物聯(lián)網(wǎng)終端設備認證與密鑰協(xié)商協(xié)議的符號說明如表1 所示。

表1 物聯(lián)網(wǎng)跨域認證協(xié)議符號說明Table 1 Symbol description of IoT cross-domain authentication protocol
2.2.1 終端設備身份注冊
本方案的身份注冊是指終端設備Di通過邊緣認證服務器ES 進行注冊,身份注冊流程圖如圖4 所示。具體步驟如下:
1) 設備Di向ES 發(fā)送注冊請求。
2) ES 接收到Di的注冊請求,用私鑰解密驗證是否為合法用戶,若驗證通過,則注冊成功;反之,返回注冊失敗。
3) ES 向BCCA 發(fā)送申請證書請求。
4) BCCA 通過驗證隨機數(shù)及簽名的有效性,若驗證通過則生成數(shù)字證書,T 表示證書的有效期,并將數(shù)字證書的哈希值hI=H(Certi)寫入?yún)^(qū)塊鏈。
5) BCCA 將生成的證書哈希值返回給Di。
2.2.2 同域認證與密鑰協(xié)商
隨著物聯(lián)網(wǎng)設備的增加,云中心的網(wǎng)絡負擔也隨之增加。邊緣計算技術的出現(xiàn)為終端設備的身份認證提供了更方便和高效的認證方式,終端不再需要向云中心申請認證,而是在網(wǎng)絡邊緣進行本地化的認證。以A 域為例設計同域認證與密鑰協(xié)商協(xié)議。同域認證與密鑰協(xié)商流程圖如圖5 所示,具體步驟如下:
1) 設備DA向本域邊緣認證服務器ESA發(fā)送認證請求,為終端設備存儲的數(shù)字證書哈希值。
2) ESA收到請求消息后用私鑰解密,驗證身份信息。若驗證通過則為已經(jīng)注冊過的設備,繼續(xù)執(zhí)行下一步;反之,重新發(fā)送接入認證請求。
3) ESA向區(qū)塊鏈發(fā)送請求DA數(shù)字證書哈希值的消息。
4) 區(qū)塊鏈節(jié)點收到消息后查看N2是否有效,若有效將DA的證書哈希值h1發(fā)送給ESA。
5) ESA收到消息后將區(qū)塊鏈上存儲的數(shù)字證書哈希值與終端設備發(fā)送的數(shù)字證書哈希值比較是否一致,若結(jié)果相同則認證成功;反之,認證失敗。
6) ESA向DA發(fā)送認證成功的消息。
7) DA收到消息后用私鑰解密得到隨機數(shù)N3,DA向ESA發(fā)送密鑰協(xié)商的消息,KS1=H (IDA,N3,N4)即會話密鑰。
8) ESA收到消息后用私鑰解密得到回話密鑰KS1。
2.2.3 跨域認證與密鑰協(xié)商
以A、B 兩個域為例進行終端設備的跨域間通信,假設A 域設備DA漫游到B 域,通過ESB對ESA的認證間接實現(xiàn)ESB對DA的認證,從而實現(xiàn)DA的跨域認證??缬蛘J證與密鑰協(xié)商流程圖如圖6 所示,具體步驟如下:
1) 終端設備DA向邊緣認證服務器ESB發(fā)送訪問請求。
2) ESB收到訪問請求后向A 域邊緣認證服務器ESA發(fā)送請求認證DA的消息。
3) ESA收到請求消息后向ESB發(fā)送關于DA的認證信息。
4) ESB收到消息后通過查看N5是否有效,若有效則ESB向區(qū)塊鏈發(fā)送請求DA數(shù)字證書哈希值的消息。
5) 區(qū)塊鏈節(jié)點收到消息后查看N6是否有效,若有效將DA的數(shù)字證書哈希值h1發(fā)送給ESB。
6) ESB收到消息后將區(qū)塊鏈上存儲的數(shù)字證書哈希值與終端設備發(fā)送的數(shù)字證書哈希值比較是否一致,若結(jié)果相同則認證成功;反之,認證失敗。
7) 設備DA通過了認證服務器ESB的認證后,可以進行跨域通信。DA若要與B 域終端設備DB之間安全通信需要進行密鑰協(xié)商。DA產(chǎn)生一個私有的隨機數(shù)a,計算ga并將發(fā)送給DB。
8) DB收到消息后驗證簽名并得到ga,同時DB產(chǎn)生一個私有的隨機數(shù)b,計算gb并將發(fā)送給DA。
9) DA收到消息后驗證簽名并得到gb,DA通過計算KS2=(gb)a得到會話密鑰為KS2。
10) DB通過計算KS2=(ga)b得到的會話密鑰與DB的相同。
本文提出的物聯(lián)網(wǎng)終端設備認證與密鑰協(xié)商協(xié)議是基于PKI 的認證體系并結(jié)合區(qū)塊鏈技術實現(xiàn),區(qū)塊鏈認證中心BCCA 將生成的數(shù)字證書哈希值H(Certi)存儲在區(qū)塊鏈上作為認證憑證。由哈希函數(shù)的單向性可知,假如有攻擊者獲取了哈希值也無法解密得到數(shù)字證書,保證了數(shù)字證書的安全性。由于區(qū)塊鏈不易篡改的特性,實現(xiàn)了物聯(lián)網(wǎng)終端設備同域與跨域認證憑證的安全性。在同域認證過程中,基于公鑰加密算法互相發(fā)送消息,只有擁有私鑰的設備才能解密,保護了設備的身份信息不被泄露,實現(xiàn)了安全的認證與密鑰協(xié)商協(xié)議過程。在跨域認證過程中,DA向B 域請求跨域認證是通過ESA向ESB發(fā)送終端設備DA的相關認證信息,再由ESB通過區(qū)塊鏈驗證DA的認證憑證。ESA和ESB都是聯(lián)盟鏈內(nèi)的節(jié)點,通過聯(lián)盟鏈的DPoS共識機制選取節(jié)點,只有通過共識機制驗證的節(jié)點才能加入到聯(lián)盟鏈內(nèi),因此聯(lián)盟鏈內(nèi)節(jié)點是可信的。從而保證了終端設備信息的安全性,減少了使用公鑰加解密算法的運算次數(shù),實現(xiàn)了終端設備更高效和安全的跨域認證。
本文在跨域認證過程中建立了安全通信的會話密鑰,分別為同域認證的物聯(lián)網(wǎng)終端設備Di和邊緣認證服務器ESi以及跨域認證中兩個終端設備DA與DB之間的密鑰協(xié)商。在同域認證密鑰協(xié)商過程中Di和ESi分別選取隨機數(shù)通過公鑰加密算法發(fā)送給對方,再進行Hash 處理H (IDA,N3,N4),其他設備沒有對應的私鑰無法解密獲取會話密鑰,假如有攻擊者能監(jiān)聽到會話密鑰也無法解密。在跨域認證密鑰協(xié)商過程中兩個終端設備的會話密鑰設計基于DH密鑰協(xié)商協(xié)議。Canetti 和Krawczyk 提出了基于簽名的認證器[17],本文中的密鑰協(xié)商過程為A,B 雙方分別發(fā)送數(shù)字簽名,該過程可以視為將原始的DH 密鑰協(xié)商協(xié)議經(jīng)過認證器對消息認證,由文獻[17]的證明可以得出該密鑰協(xié)商過程是安全的。
在整個認證的過程中,發(fā)送請求消息時會加入隨機數(shù),接收方通過查看隨機數(shù)的有效性來確認消息的準確性。在認證過程中,邊緣認證服務器ESi向區(qū)塊鏈節(jié)點請求數(shù)字證書哈希值時加入隨機數(shù)Rep=(IDA,PA,N2),區(qū)塊鏈節(jié)點通過驗證隨機數(shù)的有效性來判斷消息的真實性。假如有攻擊者截取了消息再重新發(fā)送,但由于隨機數(shù)的時效性將會導致失敗,所以能夠抵抗重放攻擊。
本文在兩個跨域的終端設備密鑰協(xié)商過程中考慮到會話密鑰的前向安全性,利用DH密鑰協(xié)商協(xié)議進行會話密鑰協(xié)商。假如攻擊者獲取了當前的會話密鑰KS=(gb)a,其中a 和b 是通信雙方隨機選取的秘密值,均為通信雙方私有。攻擊者在不知道a 和b的情況下,由離散對數(shù)困難問題可知很難求出會話密鑰KS,在此之前雙方通信的會話密鑰也很難得到?;谝陨蠒捗荑€協(xié)商過程,能夠保證終端設備跨域通信的安全性。
本文提出一種邊緣計算環(huán)境下基于區(qū)塊鏈的物聯(lián)網(wǎng)終端設備認證與密鑰協(xié)商協(xié)議,本節(jié)對比文獻[9]和文獻[14]的計算開銷進行性能分析。不同方案的計算開銷對比如表2 所示,表中數(shù)字的單位為每種算法的運算次數(shù)。

表2 計算開銷對比Table 2 Calculation cost comparison
與文獻[9]對比本文方案使用較少的指數(shù)運算,文獻[9]中物聯(lián)網(wǎng)設備的跨域認證是基于傳統(tǒng)的中心化認證方式,一旦中心受到攻擊,會對整個認證過程造成威脅。與文獻[14]對比本文方案使用較少的數(shù)字簽名與驗證算法,而且沒有復雜的雙線性對運算,在一定程度上減少了計算開銷。相比文獻[14]本文方案更適合低性能的物聯(lián)網(wǎng)終端設備跨域認證。對比以上兩種方案,本文方案有較少的計算開銷。為了進一步分析算法的計算開銷,本文對密碼學算法的運行時間進行測試。實驗環(huán)境為:英特爾i7 處理器,3GHz 主頻,8GB 內(nèi)存。其中TS表示一次數(shù)字簽名與驗證的運行時間,TPK表示一次公鑰加解密的運行時間,Th表示一次哈希算法的運行時間,Ti表示一次指數(shù)運算的運行時間,TE表示一次雙線性對運算的運行時間。經(jīng)過多次運行取平均值得到結(jié)果如下:TS、TPK、Th、Ti和TE的運行時間分別為2.005ms、3.830ms、0.001ms、6.324ms 和11.450ms。為方便對比,本文選擇的數(shù)字簽名算法為ElGamal 數(shù)字簽名算法,加密算法選擇的是ElGamal加密算法。本文方案與文獻[9]和[14]計算耗時對比如圖7 所示。從圖7 中可以看出本文總的計算消耗僅為46.633ms,少于其他兩種方案,更適用于低性能的物聯(lián)網(wǎng)設備。
針對目前存在的物聯(lián)網(wǎng)終端設備認證復雜和低效率的問題,本文利用邊緣計算技術設計了基于區(qū)塊鏈的跨域間物聯(lián)網(wǎng)終端設備認證架構(gòu)。通過邊緣設備而非云中心對終端設備進行認證,將終端設備的認證進行本地化處理,減輕了云中心的網(wǎng)絡負擔,同時也提高了認證效率。并且對認證與密鑰協(xié)商協(xié)議應有的安全屬性進行了分析。同已有的物聯(lián)網(wǎng)終端設備認證方案相比,在滿足認證與密鑰協(xié)商安全性的基礎上,本文方案具有較少的計算開銷,更適合低性能的物聯(lián)網(wǎng)終端設備認證與密鑰協(xié)商。