吳 斌,嚴建峰
(蘇州大學計算機科學與技術學院,江蘇 蘇州 215006)
計算機網絡初期設計階段缺乏隱私安全意識,導致現今網絡安全問題日益顯著。因此,對可信網絡的十分重要。可信網絡通過網絡接入控制措施,將終端[1]可信擴展至網絡,最終使網絡可信。可信網絡的接入認證是通過控制網絡內不安全因素源頭終端接入,令網絡可信可控。區塊鏈與物聯網均存在去中心化與分布式屬性。其中,物聯網僵尸網絡的形成是由于網絡安全模型沒有可靠的認證與共識機制,單點不信任擴展成多點不信任,而區塊鏈則可以完整地進行分布式存儲[2]。為此,相關研究人員對領域進行了大量的研究。
文獻[3]針對電力物聯網集中式接入認證方法的復雜計算過程與通信壓力,根據電力系統特點,采用區塊鏈去中心化特征,提出分布式認證方法,依據SHAMIR門限秘密共享機制建立共識機制,利用接入終端認證組,使分布式認證新的終端,并對其行為進行記錄。該方法可有效提高電力物聯網終端并發接入效率,但該方法操作過程中易受到外部干擾因素影響,導致接入安全性不佳。文獻[4]通過結合天地一體化信息網絡與分離網絡控制面與數據面理念,設計接入認證方法,優化網絡安全防護性能,依據提取的接入點決策影響因素特征,構建各因素求取公式,利用逼近理想解排序法與層次分析法,得到接入點決策算法。該方法對網絡接入性能的優化具有一定改善效果,但效果不明顯。
基于上述問題的存在,提出一種分布式可信網絡接入認證方法。通過分布式網絡框架中架構的樹形數據結構,快速歸納與校驗大規模數據的完整性,利用有向無環圖結構,提升業務吞吐量,在區塊鏈上自動執行智能合約,實現全網節點的同步運行,完成了分布式可信網絡接入認證方法。與傳統方法相比,所提方法的接入認證安全性能較高,且網絡吞吐量較大,具有一定可行性。
根據區塊鏈技術的界定原理[5],采用數據層、網絡層、共識層以及合約層架構分布式網絡框架。區塊鏈結構如圖1 所示。

圖1 區塊鏈結構示意圖
為快速歸納與校驗大規模數據的完整性,架構具有全部樹結構特征的樹形數據結構,架構步驟為:
步驟1:利用哈希值加密算法SHA256[6]雙重計算網絡數據,即
Nodeoi=SHA256(SHA256(Dataoi))
(1)
式中,i=1,2,3,4。
步驟2:獲取雙重SHA256運算串聯的相鄰哈希塊;
步驟3:遞歸第二步驟,待頂部僅剩一個結點時終止操作;
步驟4:返回樹形結構根哈希。
當存儲的葉子節點數據發生變化時,由父節點改變根節點的哈希值。分布式網絡用戶信息需不斷更新,故以該樹形結構為組織形式,將用戶置于創世區塊中。樹形結構如圖2所示。

圖2 樹形結構示意圖
作為分布式網絡框架的基礎部分,將網絡層架構為P2P的拓撲結構,利用Gossip協議[7]實現節點之間的互相通信,若消息始發節點需更新到其它節點,利用任意選取的幾個臨近節點發送消息,接收消息的節點重復始發節點操作,直到消息覆蓋所有節點。節點更新過程如圖3 所示。

圖3 節點更新過程
共識層為區塊鏈核心部分,其依據預先協商的規則,明確區塊鏈每個節點之間的分布式記錄流程,當各節點數據結果達成共識后,確保分布式形式的一致性與可靠性。共識層利用有向無環圖結構,將接入認證作為粒度,滿足各用戶與區塊鏈一一對應,提升業務吞吐量。其運行原理如圖4 所示:

圖4 共識層運行原理
該層由計算機程序語言編寫智能合約[8],其能夠在區塊鏈上自動執行的合同條款。區塊鏈網絡中所有節點上均分布存儲合約代碼,且可實現全網節點同步運行。因合約具有去中心化、不可篡改以及透明可信等優勢,任何節點問題、機構或個人均無法干擾合約程序的正常運行。其運行機制如圖5 所示。

