李兆斌 劉澤一 魏占禎 韓禹
摘 要:針對(duì)軟件定義網(wǎng)絡(luò)中,控制器無(wú)法保證下發(fā)的網(wǎng)絡(luò)策略能夠在轉(zhuǎn)發(fā)設(shè)備上得到正確執(zhí)行的安全問(wèn)題,提出一種新的轉(zhuǎn)發(fā)路徑監(jiān)控安全方案。首先以控制器的全局視圖能力為基礎(chǔ),設(shè)計(jì)了基于OpenFlow協(xié)議的路徑憑據(jù)交互處理機(jī)制;然后采用哈希鏈和消息驗(yàn)證碼作為生成和處理轉(zhuǎn)發(fā)路徑憑據(jù)信息的關(guān)鍵技術(shù);最后在此基礎(chǔ)上,對(duì)Ryu控制器和Open vSwitch開(kāi)源交換機(jī)進(jìn)行深度優(yōu)化,添加相應(yīng)處理流程,建立輕量級(jí)的路徑安全機(jī)制。測(cè)試結(jié)果表明,該機(jī)制能夠有效保證數(shù)據(jù)轉(zhuǎn)發(fā)路徑安全,吞吐量消耗比SDN數(shù)據(jù)層可信轉(zhuǎn)發(fā)方案(SDNsec)降低20%以上,更適用于路徑復(fù)雜的網(wǎng)絡(luò)環(huán)境,但時(shí)延和CPU使用率的浮動(dòng)超過(guò)15%,有待進(jìn)一步優(yōu)化。
關(guān)鍵詞:軟件定義網(wǎng)絡(luò);哈希鏈;消息驗(yàn)證碼;路徑校驗(yàn);數(shù)據(jù)完整性
中圖分類號(hào):TP393.08
文獻(xiàn)標(biāo)志碼:A
Abstract: For the security problem that the SDN (Software Defined Network) controller can not guarantee the network strategy issued by itself to be correctly executed on the forwarding devices, a new forwarding path monitoring security solution was proposed. Firstly, based on the overall view capability of the controller, a path credential interaction processing mechanism based on OpenFlow was designed. Secondly, Hash chain and message authentication code were introduced as the key technologies for generating and processing the forwarding path credential information. Thirdly, on this basis, Ryu controller and Open vSwitch opensource switch were deeply optimized,with credential processing flow added, constructing a lightweight path security mechanism. The test results show that the proposed mechanism can effectively guarantee the security of data forwarding path, and its throughput consumption is reduced by more than 20% compared with SDNsec, which means it is more suitable for the network environment with complex routes, but its fluctuates of latency and CPU usage are more than 15%, which needs further optimization.
英文關(guān)鍵詞Key words: Software Defined Network (SDN); Hash chain; message authentication code; path validation; data integrity
0 引言
軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN)通過(guò)分離控制層與轉(zhuǎn)發(fā)層大幅提升其網(wǎng)絡(luò)部署的靈活性、網(wǎng)絡(luò)管理的動(dòng)態(tài)性以及網(wǎng)絡(luò)傳輸?shù)母咝浴kS著SDN架構(gòu)的應(yīng)用場(chǎng)景不斷豐富,其安全問(wèn)題也逐漸凸顯,成為影響該技術(shù)進(jìn)一步發(fā)展的巨大障礙, 特別是受限于轉(zhuǎn)發(fā)層的分布式環(huán)境以及設(shè)備認(rèn)證機(jī)制的缺失,SDN的數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程存在較大的問(wèn)題,由于控制器缺乏針對(duì)流表實(shí)際執(zhí)行情況的有效監(jiān)測(cè)機(jī)制,且在數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程中交換機(jī)并不關(guān)注上一跳設(shè)備的身份合法性,攻擊者通過(guò)控制一個(gè)惡意節(jié)點(diǎn)即可以偏離流表規(guī)定路徑的方式來(lái)隱蔽地篡改或丟棄數(shù)據(jù)包。此外,SDN還缺乏有效的數(shù)據(jù)包完整性校驗(yàn)機(jī)制,導(dǎo)致接收者并不能確定收到的數(shù)據(jù)包是否未經(jīng)篡改。
目前SDN相關(guān)研究中還沒(méi)有提供較為有效的流策略安全方案。文獻(xiàn)[1]中提出的SDN數(shù)據(jù)層可信轉(zhuǎn)發(fā)方案(SDNsec)對(duì)每跳交換機(jī)的流表進(jìn)行編碼,并將其放入數(shù)據(jù)包報(bào)頭中來(lái)保證流策略同步和轉(zhuǎn)發(fā)路徑安全,但是其復(fù)雜的計(jì)算方式和較大的數(shù)據(jù)量無(wú)法適應(yīng)轉(zhuǎn)發(fā)路徑較復(fù)雜的環(huán)境。文獻(xiàn)[2]中提出的輕量級(jí)SDN數(shù)據(jù)包轉(zhuǎn)發(fā)驗(yàn)證方案(Lightweight Packet Forwarding, LPV)通過(guò)讀取轉(zhuǎn)發(fā)節(jié)點(diǎn)的流轉(zhuǎn)發(fā)統(tǒng)計(jì)值來(lái)判斷數(shù)據(jù)轉(zhuǎn)發(fā)是否出現(xiàn)問(wèn)題,該方案對(duì)控制器提出了較高的要求,同時(shí)也增加了南向接口的數(shù)據(jù)量。此外,還有部分方案[3-7]利用復(fù)雜的數(shù)學(xué)模型對(duì)網(wǎng)絡(luò)拓?fù)浜土鞑呗赃M(jìn)行評(píng)估,然后結(jié)合評(píng)估結(jié)果下發(fā)流策略,但是這些方案為控制器和南向接口帶來(lái)了較大的壓力,無(wú)法直接在實(shí)際環(huán)境中部署這些方案。為保證流策略在數(shù)據(jù)轉(zhuǎn)發(fā)層得到正確執(zhí)行,防止出現(xiàn)轉(zhuǎn)發(fā)路徑偏移,亟需一種能夠?qū)φ麠l轉(zhuǎn)發(fā)路徑上的流表執(zhí)行情況進(jìn)行監(jiān)測(cè),且占用較少計(jì)算資源的路徑安全機(jī)制。
本文提出了一種基于哈希鏈的SDN路徑安全機(jī)制,以輕量級(jí)的路徑校驗(yàn)技術(shù)為基礎(chǔ),結(jié)合消息驗(yàn)證碼技術(shù),保證了網(wǎng)絡(luò)策略的一致性以及數(shù)據(jù)負(fù)載的完整性。該機(jī)制以控制器隨機(jī)生成并下發(fā)的哈希鏈作為轉(zhuǎn)發(fā)路徑上交換機(jī)的身份驗(yàn)證標(biāo)識(shí),交換機(jī)通過(guò)驗(yàn)證上一跳交換機(jī)的標(biāo)識(shí)來(lái)決定執(zhí)行既定的流策略或是向控制器匯報(bào)路徑偏移風(fēng)險(xiǎn)。通過(guò)使用開(kāi)源控制器Ryu和軟件交換機(jī)OVS(Open vSwitch)來(lái)實(shí)現(xiàn)該機(jī)制,并在Mininet模擬環(huán)境中進(jìn)行測(cè)試,證明該機(jī)制可以在較低網(wǎng)絡(luò)開(kāi)銷的情況下有效實(shí)現(xiàn)路徑驗(yàn)證和數(shù)據(jù)包完整性驗(yàn)證。
1 相關(guān)研究
1.1 SDN架構(gòu)研究
開(kāi)放式網(wǎng)絡(luò)基金會(huì)發(fā)布的軟件定義網(wǎng)絡(luò)白皮書(shū)規(guī)定,SDN網(wǎng)絡(luò)分為三層結(jié)構(gòu):應(yīng)用層、控制層和轉(zhuǎn)發(fā)層,其結(jié)構(gòu)如圖1所示。應(yīng)用層主要是各種用來(lái)解釋用戶意圖的上層應(yīng)用程序;控制層是網(wǎng)絡(luò)的控制中心,負(fù)責(zé)網(wǎng)絡(luò)內(nèi)交換路徑和邊界業(yè)務(wù)路由的生成,并負(fù)責(zé)處理網(wǎng)絡(luò)狀態(tài)變化事件;轉(zhuǎn)發(fā)層主要由轉(zhuǎn)發(fā)設(shè)備和連接轉(zhuǎn)發(fā)設(shè)備的線路構(gòu)成,負(fù)責(zé)執(zhí)行用戶數(shù)據(jù)的轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)過(guò)程中所需要的轉(zhuǎn)發(fā)表項(xiàng)是由控制層生成的。
SDN架構(gòu)和傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的不同之處[8]在于,通過(guò)控制器對(duì)網(wǎng)絡(luò)進(jìn)行集中控制,并實(shí)現(xiàn)轉(zhuǎn)控分離、集中控制和開(kāi)放接口。控制器位于控制層,該層與應(yīng)用層之間的接口稱為北向接口,與轉(zhuǎn)發(fā)層之間的接口稱為南向接口。OpenFlow協(xié)議是目前在南向接口上應(yīng)用最為廣泛的協(xié)議,SDN控制器通過(guò)OpenFlow協(xié)議控制轉(zhuǎn)發(fā)層進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā)。
1.2 安全轉(zhuǎn)發(fā)相關(guān)研究
保證數(shù)據(jù)包的安全轉(zhuǎn)發(fā)是網(wǎng)絡(luò)的基本要求,在SDN架構(gòu)中,控制層和轉(zhuǎn)發(fā)層的安全運(yùn)行則是實(shí)現(xiàn)這一要求的基礎(chǔ),一旦控制層或轉(zhuǎn)發(fā)層設(shè)備出現(xiàn)異?;蛟獾焦簦W(wǎng)絡(luò)的安全性便會(huì)受到巨大損害。因此,數(shù)據(jù)包的安全轉(zhuǎn)發(fā)在SDN安全研究中獲得了廣泛的關(guān)注[9],其研究方向大致可分為3個(gè):
1)SDN控制器的策略安全配置[10-12]。這類方法將控制器下發(fā)策略的安全性作為核心研究?jī)?nèi)容。通過(guò)改進(jìn)現(xiàn)有的開(kāi)源控制器或是設(shè)計(jì)包含安全機(jī)制的新控制器,保證控制器能夠提前評(píng)估網(wǎng)絡(luò)并分析得出適當(dāng)?shù)牟呗韵掳l(fā)方式,進(jìn)而保證數(shù)據(jù)轉(zhuǎn)發(fā)的安全, 但這類方法復(fù)雜度較高,且新增或改進(jìn)的功能也給控制器帶來(lái)了較大負(fù)擔(dān)。此外,這些新增模塊本身的安全風(fēng)險(xiǎn)也是一個(gè)值得考慮的問(wèn)題。
2)數(shù)據(jù)轉(zhuǎn)發(fā)情況監(jiān)控和檢測(cè)技術(shù)[13-17]。流策略能否在交換機(jī)上得到正確執(zhí)行直接關(guān)系著數(shù)據(jù)的轉(zhuǎn)發(fā)安全,目前較為普遍的方法是通過(guò)對(duì)流數(shù)量進(jìn)行分析或是發(fā)送探測(cè)數(shù)據(jù)包來(lái)檢測(cè)轉(zhuǎn)發(fā)層的實(shí)際傳輸情況。這類方法的優(yōu)點(diǎn)是可以在不改變現(xiàn)有網(wǎng)絡(luò)策略的情況下獲取轉(zhuǎn)發(fā)層狀態(tài)信息并保證數(shù)據(jù)轉(zhuǎn)發(fā)安全,但是也為網(wǎng)絡(luò)帶來(lái)了巨大的流量壓力。
3)基于標(biāo)簽的數(shù)據(jù)包安全技術(shù)[18-21]。這類方法能夠快速檢測(cè)出數(shù)據(jù)包是否被篡改,控制器也可以利用標(biāo)簽分析出交換機(jī)的實(shí)際轉(zhuǎn)發(fā)情況, 但是在數(shù)據(jù)包中加入標(biāo)簽的方法會(huì)為交換機(jī)帶來(lái)一定的通信和計(jì)算開(kāi)銷,并且SDN交換機(jī)的計(jì)算能力較弱,因此在實(shí)際的使用中需要考慮盡可能地降低資源消耗。
2 安全需求及關(guān)鍵技術(shù)分析
SDN架構(gòu)建立在對(duì)轉(zhuǎn)發(fā)層設(shè)備完全信任的基礎(chǔ)上[22],這為該技術(shù)的實(shí)際應(yīng)用帶來(lái)了巨大風(fēng)險(xiǎn),攻擊者可以以較低的成本實(shí)施對(duì)整個(gè)網(wǎng)絡(luò)的攻擊。為保證SDN的數(shù)據(jù)轉(zhuǎn)發(fā)安全,本文主要解決了轉(zhuǎn)發(fā)路徑校驗(yàn)和數(shù)據(jù)包完整性兩個(gè)問(wèn)題。
2.1 SDN轉(zhuǎn)發(fā)層路徑校驗(yàn)
SDN控制器缺乏對(duì)數(shù)據(jù)流在轉(zhuǎn)發(fā)層實(shí)際轉(zhuǎn)發(fā)路徑的檢測(cè)手段[1],這在實(shí)際應(yīng)用環(huán)境中顯然是不安全的,圖2(a)中攻擊者一旦控制轉(zhuǎn)發(fā)路徑上的惡意交換機(jī),即可隱蔽地完成數(shù)據(jù)包竊取或篡改。為解決此問(wèn)題,轉(zhuǎn)發(fā)層設(shè)備需要對(duì)上一跳交換機(jī)進(jìn)行路徑合法性校驗(yàn),通過(guò)一定的路徑校驗(yàn)憑證判斷上一跳交換機(jī)是否來(lái)自控制器制定的轉(zhuǎn)發(fā)路徑,進(jìn)而保證轉(zhuǎn)發(fā)數(shù)據(jù)的路徑合法,效果如圖2(b)所示。
針對(duì)SDN交換機(jī)計(jì)算能力有限[8]的特點(diǎn),本文選擇哈希鏈作為路徑的校驗(yàn)憑證。與傳統(tǒng)公鑰算法相比,該技術(shù)能夠在保證校驗(yàn)憑證安全的前提下,提高生成速度并降低存儲(chǔ)空間占用??刂破髟谶x擇一個(gè)密碼學(xué)安全哈希函數(shù)h和一個(gè)秘密種子s后,迭代h共N次即可生成一個(gè)哈希鏈[23],鏈尾hN(s)記為w。如式(1)所示:
鏈尾hN(s)稱為哈希鏈的根節(jié)點(diǎn),它類似于公鑰技術(shù)中的公鑰,也稱哈希鏈驗(yàn)證錨。只知道hN(s),但不知道s的情況下無(wú)法計(jì)算出hN-1(s); 而給出hN-1(s)時(shí),只需對(duì)其進(jìn)行一次哈希運(yùn)算,并將得到的值與hN(s)比較即可判斷正確性。利用哈希鏈的單向驗(yàn)證特性,本機(jī)制可以把哈希鏈上的數(shù)據(jù)hi(s)逆向發(fā)送給轉(zhuǎn)發(fā)路徑上的交換機(jī)SN-i+1,由交換機(jī)根據(jù)自己的哈希值進(jìn)行一次哈希運(yùn)算得到hi+1(s),再將生成的新哈希值與接收到的數(shù)據(jù)包中SN-i的哈希值標(biāo)簽進(jìn)行比對(duì),根據(jù)結(jié)果判斷是否更新哈希值標(biāo)簽并轉(zhuǎn)發(fā)至下一跳交換機(jī)。
2.2 SDN數(shù)據(jù)包完整性
數(shù)據(jù)包完整性是判斷一個(gè)網(wǎng)絡(luò)是否安全可靠的重要標(biāo)準(zhǔn),而標(biāo)準(zhǔn)的SDN架構(gòu)中尚未引入轉(zhuǎn)發(fā)層數(shù)據(jù)包的完整性校驗(yàn)機(jī)制,這也為SDN架構(gòu)在現(xiàn)實(shí)環(huán)境中的應(yīng)用帶來(lái)了不安全因素[24]。特別是在一些對(duì)數(shù)據(jù)安全性要求較高的環(huán)境中,接收端能否完整地接收到傳輸數(shù)據(jù)關(guān)系著整個(gè)網(wǎng)絡(luò)是否可用。為保證數(shù)據(jù)包具有較強(qiáng)的安全性,使用戶能夠接收到完整可靠的數(shù)據(jù),一種常用的方法便是引入消息驗(yàn)證碼(Message Authentication Code,MAC)。該技術(shù)利用密鑰對(duì)需要認(rèn)證的消息產(chǎn)生新的數(shù)據(jù)塊并對(duì)數(shù)據(jù)塊進(jìn)行哈希運(yùn)算,借助哈希函數(shù)的抗強(qiáng)碰撞性可以有效保護(hù)消息的完整性。本文中通信雙方通過(guò)密鑰協(xié)商獲得消息驗(yàn)證碼的密鑰K,發(fā)送者利用該密鑰計(jì)算消息m的消息驗(yàn)證碼MAC=h(K‖m),并將其封裝進(jìn)待轉(zhuǎn)發(fā)的數(shù)據(jù)包中轉(zhuǎn)發(fā)出去。接收者在收到數(shù)據(jù)包后提取其中的消息m和消息驗(yàn)證碼,然后根據(jù)之前獲得的密鑰計(jì)算出當(dāng)前的消息驗(yàn)證碼MAC′,將其與接收到的MAC進(jìn)行比較,判斷接收數(shù)據(jù)包的完整性。
3 SDN路徑安全機(jī)制設(shè)計(jì)與實(shí)現(xiàn)
3.1 SDN路徑安全機(jī)制設(shè)計(jì)
鑒于目前SDN網(wǎng)絡(luò)中缺乏高效、可靠的數(shù)據(jù)安全轉(zhuǎn)發(fā)路徑選擇和校驗(yàn)機(jī)制,本文提出了一種基于哈希鏈的SDN路徑安全機(jī)制,該機(jī)制主要包含數(shù)據(jù)轉(zhuǎn)發(fā)路徑校驗(yàn)?zāi)K和數(shù)據(jù)完整性校驗(yàn)?zāi)K:數(shù)據(jù)轉(zhuǎn)發(fā)路徑校驗(yàn)?zāi)K中由控制器采集數(shù)據(jù)流五元組信息,計(jì)算出哈希鏈數(shù)據(jù),然后分別下發(fā)給對(duì)應(yīng)的交換機(jī),由交換機(jī)再進(jìn)行彼此之間的路徑校驗(yàn);數(shù)據(jù)完整性校驗(yàn)?zāi)K需要控制器完成消息驗(yàn)證碼和會(huì)話密鑰的生成和下發(fā),然后由交換機(jī)根據(jù)會(huì)話密鑰和加密后的消息驗(yàn)證碼對(duì)數(shù)據(jù)包完整性進(jìn)行驗(yàn)證。該機(jī)制的基本模型如圖3所示。
5 結(jié)語(yǔ)
針對(duì)數(shù)據(jù)轉(zhuǎn)發(fā)層缺乏實(shí)際轉(zhuǎn)發(fā)路徑校驗(yàn)機(jī)制的安全問(wèn)題,本文在充分研究國(guó)內(nèi)外相關(guān)研究現(xiàn)狀后,結(jié)合多種方案的特點(diǎn),提出了一種基于哈希鏈的輕量級(jí)路徑安全機(jī)制。利用控制層的全局視圖能力,以輕量級(jí)的哈希鏈和消息驗(yàn)證碼技術(shù)作為憑借,通過(guò)對(duì)現(xiàn)有的控制器和開(kāi)源交換機(jī)進(jìn)行深度優(yōu)化,實(shí)現(xiàn)了數(shù)據(jù)轉(zhuǎn)發(fā)層的路徑校驗(yàn),保證了控制層的安全策略在轉(zhuǎn)發(fā)層的正確執(zhí)行。
本文設(shè)計(jì)并實(shí)現(xiàn)的路徑安全機(jī)制在Mininet網(wǎng)絡(luò)環(huán)境中進(jìn)行了測(cè)試,結(jié)果表明該機(jī)制能夠根據(jù)用戶需求動(dòng)態(tài)添加安全策略,在保證數(shù)據(jù)路徑安全的前提下,將通信資源和硬件設(shè)備資源的消耗保持在相對(duì)正常的范圍內(nèi)。
下一步工作將考慮引入DPDK技術(shù)對(duì)開(kāi)源交換機(jī)的工作機(jī)制進(jìn)行改進(jìn),通過(guò)優(yōu)化交換機(jī)用戶態(tài)、內(nèi)核態(tài)和底層硬件之間的傳輸機(jī)制,降低不同狀態(tài)交換機(jī)切換時(shí)的資源占用,同時(shí)提高交換機(jī)用戶態(tài)的工作效率,進(jìn)而實(shí)現(xiàn)硬件資源占用的大幅降低。
參考文獻(xiàn) (References)
[1] SASAKI T, PAPPAS C, LEE T, et al. SDNsec: forwarding accountability for the SDN data plane[C]// Proceedings of the 2016 25th International Conference on Computer Communication and Networks. Piscataway, NJ: IEEE, 2016:1-10.
[2] 王首一,李琦,張?jiān)?輕量級(jí)的軟件定義網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)發(fā)驗(yàn)證[J].計(jì)算機(jī)學(xué)報(bào),2019,42(1):176-187. (WANG S Y, LI Q, ZHANG Y. LPV: lightweight packet forwarding verification in SDN[J]. Chinese Journal of Computers, 2019, 42(1): 176-187.)
[3] PORRAS P, SHIN S, YEGNESWARAN V, et al. A security enforcement kernel for OpenFlow networks[C]// Proceedings of the 1st Workshop on Hot Topics in Software Defined Networks. New York: ACM, 2012:121-126.
[4] SON S, SHIN S, YEGNESWARAN V, et al. Model checking invariant security properties in OpenFlow[C]// Proceedings of the 2013 IEEE International Conference on Communications. Piscataway, NJ: IEEE, 2013:1974-1979.
[5] LI G, GUO S, YANG Y, et al. Traffic load minimization in software defined wireless sensor networks[J]. IEEE Internet of Things Journal, 2018, 5(3): 1370-1378.
[6] QIU X, ZHANG K, REN Q. Global flow table: a convincing mechanism for security operations in SDN[J]. Computer Networks, 2017, 120: 56-70.
[7] XU T, GAO D, DONG P, et al. Defending against Newflow attack in SDNbased Internet of things[J]. IEEE Access, 2017, 5:3431-3443.
[8] 王蒙蒙,劉建偉,陳杰,等.軟件定義網(wǎng)絡(luò):安全模型、機(jī)制及研究進(jìn)展[J].軟件學(xué)報(bào),2016,27(4):969-992.(WANG M M, LIU J W, CHEN J, et al. Software defined networking: security model, threats and mechanism[J]. Journal of Software, 2016,27(4):969-992.)
[9] 王濤,陳鴻昶,程國(guó)振. 軟件定義網(wǎng)絡(luò)及安全防御技術(shù)研究[J]. 通信學(xué)報(bào),2017,38(11):133-160.(WANG T, CHEN H C, CHENG G Z. Research on softwaredefined network and the security defense technology[J]. Journal on Communications, 2017, 38(11): 133-160.)
[10] 柳林,周建濤.軟件定義網(wǎng)絡(luò)控制平面的研究綜述[J].計(jì)算機(jī)科學(xué),2017,44(2):75-81.(LIU L, ZHOU J T. Review for research of control plane in softwaredefined network[J]. Computer Science, 2017,44(2):75-81.)
[11] ALSHAER E, ALHAJ S. FlowChecker: configuration analysis and verification of federated OpenFlow infrastructures[C]// Proceedings of the 3rd ACM Workshop on Assurable and Usable Security Configuration. New York: ACM, 2010:37-44.