吳 斌,嚴(yán)建峰
(蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)
計(jì)算機(jī)網(wǎng)絡(luò)初期設(shè)計(jì)階段缺乏隱私安全意識(shí),導(dǎo)致現(xiàn)今網(wǎng)絡(luò)安全問題日益顯著。因此,對(duì)可信網(wǎng)絡(luò)的十分重要??尚啪W(wǎng)絡(luò)通過網(wǎng)絡(luò)接入控制措施,將終端[1]可信擴(kuò)展至網(wǎng)絡(luò),最終使網(wǎng)絡(luò)可信??尚啪W(wǎng)絡(luò)的接入認(rèn)證是通過控制網(wǎng)絡(luò)內(nèi)不安全因素源頭終端接入,令網(wǎng)絡(luò)可信可控。區(qū)塊鏈與物聯(lián)網(wǎng)均存在去中心化與分布式屬性。其中,物聯(lián)網(wǎng)僵尸網(wǎng)絡(luò)的形成是由于網(wǎng)絡(luò)安全模型沒有可靠的認(rèn)證與共識(shí)機(jī)制,單點(diǎn)不信任擴(kuò)展成多點(diǎn)不信任,而區(qū)塊鏈則可以完整地進(jìn)行分布式存儲(chǔ)[2]。為此,相關(guān)研究人員對(duì)領(lǐng)域進(jìn)行了大量的研究。
文獻(xiàn)[3]針對(duì)電力物聯(lián)網(wǎng)集中式接入認(rèn)證方法的復(fù)雜計(jì)算過程與通信壓力,根據(jù)電力系統(tǒng)特點(diǎn),采用區(qū)塊鏈去中心化特征,提出分布式認(rèn)證方法,依據(jù)SHAMIR門限秘密共享機(jī)制建立共識(shí)機(jī)制,利用接入終端認(rèn)證組,使分布式認(rèn)證新的終端,并對(duì)其行為進(jìn)行記錄。該方法可有效提高電力物聯(lián)網(wǎng)終端并發(fā)接入效率,但該方法操作過程中易受到外部干擾因素影響,導(dǎo)致接入安全性不佳。文獻(xiàn)[4]通過結(jié)合天地一體化信息網(wǎng)絡(luò)與分離網(wǎng)絡(luò)控制面與數(shù)據(jù)面理念,設(shè)計(jì)接入認(rèn)證方法,優(yōu)化網(wǎng)絡(luò)安全防護(hù)性能,依據(jù)提取的接入點(diǎn)決策影響因素特征,構(gòu)建各因素求取公式,利用逼近理想解排序法與層次分析法,得到接入點(diǎn)決策算法。該方法對(duì)網(wǎng)絡(luò)接入性能的優(yōu)化具有一定改善效果,但效果不明顯。
基于上述問題的存在,提出一種分布式可信網(wǎng)絡(luò)接入認(rèn)證方法。通過分布式網(wǎng)絡(luò)框架中架構(gòu)的樹形數(shù)據(jù)結(jié)構(gòu),快速歸納與校驗(yàn)大規(guī)模數(shù)據(jù)的完整性,利用有向無環(huán)圖結(jié)構(gòu),提升業(yè)務(wù)吞吐量,在區(qū)塊鏈上自動(dòng)執(zhí)行智能合約,實(shí)現(xiàn)全網(wǎng)節(jié)點(diǎn)的同步運(yùn)行,完成了分布式可信網(wǎng)絡(luò)接入認(rèn)證方法。與傳統(tǒng)方法相比,所提方法的接入認(rèn)證安全性能較高,且網(wǎng)絡(luò)吞吐量較大,具有一定可行性。
根據(jù)區(qū)塊鏈技術(shù)的界定原理[5],采用數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層以及合約層架構(gòu)分布式網(wǎng)絡(luò)框架。區(qū)塊鏈結(jié)構(gòu)如圖1 所示。
圖1 區(qū)塊鏈結(jié)構(gòu)示意圖
為快速歸納與校驗(yàn)大規(guī)模數(shù)據(jù)的完整性,架構(gòu)具有全部樹結(jié)構(gòu)特征的樹形數(shù)據(jù)結(jié)構(gòu),架構(gòu)步驟為:
步驟1:利用哈希值加密算法SHA256[6]雙重計(jì)算網(wǎng)絡(luò)數(shù)據(jù),即
Nodeoi=SHA256(SHA256(Dataoi))
(1)
式中,i=1,2,3,4。
步驟2:獲取雙重SHA256運(yùn)算串聯(lián)的相鄰哈希塊;
步驟3:遞歸第二步驟,待頂部?jī)H剩一個(gè)結(jié)點(diǎn)時(shí)終止操作;
步驟4:返回樹形結(jié)構(gòu)根哈希。
當(dāng)存儲(chǔ)的葉子節(jié)點(diǎn)數(shù)據(jù)發(fā)生變化時(shí),由父節(jié)點(diǎn)改變根節(jié)點(diǎn)的哈希值。分布式網(wǎng)絡(luò)用戶信息需不斷更新,故以該樹形結(jié)構(gòu)為組織形式,將用戶置于創(chuàng)世區(qū)塊中。樹形結(jié)構(gòu)如圖2所示。
圖2 樹形結(jié)構(gòu)示意圖
作為分布式網(wǎng)絡(luò)框架的基礎(chǔ)部分,將網(wǎng)絡(luò)層架構(gòu)為P2P的拓?fù)浣Y(jié)構(gòu),利用Gossip協(xié)議[7]實(shí)現(xiàn)節(jié)點(diǎn)之間的互相通信,若消息始發(fā)節(jié)點(diǎn)需更新到其它節(jié)點(diǎn),利用任意選取的幾個(gè)臨近節(jié)點(diǎn)發(fā)送消息,接收消息的節(jié)點(diǎn)重復(fù)始發(fā)節(jié)點(diǎn)操作,直到消息覆蓋所有節(jié)點(diǎn)。節(jié)點(diǎn)更新過程如圖3 所示。
圖3 節(jié)點(diǎn)更新過程
共識(shí)層為區(qū)塊鏈核心部分,其依據(jù)預(yù)先協(xié)商的規(guī)則,明確區(qū)塊鏈每個(gè)節(jié)點(diǎn)之間的分布式記錄流程,當(dāng)各節(jié)點(diǎn)數(shù)據(jù)結(jié)果達(dá)成共識(shí)后,確保分布式形式的一致性與可靠性。共識(shí)層利用有向無環(huán)圖結(jié)構(gòu),將接入認(rèn)證作為粒度,滿足各用戶與區(qū)塊鏈一一對(duì)應(yīng),提升業(yè)務(wù)吞吐量。其運(yùn)行原理如圖4 所示:
圖4 共識(shí)層運(yùn)行原理
該層由計(jì)算機(jī)程序語言編寫智能合約[8],其能夠在區(qū)塊鏈上自動(dòng)執(zhí)行的合同條款。區(qū)塊鏈網(wǎng)絡(luò)中所有節(jié)點(diǎn)上均分布存儲(chǔ)合約代碼,且可實(shí)現(xiàn)全網(wǎng)節(jié)點(diǎn)同步運(yùn)行。因合約具有去中心化、不可篡改以及透明可信等優(yōu)勢(shì),任何節(jié)點(diǎn)問題、機(jī)構(gòu)或個(gè)人均無法干擾合約程序的正常運(yùn)行。其運(yùn)行機(jī)制如圖5 所示。
圖5 智能合約運(yùn)行機(jī)制示意圖
物聯(lián)網(wǎng)分布式網(wǎng)絡(luò)在接入認(rèn)證時(shí),用戶多采用匿名認(rèn)證形式。因此,創(chuàng)建一種匿名接入算法。將網(wǎng)絡(luò)運(yùn)營商設(shè)定分布式網(wǎng)絡(luò)節(jié)點(diǎn),采用哈希函數(shù)將終端編號(hào)與密鑰信息存儲(chǔ)于本地文件中。當(dāng)終端申請(qǐng)區(qū)塊向終端編號(hào)發(fā)出信號(hào)時(shí),運(yùn)營商節(jié)點(diǎn)通過樹形結(jié)構(gòu)進(jìn)行遍歷搜索,判別終端可信度。若哈希函數(shù)不匹配,則網(wǎng)絡(luò)屬于非法狀態(tài),禁止接入;反之,若網(wǎng)絡(luò)為可信狀態(tài),應(yīng)將RSA非對(duì)稱加解密體系作為認(rèn)證方法的構(gòu)建條件,采用匿名接入算法,進(jìn)行雙向驗(yàn)證。匿名認(rèn)證算法流程如圖6所示。
圖6 匿名認(rèn)證算法流程示意圖
證書發(fā)放機(jī)構(gòu)CA選取RSA[9]模型,即
n=pq
(2)
式中,保密素?cái)?shù)分別是p、q。
假定m是證明者R要證明的消息,與n互素,且滿足1≤m≤n-1,則證明者R的公鑰計(jì)算公式為
v≡m2(modn)
(3)
證明者R任選一個(gè)數(shù)值r,滿足1≤r≤n-1,則發(fā)送給驗(yàn)證者P的證據(jù)x表達(dá)式為
x≡r2(modn)
(4)
若證明者R接收到一個(gè)取值為0或者1的隨機(jī)比特e,該比特由驗(yàn)證者P發(fā)出,通過本地執(zhí)行計(jì)算公式,可分別求解出不同比特值,證明者R或驗(yàn)證者P的公鑰運(yùn)算結(jié)果,即
y2≡xve(modn)
(5)
當(dāng)e=0時(shí),y=r;當(dāng)e=1時(shí),y≡rm(modn)。
證明者R將計(jì)算結(jié)果發(fā)送到驗(yàn)證者P,經(jīng)驗(yàn)證者P比較判定,如果雙方數(shù)值相同,則證明者R的證明消息通過驗(yàn)證。驗(yàn)證者P至少要執(zhí)行三次本地計(jì)算,確保驗(yàn)證結(jié)果,實(shí)現(xiàn)網(wǎng)絡(luò)接入。在證明者合法的前提下,獲取匹配一致的最終運(yùn)算結(jié)果,將實(shí)際網(wǎng)絡(luò)編碼引入終端計(jì)算參數(shù)。
設(shè)定m是應(yīng)保密的網(wǎng)絡(luò)實(shí)際編號(hào),鑒權(quán)階段與網(wǎng)絡(luò)編號(hào)哈希函數(shù)的區(qū)塊密鑰材料分別為y和p,y,其分別表示驗(yàn)證公鑰,p表示運(yùn)算參數(shù)。
假設(shè)x與y匹配的私鑰,則生產(chǎn)商利用私鑰x與任意數(shù)g構(gòu)成的公鑰為
y=gxmod(p)
(6)
式中,g,x
生產(chǎn)商將編號(hào)m分成a、b兩部分,下式分別為m的拆分關(guān)系式與a部分表達(dá)式,即
m=(xa+kb)mod(p-1)
(7)
a=gkmod(p)
(8)
其中,1≤k≤p-2,且滿足gcd(k,p-1)=1。
終端發(fā)送a、b兩部分,向運(yùn)營商申請(qǐng)節(jié)點(diǎn)驗(yàn)證,運(yùn)營商節(jié)點(diǎn)與終端通過計(jì)算yaabmod(p)與gmmod(p)值,判定兩數(shù)值是否匹配。
代入各關(guān)系,得到下列等式驗(yàn)證表達(dá)式
yaabmod(p)=gxagkbmod(p)
=gxa+kbmod(p)=gmmod(p)
(9)
將公鑰與加密消息劃分為并列模式,防止重復(fù)時(shí)延,降低通信與運(yùn)算資源開銷,提升接入認(rèn)證性能。
物聯(lián)網(wǎng)實(shí)體的主要功能是實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)與存儲(chǔ),MME(Mobility Management Entity,移動(dòng)管理實(shí)體)與UE(User Equipment,用戶終端)之間的運(yùn)行過程是用戶終端與網(wǎng)絡(luò)的鑒權(quán)[10]階段,網(wǎng)絡(luò)中存儲(chǔ)用戶身份數(shù)據(jù)的實(shí)體為HSS(Home Subscriber Server,歸屬簽約用戶服務(wù)器),可以與MME直接通信。
認(rèn)證策略大致由兩部分構(gòu)成:從HSS到MME發(fā)送EPS認(rèn)證矢量;MME與UE之間的協(xié)商密鑰。實(shí)現(xiàn)流程描述如下:
1)UE發(fā)送附著請(qǐng)求給MME,請(qǐng)求信息含有網(wǎng)絡(luò)身份編號(hào)IMSI(International Mobile Subscriber Identification Number,國際移動(dòng)用戶識(shí)別碼)與注冊(cè)HSS編號(hào)IDHSS;
2)MME驗(yàn)證編號(hào)IDHSS,發(fā)送IMSI給相應(yīng)的HSS;
3)接收消息后,HSS驗(yàn)證IMSI是否合法,如果通過驗(yàn)證,架構(gòu)含有隨機(jī)數(shù)RAND、認(rèn)證令牌AUTN的認(rèn)證矢量集合AV,將其作為應(yīng)答數(shù)據(jù),由HSS發(fā)回至MME;
4)接收HSS的鑒權(quán)矢量集合后,MME進(jìn)行本地存儲(chǔ),從中任選一組隨機(jī)矢量AV(i),獲得隨機(jī)數(shù)RAND(i)、認(rèn)證令牌AUTN(i)以及KASME(i)等信息,將密鑰標(biāo)識(shí)KSIASME(i)分配給KASME(i),發(fā)送認(rèn)證請(qǐng)求至UE;
5)UE根據(jù)AUTN(i)內(nèi)的MAC數(shù)據(jù),推算出XMAC。通過判定MAC與XMAC數(shù)值是否一致、序列號(hào)SQN是否在允許范圍中,驗(yàn)證待接入網(wǎng)絡(luò)。如果認(rèn)證合格,求解RES(i)與KASME(i),發(fā)送RES(i)至MME;
6)經(jīng)過對(duì)比接收RES(i)與AV(i)中的XRES(i),若數(shù)值相等,則認(rèn)證通過,允許網(wǎng)絡(luò)接入。
為了驗(yàn)證所提方法的科學(xué)有效性,進(jìn)行仿真分析。實(shí)驗(yàn)在MATLAB 平臺(tái)上進(jìn)行,操作系統(tǒng)為WINDOWS XP 系統(tǒng),其運(yùn)行內(nèi)存為8GB,CPU為3.6 GHz。
仿真參數(shù)如表1 所示。
表1 仿真參數(shù)
構(gòu)建16個(gè)節(jié)點(diǎn)的物聯(lián)網(wǎng)區(qū)塊鏈分布式拓?fù)浣Y(jié)構(gòu),設(shè)置待認(rèn)證終端節(jié)點(diǎn)有14個(gè),運(yùn)營商節(jié)點(diǎn)2個(gè)。仿真限定節(jié)點(diǎn)數(shù)量為兩個(gè)。依據(jù)鏈碼設(shè)定IP訪問序列,待認(rèn)證終端節(jié)點(diǎn)按序向兩個(gè)運(yùn)營商節(jié)點(diǎn)提出申請(qǐng),如果運(yùn)營商節(jié)點(diǎn)繁忙,忽略所提申請(qǐng),拒絕應(yīng)答消息發(fā)回申請(qǐng)節(jié)點(diǎn),則該申請(qǐng)節(jié)點(diǎn)緩存所提申請(qǐng),對(duì)下一運(yùn)營商節(jié)點(diǎn)提出請(qǐng)求;如果兩個(gè)運(yùn)營商節(jié)點(diǎn)均繁忙,待認(rèn)證節(jié)點(diǎn)將在一定時(shí)間內(nèi)再次按序發(fā)出申請(qǐng)。在運(yùn)營商節(jié)點(diǎn)進(jìn)行一次合法驗(yàn)證時(shí),將日志同步到另一個(gè)運(yùn)營商節(jié)點(diǎn)上。設(shè)定待認(rèn)證終端節(jié)點(diǎn)中有12個(gè)合法節(jié)點(diǎn),另外2個(gè)屬于干擾節(jié)點(diǎn)。以網(wǎng)絡(luò)吞吐量、接入驗(yàn)證的準(zhǔn)確度以及接入驗(yàn)證的時(shí)延為仿真指標(biāo),對(duì)比所提方法以及傳統(tǒng)方法的接入認(rèn)證方法性能。
4.4.1 不同方法網(wǎng)絡(luò)吞吐量分析
為了驗(yàn)證所提方法的可靠性,實(shí)驗(yàn)分析了所提方法、物聯(lián)網(wǎng)接入認(rèn)證方法以及一體化網(wǎng)絡(luò)接入認(rèn)證方法的網(wǎng)絡(luò)吞吐量,其中,網(wǎng)絡(luò)吞吐量越大代表該方法性能越好。仿真結(jié)果如圖7 所示。
圖7 不同方法網(wǎng)絡(luò)吞吐量對(duì)比
分析圖7 可以看出,在相同實(shí)驗(yàn)條件下,采用三種方法接入網(wǎng)絡(luò)吞吐量存在一定差異。其中,所提方法的網(wǎng)絡(luò)吞吐量總體高于其它兩種方法,其網(wǎng)絡(luò)吞吐量最高可達(dá)約99 Mpa;其它兩種方法的網(wǎng)絡(luò)吞吐量最高分別約為69 Mpa和49 Mpa,相比之下所提方法的網(wǎng)絡(luò)吞吐能力更強(qiáng),具有一定可靠性。
4.4.2 不同方法接入驗(yàn)證的準(zhǔn)確度分析
為了驗(yàn)證所提方法接入的安全性能,實(shí)驗(yàn)分析了物聯(lián)網(wǎng)接入認(rèn)證方法以及一體化網(wǎng)絡(luò)接入認(rèn)證方法接入的準(zhǔn)確度,實(shí)驗(yàn)結(jié)果如圖8 所示。
圖8 不同方法接入驗(yàn)證準(zhǔn)確度對(duì)比
分析圖8 可以看出,采用三種方法接入驗(yàn)證的準(zhǔn)確度不相同。其中,采用所提方法的接入驗(yàn)證的準(zhǔn)確度最高可達(dá)約 90 %,而其它兩種方法的接入驗(yàn)證準(zhǔn)確度遠(yuǎn)低于所提方法。這是由于所提方法將網(wǎng)絡(luò)運(yùn)營商設(shè)定分布式網(wǎng)絡(luò)節(jié)點(diǎn),采用哈希函數(shù)將終端編號(hào)與密鑰信息存儲(chǔ)于本地文件中。當(dāng)終端申請(qǐng)區(qū)塊向終端編號(hào)發(fā)出信號(hào)時(shí),運(yùn)營商節(jié)點(diǎn)通過樹形結(jié)構(gòu)進(jìn)行遍歷搜索,判別終端可信度。由此提高了所提方法接入驗(yàn)證的準(zhǔn)確度。
4.4.3 不同方法接入的時(shí)延分析
為了進(jìn)一步驗(yàn)證所提方法的可行性,實(shí)驗(yàn)分析了三種方法接入時(shí)的時(shí)延,其中,時(shí)延越短代表接入響應(yīng)越快。實(shí)驗(yàn)結(jié)果如表2 所示。
表2 不同方法接入時(shí)延分析(s)
分析表2中數(shù)據(jù)可知,隨著迭代次數(shù)的增加,三種方法的接入時(shí)延隨之改變。其中,所提方法的接入時(shí)延最短為2.1 s,物聯(lián)網(wǎng)接入認(rèn)證方法的接入時(shí)延最短為4.2 s,一體化網(wǎng)絡(luò)接入認(rèn)證方法接入時(shí)延最短為4.9 s,相比之下所提方法的時(shí)延分別縮短了2.1 s 和2.8 s。驗(yàn)證了所提方法的科學(xué)有效性。
以防范為主的網(wǎng)絡(luò)接入機(jī)制比較被動(dòng),抵御變種病毒與木馬攻擊時(shí)并發(fā)性較差,且多數(shù)攻擊事件均因接入終端安全性較差等導(dǎo)致,為此從接入終端的安全問題出發(fā),以區(qū)塊鏈技術(shù)為背景,提出分布式可信網(wǎng)絡(luò)接入認(rèn)證方法。通過與傳統(tǒng)接入方法對(duì)比得到以下結(jié)論:
1)所提方法接入后網(wǎng)絡(luò)吞吐量最高可達(dá)99 Mpa,驗(yàn)證了所提方法的綜合有效性。
2)所提方法接入驗(yàn)證的準(zhǔn)確度最高可達(dá)約90 %,高于傳統(tǒng)方法的接入驗(yàn)證準(zhǔn)確度,驗(yàn)證了所提方法的安全性能較好。
3)所提方法的接入時(shí)延最短為2.1 s,與傳統(tǒng)方法相比接入較快,具有一定可行性。