圖5 智能合約運行機制示意圖
物聯網分布式網絡在接入認證時,用戶多采用匿名認證形式。因此,創建一種匿名接入算法。將網絡運營商設定分布式網絡節點,采用哈希函數將終端編號與密鑰信息存儲于本地文件中。當終端申請區塊向終端編號發出信號時,運營商節點通過樹形結構進行遍歷搜索,判別終端可信度。若哈希函數不匹配,則網絡屬于非法狀態,禁止接入;反之,若網絡為可信狀態,應將RSA非對稱加解密體系作為認證方法的構建條件,采用匿名接入算法,進行雙向驗證。匿名認證算法流程如圖6所示。

圖6 匿名認證算法流程示意圖
證書發放機構CA選取RSA[9]模型,即
n=pq
(2)
式中,保密素數分別是p、q。
假定m是證明者R要證明的消息,與n互素,且滿足1≤m≤n-1,則證明者R的公鑰計算公式為
v≡m2(modn)
(3)
證明者R任選一個數值r,滿足1≤r≤n-1,則發送給驗證者P的證據x表達式為
x≡r2(modn)
(4)
若證明者R接收到一個取值為0或者1的隨機比特e,該比特由驗證者P發出,通過本地執行計算公式,可分別求解出不同比特值,證明者R或驗證者P的公鑰運算結果,即
y2≡xve(modn)
(5)
當e=0時,y=r;當e=1時,y≡rm(modn)。
證明者R將計算結果發送到驗證者P,經驗證者P比較判定,如果雙方數值相同,則證明者R的證明消息通過驗證。驗證者P至少要執行三次本地計算,確保驗證結果,實現網絡接入。在證明者合法的前提下,獲取匹配一致的最終運算結果,將實際網絡編碼引入終端計算參數。
設定m是應保密的網絡實際編號,鑒權階段與網絡編號哈希函數的區塊密鑰材料分別為y和p,y,其分別表示驗證公鑰,p表示運算參數。
假設x與y匹配的私鑰,則生產商利用私鑰x與任意數g構成的公鑰為
y=gxmod(p)
(6)
式中,g,x
生產商將編號m分成a、b兩部分,下式分別為m的拆分關系式與a部分表達式,即
m=(xa+kb)mod(p-1)
(7)
a=gkmod(p)
(8)
其中,1≤k≤p-2,且滿足gcd(k,p-1)=1。
終端發送a、b兩部分,向運營商申請節點驗證,運營商節點與終端通過計算yaabmod(p)與gmmod(p)值,判定兩數值是否匹配。
代入各關系,得到下列等式驗證表達式
yaabmod(p)=gxagkbmod(p)
=gxa+kbmod(p)=gmmod(p)
(9)
將公鑰與加密消息劃分為并列模式,防止重復時延,降低通信與運算資源開銷,提升接入認證性能。
物聯網實體的主要功能是實現數據的轉發與存儲,MME(Mobility Management Entity,移動管理實體)與UE(User Equipment,用戶終端)之間的運行過程是用戶終端與網絡的鑒權[10]階段,網絡中存儲用戶身份數據的實體為HSS(Home Subscriber Server,歸屬簽約用戶服務器),可以與MME直接通信。
認證策略大致由兩部分構成:從HSS到MME發送EPS認證矢量;MME與UE之間的協商密鑰。實現流程描述如下:
1)UE發送附著請求給MME,請求信息含有網絡身份編號IMSI(International Mobile Subscriber Identification Number,國際移動用戶識別碼)與注冊HSS編號IDHSS;
2)MME驗證編號IDHSS,發送IMSI給相應的HSS;
3)接收消息后,HSS驗證IMSI是否合法,如果通過驗證,架構含有隨機數RAND、認證令牌AUTN的認證矢量集合AV,將其作為應答數據,由HSS發回至MME;
4)接收HSS的鑒權矢量集合后,MME進行本地存儲,從中任選一組隨機矢量AV(i),獲得隨機數RAND(i)、認證令牌AUTN(i)以及KASME(i)等信息,將密鑰標識KSIASME(i)分配給KASME(i),發送認證請求至UE;
5)UE根據AUTN(i)內的MAC數據,推算出XMAC。通過判定MAC與XMAC數值是否一致、序列號SQN是否在允許范圍中,驗證待接入網絡。如果認證合格,求解RES(i)與KASME(i),發送RES(i)至MME;
6)經過對比接收RES(i)與AV(i)中的XRES(i),若數值相等,則認證通過,允許網絡接入。
為了驗證所提方法的科學有效性,進行仿真分析。實驗在MATLAB 平臺上進行,操作系統為WINDOWS XP 系統,其運行內存為8GB,CPU為3.6 GHz。
仿真參數如表1 所示。

