韓 磊 張 姿
(桂林電子科技大學(xué)計算機與信息安全學(xué)院 廣西 桂林 541000)
WMN結(jié)合了無線連接和網(wǎng)絡(luò)拓?fù)涞膬?yōu)點,提供更好的移動性、更低的部署成本、更輕松的網(wǎng)絡(luò)擴展,以及強大的連接。WMN由多個通信節(jié)點組成,主要包括兩種類型節(jié)點:Mesh客戶端(Mesh Clients,MC)和Mesh路由器(Mesh Routers,MR)[1]。它相較于傳統(tǒng)的移動Ad-Hoc網(wǎng)絡(luò)和無線局域網(wǎng)等有更高可靠性和更高數(shù)據(jù)吞吐量,更低干擾和更好擴展性等特性,在學(xué)術(shù)界和工業(yè)界引起越來越多的關(guān)注[2]。但是,安全問題成為WMN快速普及的瓶頸。為了確保WMN的安全性并防止惡意節(jié)點的訪問,MR一方面需要對訪問MC進(jìn)行身份驗證,另一方面MC需要驗證MR的合法性以獲得可靠的網(wǎng)絡(luò)服務(wù)。因此,如何確保安全、快速認(rèn)證已成為一個熱點研究課題[3]。
區(qū)塊鏈?zhǔn)腔诜稚⒌姆植际椒诸愘~本,該系統(tǒng)在每個區(qū)塊鏈節(jié)點之間共享。涉及分布式存儲、點對點傳輸、共識機制、加密算法等技術(shù)的集成應(yīng)用。它已應(yīng)用于許多領(lǐng)域,如醫(yī)療保健、智能電網(wǎng)和供應(yīng)鏈[4]。同樣也有一些學(xué)者利用區(qū)塊鏈來解決分布式用戶身份驗證問題。文獻(xiàn)[5]提出了一種基于區(qū)塊鏈的跨域認(rèn)證模型BlockCAM,以保證不同域資源訪問的安全性和效率;文獻(xiàn)[6]提出了一種基于位置感知的物聯(lián)網(wǎng)(IoT)系統(tǒng)認(rèn)證機制。與傳統(tǒng)的跨數(shù)據(jù)中心認(rèn)證機制相比,基于區(qū)塊鏈的跨數(shù)據(jù)中心認(rèn)證機制不僅可以提高認(rèn)證效率,還可以抵抗DDoS攻擊[5],因為即使一個節(jié)點失敗,其他節(jié)點也不會受到影響,利用區(qū)塊鏈實現(xiàn)身份認(rèn)證。但這些研究目前均未解決無線移動Mesh網(wǎng)絡(luò)認(rèn)證問題。
針對以上問題提出一種基于區(qū)塊鏈的無線Mesh網(wǎng)絡(luò)認(rèn)證模型,如圖1所示。利用改進(jìn)的權(quán)益委托證明(DPoS)協(xié)議作為硬安全解決方案,提出了一種面向Blockchain Wireless Mesh Network(BWMN)的認(rèn)證系統(tǒng)。在之前的研究表明DPoS方案特別適用于移動場景[7],采用DPoS機制的區(qū)塊鏈系統(tǒng)將長達(dá)10分鐘的區(qū)塊生成時間降低到秒級,可以實現(xiàn)快速共識驗證,同時避免能源浪費和礦池算力疊加造成中心化的風(fēng)險。其中:MR基站作為計算基礎(chǔ)設(shè)施,擁有優(yōu)越的計算能力和存儲資源,可以作為礦工;MC移動終端節(jié)點上傳它們的區(qū)塊鏈證書記錄在區(qū)塊鏈系統(tǒng)中,利用哈希算法檢驗證書一致性實現(xiàn)Mesh終端認(rèn)證。
圖1 BWMN系統(tǒng)架構(gòu)
本方案設(shè)計的區(qū)塊鏈證書省去了簽名和簽名算法模塊。傳統(tǒng)PKI通過數(shù)字簽名判斷證書是否被篡改,使數(shù)字證書具有防偽性,保證數(shù)字證書中身份和公鑰可信。由于區(qū)塊鏈天然具有不易篡改的特性,可信域MR將證書的哈希值記入?yún)^(qū)塊鏈作為憑證,代替?zhèn)鹘y(tǒng)CA對證書簽名的過程;MC、MR相互驗證憑證,代替對證書的簽名驗證過程。
本文所提出的Mesh區(qū)塊鏈系統(tǒng)不是存儲類似于比特幣的轉(zhuǎn)賬交易數(shù)據(jù),而是存儲用于身份認(rèn)證和密鑰協(xié)商的公開參數(shù)信息,所以本文設(shè)計一種區(qū)塊鏈證書(Blockchain Certificate|Bcert)。MR/MC向AS申請并記入Mesh區(qū)塊鏈,作為不可篡改的信任憑證。根據(jù)傳統(tǒng)的X.509數(shù)字證書,本文設(shè)計了區(qū)塊鏈證書,如圖2所示。
圖2 認(rèn)證證書對比
本文方案相比于傳統(tǒng)證書:(1) 省去了簽名算法、公鑰和公鑰算法模塊。通常PKI通過使用數(shù)字簽名判斷證書是否被篡改,由于區(qū)塊鏈具有天然的不易篡改特性,Mesh終端申請AS生成區(qū)塊鏈證書并將證書的哈希值記入Mesh區(qū)塊鏈作為信任憑證,代替CA對證書的簽名過程,MC、MR相互驗證憑證,代替對證書的簽名驗證過程。(2) 添加了DH公開參數(shù)密鑰字段。當(dāng)終端實現(xiàn)認(rèn)證后,要計算會話密鑰實現(xiàn)加密通信。如圖3所示,Mesh終端向AS申請區(qū)塊鏈證書Bcert,當(dāng)Mesh終端該節(jié)點接收到Bcert,根據(jù)Diffie-Hellman[8]算法,終端本地隨機生成隨機數(shù)XA(XA 圖3 注冊階段流程 傳統(tǒng)上DPoS的礦工是通過基于股權(quán)投票選擇的,其中MC充當(dāng)利益相關(guān)者。擁有更多股份的利益相關(guān)者有更高的投票權(quán)。當(dāng)惡意MR與受損的高利益相關(guān)者勾結(jié),被投票為礦工。這些惡意礦工可能會錯誤地修改或丟棄數(shù)據(jù),雖然這些礦工在下一輪投票中會被表現(xiàn)良好的利益相關(guān)者投票逐出,但是利益相關(guān)者可能不會參與所有的投票,因此一些惡意的礦工無法及時被清除,使得惡意礦工能夠發(fā)動攻擊,不斷破壞系統(tǒng)。 為了解決上述問題,本文在DPoS基礎(chǔ)上,提出一個基于多權(quán)重邏輯主觀模型的聲譽投票方案,以確保安全地選擇礦工。如圖4所示,該方案通過過去的互動和其他MC的推薦意見來評估候選人的聲譽,聲譽高的候選人被選為積極礦工和待命礦工。其中聲譽是指一個實體根據(jù)其過去的行為的可信度評價[9-10]。Mesh區(qū)塊鏈也是一個公共記賬簿,它記錄了MC對MR礦工的聲譽評價。當(dāng)爭議和破壞發(fā)生時,這些聲譽意見是持久和透明的證據(jù)。MC也下載現(xiàn)有的聲譽評價意見,這些實體在Mesh區(qū)塊鏈中作為推薦意見。然后,MC將自己的評價與推薦意見結(jié)合,生成自己的聲譽評價意見,并通過附近的MR將這些帶有數(shù)字簽名的新意見上傳到新的活躍礦工。在Mesh區(qū)塊鏈中添加聲譽意見后,所有的終端均可獲得最新的MR聲譽。該系統(tǒng)就可以根據(jù)區(qū)塊鏈中的聲譽評價來計算MR的平均聲譽,這是下一輪共識過程中礦工選擇的一個重要指標(biāo)。 圖4 支持BWMN的增強DPoS共識方案 當(dāng)MC與MR/礦工之間積極互動時,MC將為MR/礦工產(chǎn)生正面評價,積極的互動意味著MC認(rèn)為MR提供的服務(wù)是相關(guān)和有用的。相反,由于與惡意的MR勾結(jié),一些受損的MC可能產(chǎn)生一些虛假的評級。因此,有必要設(shè)計一個安全有效的聲譽管理方案,并防止MR與MC之間的勾結(jié)。本文利用主觀邏輯,根據(jù)過去的互動和推薦的意見,制定個人的聲譽評估。它是針對主觀信念進(jìn)行概率信息融合的框架。具體計算如下所述。 1.3.1多權(quán)重主觀邏輯的本地意見 因為使用主觀邏輯模型的本地意見會受到不同因素的影響,所以在傳統(tǒng)的主觀邏輯基礎(chǔ)上使用多權(quán)重主觀邏輯。與文獻(xiàn)[3]相似,考慮以下權(quán)重來制定本地意見。 1) 交互頻率:已知較高的交互頻率意味著Mesh終端MCi具有關(guān)于路由節(jié)點MRj更多的先驗知識。MCi與MRj之間的交互頻率是MCi與MRj相互作用的次數(shù)與MCi在時間周期T內(nèi)與其他MR交互的平均次數(shù)的比率,即: (1) 2) 交互的時效性:在Mesh區(qū)塊鏈中,MR并不是總是可靠和值得信賴的,因為廣泛分布的MR可能缺乏足夠的安全保護(hù)并且易受損害。隨著時間的推移,MCi對MRj的信任和聲譽都不斷在變化。最近的MCi對MRj的相互作用產(chǎn)生的本地意見影響更大。最近的交互和過去的交互的時間尺度由t來表示。例如以三天來定義t。Mesh終端MC對最近的互動和過去的互動有著不同權(quán)重的本地意見。參數(shù)ζ表示最近的交互權(quán)重,σ表示過去交互的權(quán)重,ζ+σ=1,ζ>σ。 3) 交互作用:積極的交互作用會提高M(jìn)R的聲譽,而消極的交互作用會降低MR的聲譽。因此,負(fù)向交互作用比正向交互作用對于MR的本地意見具有更高的權(quán)重。積極互動的權(quán)重是χ,消極的交互權(quán)重是τ。其中:χ+τ=1,χ<τ。將交互時效性和交互作用的權(quán)重結(jié)合起來,形成新的交互頻率如下: (2) (3) 因此,本地意見的聲譽總權(quán)重為δi→j=ρi×IFi→j,其中0≤ρi≤1用于聲譽計算的預(yù)定義權(quán)重參數(shù)。 1.3.2推薦主觀邏輯意見 (4) 式中:x∈X是推薦的集合,表示其他的MC與MRj之間的交互。因此,來自不同推薦者的主觀意見被合并為一個單一的意見,根據(jù)每個意見的權(quán)重稱為推薦意見[11]。 1.3.3結(jié)合本地意見和推薦意見 (5) 所以得到最終的MCi對MRj聲譽評價為: (6) 式中:0≤γ≤1表示給定的常數(shù),表示聲譽不確定性的影響系數(shù)。 1.3.4動態(tài)信譽值計算 y=ae-be-ct (7) 式中:當(dāng)t→∞時,y的極限值會趨于a。為了正確體現(xiàn)出最后的信譽值,我們設(shè)置a=1。參數(shù)b和c分別確定當(dāng)t=0時y的值和增加的速度,這兩個參數(shù)可由系統(tǒng)管理員調(diào)整,并且不會影響最終的結(jié)果。因此提出一種基于Gompertz函數(shù)的動態(tài)函數(shù)(式(8))。本文可以將最終的聲譽計算重寫為式(9)。在獲得MR的最終聲譽意見后,MC將上傳并存儲最終聲譽意見作為Mesh區(qū)塊鏈中其他MC(利益相關(guān)者)的推薦意見。利益相關(guān)者根據(jù)聲譽意見投票選出名譽較高的礦工候選人。 y=e-e-IFi-j (8) (9) 本文采用區(qū)塊鏈認(rèn)證證書,使得Mesh節(jié)點在區(qū)塊鏈上注冊自己的身份信息時既不會暴露有關(guān)身份認(rèn)證的任何私密數(shù)據(jù),同時其他節(jié)點也能通過區(qū)塊鏈公開的賬本中的數(shù)據(jù)成功驗證該節(jié)點的合法信息。具體過程如下。 1) MC節(jié)點請求訪問MR路由端節(jié)點并向MR發(fā)送挑戰(zhàn)隨機數(shù)N1。 2) MR收到MC的請求后,響應(yīng)請求并向MC發(fā)送挑戰(zhàn)隨機數(shù)N2。 3) MC接收到N2后,使用自己的私鑰SkMC對隨機數(shù)進(jìn)行簽名生成SignMC(N2),把證書Bcert、簽名SignMC(N2)、隨機數(shù)N2作為消息發(fā)送給MR。MR收到MC消息后,解析證書Bcert,檢查N2是否有效,然后用MC證書Bcert上的公鑰和N2驗證SingMC(N2)是否正確,查看證書的有效期。通過之后根據(jù)區(qū)塊鏈?zhǔn)褂玫墓K惴ò炎C書進(jìn)行哈希得到Hash(Bcert),使用Hash(Bcert)查詢區(qū)塊鏈,若哈希一致則通過認(rèn)證,MR才允許MC接入;否則認(rèn)證失敗拒絕接入。 4) MC完成接入認(rèn)證后會驗證MR是否是合法的節(jié)點。同樣地,MR使用自己的私鑰SkMR對隨機數(shù)進(jìn)行簽名生成SignMR(N1),把證書Bcert、簽名SignMR(N1)、隨機數(shù)N1作為消息發(fā)送給MC。 MC收到MR消息后,解析證書Bcert,檢查N1是否有效,然后用MR證書Bcert上的公鑰和N1驗證SingMR(N1)是否正確,查看證書的有效期。通過之后根據(jù)區(qū)塊鏈?zhǔn)褂玫墓K惴ò炎C書進(jìn)行哈希得到Hash(Bcert),使用Hash(Bcert)查詢區(qū)塊鏈,若哈希一致則通過認(rèn)證,說明MR是合法的接入點;否則認(rèn)證失敗拒絕接入。 通過認(rèn)證后MR利用獲得的MC節(jié)點的DH參數(shù)值YMC,根據(jù)Diffif-Hellman算法定義計算公共密鑰K=(YMC)Xmodq。同樣地,MC利用獲得的MR節(jié)點的DH參數(shù)值YMR,計算公共密鑰K=(YMR)Xmodq。密鑰K將作為之后傳遞應(yīng)用數(shù)據(jù)時使用的會話密鑰值。認(rèn)證階段流程如圖5所示。 圖5 接入認(rèn)證協(xié)議 本文認(rèn)證方案結(jié)合了區(qū)塊鏈技術(shù)的去信任中心,進(jìn)行分布式接入認(rèn)證,能有效解決傳統(tǒng)集中式AS模型中存在的安全問題。本文從雙向?qū)嶓w認(rèn)證、匿名性、抗攻擊性等幾個方面對方案進(jìn)行安全分析。 MC和MR在認(rèn)證之前,將各自的證書寫入?yún)^(qū)塊鏈。MC請求接入的時候MR獲得Bcert證書,作哈希運算后查詢區(qū)塊鏈內(nèi)已保存的憑證,驗證成功后實現(xiàn)MR對MC節(jié)點的認(rèn)證。同樣地,MC接入骨干MR網(wǎng)絡(luò)后通過區(qū)塊鏈來驗證接入的MR節(jié)點,這樣就完成MC與MR之間的雙向?qū)嶓w認(rèn)證。 在該模型中,所有的主體信息包括MR和MC都進(jìn)行Hash運算,并將證書的哈希值存入?yún)^(qū)塊鏈中。哈希函數(shù)的單向性與抗碰撞性能夠使任何區(qū)塊鏈節(jié)點匿名和安全地存儲證書。 在無線Mesh網(wǎng)絡(luò)通信中,要阻止竊聽者捕獲到通信數(shù)據(jù)包代價是非常高的,在本文方案中所有的通信數(shù)據(jù)包都是加密處理的,即使被攻擊,沒有密鑰也是不能獲得通信明文的。 1) 抗重放攻擊:本文方案中終端節(jié)點請求認(rèn)證的時候,在消息后面添加隨機數(shù)N1。在驗證消息之前先驗證隨機數(shù),通過驗證隨機數(shù)與原先保存的一樣,所以每次認(rèn)證都會產(chǎn)生不同的隨機數(shù),如此達(dá)到抗重放攻擊的效果。 2) 抗中間人攻擊:在注冊階段中,AS為MC和MR都分發(fā)了相應(yīng)的密鑰,并且公鑰存儲在區(qū)塊鏈上,在進(jìn)行認(rèn)證的時候攻擊者無法生成SignMC(N1)簽名,就不能通過MR認(rèn)證。認(rèn)證之后終端節(jié)點之間交互消息,都會通過Diffif-Hellman算法計算會話密鑰K,攻擊者并不能根據(jù)公開的參數(shù)來計算出K,有效抵抗中間人攻擊。 3) 抗分布式拒絕服務(wù)(DDoS)攻擊:該模型的骨干網(wǎng)絡(luò)構(gòu)成區(qū)塊鏈網(wǎng)絡(luò),每個節(jié)點都具有完整的區(qū)塊鏈信息,并能對其他節(jié)點的數(shù)據(jù)有效性進(jìn)行驗證,因此針對該模型的DDoS攻擊將會很困難。即便某個節(jié)點被攻破,剩余節(jié)點也能正常維持。 本文方案選擇計算開銷和通信代價作為模型性能衡量指標(biāo)。并與文獻(xiàn)[12-13]提出的認(rèn)證方案進(jìn)行對比。其中用Th表示節(jié)點間握手一次所需要的時延,Th越大則認(rèn)證的時候握手次數(shù)越多通信代價就越高。計算開銷表示在認(rèn)證的過程中執(zhí)行公鑰加密(Enc)、解密(Dec)、數(shù)字簽名(Sign)、簽名驗證(Verify)、哈希運算(Hash)、計算消息認(rèn)證碼(MAC)所產(chǎn)生的開銷。計算過程中針對上述算法所產(chǎn)生的延時如表1所示[14]。 表1 計算開銷 本文利用區(qū)塊鏈網(wǎng)絡(luò)完成接入認(rèn)證,在認(rèn)證的時候省去了復(fù)雜的非對稱加解密算法,縮短了認(rèn)證時間。從表2和表3可以看出文獻(xiàn)[12]提出的認(rèn)證方案需要5次握手,本文方案只需要4次就能完成接入認(rèn)證。雖然文獻(xiàn)[13]提出的方案的通信代價與本文方案一樣,但是本文方案的計算開銷延時比其他兩個方案降低了近一半。隨著終端節(jié)點數(shù)的增加在多跳環(huán)境中,文獻(xiàn)[12]和文獻(xiàn)[13]方案會出現(xiàn)AS與認(rèn)證節(jié)點之間多跳傳輸問題,而基于區(qū)塊鏈分布式認(rèn)證只需單跳,可以減少認(rèn)證延遲,從而使丟包率更小。因此本文方案在基于區(qū)塊鏈認(rèn)證的方案具有明顯優(yōu)勢。 表2 認(rèn)證運算次數(shù)比較 表3 通信代價 本文提出基于區(qū)塊鏈的無線Mesh網(wǎng)絡(luò)接入認(rèn)證方案。因為區(qū)塊鏈與Mesh網(wǎng)絡(luò)有相似拓?fù)浣Y(jié)構(gòu)并且具有不易篡改等特性,將認(rèn)證證書保存在區(qū)塊鏈網(wǎng)絡(luò)中利用哈希算法進(jìn)行認(rèn)證。通過與其他方案對比,本文方案在保證安全的基礎(chǔ)上,使用哈希算法驗證證書,能夠減少公鑰算法計算和交互次數(shù),降低通信代價,有效地提高了認(rèn)證效率并使解決方案高效且可擴展。下一步工作重點是在此基礎(chǔ)上研究快速切換認(rèn)證,進(jìn)一步完善認(rèn)證機制。1.2 共識算法設(shè)計
1.3 基于動態(tài)信譽的多權(quán)重邏輯主觀模型
1.4 基于區(qū)塊鏈的Mesh認(rèn)證協(xié)議
2 安全分析
2.1 雙向?qū)嶓w認(rèn)證
2.2 匿名性
2.3 抗攻擊性
3 效率分析
4 結(jié) 語