本文摘要:摘 要 由于軟件定義網(wǎng)絡(luò)(SDN)的數(shù)據(jù)平面只負責(zé)流量轉(zhuǎn)發(fā),并不具備識別流規(guī)則是否正確的功能,使得攻擊者可通過惡意向數(shù)據(jù)平面注入錯誤流規(guī)則,造成網(wǎng)絡(luò)擁塞和信息泄露,甚至是網(wǎng)絡(luò)癱瘓等嚴重后果.鑒于區(qū)塊鏈的可追溯、不可篡改等特性,提出了一個在控制平面運行的基于
摘 要 由于軟件定義網(wǎng)絡(luò)(SDN)的數(shù)據(jù)平面只負責(zé)流量轉(zhuǎn)發(fā),并不具備識別流規(guī)則是否正確的功能,使得攻擊者可通過惡意向數(shù)據(jù)平面注入錯誤流規(guī)則,造成網(wǎng)絡(luò)擁塞和信息泄露,甚至是網(wǎng)絡(luò)癱瘓等嚴重后果.鑒于區(qū)塊鏈的可追溯、不可篡改等特性,提出了一個在控制平面運行的基于區(qū)塊鏈的錯誤流規(guī)則檢測(FFRD-BC)機制,當(dāng)控制器向數(shù)據(jù)平面下發(fā)流規(guī)則的同時將其存儲到區(qū)塊鏈中,通過隨機選擇數(shù)據(jù)平面中的流規(guī)則并驗證其是否存在于區(qū)塊鏈中,來檢測出數(shù)據(jù)平面中第三方行動者注入的錯誤流規(guī)則.其次,在FFRD-BC的流規(guī)則檢測階段,引入基于實用拜占庭容錯共識算法的投票驗證策略,避免由于區(qū)塊鏈節(jié)點一致性不穩(wěn)定而導(dǎo)致的誤檢情況.實驗結(jié)果表明:隨著檢測次數(shù)的增加,提出的FFRD-BC機制能夠有效檢測數(shù)據(jù)平面中第三方行動者注入的錯誤流規(guī)則,并且與自主驗證策略相比有效降低了誤檢率.
關(guān)鍵詞 軟件定義網(wǎng)絡(luò);區(qū)塊鏈;流規(guī)則檢測;共識算法
軟件定義網(wǎng)絡(luò)(Software-Defined Networking,SDN)是一種新型的網(wǎng)絡(luò)體系架構(gòu),具有轉(zhuǎn)控分離、集中控制的特點 .它的核心思想是將數(shù)據(jù)平面和控制平面解耦,通過控制平面下發(fā)流規(guī)則,從而實現(xiàn)靈活高效地網(wǎng)絡(luò)流量控制[1-2].隨著技術(shù)的發(fā)展及服務(wù)需求的增加,網(wǎng)絡(luò)攻擊更加頻繁,具有隱蔽性、持續(xù)性的網(wǎng)絡(luò)威脅增多[3].但由于SDN數(shù)據(jù)平面中的轉(zhuǎn)發(fā)設(shè)備只負責(zé)轉(zhuǎn)發(fā)操作,并不具備識別流規(guī)則是否正確的功能,如果交換機按照第三方行動者下發(fā)的錯誤流規(guī)則轉(zhuǎn)發(fā)數(shù)據(jù)流,將造成網(wǎng)絡(luò)擁塞、信息泄露、網(wǎng)絡(luò)癱瘓等嚴重后果.因此,保證SDN數(shù)據(jù)平面接收到的流規(guī)則的正確性對SDN網(wǎng)絡(luò)來說至關(guān)重要[4-5].
區(qū)塊鏈技術(shù)將交易信息打包為區(qū)塊,通過數(shù)字簽名實現(xiàn)數(shù)據(jù)的安全傳輸、共識機制保證數(shù)據(jù)的一致性、哈希函數(shù)實現(xiàn)數(shù)據(jù)的可追溯與不可篡改,來解決數(shù)據(jù)的可信問題,為檢測SDN數(shù)據(jù)平面中第三方行動者下發(fā)的錯誤流規(guī)則提供了新的解決方案[6-8].然而,在實際應(yīng)用中,區(qū)塊鏈節(jié)點通過共識機制完成一致性的效果受網(wǎng)絡(luò)影響嚴重 .當(dāng)網(wǎng)絡(luò)同步性較差時,即使網(wǎng)絡(luò)中沒有惡意節(jié)點進行主動攻擊,共識機制也無法穩(wěn)定保持強一致性[9].使用區(qū)塊鏈技術(shù)解決涉及流規(guī)則的 SDN 安全問題,主要是將區(qū)塊鏈作為一個分布式存儲平臺,經(jīng)過共識機制達成共識后將流規(guī)則等網(wǎng)絡(luò)信息寫入?yún)^(qū)塊鏈中[6].
但該思路只能夠保證流規(guī)則難以被惡意篡改,并沒有考慮到第三方行動者惡意向數(shù)據(jù)平面中寫入錯誤流規(guī)則的情況.為保證 SDN數(shù)據(jù)平面中流規(guī)則的正確性,本文提出一種基于區(qū)塊鏈的錯誤流規(guī)則檢測(FalseFlow Rule Detection based on Blockchain,F(xiàn)FRD-BC)機制,隨機選擇數(shù)據(jù)平面中的流規(guī)則并驗證其是否存在于區(qū)塊鏈中,以檢測數(shù)據(jù)平面中第三方行動者注入的錯誤流規(guī)則 . 一旦檢測到錯誤流規(guī)則,立即下發(fā)刪除命令 . 此外,為了避免由于區(qū)塊鏈節(jié)點之間一致性不穩(wěn)定而導(dǎo)致誤刪正確流規(guī)則的情況,檢測 階 段 引 入 了 基 于 實 用 拜 占 庭 容 錯(PracticalByzantine Fault Tolerance,PBFT)共識算法的投票驗證策略,只有經(jīng)過多數(shù)區(qū)塊鏈節(jié)點投票驗證后被檢測為錯誤的流規(guī)則才會被刪除,以達到有效而準確地檢測錯誤流規(guī)則并將其從交換機中刪除的目的.
1 問題描述及相關(guān)工作
在 SDN 網(wǎng)絡(luò)中,數(shù)據(jù)平面根據(jù)控制平面的 SDN控制器下發(fā)的流規(guī)則來轉(zhuǎn)發(fā)和處理網(wǎng)絡(luò)流量 .由于SDN 轉(zhuǎn)控分離的特點,數(shù)據(jù)平面只負責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)包,并不具備判斷流規(guī)則是否合法的功能,因此下發(fā)到 SDN 數(shù)據(jù)平面的任何錯誤流規(guī)則都將對網(wǎng)絡(luò)流量的轉(zhuǎn)發(fā)和處理造成一定的影響 .流規(guī)則包括匹配域、動作等,通過匹配域?qū)?shù)據(jù)包與流規(guī)則進行匹配,通過動作對數(shù)據(jù)包進行相應(yīng)的處理[1].
當(dāng) SDN交換機接收到一個流的數(shù)據(jù)包后,首先查找是否有相匹配的流規(guī)則,如果有,則執(zhí)行相應(yīng)的動作;如果沒有,則向控制器發(fā)送一條Packet_in消息以請求流規(guī)則,由控制器向交換機發(fā)送 Packet_out 消息以下發(fā)流規(guī)則 . 在流規(guī)則的請求與響應(yīng)過程中,第三方行動者能夠獲取控制器與交換機之間的通信會話,并向交換機中惡意寫入錯誤流規(guī)則,以達到破壞網(wǎng)絡(luò)的目的[4].從左到右分別給出了數(shù)據(jù)平面中產(chǎn)生錯誤流規(guī)則的3種情況:(1)第三方行動者直接篡改交換機中的流規(guī)則;(2)交換機與未經(jīng)過授權(quán)認證的控制器建立連接,并接收到該惡意控制器下發(fā)的錯誤流規(guī)則;(3)第三方行動者插入控制器和交換機之間的通信會話,向交換機中惡意寫入錯誤流規(guī)則.本文重點解決第一種和第三種由第三方行動者向交換機中注入錯誤流規(guī)則的情況.
區(qū)塊鏈技術(shù)為保證 SDN 交換機中流規(guī)則安全性的主要思路是將區(qū)塊鏈作為一個分布式存儲平臺來存儲SDN中需要驗證的網(wǎng)絡(luò)信息(如控制器信息、流規(guī)則等),基于其本身可追溯、不可篡改的性質(zhì),避免這些網(wǎng)絡(luò)信息被惡意篡改[6-8].目前,相關(guān)研究主要從網(wǎng)絡(luò)信息完整性、控制平面安全性、控制平面與數(shù)據(jù)平面之間通信安全等方面展開.針對SDN網(wǎng)絡(luò)信息完整性的保障,RAHMAN等人[10]提出用控制器集群維護一個分布式區(qū)塊鏈賬本,在更新流規(guī)則時,向所有控制器廣播新規(guī)則,從而保證控制器規(guī)則集的一致性 .分布式區(qū)塊鏈賬本能夠跟蹤所有流規(guī)則的更新,通過REST API訪問歷史記錄 .該方案只考慮了流規(guī)則的完整性以及一致性 .WENG 等人[11]設(shè)計了一個基于區(qū)塊鏈的整體安全機制,在維護網(wǎng)絡(luò)視圖的同時,能夠在所有控制器之間保持網(wǎng)絡(luò)資源的一致性.
為克服傳統(tǒng)SDN架構(gòu)中流量缺乏可追溯性和可問責(zé)性的弱點,所有的流和網(wǎng)絡(luò)行為都被記錄在區(qū)塊鏈上,以便重播網(wǎng)絡(luò)狀態(tài),進行審核和調(diào)試.一些研究引入?yún)^(qū)塊鏈保存節(jié)點認證信息,用于保證 SDN 控制平面的安全性 .WANG 等人[12]提出SDN 安全保障模型,將 SDN 流規(guī)則、控制器的全局信息等存儲到區(qū)塊鏈,通過對控制器進行分布式認證以及權(quán)限管理,提高網(wǎng)絡(luò)的魯棒性 .SHAO等人[13]提出一種SDN安全機制系統(tǒng)模型及保障機制,在控制平面采用區(qū)塊鏈技術(shù)存儲系統(tǒng)的安全驗證信息 .該方案在初始階段通過 SDN 控制器之間相互交換數(shù)據(jù)進行身份驗證,來防止非法控制器的接入以及攻擊者篡改共享數(shù)據(jù)庫信息,但并沒有考慮到第三方行動者惡意向交換機中寫入流規(guī)則的情況.AZAB等人[14]提出對網(wǎng)絡(luò)節(jié)點進行接入認證,通過多節(jié)點認證提高 SDN 的穩(wěn)健性 .
節(jié)點通過認證后,控制器向節(jié)點發(fā)出相應(yīng)的授權(quán)信息,每當(dāng)節(jié)點的權(quán)限發(fā)生變化時,將最新的權(quán)限存儲在區(qū)塊鏈中,防止攻擊者對數(shù)據(jù)的惡意篡改.確?刂破髦g的一致性,可以避免 SDN控制平面流表管理的漏洞帶來的安全威脅.HU等人[15]在SDN 中提供流規(guī)則一致性測試的新框架,并設(shè)計了流規(guī)則插入和驗證的過程.TONG[16]等人通過構(gòu)建水平-垂直架構(gòu)的控制平面,使用區(qū)塊鏈記錄網(wǎng)絡(luò)信息,防止惡意管理員威脅.LOKESH等人[17]提出每個網(wǎng)絡(luò)集群引入控制器區(qū)塊鏈網(wǎng)絡(luò),每個控制器擁有一對公鑰和私鑰,每個交換機通過會話密鑰與控制器建立通信通道 .控制器使用交換機的會話密鑰加密流規(guī)則等信息,以保證通信通道的安全性.
針對 SDN 網(wǎng)絡(luò)中的中間人攻擊,BOUKRIA [18]等人提出 BCFR 解決方案,以檢測注入 SDN 數(shù)據(jù)平面中的錯誤流規(guī)則,其中的私有區(qū)塊鏈網(wǎng)絡(luò)由控制器與可信節(jié)點(虛擬機)組成 .當(dāng)控制器向交換機下發(fā)流規(guī)則時,也向可信節(jié)點發(fā)送一個流規(guī)則的副本.交換機收到流規(guī)則后,驗證自己收到的流規(guī)則與可信節(jié)點中的流規(guī)則是否相同,若相同,則不執(zhí)行任何操作;若不同,則通知網(wǎng)絡(luò)管理員 .該方案能夠檢測出所有注入SDN數(shù)據(jù)平面中的錯誤流規(guī)則.這些研究工作大部分并沒有考慮到 SDN 數(shù)據(jù)平面中注入錯誤流規(guī)則的情況 .
文獻[18]提出的BCFR 方案雖然能夠檢測出所有的錯誤流規(guī)則,但首先,該方案中交換機每收到一條流規(guī)則,都要立即對其進行檢測,這一過程將消耗更多的處理時間,從而對網(wǎng)絡(luò)性能造成一定影響;其次,該方案在檢測到錯誤流規(guī)則后僅僅通知網(wǎng)絡(luò)管理員,只能檢測到錯誤流規(guī)則,而不能緩解錯誤流規(guī)則對網(wǎng)絡(luò)的影響;最后,沒有考慮到區(qū)塊鏈節(jié)點之間一致性不穩(wěn)定時,造成某些正常流規(guī)則沒有上鏈,從而導(dǎo)致將正常流規(guī)則檢測為錯誤流規(guī)則的情況.2 解決方案針對 SDN數(shù)據(jù)平面中注入的錯誤流規(guī)則,本文提出基于區(qū)塊鏈的錯誤流規(guī)則檢測機制 FFRD-BC.通過控制平面隨機選擇數(shù)據(jù)平面中的流規(guī)則并驗證其是否存在于區(qū)塊鏈中,來檢測SDN數(shù)據(jù)平面中第三方行動者注入的錯誤流規(guī)則;當(dāng)流規(guī)則檢測結(jié)果為錯誤流規(guī)則時,立即下發(fā)刪除命令,以緩解錯誤流規(guī)則對網(wǎng)絡(luò)的影響 .
此外,針對區(qū)塊鏈節(jié)點之間一致性不穩(wěn)定而導(dǎo)致的誤檢情況,在檢測階段引入基于PBFT共識算法的投票驗證策略.
2.1 系統(tǒng)模型
本文在控制平面采用水平分布式控制器架構(gòu)[19-20].在數(shù)據(jù)平面將交換機劃分為不同的區(qū)域,每個控制器單獨控制其中的一個交換機區(qū)域 .控制器之間形成一個私有區(qū)塊鏈網(wǎng)絡(luò). 在 SDN 網(wǎng)絡(luò)運行時,控制平面中的控制器根據(jù)網(wǎng)絡(luò)需求向數(shù)據(jù)平面下發(fā)流規(guī)則,數(shù)據(jù)平面中的交換機根據(jù)流規(guī)則進行網(wǎng)絡(luò)流量的轉(zhuǎn)發(fā)與處理工作 .區(qū)塊鏈則負責(zé)流規(guī)則的存儲,通過驗證流規(guī)則是否存在于區(qū)塊鏈中對流規(guī)則進行檢測.
2.2 FFRD-BC機制
FFRD-BC機制的運行共包括3個階段:流規(guī)則上鏈、流規(guī)則檢測、流規(guī)則決策,其中流規(guī)則檢測階段又分為流規(guī)則選擇和流規(guī)則驗證兩步驟。
第一階段:流規(guī)則上鏈當(dāng)控制平面向數(shù)據(jù)平面下發(fā)流規(guī)則時,將這條流規(guī)則格式化為一條交易并打包成一個區(qū)塊并在區(qū)塊鏈網(wǎng)絡(luò)中進行廣播,收到區(qū)塊的控制器節(jié)點在經(jīng)過共識后將它存儲到自己的本地區(qū)塊鏈中 .區(qū)塊由區(qū)塊哈希值、控制器ID、交易等元素組成,交易由流規(guī)則ID、匹配域、動作等元素組成.第二階段:流規(guī)則檢測(1)流規(guī)則選擇——控制平面從數(shù)據(jù)平面中隨機選擇一臺交換機,并從這臺交換機的流規(guī)則集合中隨機選擇待檢測的流規(guī)則.
(2)流規(guī)則驗證——控制平面訪問區(qū)塊鏈,驗證被選擇的流規(guī)則是否存在于區(qū)塊鏈中 . 如果存在,則檢測結(jié)果為流規(guī)則正確;如果不存在,則檢測結(jié)果為流規(guī)則錯誤.第三階段:流規(guī)則決策控制平面根據(jù)流規(guī)則檢測階段的結(jié)果進行不執(zhí)行任何操作或刪除流規(guī)則的決策 .當(dāng)檢測結(jié)果為流規(guī)則正確時,則不執(zhí)行任何操作;當(dāng)檢測結(jié)果為流規(guī)則錯誤時,則向數(shù)據(jù)平面下發(fā)刪除該條流規(guī)則的命令.在 FFRD-BC 機制的 3個階段中,最核心的是第二階段,即流規(guī)則檢測階段,其中流規(guī)則驗證尤為重要 . 由于區(qū)塊鏈節(jié)點之間的一致性不穩(wěn)定,只驗證自己的本地區(qū)塊鏈中是否存在待檢測的流規(guī)則無法保證檢測結(jié)果的準確性.
2.3 流規(guī)則驗證策略
控制平面從數(shù)據(jù)平面中隨機選擇流規(guī)則 r,驗證r是否存在于區(qū)塊鏈中.如果存在,則流規(guī)則檢測結(jié)果為正確,如果不存在,則流規(guī)則檢測結(jié)果為錯誤.驗證策略分為自主驗證策略和投票驗證策略.
2.3.1 自主驗證控制器
從網(wǎng)絡(luò)中的n個交換機中隨機選擇一臺交換機si,從si的流規(guī)則集中隨機選擇一條流規(guī)則r.將得到的流規(guī)則 r 進行解析,從而得到流 ID、匹配域、動作等各項流規(guī)則元素 . 將所得到的各項流規(guī)則元素按順序進行拼接,得到一條格式化的流規(guī)則r’.對于得到的格式化的流規(guī)則r’,驗證自己的本地區(qū)塊鏈中是否存在與r’相同的交易tx.如果存在,則流規(guī)則檢測結(jié)果為正確;如果不存在,則流規(guī)則檢測結(jié)果為錯誤 .算法 1 為自主驗證的錯誤流規(guī)則檢測算法的描述.
在自主驗證的檢測過程中,當(dāng)區(qū)塊鏈節(jié)點之間一致性不穩(wěn)定時,對于正確的流規(guī)則 r,控制器節(jié)點在自己的本地區(qū)塊鏈中沒有找到與 r’相同的交易tx,那么,正確的流規(guī)則 r將被誤檢為錯誤流規(guī)則并被刪除 . 這顯然不符合設(shè)計 FFRD-BC 機制的初衷,因此本文在流規(guī)則檢測階段引入了基于 PBFT共識算法的投票驗證策略,以減少誤檢情況.
2.3.2 投票驗證
在投票驗證策略中,將私有區(qū)塊鏈網(wǎng)絡(luò)中的控制器節(jié)點分為請求節(jié)點和驗證節(jié)點,并隨機選擇一個節(jié)點作為主節(jié)點 .每個控制器都有可能成為請求節(jié)點或驗證節(jié)點 . 當(dāng)控制器廣播投票請求時,則該控制器節(jié)點作為請求節(jié)點,其他控制器節(jié)點作為驗證節(jié)點對需要投票的流規(guī)則進行驗證.對于經(jīng)自主驗證后檢測為錯誤的流規(guī)則 r’,引入基于 PBFT共識算法的投票驗證策略對 r’進行檢測.PBFT共識算法能夠在失效節(jié)點不超過節(jié)點總數(shù)的 1/3 時保證共識結(jié)果的正確性,這里假設(shè)整個網(wǎng)絡(luò)中失效節(jié)點個數(shù)為f。
3 評估與分析
3.1 實驗平臺
實驗部署在 Ubuntu 16.04 系統(tǒng)上 . 使用 Mininet2.2.1 網(wǎng)絡(luò)模擬器模擬 SDN 交換機和主機,選用Opendaylight 0.6.4 Carbon和Multichain[23]分別作為SDN控制器和區(qū)塊鏈平臺.Multichain能夠快速構(gòu)建區(qū)塊鏈網(wǎng)絡(luò),為了降低區(qū)塊鏈在低活動時期的磁盤使用情況,本文在初始化區(qū)塊鏈時將mine-empty-rounds參數(shù)設(shè)置為0,即如果沒有新的交易,則停止添加區(qū)塊.實驗?zāi)M數(shù)據(jù)中心網(wǎng)絡(luò)環(huán)境,網(wǎng)絡(luò)拓撲如圖4所示,網(wǎng)絡(luò)中由 20 個交換機(s1~s20)和 16 個主機(h1~h16)構(gòu)成一個胖樹拓撲.其中,20個交換機分為5個子域,s1~s4構(gòu)成子域1,s5~s8構(gòu)成子域2,s9~s12構(gòu)成子域3,s13~s16構(gòu)成子域4,s17~s20構(gòu)成子域5,這些子域分別由5臺控制器(c1~c5)進行控制.
3.2 實驗方案
3.2.1 實驗設(shè)計
通過 Multichain 平臺構(gòu)建具有 5 個控制器節(jié)點c1~c5 的一個基于私有區(qū)塊鏈的 SDN 網(wǎng)絡(luò) . 當(dāng)網(wǎng)絡(luò)運行時,每次控制器向交換機下發(fā)流規(guī)則,都會將該條流規(guī)則格式化為一條交易 tx 并打包成一個區(qū)塊并在區(qū)塊鏈網(wǎng)絡(luò)中進行廣播,收到區(qū)塊的節(jié)點在經(jīng)過共識后將該區(qū)塊寫進自己的本地區(qū)塊鏈中 .區(qū)塊結(jié)構(gòu)和交易結(jié)構(gòu)分別在表1和表2中給出.在控制平面使用Random方法隨機生成交換機ID以及流規(guī)則ID,并從交換機中選擇流規(guī)則r,并將其解析,得到表2所示的各項流規(guī)則元素,將這些流規(guī)則元素按順序進行拼接,得到一條格式化的流規(guī)則r’.驗證區(qū)塊鏈中是否存在與r’相同的交易tx,如果存在,則流規(guī)則檢測結(jié)果為正確;如果不存在,則流規(guī)則檢測結(jié)果為錯誤.控制平面根據(jù)檢測結(jié)果進行決策,如果檢測結(jié)果為正確,則不執(zhí)行任何操作;如果檢測結(jié)果為錯誤,則向交換機下發(fā)刪除流規(guī)則命令.
在檢測階段分別采用了兩種選擇方式和兩種驗證策略 .選擇方式有全隨機選擇和先隨機后順序選擇兩種方式 . 全隨機選擇方式中,每次控制平面選擇數(shù)據(jù)平面中的流規(guī)則時,都使用Random方法隨機生成交換機ID以及流規(guī)則ID.先隨機后順序選擇方式中,首先隨機生成交換機 ID 以及流規(guī)則 ID,并對格式化的流規(guī)則 r’進行檢測,如果檢測結(jié)果為錯誤,則從該條流規(guī)則開始順序選擇 a 條流規(guī)則進行檢測.本文在實驗時取a等于10.驗證策略分別采用 2.3節(jié)中給出的自主驗證和投票驗證兩種策略.自主驗證策略中,控制平面隨機選擇流規(guī)則r并將其格式化為r’,驗證自己的本地區(qū)塊鏈中是否存在與r’相同的交易tx,如果存在,則流規(guī)則檢測結(jié)果為正確;如果不存在,則流規(guī)則檢測結(jié)果為錯誤 .自主驗證策略是完全自己做主對流規(guī)則進行驗證并返回檢測結(jié)果.投票驗證策略中,當(dāng)自主驗證后返回流規(guī)則檢測結(jié)果為錯誤時,該控制器節(jié)點作為請求節(jié)點向其他控制器節(jié)點廣播投票請求 .其他控制器節(jié)點收到投票請求后,驗證自己的本地區(qū)塊鏈中是否存在與r’相同的交易tx,如果存在,則向請求節(jié)點投票0;如果不存在,則向請求節(jié)點投票1.其中,0表示投票 r’為正確,1表示投票 r’為錯誤 .
請求節(jié)點統(tǒng)計投票1的驗證節(jié)點個數(shù),如果超過一半以上的驗證節(jié)點投票 1,則流規(guī)則檢測結(jié)果為“錯誤”;否則流規(guī)則檢測結(jié)果為“正確”.3.2.2 評價指標采用被檢測為錯誤的流規(guī)則數(shù)量指標對兩種選擇方式進行檢測效率方面的比較和評價,基于檢測為錯誤的流規(guī)則數(shù)量中正常流規(guī)則占比指標對兩種驗證策略進行誤檢率方面的比較和評價.為了模擬實際網(wǎng)絡(luò)中錯誤流量通常聚集出現(xiàn)的場景,每次測試向交換機s2和s3中一次性寫入共100條錯誤流規(guī)則.
在全隨機選擇方式中,檢測交換機中的哪條流規(guī)則完全由Random方法決定,而在先隨機后順序選擇方式中,檢測到一條錯誤流規(guī)則,將從該條流規(guī)則開始順序選擇10條流規(guī)則進行檢測.因此在兩種場景下,使用先隨機后順序選擇方式時的檢測效率都明顯優(yōu)于全隨機選擇方式.誤檢率的仿真實驗分別在使用兩種選擇方式的場景下進行,對使用兩種驗證策略時的誤檢率進行對比.設(shè)定對于交易tx,單個區(qū)塊鏈節(jié)點發(fā)生一致性不穩(wěn)定的概率為 0.01,且區(qū)塊鏈網(wǎng)絡(luò)中的控制器節(jié)點都是可信節(jié)點.取10次測試平均值作為誤檢率.兩種驗證策略的誤檢率對比.
可以看到,無論在全隨機選擇場景還是在先隨機后順序選擇場景下,隨著網(wǎng)絡(luò)中正常流規(guī)則數(shù)量的增多,使用自主驗證策略時誤檢率都隨之上升 .這是因為網(wǎng)絡(luò)中正常流規(guī)則數(shù)量越多,單個區(qū)塊鏈節(jié)點中發(fā)生一致性不穩(wěn)定的交易數(shù)量也就越多,從而導(dǎo)致誤檢率的上升 . 在使用投票驗證策略后,誤檢情況都得到了有效緩解,這是因為對于同一條交易 tx,在整個區(qū)塊鏈網(wǎng)絡(luò)中超過半數(shù)的節(jié)點在將 tx寫進自己的本地區(qū)塊鏈時同時發(fā)生一致性不穩(wěn)定的概率非常小 .當(dāng)對正常流規(guī)則 r’進行自主驗證后的檢測結(jié)果為“錯誤”時,將在整個區(qū)塊鏈網(wǎng)絡(luò)中對r’進行投票驗證,由于超過半數(shù)節(jié)點的本地區(qū)塊鏈中都不存在與 r’相同的交易 tx的概率非常小,使得大多數(shù)節(jié)點對 r’都投票為“正確”,因此,對正常流規(guī)則 r’進行投票驗證后的檢測結(jié)果為“正確”,從而有效降低了使用自主驗證策略時的誤檢率.
4 總結(jié)與展望
由于 SDN網(wǎng)絡(luò)特有的轉(zhuǎn)控分離架構(gòu),實現(xiàn)了對網(wǎng)絡(luò)流量的靈活高效處理,但其數(shù)據(jù)平面缺乏對流規(guī)則的認證,容易被第三方行動者惡意寫入錯誤流規(guī)則,從而危害網(wǎng)絡(luò)的有效性和可靠性 . 本文提出的 FFRD-BC 機制基于區(qū)塊鏈本身可追溯不可篡改的性質(zhì),隨機驗證數(shù)據(jù)平面中流規(guī)則是否存在于區(qū)塊鏈中以檢測數(shù)據(jù)平面中的錯誤流規(guī)則;引入了基于 PBFT 共識算法的投票驗證策略,緩解當(dāng)區(qū)塊鏈節(jié)點一致性不穩(wěn)定時所導(dǎo)致的誤檢情況 .仿真實驗表明:FFRD-BC機制能夠有效檢測出SDN數(shù)據(jù)平面中被第三方行動者惡意寫入的錯誤流規(guī)則,且與不執(zhí)行投票驗證策略相比,能夠有效降低流規(guī)則誤檢的發(fā)生 .下一步工作將考慮到區(qū)塊鏈網(wǎng)絡(luò)查找耗時的固有問題,提高區(qū)塊鏈部分的驗證速度,以實現(xiàn)更快的檢測效率.
參 考 文 獻
[1] KREUTZ D,RAMOS F M V,VERISSIMO P E,et al.Software-Defined Networking: A comprehensive survey[J]. Proceedings of the IEEE,2015,103(1):14-76.
[2] RAWAT D B,REDDY S R. Software-Defined Networkingarchitecture,security and energy efficiency:A survey[J]. IEEE Communications Surveys & Tutorials,2017,19(1):325-346.
[3] 陳興蜀,曾雪梅,王文賢,等. 基于大數(shù)據(jù)的網(wǎng)絡(luò)安全與情報分析[J]. 工程科學(xué)與技術(shù),2017,49(3):1-12.[4] 董仕 . 軟件定義網(wǎng)絡(luò)安全問題研究綜述[J]. 計算機科學(xué),2021,48(3):295-306.
[5] LIU Y,ZHAO B,ZHAO P,et al. A survey:Typicalsecurity issues of Software-Defined Networking[J]. ChinaCommunications,2019,16(7):13-31.
[6] 徐恪,凌思通,李琦,等. 基于區(qū)塊鏈的網(wǎng)絡(luò)安全體系結(jié)構(gòu)與關(guān)鍵技術(shù)研究進展[J]. 計算機學(xué)報,2021,44(1):55-83.
選自期刊《中南民族大學(xué)學(xué)報(自然科學(xué)版)》第 41 卷第 4 期
作者信息:張艷1,楊喜敏1,唐菀1*,劉艷萍2,劉宇宸1(1 中南民族大學(xué) 計算機科學(xué)學(xué)院,武漢 430074;2 華靈云科技有限公司,杭州 311121)
轉(zhuǎn)載請注明來自發(fā)表學(xué)術(shù)論文網(wǎng):http:///dzlw/30405.html