表1 仿真參數
構建16個節點的物聯網區塊鏈分布式拓撲結構,設置待認證終端節點有14個,運營商節點2個。仿真限定節點數量為兩個。依據鏈碼設定IP訪問序列,待認證終端節點按序向兩個運營商節點提出申請,如果運營商節點繁忙,忽略所提申請,拒絕應答消息發回申請節點,則該申請節點緩存所提申請,對下一運營商節點提出請求;如果兩個運營商節點均繁忙,待認證節點將在一定時間內再次按序發出申請。在運營商節點進行一次合法驗證時,將日志同步到另一個運營商節點上。設定待認證終端節點中有12個合法節點,另外2個屬于干擾節點。以網絡吞吐量、接入驗證的準確度以及接入驗證的時延為仿真指標,對比所提方法以及傳統方法的接入認證方法性能。
4.4.1 不同方法網絡吞吐量分析
為了驗證所提方法的可靠性,實驗分析了所提方法、物聯網接入認證方法以及一體化網絡接入認證方法的網絡吞吐量,其中,網絡吞吐量越大代表該方法性能越好。仿真結果如圖7 所示。

圖7 不同方法網絡吞吐量對比
分析圖7 可以看出,在相同實驗條件下,采用三種方法接入網絡吞吐量存在一定差異。其中,所提方法的網絡吞吐量總體高于其它兩種方法,其網絡吞吐量最高可達約99 Mpa;其它兩種方法的網絡吞吐量最高分別約為69 Mpa和49 Mpa,相比之下所提方法的網絡吞吐能力更強,具有一定可靠性。
4.4.2 不同方法接入驗證的準確度分析
為了驗證所提方法接入的安全性能,實驗分析了物聯網接入認證方法以及一體化網絡接入認證方法接入的準確度,實驗結果如圖8 所示。

圖8 不同方法接入驗證準確度對比
分析圖8 可以看出,采用三種方法接入驗證的準確度不相同。其中,采用所提方法的接入驗證的準確度最高可達約 90 %,而其它兩種方法的接入驗證準確度遠低于所提方法。這是由于所提方法將網絡運營商設定分布式網絡節點,采用哈希函數將終端編號與密鑰信息存儲于本地文件中。當終端申請區塊向終端編號發出信號時,運營商節點通過樹形結構進行遍歷搜索,判別終端可信度。由此提高了所提方法接入驗證的準確度。
4.4.3 不同方法接入的時延分析
為了進一步驗證所提方法的可行性,實驗分析了三種方法接入時的時延,其中,時延越短代表接入響應越快。實驗結果如表2 所示。

表2 不同方法接入時延分析(s)
分析表2中數據可知,隨著迭代次數的增加,三種方法的接入時延隨之改變。其中,所提方法的接入時延最短為2.1 s,物聯網接入認證方法的接入時延最短為4.2 s,一體化網絡接入認證方法接入時延最短為4.9 s,相比之下所提方法的時延分別縮短了2.1 s 和2.8 s。驗證了所提方法的科學有效性。
以防范為主的網絡接入機制比較被動,抵御變種病毒與木馬攻擊時并發性較差,且多數攻擊事件均因接入終端安全性較差等導致,為此從接入終端的安全問題出發,以區塊鏈技術為背景,提出分布式可信網絡接入認證方法。通過與傳統接入方法對比得到以下結論:
1)所提方法接入后網絡吞吐量最高可達99 Mpa,驗證了所提方法的綜合有效性。
2)所提方法接入驗證的準確度最高可達約90 %,高于傳統方法的接入驗證準確度,驗證了所提方法的安全性能較好。
3)所提方法的接入時延最短為2.1 s,與傳統方法相比接入較快,具有一定可行性。