魏 雙,吳 旭,張 震
(廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,南寧 530004)
工業(yè)物聯(lián)網(wǎng)(industrial internet of things,IIoT)是實(shí)施中國(guó)制造2025戰(zhàn)略的關(guān)鍵技術(shù)之一[1].IIoT將工業(yè)物聯(lián)網(wǎng)設(shè)備(傳感器、控制器或執(zhí)行器等)、移動(dòng)通信、智能分析等技術(shù)融入工業(yè)生產(chǎn)過(guò)程,降低管理成本,提高制造產(chǎn)品質(zhì)量.隨著制造過(guò)程越來(lái)越復(fù)雜,很難在一個(gè)獨(dú)立管理域制造完整的產(chǎn)品,整個(gè)制造過(guò)程由多個(gè)管理域協(xié)作完成已經(jīng)成為一種趨勢(shì).本文定義域?yàn)橐粋€(gè)自治和獨(dú)立的組織(如:一個(gè)工廠).在這種多域合作的場(chǎng)景中,來(lái)自不同域的設(shè)備需要協(xié)作交互,實(shí)現(xiàn)生產(chǎn)過(guò)程中的數(shù)據(jù)共享和交換.
現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)設(shè)施能輕松連接不同域的IIoT設(shè)備,但在缺乏信任的情況下,不同域的設(shè)備直接通信和協(xié)作會(huì)導(dǎo)致生產(chǎn)數(shù)據(jù)泄露,甚至破壞生產(chǎn)過(guò)程.因此,在不同管理域的設(shè)備之間建立信任十分重要.
在現(xiàn)有的研究工作中,建立信任方法分為兩類.第1類是基于密碼技術(shù)[2-5]的身份認(rèn)證,該類機(jī)制通常通過(guò)身份認(rèn)證過(guò)程來(lái)抵御外部攻擊、保護(hù)隱私和建立信任.Shen等人[2]提出基于區(qū)塊鏈的工業(yè)物聯(lián)網(wǎng)跨域認(rèn)證機(jī)制,采用身份簽名方法進(jìn)行身份驗(yàn)證,若身份合法,則認(rèn)為該設(shè)備是可信的.此外,作者為保護(hù)IIoT設(shè)備的身份隱私,采用假名技術(shù),使得被認(rèn)證的設(shè)備保持匿名.Hakeem等人[3]為車聯(lián)網(wǎng)提出一種輕量級(jí)的認(rèn)證和隱私保護(hù)方法,使用生物識(shí)別和防篡改兩大安全硬件設(shè)備驗(yàn)證程序和安全保存密鑰,使用哈希鏈密鑰對(duì)每條傳輸?shù)南⑦M(jìn)行簽名和驗(yàn)證,提高安全級(jí)別.第2類是信任管理[6-8],利用設(shè)備過(guò)去的行為、其它設(shè)備的推薦或其它因素來(lái)評(píng)估設(shè)備的信任值.Boudagdigue等人[6]提出適用于工業(yè)環(huán)境的動(dòng)態(tài)信任管理模型,作者從合作、直接信任和間接信任3個(gè)方面評(píng)估設(shè)備的信任值,信任值越高的設(shè)備越可靠.Khan等人[7]為工業(yè)物聯(lián)網(wǎng)提出基于中性加權(quán)乘積法的信任模型.應(yīng)用程序基于空間知識(shí)、時(shí)間經(jīng)驗(yàn)和行為模式評(píng)估IIoT設(shè)備的信任值.實(shí)驗(yàn)結(jié)果表明,該方法能夠準(zhǔn)確地檢測(cè)出IIoT設(shè)備的錯(cuò)誤行為.
然而,這些研究工作僅針對(duì)身份認(rèn)證和信任管理中的一個(gè)領(lǐng)域展開研究,直接應(yīng)用到IIoT跨域合作場(chǎng)景存在以下限制:1)采用匿名身份認(rèn)證技術(shù)可以識(shí)別已授權(quán)的IIoT設(shè)備和防止泄露身份隱私.但無(wú)法動(dòng)態(tài)衡量匿名設(shè)備的可信度,一些具有合法匿名身份的IIoT設(shè)備依然可以發(fā)起攻擊,破壞生產(chǎn)過(guò)程和泄露生產(chǎn)數(shù)據(jù).2)采用信任管理技術(shù)可以動(dòng)態(tài)衡量IIoT設(shè)備的可信度,并且及時(shí)識(shí)別出惡意設(shè)備.然而,大部分信任管理研究工作只關(guān)注信任評(píng)估方法的改進(jìn),忽略對(duì)用戶身份的認(rèn)證及身份隱私的保護(hù).在工業(yè)物聯(lián)網(wǎng)中,一個(gè)IIoT設(shè)備可能涉及多個(gè)任務(wù),設(shè)備身份會(huì)泄露設(shè)備的隱私[2].例如:攻擊者通過(guò)攔截來(lái)自設(shè)備發(fā)送的消息包,從中知道設(shè)備訪問(wèn)了哪種類型的服務(wù)或者與誰(shuí)通信.
此外,一個(gè)合理的管理架構(gòu)有助于提高管理效率和保證管理機(jī)制的安全性.Abdel等人[9]和Din等人[10]分別提出密鑰生成協(xié)議和輕量級(jí)的信任管理機(jī)制,它們需要依靠管理器和信任代理等可信的第三方,存在單點(diǎn)故障問(wèn)題.Altaf等人[11]提出了一個(gè)分布式信任管理模型來(lái)過(guò)濾IIoT網(wǎng)絡(luò)中的惡意節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)根據(jù)上下文相似節(jié)點(diǎn)的推薦信任計(jì)算服務(wù)節(jié)點(diǎn)的信任值.然而,每個(gè)節(jié)點(diǎn)的信任數(shù)據(jù)視圖不一致,且推薦信任可能不可靠.區(qū)塊鏈由于具有去中心化、不可篡改和可追溯性的特點(diǎn)[12],被許多作者用來(lái)解決IIoT中信任管理和身份認(rèn)證的挑戰(zhàn).Li等人[13]和Wu等人[14]分別引入?yún)^(qū)塊鏈來(lái)安全地共享簽名所需要的加密材料和信任數(shù)據(jù).在他們的方法中,任何認(rèn)證信息和信任信息的更新都可以被跟蹤,并且除非得到大多數(shù)人的批準(zhǔn),否則無(wú)法生效.然而,IIoT設(shè)備的計(jì)算和存儲(chǔ)能力有限.當(dāng)IIoT設(shè)備直接與區(qū)塊鏈集成時(shí),會(huì)出現(xiàn)許多性能問(wèn)題.例如,區(qū)塊鏈要求每個(gè)參與者必須存儲(chǔ)區(qū)塊鏈賬本,以保證一致性.隨著賬本容量的增加,存儲(chǔ)開銷也會(huì)增加.Wu等人[15]提到區(qū)塊鏈和邊緣計(jì)算的融合可以實(shí)現(xiàn)IIoT中安全、可擴(kuò)展的關(guān)鍵基礎(chǔ)設(shè)施.Kouicem等人[16]和Guo等人[17]利用邊緣計(jì)算技術(shù)增強(qiáng)區(qū)塊鏈節(jié)點(diǎn)的計(jì)算和存儲(chǔ)能力.然而,這兩種方法都是單鏈結(jié)構(gòu),它們存在以下限制:首先,區(qū)塊大小被限制為一定的大小[2],并且單鏈串行處理事務(wù),這些特性會(huì)導(dǎo)致低吞吐量.其次,由于不同域內(nèi)設(shè)備的信任管理和認(rèn)證機(jī)制存在異構(gòu)性,即設(shè)備的認(rèn)證和信任信息不同,單鏈架構(gòu)導(dǎo)致多個(gè)域的信任數(shù)據(jù)和身份信息混亂.
針對(duì)上述挑戰(zhàn),本文提出主從鏈架構(gòu)實(shí)現(xiàn)可擴(kuò)展的跨域信任認(rèn)證機(jī)制(MSBCTA).每個(gè)域部署一條只存儲(chǔ)本域交易的從鏈,這減少了IIoT設(shè)備保存區(qū)塊鏈賬本的存儲(chǔ)開銷.多個(gè)鏈可以并行、獨(dú)立地處理交易,提高了交易吞吐量.主鏈由所有域的邊緣設(shè)備維護(hù),共享所有設(shè)備的信任票據(jù).不同域的IIoT設(shè)備通過(guò)信任票據(jù)實(shí)現(xiàn)匿名身份認(rèn)證和信任管理.本文主要貢獻(xiàn):
1)設(shè)計(jì)一種邊緣計(jì)算集成的主從鏈框架,以提供靈活且可擴(kuò)展的跨域信任認(rèn)證機(jī)制,多條區(qū)塊鏈可以并行、獨(dú)立處理事務(wù),提高了交易吞吐量和降低共識(shí)過(guò)程中的通信開銷.
2)提出一個(gè)隱私增強(qiáng)的跨域信任認(rèn)證機(jī)制,采用信任票據(jù)巧妙地組合身份認(rèn)證和信任管理方法,既實(shí)現(xiàn)IIoT設(shè)備跨域匿名認(rèn)證,保護(hù)設(shè)備身份隱私,又能動(dòng)態(tài)地評(píng)估設(shè)備的可信度.
3)為降低跨域認(rèn)證過(guò)程中的計(jì)算開銷,基于單向哈希鏈實(shí)現(xiàn)匿名身份認(rèn)證和密鑰協(xié)商方法.
4)為解決不同域信任評(píng)估方法異構(gòu)性問(wèn)題,提出基于模糊邏輯推理的可信度等級(jí)評(píng)估算法.
本節(jié)介紹了MSBCTA機(jī)制的架構(gòu)和安全模型.
目前大多數(shù)區(qū)塊鏈應(yīng)用都是單鏈架構(gòu),每個(gè)節(jié)點(diǎn)保存完整的區(qū)塊鏈賬本,并執(zhí)行重復(fù)的計(jì)算任務(wù)以達(dá)成共識(shí).在大規(guī)模的IIoT多域場(chǎng)景中,設(shè)備頻繁的交互產(chǎn)生大量的交易,然而單鏈串行處理交易會(huì)導(dǎo)致低吞吐量.另外,每個(gè)域的信任管理和認(rèn)證策略不同,單鏈架構(gòu)很難支持不同的信任管理和認(rèn)證需求.為此,本文設(shè)計(jì)了主從鏈架構(gòu).如圖1所示,主從鏈架構(gòu)分為兩層,上層為主鏈,下層為多條從鏈.從鏈隔離不同域的信任和身份信息,主鏈共享特定信息,其組成部分如下:
圖1 架構(gòu)Fig.1 Architecture
1)IIoT域:每個(gè)域包含IIoT設(shè)備、從鏈和邊緣設(shè)備.IIoT域表示為Do={Do1,Do2,…,Dop}.
2)IIoT設(shè)備:每個(gè)IIoT設(shè)備可以是服務(wù)的請(qǐng)求者或提供者.IIoT設(shè)備表示為d={d1,d2,…,dn}.
3)邊緣設(shè)備:具有較強(qiáng)計(jì)算和存儲(chǔ)能力的設(shè)備(如網(wǎng)關(guān)、基站等[15]),被部署在每個(gè)IIoT域中.不同域的邊緣設(shè)備可以相互通信,并負(fù)責(zé)維護(hù)主鏈.邊緣設(shè)備被表示為Eg={Eg1,Eg2,…,Egm}.邊緣設(shè)備需要保存兩種區(qū)塊鏈賬本:本地域內(nèi)的從鏈和主鏈.本文假設(shè)大部分邊緣設(shè)備是誠(chéng)實(shí)的.
4)從鏈:每個(gè)IIoT域都有一條從鏈,存儲(chǔ)域內(nèi)設(shè)備的身份和信任信息.這些從鏈并行工作以提高事務(wù)吞吐量.此外,智能合約TTM(信任票據(jù)生成)被部署到所有域的從鏈中,用于生成IIoT設(shè)備的信任票據(jù).
5)主鏈:主鏈由邊緣設(shè)備維護(hù),存儲(chǔ)所有IIoT設(shè)備的信任票據(jù).不同域的設(shè)備可以通過(guò)主鏈獲取其他設(shè)備的信任票據(jù).
MSBCTA機(jī)制的安全性需要滿足跨域相互認(rèn)證、匿名性、消息完整性和機(jī)密性、設(shè)備可信性、抗中間人攻擊.
1)跨域相互認(rèn)證:位于不同域的IIoT設(shè)備能在沒(méi)有第三方可信機(jī)構(gòu)的情況下,進(jìn)行相互認(rèn)證,防止外部惡意設(shè)備發(fā)起諸如分布式拒絕服務(wù)(DDOS)的外部攻擊.
2)匿名性:盡管不同域中的IIoT設(shè)備可以跨域合作,但這些設(shè)備很可能不愿向其它設(shè)備公開身份,因?yàn)樗鼈儾辉谕粋€(gè)域中,需要最大限度保護(hù)身份隱私,身份信息可能會(huì)影響制造過(guò)程,因此,IIoT設(shè)備跨域交互需要保證身份的匿名性.
3)消息完整性和機(jī)密性:IIoT設(shè)備進(jìn)行跨域信任認(rèn)證后,進(jìn)行協(xié)作和分享生產(chǎn)數(shù)據(jù).消息內(nèi)容通過(guò)Internet網(wǎng)絡(luò)等不安全通道傳輸,導(dǎo)致消息內(nèi)容被攻擊者竊聽和篡改.因此,MSBCTA機(jī)制需要保證消息完整性和機(jī)密性.
4)設(shè)備可信性:IIoT設(shè)備進(jìn)行跨域協(xié)作,除了確保設(shè)備身份合法,還需要準(zhǔn)確評(píng)估設(shè)備的信任值,確保協(xié)作設(shè)備的可信性,防止一些身份合法的IIoT設(shè)備發(fā)起諸如惡意服務(wù)行為的內(nèi)部攻擊.
5)抗中間人攻擊:攻擊者攔截IIoT設(shè)備之間的通信,并偽裝成通信雙方.不同域的IIoT設(shè)備協(xié)作和通信,分享生產(chǎn)數(shù)據(jù).若遭遇中間人攻擊,導(dǎo)致生產(chǎn)數(shù)據(jù)的泄露或被篡改,影響制造過(guò)程.
域內(nèi)信任評(píng)估機(jī)制已有很多研究工作,本文只關(guān)注跨域信任的建立.具有合法身份的IIoT設(shè)備可能提供虛假信息,破壞制造過(guò)程,因此,在不同域的設(shè)備之間建立動(dòng)態(tài)的信任非常重要.MSBCTA使用信任票據(jù)建立跨域信任,其中信任票據(jù)由智能合約TTM生成,TTM包含兩個(gè)函數(shù):可信度等級(jí)評(píng)估GtCl(·)和票據(jù)生成GtTTick(·).如算法1所示,GtCl(·)用于評(píng)估IIoT設(shè)備的可信度等級(jí).考慮到不同域的信任管理機(jī)制存在異構(gòu)性,本文使用模糊邏輯推理方法在不同域IIoT設(shè)備間建立統(tǒng)一的信任描述.所有IIoT設(shè)備的可信度被分為{High,Medium,Low}3個(gè)等級(jí).
1) 信譽(yù):從從鏈中提取IIoT設(shè)備di的信譽(yù)信息RIi(t),根據(jù)域內(nèi)信譽(yù)評(píng)估方法F(x)計(jì)算設(shè)備di在t時(shí)的信譽(yù)值Ri(t),如公式(1)所示:
Ri(t)=F(RIi)
(1)
MSBCTA在實(shí)際應(yīng)用時(shí)能適應(yīng)不同的信譽(yù)評(píng)估算法,即F(x)為不同域內(nèi)信任評(píng)估算法,如Boudagdigue等人[6],Khan等人[7],張帆等人[18]等.本文使用經(jīng)典的Beta信譽(yù)計(jì)算方法[19].假設(shè)設(shè)備di與其它IIoT設(shè)備(表示為:Cr={Cr1,Cr2,…,Crn})協(xié)作交互.Cr中的設(shè)備在每一次協(xié)作交互后根據(jù)設(shè)備di真實(shí)的表現(xiàn)(服務(wù)質(zhì)量,如:響應(yīng)時(shí)間)給出一個(gè)反饋Fb(Good 或 Bad),該反饋由反饋者的私鑰進(jìn)行簽名并且以交易的形式存儲(chǔ)在本地從鏈中,公式(1)中的RIi(t)代表與設(shè)備di相關(guān)的反饋信息.因此,設(shè)備di的信譽(yù)值Ri(t)如公式(2)所示:
(2)
(3)
其中,RCrj→i(t)是Crj對(duì)di的信任值,αCrj→i和βCrj→i分別是FbCrj→i=good和FbCrj→i=bad的累積數(shù)量,αCrj→i和βCrj→i初始化為0.信譽(yù)的取值范圍為0-1.
2) 共識(shí)貢獻(xiàn)度:為了激勵(lì)I(lǐng)IoT設(shè)備積極參與從鏈的共識(shí)過(guò)程,共識(shí)貢獻(xiàn)度被認(rèn)為是可信度水平評(píng)估的一個(gè)因素,設(shè)備di的共識(shí)貢獻(xiàn)度Ci(t)如公式(4)所示:
(4)
(5)
(6)
(7)
信譽(yù)和共識(shí)貢獻(xiàn)度模糊集合分別是{RH,RM,RL}和{CMore,CMedium,CLess}.使用梯度隸屬函數(shù)[20]將清晰的Ri和Ci映射到模糊集中.
模糊邏輯推理輸出變量為綜合信譽(yù)值CRi,同樣也采用梯度隸屬函數(shù),其模糊集為{High-Trust,Medium-Trust,Low-Trust},表1為模糊推理規(guī)則.
表1 模糊推理規(guī)則Table 1 Fuzzy inference rule
使用Middle of Maximum(MoM)[21]去模糊化方法得到綜合信譽(yù)值CRi.根據(jù)CRi,IIoT設(shè)備被分類為{High,Medium,Low},可信度等級(jí)CL計(jì)算如公式(8)所示:
(8)
算法1.可信度等級(jí)評(píng)估GtCl(·).
輸入:IIoT設(shè)備di,從鏈賬本SCL,域內(nèi)信譽(yù)評(píng)估方法F(x),時(shí)間段ΔT,參數(shù)?,r,thrp,thrv;歷史共識(shí)貢獻(xiàn)度C(t-ΔT).
輸出:di的可信度等級(jí)CLdi.
2.Ri(t)=F(RIi);//使用公式(2)和公式(3)計(jì)算信譽(yù)值
5.Ri(t)→{RH,RM,RL}//信譽(yù)模糊化
6.Ci(t)→{CMore,CMedium,CLess};//共識(shí)貢獻(xiàn)度模糊化
7.應(yīng)用表1 模糊推理規(guī)則;
8.CRi←MOM(·);//使用MOM去模糊化
9.ifCRi≥0.75 then
10.CLdi=′High′;
11.else ifCRi≥0.45 andCRi<0.75 then
12.CLdi=′Medium′;
13.else
14.CLdi=′Low′
15.end if
本節(jié)將詳細(xì)描述MSBCTA機(jī)制具體過(guò)程.
3.1.1 系統(tǒng)參數(shù)
由于域內(nèi)的身份認(rèn)證機(jī)制已有大量的研究工作,本文只關(guān)注跨域身份認(rèn)證.在系統(tǒng)初始化階段,所有設(shè)備都進(jìn)行域內(nèi)身份注冊(cè),并將身份信息存儲(chǔ)到每個(gè)域的從鏈中.每個(gè)IIoT設(shè)備和邊緣設(shè)備都具有一個(gè)永久密鑰對(duì)(PK,SK)和真實(shí)身份Id.注冊(cè)完成后,系統(tǒng)告知所有IIoT設(shè)備用于跨域身份認(rèn)證所需要系統(tǒng)參數(shù),這些系統(tǒng)參數(shù)所有設(shè)備都會(huì)接收和認(rèn)可.系統(tǒng)參數(shù)如下:
2)h(·)是密碼哈希函數(shù),該函數(shù)能將任何長(zhǎng)度的字符串映射到固定長(zhǎng)度的字符串.
3)H(·)是單向哈希函數(shù),集合{0,1,…,q-1}映射到自身,H(·)可能來(lái)源于h(·).
3.1.2 單向哈希鏈
單向哈希鏈?zhǔn)歉鶕?jù)給定的種子和單向哈希函數(shù),對(duì)該種子連續(xù)應(yīng)用哈希函數(shù)生成稱為哈希鏈的哈希值集合[22].哈希鏈的特點(diǎn)是在計(jì)算上不可能反轉(zhuǎn).此外,哈希運(yùn)算計(jì)算量少,通過(guò)哈希鏈進(jìn)行認(rèn)證,能避免傳統(tǒng)公鑰密碼體制復(fù)雜的加密和解密計(jì)算.本文使用單向哈希鏈為IIoT設(shè)備生成多對(duì)臨時(shí)公鑰,并進(jìn)行身份認(rèn)證和密鑰協(xié)商.
IIoT設(shè)備di選擇一個(gè)種子s和一個(gè)編號(hào)Nu,其中s∈{0,1,…,q-1},重復(fù)使用單向哈希函數(shù)H(·)對(duì)種子s進(jìn)行哈希運(yùn)算,生成Nu個(gè)哈希值形成哈希鏈,如公式(9)所示:
HNu(s)←HNu-1(s)…←Hk(s)…←H1(s)←s
(9)
其中HNu(s)是哈希鏈的頂端,通過(guò)對(duì)Hk(s)進(jìn)行哈希運(yùn)算得到Hk+1(s),即Hk+1(s)=H(Hk(s)).但Hk(s)無(wú)法反向計(jì)算得到Hk-1(s).最后,設(shè)備di根據(jù)哈希鏈計(jì)算檢查值Ψdi,該檢查值后續(xù)存入信任票據(jù)中.
(10)
此外,設(shè)備di可以根據(jù)哈希鏈生成Nu個(gè)不同的臨時(shí)公鑰,其中第k個(gè)臨時(shí)公鑰如公式(11)所示.為降低計(jì)算開銷,設(shè)備di在每一次跨域認(rèn)證前只需生成一個(gè)臨時(shí)公鑰.
(11)
3.1.3 假名身份生成
本文采用假名方法[23]保護(hù)IIoT設(shè)備的身份隱私,設(shè)備di隨機(jī)生成一個(gè)數(shù)字rdi,并計(jì)算假名Piddi=h(Iddi‖rdi),其中Iddi是設(shè)備di的真實(shí)身份,存儲(chǔ)在所屬域的從鏈賬本中.為了保證IIoT設(shè)備身份不被追蹤,通常假名有效期較短.
IIoT設(shè)備di生成假名Piddi、單向哈希鏈、檢查值Ψdi后,發(fā)送信任票據(jù)生成請(qǐng)求Rq給周圍的邊緣設(shè)備,該請(qǐng)求內(nèi)容包括Piddi和Ψdi.邊緣設(shè)備觸發(fā)TTM智能合約為設(shè)備di生成信任票據(jù),首先調(diào)用GtCl(·)函數(shù)評(píng)估di可信度等級(jí),再調(diào)用GtTTick(·)函數(shù)為IIoT設(shè)備di生成信任票據(jù)TTickdi.算法2展示GtTTick(·)函數(shù).圖2為一個(gè)信任票據(jù)示意圖,其中包括票據(jù)編號(hào)、假名、檢查值、可信度等級(jí)、時(shí)間戳、有效期.時(shí)間戳Tspdi是信任票據(jù)生成時(shí)的時(shí)間戳,有效期tdi為信任票據(jù)的有效時(shí)長(zhǎng).
圖2 信任票據(jù)Fig.2 Trust ticket
算法2.票據(jù)生成函數(shù)GtTTick(·).
輸入:IIoT設(shè)備di,假名Piddi,檢查值Ψdi,有效期ΔT;
輸出:di的信任票據(jù)TTickdi.
1.Tspdi=GetTimestamp(); //獲取當(dāng)前時(shí)間戳
2.CLdi←GtCl(·);//算法1計(jì)算可信度等級(jí)
3.Ndi=join(Tsp,rand);//join連接函數(shù),為一個(gè)序號(hào)
4.tdi←(Tsp,Tsp+ΔT);//有效期
5.TTickdi←(Ndi,Piddi,Ψdi,CLdi,tdi)
IIoT域內(nèi)所有成員通過(guò)實(shí)用拜占庭容錯(cuò)算法PBFT共識(shí)過(guò)程[24]驗(yàn)證信任票據(jù),并將其存儲(chǔ)到從鏈賬本中.為了能讓信任票據(jù)在不同域中共享,信任票據(jù)被存儲(chǔ)到主鏈中.IIoT域中所有邊緣設(shè)備將本域IIoT設(shè)備最新信任票據(jù)發(fā)送到主鏈網(wǎng)絡(luò),主鏈所有節(jié)點(diǎn)通過(guò)PBFT共識(shí)過(guò)程對(duì)信任票據(jù)進(jìn)行驗(yàn)證,并存儲(chǔ)到主鏈賬本中.傳統(tǒng)的PBFT共識(shí)協(xié)議是C/S模式,為了更加適用于本文所提出的主從鏈架構(gòu),本文將PBFT共識(shí)協(xié)議改為P2P模式.改進(jìn)的共識(shí)過(guò)程主要包括主節(jié)點(diǎn)選擇、區(qū)塊打包、共識(shí)協(xié)商過(guò)程.
1)主節(jié)點(diǎn)選擇和區(qū)塊打包
假設(shè)有n個(gè)區(qū)塊鏈節(jié)點(diǎn),編號(hào)為0到n-1.每個(gè)節(jié)點(diǎn)都有相同的共識(shí)狀態(tài),稱為視圖[24].采用PBFT輪換機(jī)制選擇主節(jié)點(diǎn),假設(shè)當(dāng)前視圖為vnew,則該輪共識(shí)主節(jié)點(diǎn)為lnew=vnew%n,主節(jié)點(diǎn)lnew將未上鏈的交易打包成一個(gè)區(qū)塊b.
2)共識(shí)協(xié)商過(guò)程
如圖3所示 ,該過(guò)程分為預(yù)準(zhǔn)備、準(zhǔn)備、提交3個(gè)階段.
圖3 共識(shí)過(guò)程Fig.3 Consensus process
預(yù)準(zhǔn)備階段:主節(jié)點(diǎn)lnew發(fā)預(yù)準(zhǔn)備消息<
準(zhǔn)備階段:當(dāng)區(qū)塊鏈節(jié)點(diǎn)收到超過(guò)(2/3)*n來(lái)自其它節(jié)點(diǎn)一致的準(zhǔn)備消息,則廣播確認(rèn)消息<
確認(rèn)階段:當(dāng)區(qū)塊鏈節(jié)點(diǎn)收到超過(guò)(2/3)*n來(lái)自其它節(jié)點(diǎn)一致的確認(rèn)消息,則說(shuō)明區(qū)塊b通過(guò)共識(shí)驗(yàn)證,并將區(qū)塊添加到鏈中,共識(shí)過(guò)程結(jié)束.
為了保證信任票據(jù)的時(shí)效性,本文采用時(shí)間驅(qū)動(dòng)更新方法.每隔ΔT時(shí)間,IIoT設(shè)備向域內(nèi)邊緣設(shè)備發(fā)送信任票據(jù)更新請(qǐng)求,邊緣設(shè)備調(diào)用智能合約TTM為該設(shè)備生成新的信任票據(jù).
不同域的IIoT設(shè)備通過(guò)信任票據(jù)實(shí)現(xiàn)跨域信任認(rèn)證,并通過(guò)密鑰協(xié)商生成對(duì)稱密鑰,為后續(xù)合作建立安全的通信通道.以域Do1的IIoT設(shè)備di與Do2的IIoT設(shè)備dj跨域協(xié)作為例.圖4展示信任認(rèn)證和密鑰協(xié)商過(guò)程,主要階段如下:
圖4 信任認(rèn)證和密鑰協(xié)商的過(guò)程Fig.4 Process of trust authentication and key negotiation
1)請(qǐng)求階段
2)信任票據(jù)查詢階段
dj收到di發(fā)送的消息,需要獲得di的信任票據(jù),以此來(lái)確認(rèn)di的身份和可信度.dj查詢di信任票據(jù)TTickdi過(guò)程如下:
①dj向域Do2內(nèi)所有的邊緣設(shè)備發(fā)起一個(gè)查詢請(qǐng)求,查詢?cè)O(shè)備di的信任票據(jù).假設(shè)域Do2有m個(gè)邊緣設(shè)備.
②域Do2內(nèi)的邊緣設(shè)備從主鏈賬本中查找設(shè)備di的信任票據(jù)TTickdi.邊緣設(shè)備使用自己的私鑰對(duì)查詢結(jié)果TTickdi簽名,并將簽名和查詢結(jié)果發(fā)送給設(shè)備dj.
3)身份驗(yàn)證和信任建立階段
在信任票據(jù)查詢階段,設(shè)備dj獲得設(shè)備di的信任票據(jù)TTickdi.從信任票據(jù)中可以獲得設(shè)備的假名Piddi、檢查值Ψdi,可信度等級(jí)CLdi、信任票據(jù)有效期tdi.dj首先判斷信任票據(jù)是否過(guò)期,若已過(guò)期,則發(fā)送拒絕消息給di.否則,dj計(jì)算:
(12)
4)對(duì)稱密鑰生成階段
本節(jié)對(duì)MSBCTA機(jī)制進(jìn)行安全性分析,并于文獻(xiàn)[2],[4],[5],[23]所提出的方法進(jìn)行對(duì)比,如表2所示.
表2 安全屬性對(duì)比Table 2 Comparison of security attributes
1)跨域相互認(rèn)證:MSBCTA機(jī)制能保證IIoT設(shè)備跨域相互認(rèn)證.如3.4節(jié)所述,IIoT設(shè)備通過(guò)主鏈獲得其他域IIoT設(shè)備的信任票據(jù),從中獲取檢查值Ψ,通過(guò)計(jì)算和判斷Ψ=h(Ψ*)是否成立,來(lái)驗(yàn)證消息發(fā)送者的身份.其次,建立會(huì)話密鑰后,IIoT設(shè)備通過(guò)會(huì)話密鑰進(jìn)行通信和互相認(rèn)證.通過(guò)設(shè)備的相互認(rèn)證,IIoT設(shè)備可以準(zhǔn)確判斷協(xié)作設(shè)備身份的合法性,從而抵御外部惡意設(shè)備的攻擊.
2)匿名性:為滿足IIoT設(shè)備身份隱私保護(hù)要求,每一次跨域協(xié)作,IIoT設(shè)備都隱藏真實(shí)的身份屬性,通過(guò)假名和其他域的設(shè)備進(jìn)行協(xié)作交互,攻擊者Λ無(wú)法獲取真實(shí)身份Iddi.此外,每次生成新的信任票據(jù),都會(huì)產(chǎn)生新的假名,攻擊者Λ很難跟蹤IIoT設(shè)備.
3)消息完整性和機(jī)密性:在MSBCTA機(jī)制中,來(lái)自不同的IIoT設(shè)備進(jìn)行信任認(rèn)證和密鑰協(xié)商后生成會(huì)話密鑰SK,后續(xù)的通信都使用SK進(jìn)行端到端的加密和解密.因此攻擊者Λ想獲取或篡改消息內(nèi)容,只能獲得SK.然而SK由IIoT設(shè)備自身安全的保存,攻擊者無(wú)法獲得.因此,MSBCTA機(jī)制保證了消息完整性和機(jī)密性.
4)設(shè)備可信性:本文提出跨域信任評(píng)估方法,評(píng)估每一個(gè)IIoT設(shè)備的可信度等級(jí).并且存放在信任票據(jù)中.IIoT設(shè)備從信任票據(jù)中獲得其他域IIoT設(shè)備的可信度等級(jí),通過(guò)可信度等級(jí)判斷IIoT設(shè)備是否可信,并拒絕沒(méi)有達(dá)到自身可信度等級(jí)要求的IIoT設(shè)備.一些IIOT設(shè)備具備合理身份,但依然可以發(fā)起惡意攻擊,比如:低質(zhì)量的服務(wù)、發(fā)送大量冗余信息、拒絕服務(wù)DOS攻擊等,MSBCTA機(jī)制動(dòng)態(tài)評(píng)估每一個(gè)IIoT設(shè)備的可信度,以此識(shí)別內(nèi)部惡意設(shè)備,抵御部分內(nèi)部攻擊.
MSBCTA機(jī)制滿足以上5項(xiàng)安全屬性,然而文獻(xiàn)[2]和文獻(xiàn)[4]只關(guān)注跨域身份認(rèn)證機(jī)制的研究,忽略設(shè)備的可信性,文獻(xiàn)[5]在跨域認(rèn)證機(jī)制的基礎(chǔ)上,增加一個(gè)問(wèn)責(zé)機(jī)制,能動(dòng)態(tài)懲罰行為不當(dāng)?shù)挠脩?但作者沒(méi)有考慮用戶匿名性.文獻(xiàn)[23]所提出的機(jī)制僅適用于域內(nèi)相互認(rèn)證,其次作者也忽略了設(shè)備可信性.
本節(jié)將從計(jì)算開銷、可信度評(píng)估準(zhǔn)確性、吞吐量、通信開銷4個(gè)方面對(duì)MSBCTA機(jī)制進(jìn)行性能評(píng)估.
MSBCTA機(jī)制采用單向哈希鏈實(shí)現(xiàn)身份認(rèn)證和密鑰協(xié)商,具有低計(jì)算開銷的優(yōu)點(diǎn).本節(jié)首先分別評(píng)估MSBCTA機(jī)制中檢查值Ψ、公鑰集的計(jì)算開銷,再與BASA機(jī)制[2]、Zhang等人[4]所提出的機(jī)制(命名為MFA)進(jìn)行對(duì)比.該模擬實(shí)驗(yàn)在處理器內(nèi)存16G 的Intel(R)Core(TM)i7-8565U和Windows10組成的硬件平臺(tái)進(jìn)行,實(shí)驗(yàn)參數(shù)設(shè)置如表3所示.
表3 參數(shù)設(shè)置Table 3 Parameter settings
生成檢查值主要包括一次冪運(yùn)算和多次乘法運(yùn)算.圖5(a)顯示檢查值Ψ的計(jì)算開銷.Nu為哈希鏈的長(zhǎng)度.檢查值Ψ的計(jì)算開銷與Nu成正比.當(dāng)Nu=600時(shí),檢查值的計(jì)算開銷約為12.4ms.圖5(b)顯示生成多對(duì)公鑰(公鑰集)的計(jì)算開銷.如3.1節(jié)所述,IIoT設(shè)備可以根據(jù)哈希鏈生成多對(duì)公鑰,Nu是哈希鏈的長(zhǎng)度,也是公鑰的個(gè)數(shù).從圖5(b)的實(shí)驗(yàn)結(jié)果可以看出,公鑰集計(jì)算開銷隨著Nu的增加而增加,生成600對(duì)公鑰大約需要5.9s,遠(yuǎn)大于Ψ的計(jì)算開銷,這主要因?yàn)樯晒€集進(jìn)行多次冪運(yùn)算.
圖5 計(jì)算開銷的評(píng)估結(jié)果Fig.5 Evaluation results of computation costs
本節(jié)比較MSBCTA機(jī)制、BASA機(jī)制[2]和MFA機(jī)制[4]的計(jì)算開銷.在實(shí)驗(yàn)過(guò)程中,設(shè)置MSBCTA機(jī)制Nu為100,忽略一些開銷太小的計(jì)算(如:可信度等級(jí)計(jì)算開銷、整數(shù)加減乘除等).MSBCTA機(jī)制在認(rèn)證和密鑰協(xié)商過(guò)程主要包括4次冪運(yùn)算和多次哈希運(yùn)算.BASA機(jī)制[2]中,IIoT設(shè)備的主要計(jì)算開銷包括3次標(biāo)量乘法、1次冪運(yùn)算及多次哈希運(yùn)算.在MFA機(jī)制[4]中,IIoT設(shè)備的主要計(jì)算開銷包括6次標(biāo)量乘法、2次冪運(yùn)算及多次哈希運(yùn)算.圖5(c)顯示不同機(jī)制IIoT設(shè)備在認(rèn)證和密鑰協(xié)商階段的計(jì)算開銷.從實(shí)驗(yàn)結(jié)果可以看出3種機(jī)制的計(jì)算開銷隨著IIoT設(shè)備數(shù)量的增多而增大,其中MFA機(jī)制的計(jì)算開銷明顯高于MSBCTA與BASA機(jī)制,這主要是因?yàn)镸FA機(jī)制需要進(jìn)行多次標(biāo)量乘法運(yùn)算.MSBCTA與BASA機(jī)制的IIoT設(shè)備計(jì)算開銷非常接近,這是因?yàn)锽ASA機(jī)制將認(rèn)證過(guò)程中雙線性對(duì)和多次標(biāo)量乘法等繁重的計(jì)算分配給可信的第三方服務(wù)器(如:密鑰生成中心).然而,本文的MSBCTA機(jī)制認(rèn)證和密碼協(xié)商主要計(jì)算開銷由認(rèn)證雙方完成,且IIoT設(shè)備的計(jì)算開銷依然很低.因此,基于單向哈希鏈的MSBCTA機(jī)制有效降低了認(rèn)證和密鑰協(xié)商過(guò)程中的計(jì)算開銷.
為了驗(yàn)證所提出的跨域信任評(píng)估方法的效果,本節(jié)通過(guò)實(shí)驗(yàn)分析可信度評(píng)估準(zhǔn)確性.在實(shí)驗(yàn)過(guò)程中,采用本文第2節(jié)描述的Beta信譽(yù)計(jì)算方法作為域內(nèi)信譽(yù)評(píng)估方法F(x).圖6給出一個(gè)誠(chéng)實(shí)節(jié)點(diǎn)和兩個(gè)惡意節(jié)點(diǎn)的可信度等級(jí)評(píng)估結(jié)果.其中誠(chéng)實(shí)節(jié)點(diǎn)在實(shí)驗(yàn)中一直提供好的服務(wù),真實(shí)可信度等級(jí)恒定為High.第1個(gè)惡意節(jié)點(diǎn)總是提供壞的服務(wù),它的真實(shí)可信度等級(jí)恒定為L(zhǎng)ow.第2個(gè)惡意執(zhí)行機(jī)會(huì)主義服務(wù)攻擊,該節(jié)點(diǎn)機(jī)會(huì)性地提供良好的服務(wù),提高其可信度等級(jí),然而,當(dāng)它具有較高的可信度等級(jí)時(shí),可能會(huì)提供較差的服務(wù).它的真實(shí)可信度等級(jí)在模擬過(guò)程中由High降低到Low.
圖6 惡意節(jié)點(diǎn)和誠(chéng)實(shí)節(jié)點(diǎn)的可信度等級(jí)評(píng)估結(jié)果Fig.6 Results of credibility level evaluation for Honest or malicious node
圖6(a)為誠(chéng)實(shí)節(jié)點(diǎn)可信度等級(jí)評(píng)估結(jié)果.從圖中可以看出,該誠(chéng)實(shí)節(jié)點(diǎn)的可信度等級(jí)隨著時(shí)間單元的增加而增加,最終與真實(shí)可信度等級(jí)High保持一致.
圖6(b)為第1個(gè)惡意節(jié)點(diǎn)可信度等級(jí)評(píng)估結(jié)果,該惡意節(jié)點(diǎn)一直提供壞的服務(wù).隨著時(shí)間單元的增加,該惡意節(jié)點(diǎn)的可信度等級(jí)從最初的Medium快速下降到真實(shí)可信度等級(jí)Low.由此可以推斷本文方法能快速識(shí)別惡意設(shè)備.
圖6(c)為第2個(gè)進(jìn)行機(jī)會(huì)性服務(wù)攻擊的惡意節(jié)點(diǎn)可信度等級(jí)評(píng)估結(jié)果.當(dāng)該惡意節(jié)點(diǎn)的真實(shí)可信度等級(jí)從High轉(zhuǎn)變?yōu)長(zhǎng)ow時(shí),本方法的評(píng)估結(jié)果也隨之下降,可信度等級(jí)評(píng)估結(jié)果從High降低到Medium,最后收斂于新的真實(shí)可信度等級(jí)Low.
通過(guò)以上實(shí)驗(yàn)結(jié)果表明,MSBCTA機(jī)制能夠準(zhǔn)確地評(píng)估每個(gè)節(jié)點(diǎn)的可信度等級(jí).
為了衡量主從鏈的性能,本節(jié)評(píng)估主從鏈和單鏈架構(gòu)的交易吞吐量.吞吐量TPS度量系統(tǒng)在單位時(shí)間內(nèi)處理請(qǐng)求或交易的能力.
TPS=Sumtransactions/Δt
(13)
其中,是時(shí)間段Δt存儲(chǔ)到區(qū)塊鏈中的交易總數(shù),實(shí)驗(yàn)過(guò)程中考慮域內(nèi)設(shè)備交互、域內(nèi)身份認(rèn)證、信任票據(jù)產(chǎn)生3種交易.該實(shí)驗(yàn)在5臺(tái)配置了ubuntu 18.04系統(tǒng)的計(jì)算機(jī)上進(jìn)行,采用Hyperledger fabric 1.4.4平臺(tái)搭建主從鏈環(huán)境,并在Hyperledger fabric 1.4.4源碼基礎(chǔ)上添加改進(jìn)的PBFT共識(shí)協(xié)議,智能合約(鏈碼)采用go 1.11.5開發(fā),Docker版本為20.10.7.Hyperledger fabric通道是兩個(gè)或多個(gè)特定網(wǎng)絡(luò)成員之間通信的私有“子網(wǎng)”,用于進(jìn)行私人和機(jī)密的交易,一個(gè)節(jié)點(diǎn)可以屬于多個(gè)通道,并維護(hù)多個(gè)賬本.因此,本實(shí)驗(yàn)借助通道技術(shù)搭建主從鏈.考慮與Shen等人[2]相同的實(shí)驗(yàn)規(guī)模,如表3所示,每個(gè)域包含50個(gè)IIoT設(shè)備和5個(gè)邊緣設(shè)備,每一條從鏈節(jié)點(diǎn)總數(shù)為55,單鏈架構(gòu)的區(qū)塊鏈節(jié)點(diǎn)總數(shù)為域的個(gè)數(shù)×55.一共設(shè)計(jì)了4組實(shí)驗(yàn),其中域的數(shù)量分別為2、3、4和5.每一組實(shí)驗(yàn)進(jìn)行10次,實(shí)驗(yàn)結(jié)果如圖7所示.
圖7 單鏈和主從鏈的吞吐量Fig.7 Throughput of single chain and master-slave chain
從圖7可以看出,當(dāng)域的個(gè)數(shù)大于1時(shí),主從鏈的吞吐量總高于單鏈.隨著域數(shù)量的增加,單鏈的吞吐量線性下降,然而主從鏈的吞吐量線性增加.當(dāng)域的個(gè)數(shù)為5時(shí),單鏈的平均吞吐量約為59,而主從鏈的平均吞吐量約為169,相當(dāng)于單鏈的2.86倍.這主要是因?yàn)椴煌蛑械膹逆湽?jié)點(diǎn)規(guī)模比單鏈少,提高了共識(shí)效率,且多條從鏈可以并行地處理本域內(nèi)交易和執(zhí)行共識(shí)過(guò)程.
因此,通過(guò)上述實(shí)驗(yàn)結(jié)果表明,主從鏈比單鏈更具有可擴(kuò)展性,基于主從鏈的MSBCTA方案適用于大規(guī)模IIoT多域場(chǎng)景.
為了更好體現(xiàn)主從鏈的優(yōu)勢(shì),本節(jié)比較主從鏈和單鏈在共識(shí)過(guò)程中的通信開銷.引入通信次數(shù)指標(biāo)來(lái)衡量?jī)煞N架構(gòu)在共識(shí)過(guò)程中的通信開銷.假設(shè)存在p個(gè)域,每個(gè)域中IIoT設(shè)備和邊緣設(shè)備個(gè)數(shù)分別為n和m,則每一條從鏈節(jié)點(diǎn)總數(shù)為m+n,主鏈節(jié)點(diǎn)總數(shù)為mp,單鏈節(jié)點(diǎn)總數(shù)為(m+n)p.主從鏈中主鏈和所有從鏈達(dá)成一次共識(shí)的通信次數(shù)為Cmsb,單鏈的達(dá)成一次共識(shí)的通信次數(shù)為Csb,根據(jù)圖3顯示的共識(shí)過(guò)程,Cmsb和Csb計(jì)算如公式(14)和公式(17)所示:
Cmsb=Cm+p*Cs
(14)
Cm=2mp(mp-1)
(15)
Cs=2(m+n)(m+n-1)
(16)
Csb=2p(m+n)(p(m+n)-1)
(17)
其中Cm和Cs分別是主鏈和一條從鏈的通信次數(shù).為更清楚比較兩種架構(gòu)的通信次數(shù)大小,本文根據(jù)公式(14)~公式(17)繪制圖8,展示兩種架構(gòu)在不同p,m,n取值下的通信次數(shù).兩種架構(gòu)的通信次數(shù)隨著p,m,n值的增加而增長(zhǎng),但主從鏈的通信次數(shù)始終低于單鏈的通信次數(shù).當(dāng)p=15,m=10,n=150時(shí),Cmsb=807900,Csb=11515200.可看出單鏈的通信次數(shù)Csb大約是主從鏈的通信次數(shù)Cmsb的14倍.因此,主從鏈架構(gòu)降低了共識(shí)過(guò)程中的通信開銷,比單鏈更適合規(guī)模IIoT多域場(chǎng)景.
圖8 共識(shí)過(guò)程中通信次數(shù)比較Fig.8 Comparison of communication times in the consensus process
本文提出一種主從鏈架構(gòu),實(shí)現(xiàn)大規(guī)模IIoT多域場(chǎng)景下可擴(kuò)展的信任認(rèn)證機(jī)制.不同域的從鏈并行處理域內(nèi)事務(wù),并為本地設(shè)備生成信任票據(jù).主鏈共享來(lái)自不同域的所有IIoT設(shè)備的信任票據(jù).IIoT設(shè)備可以在不知道對(duì)方真實(shí)身份的情況下,通過(guò)信任票據(jù)進(jìn)行身份認(rèn)證、密鑰協(xié)商以及可信度評(píng)估,從而保護(hù)IIoT設(shè)備的隱私.安全性分析證明了MSBCTA認(rèn)證機(jī)制具有較高的安全性.性能評(píng)估表明,MSBCTA機(jī)制在認(rèn)證過(guò)程中具有較低的計(jì)算開銷,能準(zhǔn)確評(píng)估IIoT設(shè)備的可信度等級(jí),所采用主從鏈架構(gòu)提高了交易吞吐量和降低共識(shí)過(guò)程中的通信開銷,具有可擴(kuò)展性.